web-dev-qa-db-fra.com

Le projet d'archivage dans Xcode crée de manière incorrecte un ensemble d'applications multiples.

Archiver mon projet dans Xcode, c'est créer un bundle multi-applications plutôt que de regrouper ma cible principale pour la publication, ce que je veux. Plus précisément, lorsque je valide mes archives dans Organizer, le message suivant apparaît:

"[nom du projet] ne contient pas d'application à un seul ensemble ni plusieurs produits. Sélectionnez une autre archive ou ajustez votre schéma pour créer une application à un seul ensemble."

On dirait que certains paramètres du schéma doivent être ajustés, mais je ne peux pas comprendre ce qui cause l'inclusion d'autres cibles.

J'utilise Xcode 4.0 au fait.

169
Jared Friedman

OK, répondez à 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, définissez les paramètres de construction de tous vos projets dépendants (par exemple, des bibliothèques statiques) et assurez-vous que l'option "Ignorer l'installation" sous "Déploiement" est définie. à OUI.

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

250
Jared Friedman

Deux choses devaient être corrigées dans le ou les sous-projets pour résoudre ce problème:

  1. Comme Jared l’a découvert, sous Paramètres de construction, définissez le "Ignorer l’installation" sur "Oui".
  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 privés ou publics, faites-les glisser vers la section Projet.
151
Ryan Grimm

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

  1. pour la librairie statique trois20, j’ai utilisé cocoapods pour inclure les fichiers dans le projet principal .. il vient de se débarrasser de tous les ennuis que three20 me posait (et ils sont nombreux ..) mais j’ai essayé de les remplacer three20 avec Nimbus .. mais Nimbus manquait de certaines des fonctionnalités que mon projet utilisait three20 pour .. donc Nimbus n'était pas utile.
  2. définissez skip install sur yes dans les paramètres de construction de tous les autres sous-projets/bibliothèques statiques et a remplacé les en-têtes de copie de public par des projets en phase de construction
  3. le plus important: dans les sous-bibliothèques .. pendant les phases de construction, je me suis assuré que copie les fichiers la destination a été changée de Absolute path à products directory.

et c'était ça!

Indice: pour avoir une idée des fichiers incriminés à l'origine de la création par votre archive d'un fichier archive plutôt que d'un ip, procédez comme suit:

  1. Sélectionnez l'archive et cliquez sur le bouton Distribuer.
  2. Sélectionnez l'option "Enregistrer les produits construits".
  3. Appuyez sur Suivant et enregistrez.
  4. Parcourez le répertoire créé dans le Finder.
  5. Le sous-répertoire 'libraries' identifiera les bibliothèques dont vous avez besoin pour définir Skip Install sur Yes.
  6. dans certains cas usr/local/include identifiera les fichiers d'en-tête coupables dont vous avez besoin pour passer de public à projet ou les fichiers que vous devez modifier d'un chemin absolu à un répertoire de produits. mais ce répertoire (c'est-à-dire usr/local/include) varie en fonction de la structure de votre répertoire de sous-bibliothèque
10
abbood

J'avais oublié une phase de construction des fichiers de copie (copie de polices dans ~/Bibliothèque/Fonts). Après avoir supprimé cette phase de construction, cela a bien fonctionné.

Si aucune des réponses ci-dessus ne résout le problème, je vous recommande d'exporter l'archive dans le Finder et d'examiner ce qui ne relève pas du bundle .app.

Édition: voir https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:-- 'Does-not-contain-a-single-bundle'

1
auco

j'ai également eu le même problème "[nom du projet] ne contient pas d'application à un seul ensemble ni plusieurs produits. Veuillez sélectionner une autre archive ou ajuster votre schéma pour créer une application à un seul ensemble." après la mise à niveau 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 est automatiquement passé au réglage de débogage.

anwyays - ma solution consistait à rechercher tous les paramètres de version qui étaient vides et à les définir comme paramètres de débogage. En particulier, il s’agissait du paramètre de fichier Info.plist.

0
roocell