Xcode 4 & amp; trois20 & amp; créer une archive IPA: aucun fichier ou répertoire de ce type
Dans Xcode 3.2.5-je utiliser "Construire Et d'Archives" pour créer un fichier IPA sans aucun problème.
Comment puis-je le faire dans Xcode 4? Je pense que je dois utiliser "Produit -> Archive", mais j'ai plus de 100 messages d'erreur dans le three20 cadre. La plupart sont des "No such file or directory". ("Produit -> Build -> Build Pour l'Archivage". Pas d'erreurs.)
Par exemple, c'est le premier message d'erreur:
../scripts/Protect.command: line 23: cd: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[PROJECTNAME]-blabla/ArchiveIntermediates/[PROJECTNAME]/BuildProductsPath/Release-iphoneos/../three20/Three20Core: No such file or directory
Le chemin "/[PROJECTNAME]/BuildProductsPath/three20/"
vraiment n'existe pas, mais que ce chemin existe: "/[PROJECTNAME]/three20/"
Que puis-je faire?
source d'informationauteur Manni
Vous devez vous connecter pour publier un commentaire.
La Three20 de la documentation ne permet pas de résoudre ce problème pour moi (malheureusement...). Finalement ce qui a fonctionné pour moi, c'était un mélange d'un peu de solutions. Il y a une différence entre "Archive" et "Construire pour l'Archivage" (ou de construire) et de l'utilisation de ces étapes, j'ai les deux d'entre eux travaillent avec aucun des problèmes de génération:
Vous aurez besoin de changer les scripts que Manni mentionnémis à Ignorer "Installer" drapeau pour chaque Three20 projet lié à l'arborescence de votre projet et ajouter les chemins d'accès suivants à votre projet de "recherche-Tête, les chemins d'accès":
"$(BUILT_PRODUCTS_DIR)/../three20"
"$(BUILT_PRODUCTS_DIR)/../../three20"
cela vous aidera à travailler avec l'option de compilation. Lorsque vous souhaitez effectuer l'archive d'action, alors vous aurez aussi besoin de changer les "Lieux" de préférence dans Xcode comme sans plumes mentionné ci-dessus.
J'ai documenté ces étapes dans cette post.
Configuration qui fonctionne à la fois pour la construction et l'archive dans Xcode4.
https://github.com/pazustep/three20/commit/4a9aad4eb90a6962dd729d245f9293a7cc0d7f36
src/common/Configurations/les Chemins.xcconfig
src/scripts/Protéger.commande
Une autre chose qui pourrait déstabiliser le processus de construction est à l'aide d'un nom de schéma qui contient espaces.
XCode ne vous empêchera pas de le faire, mais si vous utilisez un nom, comme "Ad Hoc" pour votre régime, vous obtiendrez les mêmes erreurs:
Je suis à la recherche dans ce droit maintenant et nous espérons mettre sur pied une adéquate patch qui fonctionne dans les deux Xcode 3.2.# et Xcode 4.
Edit:
Donc, il semble que le moyen le plus facile à se faire vieux Xcode 3.2 projets pour travailler avec Xcode 4 est de faire ce qui suit:
Je vais écrire un three20.info l'article d'aller dans plus de détails à ce sujet.
three20.info: Xcode 4 Guide de Transition
http://three20.info/article/2011-03-10-Xcode4-Support
Assurez-vous que votre nom de schéma ne contient pas d'espaces. Qui conduit également à l' "Fichier non trouvé" erreur de construction.
J'ai dû aller dans le cadre du Projet Info > Build (onglet) et ajoutez la ligne suivante à l'en-tête de la recherche de chemin:
Ce chemin d'accès peut être spécifique à mon projet, mais là, il est dans le cas où il travaille pour quelqu'un d'autre.
Ouvrir le fichier
/src/common/Configurations/Paths.xcconfig
ancien code:
nouveau code:
Donc, j'ai encore des 7 erreurs, mais je peux créer l'archive...
Google Groupes: Xcode 4, Three20 et Projet -> Archive
http://groups.google.com/group/three20/browse_frm/thread/cde36b7dab178bad
Amir Naor la réponse est parfait. J'ai vérifié sa réponse sur xcode 4.2 et cela a fonctionné. J'ai raté l'étape "Vous aurez besoin de changer les scripts que Manni mentionné ci-dessus" donc j'ai continué à obtenir l'erreur similaire, tel que cité dans la question d'origine post. espérons que vous ne faites pas la même erreur. aussi que de xcode 4.2, l'étape "ensuite, vous aurez aussi besoin de changer les "Lieux" de préférence dans Xcode sans plumes comme mentionné ci-dessus." n'est pas nécessaire non plus.
Je n'ai la suite pour le faire fonctionner pour moi:
Absolute path
àproducts directory
.et c'était tout!
astuce: pour avoir une idée de la délinquance des fichiers qui est à l'origine de votre archive à la création d'un fichier d'archive plutôt que d'une ipa ce faire:
usr/local/include
permettra d'identifier le coupable fichiers d'en-tête vous avez besoin pour passer de Public pour le Projet ou les fichiers que vous devez changer de chemin absolu du répertoire de produits. mais ce répertoire (c'est à dire usr/local/include) varie en fonction de votre sublibrary structure de répertoireSi vous souhaitez une solution de rechange rapide, il suffit de faire suivant des étapes simples:
1. aller à la
/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[PROJECTNAME]-blabla/ArchiveIntermediates/[PROJECTNAME]/BuildProductsPath/
chemin (il sera dans votre message d'erreur). Il devrait être une sous-chaîne jusqu'à/..
dans cette voie.2. créer
Release-iphoneos
(ouDebug-iphoneos
le cas échéant) dossier, il yAlors tout va construire beaux!
Three20 script suppose que vous avez déjà ce dossier, mais quand vous construisez première fois, il n'existe pas existe. C'est pourquoi vous avez besoin de fixer "Construire" et "Archive" séparément: la "construction" d'action utilise généralement
Debug-iphoneos
dossier et "Archive" action utiliseRelease-iphoneos
.Astuce: vous pouvez créer tous les dossiers requis à la fois pour éviter les problèmes avec les différentes configurations. Ce sont:
Release-iphoneos
Debug-iphoneos
Release-iphonesimulator
Debug-iphonesimulator