Le projet d’archivage dans Xcode crée de manière incorrecte un bundle multi-applications

Archiver mon projet dans Xcode crée un ensemble multi-applications, au lieu de regrouper ma cible principale pour la publication, ce que je souhaite. Plus précisément, lorsque je valide mon archive dans Organizer, cela me donne le message suivant:

“[nom_projet] ne contient pas une application mono-bundle ou contient plusieurs produits. Veuillez sélectionner une autre archive ou ajuster votre schéma pour créer une application mono-bundle.”

Il semble qu’il y ait un réglage dans le schéma qui doit être ajusté, mais je ne peux pas comprendre ce qui cause l’inclusion d’autres cibles.

J’utilise d’ailleurs Xcode 4.0.

OK, répondant à ma propre question. Il s’agit d’un problème lié aux projets dépendants dans XCode 4. Si cela vous arrive, parcourez les parameters de construction de tous vos projets dépendants (par exemple, les bibliothèques statiques) et assurez-vous que l’option Ignorer l’installation de 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/

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

  1. Comme Jared l’a découvert, dans les parameters de construction, définissez l’option “Ignorer l’installation” sur “Oui”
  2. Sous les phases de génération, 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 jusqu’à la section Projet.

J’ai fait ce qui suit pour que ça marche pour moi:

  1. pour la bibliothèque static trois20, j’ai utilisé des cocoapods pour inclure les fichiers dans le projet principal .. ça m’a juste débarrassé de tous les problèmes que 320 me causait (et ils sont nombreux ..) btw j’ai essayé de remplacer 320 avec Nimbus .. Il manquait certaines des fonctionnalités que mon projet utilisait trois20 pour… Nimbus n’était donc pas utile.
  2. définir ignorer l’installation sur oui dans les parameters de construction pour tous les autres sous-projets / bibliothèques statiques et basculer les en-têtes de copie de public à projet dans les phases de construction
  3. plus important encore: sous les bibliothèques secondaires .. sous les phases de construction, je me suis assuré que la destination des fichiers de copie était passée du Absolute path d’ Absolute path au products directory .

et c’était ça!

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

  1. Sélectionnez l’archive et cliquez sur le bouton Dissortingbuer.
  2. Sélectionnez l’option “Enregistrer les produits créés”.
  3. Appuyez sur Suivant et Enregistrer.
  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 l’option 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 à Project ou les fichiers que vous devez modifier du chemin d’access absolu au répertoire de produits. mais ce répertoire (c’est-à-dire usr / local / include) varie en fonction de votre structure de répertoires sous-bibliothèque

J’avais oublié la phase de construction des fichiers de copie (copie de certaines fonts dans ~ / Library / 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 vers le moteur de recherche et d’examiner ce qui se trouve en dehors du groupe .app.

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

J’ai également eu le même problème “[nomprojet] ne contient pas une application mono-bundle ou contient plusieurs produits. Veuillez sélectionner une autre archive ou ajuster votre schéma pour créer une application mono-bundle.” après la mise à niveau vers xcode5.

le problème était qu’un groupe de champs dans mes parameters de compilation pour ‘release’ était vide. Je suppose que xcode4 est automatiquement passé au paramètre de débogage.

anwyays – mon correctif consistait à trouver tous les parameters de version qui étaient vierges et à les définir sur le paramètre de débogage. C’était en particulier le paramètre de fichier Info.plist.