169 votes

L'archivage du projet dans Xcode crée incorrectement un paquet multi-application

L'archivage de mon projet dans Xcode crée un paquet multi-applications, au lieu de regrouper ma cible principale pour la publication, ce qui est ce que je veux. Plus précisément, lorsque je valide mon archive dans Organizer, il me donne le message suivant :

"[nom du projet] ne contient pas une application à faisceau unique ou contient plusieurs produits. Veuillez sélectionner une autre archive, ou ajuster votre schéma pour créer une application à liasse unique."

Il semble qu'un paramètre du système doive être ajusté, mais je n'arrive pas à comprendre ce qui provoque l'inclusion d'autres cibles.

J'utilise Xcode 4.0 d'ailleurs.

250voto

Jared Friedman Points 3394

OK, je réponds à ma propre question. Il s'avère que c'est un problème avec les projets dépendants dans XCode 4. Si cela vous arrive, passez par les paramètres de construction pour tous vos projets dépendants (par exemple, les bibliothèques statiques) et assurez-vous que l'option "Skip Install" sous "Deployment" est définie sur YES.

Plus de détails ici : http://flakasoft.com/developer-tips/xcode-4-bug-solution-for-archiving-build-with-static-library/

151voto

Ryan Grimm Points 1763

Deux choses devaient être corrigées dans le(s) sous-projet(s) pour résoudre ce problème :

  1. Comme Jared l'a découvert, dans les paramètres de construction, réglez "Skip Install" sur "Yes".

  2. Sous les Phases de construction, examinez la section Copier les en-têtes. Si des fichiers d'en-tête sont répertoriés comme étant privés ou publics, faites-les glisser vers la section Projet.

10voto

abbood Points 5959

J'ai fait ce qui suit pour que cela fonctionne pour moi :

  1. pour la bibliothèque statique three20, j'ai utilisé cocoapodes pour inclure les fichiers dans le projet principal cela m'a débarrassé de tous les problèmes que me causait three20 (et il y en a beaucoup ) au fait, j'ai essayé de remplacer three20 par Nimbus mais Nimbus manquait de certaines des fonctionnalités pour lesquelles mon projet utilisait three20 donc Nimbus n'était pas utile.
  2. j'ai mis "skip install" à oui dans les paramètres de construction pour tous les autres sous-projets/bibliothèques statiques et j'ai changé la copie des en-têtes de public à projet dans les phases de construction.
  3. le plus important : sous les sous-bibliothèques sous les phases de construction je me suis assuré que copier les fichiers La destination a été changée de Absolute path a products directory .

et c'était tout !

indice : pour avoir une idée des fichiers incriminés qui font que votre archive crée un fichier d'archive plutôt qu'un ipa, faites ceci :

  1. Sélectionnez l'archive et cliquez sur le bouton Distribuer.
  2. Sélectionnez l'option "Enregistrer les produits construits".
  3. Appuyez sur Next et Save.
  4. Parcourez le répertoire créé dans le Finder.
  5. Le sous-répertoire "libraries" identifiera les bibliothèques dont vous avez besoin pour régler le paramètre "Skip Install" sur Yes.
  6. dans certains cas usr/local/include identifiera les fichiers d'en-tête coupables que vous devez déplacer de Public vers Project ou les fichiers que vous devez changer du chemin absolu au répertoire des produits. Mais ce répertoire (c'est-à-dire usr/local/include) varie en fonction de la structure de votre répertoire de sous-bibliothèques.

1voto

auco Points 2663

J'ai eu une phase de construction de fichiers de copie que j'ai oubliée (j'ai copié quelques polices dans ~/Bibliothèque/Ponts). Après avoir supprimé cette phase de construction, tout a fonctionné correctement.

Si aucune des réponses ci-dessus ne résout le problème, je recommande d'exporter l'archive vers le finder et de jeter un coup d'œil à ce qui se trouve en dehors du paquet .app.

Edit : voir https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:-- 'Does-not-contain-a-single-bundle' (Ne contient pas de paquet unique)

0voto

roocell Points 1286

J'ai également eu ce même problème "[nom du projet] ne contient pas une application à un seul produit ou contient plusieurs produits. Veuillez sélectionner une autre archive, ou ajuster votre schéma pour créer une application à un seul produit" après la mise à jour vers xcode5.

Le problème était qu'un tas de champs dans mes paramètres de construction pour 'release' étaient vides. Je suppose que xcode4 a automatiquement basculé vers les paramètres de débogage.

anwyays - ma solution a été de trouver tous ces paramètres 'release' qui étaient vides et de les mettre en paramètres de débogage. Il s'agissait en particulier du paramètre du fichier Info.plist.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X