web-dev-qa-db-de.com

Xcode 4: IPA-Datei anstelle von .xcarchive erstellen

In Xcode 3.2.5 verwende ich "Build And Archive", um eine IPA-Datei zu erstellen. In Xcode 4 können Sie mit "Produkt -> Archiv" eine Anwendung in einem .xcarchive-Bundle archivieren.

Wie kann ich mit Xcode 4 eine .ipa-Datei erstellen?

181
Manni

Das Erstellen eines IPA erfolgt auf die gleiche Weise wie das Erstellen eines .xcarchive: Product -> Archive. Wechseln Sie nach Abschluss des Archivierungsvorgangs zum Organizer, wählen Sie Ihr Archiv aus, wählen Sie "Freigeben" aus, und setzen Sie im Bereich "Auswählen der Inhalte und Optionen für die Freigabe:" den Inhalt auf "iOS App Store-Paket (.ipa) und die Identität für die iPhone-Verteilung (welche sollte mit Ihrem Ad-hoc/App-Store-Bereitstellungsprofil für das Projekt übereinstimmen).

Möglicherweise ist die Option "iOS App Store Package (.ipa)" deaktiviert. Dies passiert, wenn Ihr Build mehr als ein einzelnes Ziel erzeugt: Sagen wir eine App nd eine Bibliothek. Sie landen alle im Build Products-Ordner, und Xcode ist ziemlich verwirrt, wie sie in eine .ipa-Datei gepackt werden sollen beide, sodass die Option nur deaktiviert wird.

Eine Möglichkeit, dies zu lösen, ist wie folgt: Gehen Sie die Build-Einstellungen für jedes der Ziele mit Ausnahme des Anwendungsziels durch und setzen Sie das Flag Skip Install (Installation überspringen) auf YES. Machen Sie dann noch einmal den Tango Produkt -> Archiv und gehen Sie zum Organizer, um Ihr neues Archiv auszuwählen. Wenn Sie nun auf die Schaltfläche Freigeben klicken, sollte die Option .ipa aktiviert sein.

Ich hoffe das hilft.

390
eploko

Das Setzen von Skip Install auf YES hat bei mir nicht funktioniert. Hoffentlich hilft das jemandem.

Ich ging zur Abhängigkeit meiner Projektziele: Coreplot-CocoaTouch. Dann ging es zu Coreplot-CocoaTouch Targets. In seinen Targets geöffnete Build-Phasen. Dann öffnete Copy Headers. Dort hatte ich einige Header in Public, einige in Private und einige in Project. Alle in Project verschoben.

Natürlich wurde in den Build-Einstellungen von Coreplot-CocoaTouch-Zielen überprüft, dass die Option "Installation überspringen" in den Bereitstellungsoptionen auf "Ja" gesetzt war.

Und dieses Mal hat Archive ein Archiv erstellt, das signiert und .ipa erstellt werden konnte.

44
Boris Gafurov

Für Xcode 4.6 (und Xcode 5) Archive

  • Klicken Sie im Organizer mit der rechten Maustaste auf ein Archiv, und wählen Sie Im Finder anzeigen aus
  • Klicken Sie im Finder mit der rechten Maustaste auf ein Archiv, und wählen Sie Paketinhalt anzeigen
  • Öffnen Sie den Ordner Produkte> Anwendungen
  • Die Anwendung ist da
  • Ziehen Sie die Anwendung in den iTunes Apps-Ordner

    enter image description here

  • Klicken Sie mit der rechten Maustaste auf die Anwendung in iTunes Apps und wählen Sie Im Finder anzeigen

  • Das .ipa Gibt es!
15
ohho

Im Organizer können Sie auf Freigeben klicken und als iOS App Store-Paket (.ipa) speichern. Möglicherweise müssen Sie auch im Menü "Produkt" die Option "Archiv" auswählen, um das Archiv im Organizer zu erstellen. Zuletzt denke ich, dass Sie einen ordnungsgemäß signierten archivierten Build haben müssen, um dies zu tun.

4
Joshua Smith

Ich hatte das gleiche Problem mit einer alten Version der route-me-Bibliothek. Ich habe alle Bibliotheken und die Bibliotheken in Bibliotheken (proj4) "übersprungen", aber ich hatte immer noch das gleiche Problem. Es stellte sich heraus, dass route-me und proj4 öffentliche Header-Dateien installierten, auch wenn die Bibliotheken übersprungen wurden, was es auf die gleiche Weise vermasselte! Also habe ich einfach die Registerkarte "Build Phases" für route-me und proj4-Ziele aufgerufen, "Copy Headers" geöffnet, "Public" geöffnet und diese Header von "Public" in "Project" gezogen. Jetzt werden sie nicht in $ (BUILD)/usr/local/include installiert, und ich kann eine ipa-Datei aus dem Archiv erstellen!

Ich hoffe Apple behebt dieses schreckliche Usability-Problem mit XCode. Es gibt absolut keinen Hinweis darauf, was falsch ist, es funktioniert einfach nicht. Ich hasse ausgeblendete Steuerelemente, die Ihnen nichts darüber sagen, warum Anstatt Klicks zu ignorieren, könnten die deaktivierten Steuerelemente eine Meldung anzeigen, warum sie deaktiviert sind, wenn Sie sie frustriert anklicken.

4
Don Hopkins

Angenommen, Sie haben ein erfolgreiches Produkt> Archiv erstellt. Klicken Sie in Organizer (Shift Apple 2)) auf Archiv.

Wählen Sie Ihr Archiv. Wählen Sie Teilen. Stellen Sie im Bereich "Auswählen der Inhalte und Optionen für die Freigabe:" den Inhalt auf "iOS App Store-Paket (.ipa) und die Identität für die iPhone-Verteilung" ein.

Klicken Sie auf Weiter, geben Sie einen App-Namen ein und klicken Sie auf Speichern.

Alle Details mit Screenshots gibt es hier: Xcode4UserGuide

3
Snowcrash

Einer, der alle anderen Antworten ausprobiert hat und kein Glück hatte, kreuze bitte dieses Kontrollkästchen an und hoffe, es wird helfen (hat den Trick für mich gemacht, xcode 6.0.1)

enter image description here

2

Ich warf das gleiche Problem. Keine der obigen Antworten hat für mich funktioniert, aber ich habe die Lösung selbst gefunden. Die ipa-Datei wurde nicht erstellt, da Bibliotheksdateien (libXXX.a) unter Ziel -> Erstellungsphasen -> Paket mit Ressourcen kopieren vorhanden waren

Hoffe es wird jemandem helfen :)

0
Shrolox

Wenn es sich um ein Spiel handelt (möglicherweise auch eine App) und Sie über statische Bibliotheken wie cocos2d oder eine andere Bibliothek von Drittanbietern verfügen, müssen Sie nur * NUR DAS * static library (NOT THE APP) und setzen Sie in den Build-Einstellungen unter Deployment das Flag Skip Install auf YES und Archive it dats it ... !!

0
vivek

Ich hatte das gleiche Problem ... musste das Projekt von Grund auf neu erstellen.

Hinweis: Mein Projekt wurde in XCode 3.1 erstellt und mit einer statischen Bibliothek verknüpft, die als Unterprojekt erstellt wurde (mit einem gemeinsamen Ziel). Ich habe dies geändert, um stattdessen die Quelle zu erstellen, als ich das XCode-Projekt in XCode 4 neu erstellt habe.

Wenn Sie jetzt ein Produkt/Archiv/eine Freigabe ausführen, wird die Option "iOS App Store Package (.ipa)" direkt über "Application" (das jetzt ausgegraut ist) und "Archive" (das das .xcarchive exportiert) angezeigt.

0
Graeme Wicksted

Gleicher Fehler. Ich habe das Setzen des Flags "Installation überspringen" für jedes externe Projekt auf JA gelöst, wobei die anderen Ziele des Hauptprojekts unverändert blieben.

Ich musste auch zu "Schema bearbeiten ..." gehen, den Bereich "Archivierung" auswählen und die richtige Build-Einstellung für meinen Ad-hoc-Zweck festlegen.

Dann machte ein einfaches Produkt -> Archiv -> Teilen den erwarteten Job.

0
nebillo

Sie müssen Ihr Projekt erstellen und archivieren. Möglicherweise müssen Sie überprüfen, welche Code-Signatur-Einstellungen Sie im Projekt und in der ausführbaren Datei haben.

Verwenden Sie den Organizer, um Ihre Archivversion auszuwählen. Anschließend können Sie diese Version Ihres Projekts freigeben. Sie müssen die richtige Codesignatur erneut auswählen. Sie können die .ipa-Datei dort speichern, wo Sie möchten.

Ziehen Sie die .ipa-Datei per Drag & Drop in iTunes und synchronisieren Sie sie dann mit Ihrem iPhone.

0
Surjit Joshi