Ne peut pas générer de l'Application iOS archive dans xcode
J'ai un problème de génération d'une Application iOS archive à partir d'une application. L'application compile très bien et fonctionne même dans le simulateur. Maintenant, je voulais faire som test ad hoc et ne peut pas générer l'Application iOS Archive. Quand je clique sur le Produit -> Archive il génère un générique xcode archive. Quelqu'un peut m'aider. Je tiens à mentionner que j'ai déjà créé une Application iOS Archives de cette application. Il a juste arrêté pour générer iOS Archive pour une raison quelconque. Merci beaucoup.
- Même si la question est sur la génération de l'archive à partir de xcode, j'ai été confronté à ce problème à l'aide de
xcodebuild
. La solution est de spécifier la destination:xcodebuild -destination generic/platform=iOS
- Merci @db42, qui l'a fait!
- pouvez-vous élaborer sur la résolution-où faites-vous le changement?
- Si vous en avez .xcodeproj fichiers dans Project>Cibles>Phases de construction>cible les dépendances de l'enlever de là et ensuite construire votre ipa. Il fonctionne pour moi. Cheers
Vous devez vous connecter pour publier un commentaire.
Vérifier Les Paramètres De Construction:
/usr/local/include
. Si vous êtes à la construction d'une bibliothèque statique les en-têtes doit être Public, de sorte qu'il est plus correct si #3 est de modifier les en-Têtes de Chemin d'accès au Dossier à quelque chose de plus raisonnable commeinclude/$(TARGET_NAME)
. @CopperCash note cela dans une réponse ci-dessous.YES
laSkip Install
.Cela peut se produire si vous avez ajouté un cadre/bibliothèque ... vous avez besoin de modifier la Cible->Paramètres de construction de la bibliothèque et de définir le "Skip Install' à 'Oui'. Lorsque vous re-archive, XCode, devraient commencer à produire une "Application iOS Archive" nouveau plutôt que d'un "générique xcode archive".
En plus de Sauter Installer à Oui et dans le cas où vous avez ouvert une autre lib/framwork projet au sein de votre application projet que vous avez à déplacer les en-têtes (le cas échéant) de public à projet dans le Phase de construction /Copie des en-Têtes de.
Je n'ai la suite pour le faire fonctionner pour moi:
Absolute path
àproducts directory
. Remarque: voir l'astuce ci-dessous pour affiner votre recherche pour trouver la bibliothèque la cause de cette erreur.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 (ou même les fichiers que vous avez oublié de mettre le skip installer yes drapeau). mais ce répertoire (c'est à dire usr/local/include) varie en fonction de votre sublibrary structure de répertoire. Dans de nombreux cas.. vous verrez tous les fichiers répertoriés dans Copier des Fichiers à l'étape 3 ci-dessus énumérés ici. Si vous trouver ici, alors vous avez une réponse définitive à la cause de votre problème.mise à jour de l'indice: pour rendre la vie encore plus simple.. que ce soit des fichiers s'affiche à l'étape 4 dans soupçon ci-dessus.. il suffit de rechercher dans la recherche globale de xcode ... et vous devriez obtenir des résultats immédiats pour ce que vous voulez.. c'est par exemple le contenu de mon dossier (suivant les étapes de l'indice ci-dessus):
Donc, je pourrais dire qu'il a quelque chose à voir avec la crypto et ssl bibliothèques.. à la recherche pour eux:
m'a fait réaliser que j'ai oublié de set skip installer sur oui.
./usr/local/include
.Si vous exportez l'archive, de l'ouvrir et de voir
/urs/local/include
dans Produits essayer cette suggestion:A fonctionné pour moi après la mise à jour de mon Réagir application Native pour
0.11.0
, Xcode7
et CocoaPods0.39.0.beta.4
.Si vous utilisez CocoaPods ainsi que WatchKit ou un aujourd'Hui de l'Extension, il y a un question sur le CocoaPods repo expliquant ce que votre problème pourrait être.
La solution pour moi était de m'enlever le
Copy Pod Resources
phase de la WatchKit Extension et aujourd'Hui l'Extension des cibles sousBuild Phases
. Le projet compilées et archivées comme prévu une fois que je l'ai fait.Espère que cela aide quelqu'un, cela m'avait bloqué pendant une journée entière!
Si aucune des réponses ci-dessus ne fonctionnent pas, votre problème est probablement avec
cocoaPods
. La dernière mise à jour0.38.1
gâché les choses pour moi, mais ensuite j'ai rétrogradé à0.37.1
et les choses sont revenues à la normale. À l'aide deXcode 6.3.1
Plus tard edit: la mise à jour de
0.38.2
permettra également de résoudre ce problème. Plus d'infos sur ce qui a causé ce problème ici: Cocoapods 0.38.1 n'a pas pu créer valide Archive0.38.2
et ont encore des problèmes. Êtes-vous sur Xcode 7?/Library/Frameworks
. Je pense qu'il peut avoir quelque chose à voir avec Google gousses de cacao ne pas être construit comme un cadre dynamique. Il semble similaire à github.com/CocoaPods/CocoaPods/issues/3889Bien que je suis en utilisant Xcode5 et ce qu'il a réglé pour moi a été l'édition de la Construire Schéma d'essayer toutes les suggestions ci-dessus qui étaient applicables ne l'aide pas dans mon cas.
J'avais deux objectifs, disons, "App" et "App GRATUITE". Mes problèmes avec le générique d'archives qui s'est passé quand j'essayais de l'Archive de la version GRATUITE, auquel j'ai ajouté après la "normale" version de l'application. Dans mon cas, quand j'ai choisi le Régime de la barre d'outils et a choisi de Modifier le Schéma ... j'ai vu qu'à Construire l'article a deux objectifs, à savoir App et App GRATUIT.
J'ai décoché toutes les colonnes d'applications, ne laissant que App GRATUIT les colonnes de vérifier, et cliqué sur OK. La prochaine fois, j'ai choisi de Produit > Archive j'ai obtenu mon App GRATUIT au lieu d'un Générique d'Archives. 🙂
Si vous avez seulement seul projet, peut-être que cette solution serait utile.
Ce problème avait eu lieu, quand j'ai dupliqué la cible. En conséquence, j'ai eu deux objectifs parallèles construit. C'était à l'origine du problème. Générique IOS archive a été construit.
À son tour le parallèle intégré aller à
J'ai eu ce problème après la mise à jour d'iOS 9 et Xcode 7. Josh H solution a fonctionné pour moi:
J'ai aussi fait un post script d'installation pour mon Podfile pour faire cela automatiquement!
Il suffit de l'ajouter en bas de votre Podfile et exécuter
pod install
J'ai plusieurs projet dans mon espace de travail, (GTL, les Gousses et mon projet principal) et c'est ce qui a fonctionné pour moi:
Sélectionnez le Projet, il y aura 2 types il y, il y a le Projet et il y a la Cibles.
Pour des projets qui n'est pas votre principale comme
GTL
ouPODS
:Projets:
Objectifs:
Pour le projet principal (ce qui est généralement le même nom que le nom de votre produit):
Projets:
Objectifs:
Vérifier l'ios cible de déploiement sur chacun des projets et objectifs, afin de s'assurer qu'ils sont tous les mêmes.
J'ai eu cette question. Dans mon cas, elle a été causée par la tenue d'un Mac app cible comme une dépendance de l'application iOS.
La raison pour laquelle il a été mis en place comme cela a été le Mac app est un outil utilisé pour générer des données pour l'application iOS, qui a ensuite été inclus dans le bundle.
J'ai dû supprimer cette dépendance et de construire l'outil séparément avant de faire une version de l'application iOS elle-même.
Dans mon scénario j'avais la fausse Générique Archive" seulement après que j'ai commencé à y compris le code Swift dans mon principalement Objective-C projet. Après beaucoup de dépannage et d'examen de l'archive que Xcode est de cracher, j'ai remarqué que le
SwiftSupport
dossier (avec le nécessaire de dylibs pour la Swift runtime) était dans un endroit différent dans mes archives que de la vanille de la marque-nouvelle Swift projet d'application de l'archive.J'ai trouvé le
Installation Directory
paramètre de construction et a remarqué qu'il a été défini à un chemin d'accès personnalisé à mon projet. J'ai simplement supprimé (paramètre à sa valeur générique de/Applications
) et la prochaine Build -> Archive je n'ai fonctionné comme prévu et m'a donné une bonne Application iOS Archive.TL; DR: assurez-vous que votre
Installation Directory
construire paramètre est défini à sa valeur par défaut de/Applications
lorsque y compris Swift code dans votre application, surtout si vous commencez avec un ancien fichier de projet qui peuvent avoir une rentrée d'héritage paramètres de construction.Laissant ici pour en sauver d'autres de la même voyage.
J'ai trouvé que je devais enlever la même Copie de la Gousse de Ressources phase de construction d'une bibliothèque statique cible dans mon espace de travail aussi.
Outre à Alex L 's réponse.
Point 3. Le changement "Build Settings" - > "en-Tête Public Chemin du Dossier" à "inclure/xxx" fonctionne aussi.
Si aucun des ci-dessus vous a aidé...après beaucoup de temps.......
J'ai supprimé la valeur de l'Info.plist pour les Bundle Version parce que j'ai été assez heureux avec juste Bundle Version Courte 1.0. Mauvais. Ne pas le faire.
*Remarque j'ai fait la modification dans l'INTERFACE utilisateur sur la droite, ne réalisant pas qu'il aurait mis une clé vide dans l'Info.fichier plist. Je pense que rend invalide. Mon bundle a montré que d'autres éléments lors de l'archivage et n'avait pas d'icône, et je ne pouvais pas télécharger de n'importe où.
Cela se résume à des valeurs non valides dans l'Info.plist. Si ce n'est pas une archive valide, essayez de décompresser une vieille archive et de les déposer dans /remplacer vos actuelles et voir si cela résout-il lors de la reconstruction de l'archive.
Allez à Paramètres de construction et d'ajouter
yourAppName/Ressources/dist.plist à la la Signature du Code des Droits
Appuyez sur cmd + B avec Appareil iOS ou un Périphérique Réel sélectionné comme Cible de génération
Quand fait -> faites défiler jusqu'à "Produits" du dossier et cliquez-droit sur yourAppName.app
Choisissez "Afficher dans le Finder"
Créer un dossier avec le Nom Charge utile (capital "P")
Copie yourAppName dans votre Payload Dossier
Créer un zip de votre Payload Dossier
Renommer le zip yourAppName.ipa
FAIT
Après avoir essayé à peu près tout:
J'ai ensuite remarqué que ma partition de démarrage est "faible espace disque libre'... 1 go ou plus.
J'ai redémarré, puis arrivé sur 18GB gratuit.
Ensuite ouvert Xcode et le projet, réalisé Archive... et étonnamment (après une heure d'essayer de construire une Archive) j'ai finalement obtenu un non Générique Archive.
Aucune idée si c'est un disque libre question qui fixe ou un redémarrage de l'macOS qu'il fixe, mais il a travaillé pour moi.
Si vous en avez .xcodeproj fichiers dans Project>Cibles>Phases de construction>cible les dépendances de l'enlever de là et ensuite construire votre ipa. Il fonctionne pour moi. Cheers
Vous pouvez obtenir la réponse ici : xcode est la création de générique xcode archive au lieu de l'Application iOS Archive
Dans mon cas, j'ai dû passer deux FMDB et BlocksKit statiques des bibliothèques. Auparavant, ils ont été construits comme des sous-projets. Rappelez-vous que vous pouvez utiliser lipo pour créer universelle des bibliothèques. Lors de la construction de la finale des produits, le simulateur de code sera supprimé automatiquement.
Une autre explication possible est d'avoir des références dans la "Cible" Dépendances à projets pour une autre plate-forme. Dans mon cas particulier, je travaille sur un projet que partage de code pour OSX et iOS. Dans l'un des iOS objectifs, j'avais accidentellement ajouté un OSX la cible sous dépendance.
Pour être complet, je vous poste ma solution.
J'ai connu exactement le même problème en essayant de construire une Archive de un iOS de projet dans Xcode 5.1.1 (5B1008). Aucune des suggestions ci-dessus a résolu le problème, et la plupart d'entre eux étaient hors de propos (je n'avais pas ajoutés tous les Cadres, et n'a pas toutes les entrées Publiques dans la Copie des en-Têtes de section de mes Phases de construction).
Dans mon cas, la résolution du problème consistait simplement la fermeture de mon projet, en supprimant toutes les archives que j'avais déjà faites, allez dans les Préférences > Comptes, en supprimant mon compte développeur, arrêter de Xcode, relance, de rajouter mon compte développeur, en commençant le processus d'Archivage de nouveau. Cela a réglé mon problème immédiatement.
La solution, puisque tous les ci-dessus ne fonctionne pas pour moi...
Changé le
User Header Search Paths
(je suppose queHeader Search Paths
travaillerait avec autant d'élégance) à"$(BUILT_PRODUCTS_DIR)/BlocksKit"
.Fond:
Dans BlockKit, les développeurs ont structuré les en-têtes dans le projet principal différemment de celle de la structure sur le déploiement. Donc, vous ne pouvez pas référencer les en-têtes dans le projet, et doit faire référence à la les en-têtes copiés dans le répertoire de construction.
La façon dont cela a fonctionné pour moi dans (Xcode 5) j'avais 2 objectifs et lorsque j'ai édité le régime, sur le volet gauche de l'éditeur de schéma, vous verrez le bouton [créer, EXÉCUTER, TESTER, le PROFIL de XXX.APP, ANALYSER, ARCHIVER] à partir de la génération volet, vous verrez votre projet objectifs énumérés dans une liste. À l'extrémité droite, vous verrez l'ARCHIVE sélections, assurez-vous qu'une seule cible est sélectionné pour l'archivage.
J'ai eu 2 de mes cibles choisies dans mon projet, j'ai vérifié seulement la cible que je voulais dans le produit, et cela a fonctionné!
J'ai résolu cette erreur par ouverture uniquement l'application du projet dans XCode, c'est à dire. pas l'ouverture d'un espace de travail comprenant l'application et d'autres projets/librairies/frameworks.
Avoir 2 projets distincts, un cadre ou une bibliothèque partagée et d'une application iOS, j'ai dû ouvrir les 2 différents XCode windows, chacun en ouvrant directement la .xcodeproj fichier au lieu de la commune .xcworkspace, afin de preperly construire chaque.
Comme un effet secondaire de nice, XCode n'est plus reconstruit chaque cible de chaque projet, après je fais un Propre, résultant en court-circuit temps de construire.
De fond: je suis entrain de créer un open source SDK, et une démo d'une application iOS. J'avais à la fois ouvert dans un espace de travail unique.
Réglage Sauter installer à OUI sur le SDK objectifs en matière d'empêcher quiconque de créer une archive, comme il serait vide, ce n'était pas une option. À l'aide de Projet au lieu de Public en-têtes conduirait à une archive manque les fichiers d'en-tête qui doit être distribué, ce n'était pas une option non plus.
Car c'était parce que je travaillais dans un espace de travail.
Le projet n'a archivé, mais ne serait être affiché dans la fenêtre bibliothèque multimédia.
J'ai fermé l'espace de travail et ouvrez le projet sur son propre.
L'archive a été ouvert à l'organisateur ... j'espère que ça aide.
Dans mon cas, j'avais un script personnalisé qui était la copie de certains fichiers temporaires dans:
Cela signifie que, après enquête sur l'archive pour inspecter son contenu, je l'ai trouvé juste à côté de l' .application fichier un myTempDir dossier. Une fois que j'ai modifié le script pour enregistrer ailleurs les choses ont été triés.
Essayez de définir $(PROJECT_NAME)des en-Têtes dans le Cadre de projets Publics-Têtes Chemin d'accès au Dossier. Vous devez aller à paramètres de construction de la Bibliothèque Cible, puis modifier les en-Têtes Publics chemin d'accès au Dossier que $(PROJECT_NAME)des en-Têtes.
Si vous utilisez Xcode 7 avec cocoapods v. 0.38.2. Essayez de supprimer
copy pod resources
à partir d'aujourd'hui de votre extension de la cible.J'ai rencontré ce problème après l'ajout d'un OS X outil de ligne de commande pour mon application iOS du projet, puis Passez à l'Installation a été réglée sur NON par défaut de l'outil de ligne de commande de la cible. Puisque de toute évidence vous ne pouvez pas installer un OS X binaire sur un appareil iOS, l'archivage par défaut à un générique Xcode archive. Réglage de Sauter Installer pour OUI pour cette cible fixe le problème.
Dans mon cas, la suppression d'un trait de soulignement de le nom de la cible fixée.
Ne sais pas si c'est le trait de soulignement ou la namechanging lui-même qui a fait le tour.
J'ai rencontré un problème similaire, mais dans un WatchKit soft avec pas de gousses. Ignorer l'Installation a été correctement réglé à NO (non) pour l'application iOS, mais il a été mal réglé à NO (non) pour le WatchKit App.
Changement de Sauter Installer OUI pour le WatchKit App (mais gardant PAS pour l'application iOS) a résolu le problème, et Xcode correctement généré une Application iOS Archive au lieu d'un Générique Xcode Archive.
Dans mon cas, aucun des autres 30+ réponses étaient de travail. Nous avions l'emplacement pour les Archives (Préférences -> les Emplacements) définir un chemin d'accès personnalisé pointant vers notre serveur (Windows Server 2008 si cela fait une différence).
Une fois que j'ai défini l'emplacement par défaut dans la machine locale, il a produit un régulier de l'application iOS Archive. Je ne suis pas sûr de savoir pourquoi cela fonctionne, mais j'espère que cela aide quelqu'un d'autre aussi.
Maintenant que nous stockons à passer le .xcarchive des fichiers sur le serveur manuellement pour le stockage, mais au moins pas de problèmes avec les archives.
Dans mon cas, j'ai eu deux cibles (Target1 et Target2), et le premier d'entre eux pourraient être archivé pour la "iOS App", mais la seconde pour les "Autres Éléments" seulement. Donc, pour moi, le plus rapide moyen de résoudre ce problème est le remplacement de mon Target2 par une copie de Target1 par les étapes suivantes:
1. Renommer Target2 pour Target2_old
2. Faites une copie de la Cible1 et renommez le Target2.
3. Changement de lien vers la bonne .fichier plist (à partir d'anciennes cible) pour les nouveaux Target2 et cochez la case "Cible d'Adhésion" dans vos classes.
4. Ouvrir "Gérer les Régimes de..." et de supprimer le régime de la Target2_old, puis ajoutez un nouveau régime pour la nouvelle Target2
5. Sélectionnez ce nouveau régime, et ensuite Produit -> Archive
Dans mon cas, j'ai eu quelques fichiers dans les Fichiers de Copie. J'ai juste enlevé et ensuite tout a été tout fonctionne bien et j'ai obtenu l'Application iOS Archive.
Aller à des Phases de construction->Copier des Fichiers et de supprimer les fichiers.
Espérons que cela permettra de résoudre votre problème. 🙂
Il m'est arrivé sur une application où la version a été défini avec un undefined variable $(APP_PRODUCT_VERSION)
J'ai défini la version, et j'ai pu générer une Application iOS.
C'est pour les pauvres âmes comme moi pour qui aucune de ces solutions n'a fonctionné, où même un nouveau single view application, construit sans aucune erreur, mais ne parvient pas à archiver.
Voir les Archives des endroits chemin d'accès (Disponible dans Xcode -> Préférences -> les Emplacements -> Chemin de l'Archive) et de supprimer des dossiers de la problématique jours!
Putain vous Apple!
Ce n'est pas la bonne solution, cependant, j'ai été en mesure de générer l'Application de l'archive. J'ai supprimé l'ensemble du projet et fait une nouvelle caisse (je sais, vraiment stupide, mais après quelques heures de xcode refusant de générer l'application archive, j'aurais fait n'importe quoi). Une fois que j'ai mis le bon code de signature, il a travaillé. Donc, probablement, xcode a quelques erreur dans la configuration. Si quelqu'un sait, ce que possible de la configuration) pourrait effectivement empêcher xcode de générer une application archive, je serai heureux de l'entendre. Merci les gars, de toute façon.
Après la création d'une Archive, dans Xcode est l'Organiseur, Sélectionnez votre Archivé le fichier de projet et sélectionnez
Distribute
.Cela ouvre une autre fenêtre qui vous permet de
Save for Enterprise or Ad-Hoc Deployment
.C'est l'option que vous souhaitez, lors de la sélection de la Prochaine, vous pouvez choisir le Profil de Distribution à utiliser, suivi par l'Emplacement où vous souhaitez l' .ipa pour être enregistré.
Assurez-vous de sélectionner le
Save for Enterprise or Ad-Hoc Deployment
option et pas laExport as Xcode Archive
un :