Xcode 4: créer un fichier IPA au lieu de .xcarchive


184

Dans Xcode 3.2.5, j'utilise "Build And Archive" pour créer un fichier IPA. Dans Xcode 4, vous pouvez utiliser "Produit -> Archiver" pour archiver une application dans un bundle .xcarchive.

Comment puis-je créer un fichier .ipa avec Xcode 4?




3
Chaque fois que je crée une nouvelle version adhoc, ma recherche Google me conduit ici. J'ai vu cette page plusieurs fois au cours des derniers mois. Bonne question, bonne solution
coneybeare


Voici un plugin Xcode pour exporter IPA github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Raj

Réponses:


392

La création d'un IPA se fait de la même manière que la création d'une archive .xc: Produit -> Archive. Une fois l'opération d'archivage terminée, accédez à l'organisateur, sélectionnez votre archive, sélectionnez Partager et dans le volet «Sélectionnez le contenu et les options de partage:», définissez Contenu sur «Package iOS App Store (.ipa) et Identité pour la distribution iPhone (qui doit correspondre à votre profil d'approvisionnement ad hoc / App Store pour le projet).

Il y a de fortes chances que l'option «Package iOS App Store (.ipa)» soit désactivée. Cela se produit lorsque votre build produit plus d'une seule cible: par exemple, une application et une bibliothèque. Tous se retrouvent dans le dossier des produits de construction et Xcode est naïvement confus sur la façon de les emballer tous les deux dans un fichier .ipa, donc il désactive simplement l'option.

Une façon de résoudre ce problème est la suivante: passez par les paramètres de construction pour chacune des cibles, à l'exception de la cible de l'application, et définissez l'indicateur Ignorer l'installation sur OUI. Ensuite, faites à nouveau le Produit -> Archiver le tango et allez dans l'organisateur pour sélectionner votre nouvelle archive. Maintenant, en cliquant sur le bouton Partager, l'option .ipa doit être activée.

J'espère que ça aide.


2
Cela a résolu mon problème, merci! Dans mon cas, le problème était en fait l'un des projets enfants (ProtocolBuffers pour moi) qui avait plusieurs cibles qui nécessitaient de sauter l'installation.
JosephH

Vous devrez peut-être Produit -> Nettoyer et ouvrir / fermer votre espace de travail avant que l'option Produit -> Archiver apparaisse.
Mark Chackerian

J'ai eu le problème avec plusieurs cibles. La configuration de la bibliothèque partagée sur Ignorer l'installation OUI et l'application sur Ignorer l'installation NON l'a corrigé. Ce n'était pas un problème pour moi dans Xcode 3.2, seulement 4.1.
logancautrell

45
"Partager" est maintenant "Distribuer ..." Puis sélectionnez "Enregistrer pour l'entreprise de déploiement ad hoc"
Rembrandt Q. Einstein

"Ignorer l'installation" n'est pas suffisant - j'ai ce bogue avec Xcode 4.5, et il refuse de distribuer correctement, depuis que j'ai ajouté une bibliothèque avec un bundle.
Adam

45

Le réglage de Ignorer l'installation sur OUI ne fonctionnait pas pour moi. J'espère que cela aidera quelqu'un.

Je suis passé à la dépendance des cibles de mon projet: Coreplot-CocoaTouch. Puis est allé à Coreplot-CocoaTouch Targets. Dans ses cibles ont ouvert les phases de construction. Puis ouvert les en-têtes de copie. Là, j'avais quelques en-têtes dans Public, certains dans Private et certains dans Project. Tous les ont déplacés vers Project.

Bien sûr, dans les paramètres de construction des cibles Coreplot-CocoaTouch, vérifié que Ignorer l'installation était défini sur OUI dans les options de déploiement.

Et cette fois, Archive a créé une archive qui pouvait être signée et .ipa produite.


1
Après avoir déplacé les en-têtes vers Project, cela fonctionne parfaitement avec les étapes ci-dessus. Merci
iOSAppDev

Comme une brise fraîche! Quiconque déposera github.com/sprhawk/ytoolkit.git pour OAuth dans son projet en aura besoin. Merci.
vmanjz

2
Pourquoi oh pourquoi Xcode est-il toujours plein de bugs aussi sérieux que celui-ci? 18 mois après ce commentaire et le bug est toujours là! Merci pour l'aide.
Ben Clayton

Vous n'avez aucune idée de combien je vous aime en ce moment ... au moins un de mes problèmes est résolu! Merci!
Dmytro

15

Pour les archives Xcode 4.6 (et Xcode 5)

  • Dans l'Organiseur, cliquez avec le bouton droit sur une archive, sélectionnez Afficher dans le Finder
  • Dans le Finder, cliquez avec le bouton droit sur une archive, sélectionnez Afficher le contenu du package
  • Ouvrez le dossier Produits> Applications
  • L'application est là
  • Faites glisser l'application dans le dossier iTunes Apps

    entrez la description de l'image ici

  • Faites un clic droit sur l'application dans iTunes Apps, sélectionnez Afficher dans le Finder

  • Le .ipaest là!

C'est ce dont j'ai vraiment besoin pour mon xcode 4.6.3, tout ce qui précède n'a aucun sens pour moi, seul celui-ci fonctionne. Génial !
Forrest

attention, créera un ipa mais pourrait ne pas s'installer correctement, il affiche l'icône sur le téléphone après la synchronisation, mais indique l'installation en dessous et ne se termine jamais. de toute façon c'est mon expérience jusqu'à présent après avoir essayé ceci, Xcode 5.1.1.
colin lamarre

4

Dans l'organiseur, vous pouvez cliquer sur Partager et enregistrer en tant que package iOS App Store (.ipa). Vous devrez peut-être également sélectionner «Archive» dans le menu «Produit» pour générer l'archive dans l'Organisateur. Enfin, je pense que vous devez avoir une version archivée correctement signée pour ce faire.


3
Il était facile de comprendre comment créer l'archive à partir du projet. Le problème est que lors du partage de l'option «Package» est grisée. Vous avez peut-être raison de dire que l'archive doit être correctement signée pour que cette option soit activée. J'utilise la clé pour la distribution Ad-Hoc et j'ai également des droits spécifiés pour une distribution Ad-Hoc. Pourriez-vous partager comment rendre possible la création du fichier IPA?
krasnyk

4

J'ai eu ce même problème, en utilisant une ancienne version de la bibliothèque route-me. J'ai "sauté" toutes les bibliothèques et les bibliothèques à l'intérieur des bibliothèques (proj4), mais j'ai toujours eu le même problème. Il s'avère que route-me et proj4 installaient des fichiers d'en-tête publics, même lorsque les bibliothèques étaient ignorées, ce qui le gâchait de la même manière! Donc je suis juste entré dans l'onglet "Build Phases" de route-me et proj4 cibles, ouvert "Copy Headers", ouvert "Public", et fait glisser ces en-têtes de "Public" vers "Project". Maintenant, ils ne sont pas installés dans $ (BUILD) / usr / local / include, et je suis capable de créer un fichier ipa à partir de l'archive!

J'espère qu'Apple résoudra cet horrible problème d'utilisation avec XCode. Cela ne donne absolument aucune indication de ce qui ne va pas, cela ne fonctionne tout simplement pas. Je déteste les commandes grisées qui ne vous disent rien sur la raison pour laquelle elles sont grisées. Que diriez-vous au lieu d'ignorer les clics, les contrôles désactivés pourraient afficher un message vous expliquant pourquoi diable ils sont désactivés lorsque vous cliquez dessus par frustration?


Oui! Tous les fichiers d'en-tête marqués comme publics résolvent le problème. Les définir comme projet a résolu le problème!
JakubKnejzlik

3

En supposant que vous avez réussi un produit> Archiver, cliquez sur Archives à partir de l'Organisateur (Shift Apple 2).

Sélectionnez votre archive. Sélectionnez Partager. Dans le volet «Sélectionnez le contenu et les options de partage:», définissez Contenu sur «Package iOS App Store (.ipa) et Identité sur iPhone Distribution.

Cliquez sur Suivant, entrez un nom d'application et cliquez sur Enregistrer.

Tous les détails sanglants avec des captures d'écran sont ici: Xcode4UserGuide


2

Celui qui a essayé toutes les autres réponses et n'a pas eu de chance, veuillez cocher cette case, espérons que cela vous aidera (a fait l'affaire pour moi xcode 6.0.1)

entrez la description de l'image ici


0

J'ai eu le même problème ... J'ai dû recréer le projet à partir de zéro.

Remarque: mon projet a été créé dans XCode 3.1 et était lié à une bibliothèque statique qui était en cours de construction en tant que sous-projet (vers une destination commune). J'ai changé cela pour créer la source à la place lorsque j'ai recréé le projet XCode dans XCode 4.

Maintenant, faire un produit / archive / partage ... obtient l'option "iOS App Store Package (.ipa)" directement au-dessus de "Application" (qui est maintenant grisé) et "Archive" (qui exporte le .xcarchive).


0

Même problème. J'ai résolu de définir le drapeau "ignorer l'installation" sur OUI pour chaque projet externe, laissant les autres cibles du projet principal inchangées.

J'ai également dû aller dans "Modifier le schéma…", choisir le panneau "Archivage" et définir le paramètre de construction correct pour mon objectif ad-hoc.

Ensuite, un simple produit -> Archive -> Partager a fait le travail attendu.


0

Vous devrez créer et archiver votre projet. Vous devrez peut-être vérifier les paramètres de signature de code dont vous disposez dans le projet et l'exécutable.

Utilisez l'Organisateur pour sélectionner votre version d'archive, puis vous pouvez partager cette version de votre projet. Vous devrez sélectionner à nouveau la signature de code correcte. Cela vous permettra d'enregistrer le fichier .ipa où vous le souhaitez.

Faites glisser et déposez le fichier .ipa dans iTunes, puis synchronisez-le avec votre iPhone.


0

S'il s'agit d'un jeu (peut-être aussi une application) et que vous avez des bibliothèques statiques comme cocos2d ou une autre bibliothèque tierce ... alors il vous suffit de sélectionner * UNIQUEMENT LA * bibliothèque statique (PAS L'APP) et dans ses paramètres de construction sous Déploiement, définissez l'indicateur Ignorer l'installation sur YESet archivez-le ... !!


0

Je suis allé jeté le même problème. Aucune des réponses ci-dessus n'a fonctionné pour moi, mais j'ai fini par trouver la solution par moi-même. Le fichier ipa n'a pas été créé car il y avait des fichiers de bibliothèque (libXXX.a) dans Target-> Build Phases -> Copy Bundle with resources

J'espère que cela aidera quelqu'un :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.