Xcode 4: IPA-Datei anstelle von .xcarchive erstellen


182

In Xcode 3.2.5 verwende ich "Erstellen und Archivieren", um eine IPA-Datei zu erstellen. In Xcode 4 können Sie "Produkt -> Archivieren" verwenden, um eine Anwendung in einem .xcarchive-Bundle zu archivieren.

Wie kann ich mit Xcode 4 eine IPA-Datei erstellen?




3
Jedes Mal, wenn ich eine neue Ad-hoc-Version erstelle, führt mich meine Google-Suche hierher. Ich habe diese Seite in den letzten Monaten oft gesehen. Gute Frage, gute Lösung
coneybeare


Hier ist ein Xcode-Plugin zum Exportieren von IPA github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Raj

Antworten:


391

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

Möglicherweise ist die Option "iOS App Store-Paket (.ipa)" deaktiviert. Dies geschieht, wenn Ihr Build mehr als ein einzelnes Ziel erzeugt: beispielsweise eine App und eine Bibliothek. Alle landen im Ordner für Build-Produkte, und Xcode ist naiv verwirrt darüber, wie beide in eine IPA-Datei gepackt werden sollen, sodass die Option lediglich deaktiviert wird.

Eine Möglichkeit, dies zu lösen, ist folgende: Gehen Sie die Build-Einstellungen für jedes der Ziele mit Ausnahme des Anwendungsziels durch und setzen Sie das Flag "Installation überspringen" auf "JA". Führen Sie dann erneut den Tango Produkt -> Archiv aus und gehen Sie zum Organizer, um Ihr neues Archiv auszuwählen. Wenn Sie nun auf die Schaltfläche Teilen klicken, sollte die Option .ipa aktiviert sein.

Ich hoffe das hilft.


2
Dies hat mein Problem behoben, danke! In meinem Fall war das Problem tatsächlich eines der untergeordneten Projekte (ProtocolBuffers für mich), bei denen mehrere Ziele festgelegt wurden, für die die Installation übersprungen werden musste.
JosephH

Möglicherweise müssen Sie Produkt -> Bereinigen und öffnen / schließen Sie Ihren Arbeitsbereich, bevor die Option Produkt -> Archivieren angezeigt wird.
Mark Chackerian

Ich hatte das Problem mit mehreren Zielen. Das Festlegen der freigegebenen Bibliothek auf Überspringen der Installation JA und der App auf Überspringen der Installation NEIN wurde behoben. Dies war für mich in Xcode 3.2 kein Problem, nur 4.1.
Logancautrell

44
"Teilen" ist jetzt "Verteilen ...". Wählen Sie dann "Für Unternehmen der Ad-hoc-Bereitstellung speichern"
Rembrandt Q. Einstein

"Installation überspringen" reicht nicht aus - ich habe diesen Fehler mit Xcode 4.5 und er weigert sich, jemals richtig zu verteilen, seit ich eine Bibliothek mit einem Bundle hinzugefügt habe.
Adam

44

Nur Skip Install auf YES zu setzen, hat bei mir nicht funktioniert. Hoffentlich hilft das jemandem.

Ich ging in Abhängigkeit von meinen Projektzielen: Coreplot-CocoaTouch. Dann ging es zu Coreplot-CocoaTouch Targets. In seinen Zielen geöffnete Build-Phasen. Dann öffne Kopierheader. Dort hatte ich einige Header in Public, einige in Private und einige in Project. ALLE von ihnen wurden in das Projekt verschoben.

In den Build-Einstellungen von Coreplot-CocoaTouch-Zielen wurde natürlich überprüft, ob die Option "Installation überspringen" in den Bereitstellungsoptionen auf "JA" gesetzt wurde.

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


1
Nach dem Verschieben von Headern nach Project funktioniert dies perfekt mit den obigen Schritten. Vielen Dank
iOSAppDev

Wie eine kühle Brise! Jeder, der github.com/sprhawk/ytoolkit.git für OAuth in sein Projekt einfügt, benötigt dies. Vielen Dank.
Vmanjz

2
Warum, oh, warum ist Xcode immer noch so schwerwiegend? 18 Monate später als dieser Kommentar und der Fehler ist immer noch da! Danke für die Hilfe.
Ben Clayton

Du hast keine Ahnung, wie sehr ich dich gerade liebe ... mindestens eines meiner Probleme ist gelöst! Danke dir!
Dmytro

15

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
  • 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 Ordner "iTunes Apps"

    Geben Sie hier die Bildbeschreibung ein

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

  • Das .ipaist da!

Dies ist, was ich wirklich für meinen xcode 4.6.3 brauche. All das oben Genannte ist für mich einfach unsinnig, nur diese eine Arbeit. Toll !
Forrest

Vorsicht, es wird eine IPA erstellt, die jedoch möglicherweise nicht ordnungsgemäß installiert wird. Nach der Synchronisierung wird das Symbol auf dem Telefon angezeigt. Die Installation wird jedoch darunter angezeigt und endet nie. Jedenfalls ist das meine bisherige Erfahrung, nachdem ich dies versucht habe, Xcode 5.1.1.
Colin Lamarre

4

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


3
Es war einfach herauszufinden, wie das Archiv aus dem Projekt erstellt werden kann. Das Problem ist, dass beim Teilen die Option 'Paket' abgeblendet ist. Möglicherweise haben Sie Recht, dass das Archiv ordnungsgemäß signiert werden muss, damit diese Option aktiviert ist. Ich verwende den Schlüssel für die Ad-hoc-Verteilung und habe auch Berechtigungen für eine Ad-hoc-Verteilung angegeben. Können Sie uns mitteilen, wie Sie die IPA-Datei erstellen können?
Krasnyk

4

Ich hatte das gleiche Problem mit einer alten Version der Route-Me-Bibliothek. Ich habe alle Bibliotheken und die Bibliotheken innerhalb der Bibliotheken "übersprungen" (proj4), aber ich hatte immer noch das gleiche Problem. Es stellte sich heraus, dass route-me und proj4 öffentliche Header-Dateien installiert haben, selbst wenn die Bibliotheken übersprungen wurden, was es auf die gleiche Weise durcheinander brachte! Also bin ich einfach auf die Registerkarte "Build-Phasen" von route-me und proj4 gegangen, habe "Header kopieren" geöffnet, "Öffentlich" geöffnet und diese Header von "Öffentlich" in "Projekt" 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 sie ausgeblendet sind. Wie wäre es, wenn Sie die Klicks nicht ignorieren, sondern die deaktivierten Steuerelemente eine Meldung anzeigen, warum zum Teufel sie deaktiviert sind, wenn Sie frustriert darauf klicken?


Ja! Alle als öffentlich gekennzeichneten Header-Dateien lösen das Problem. Das Festlegen als Projekt hat das Problem behoben!
JakubKnejzlik

3

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

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

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

Vollständige Details mit Screenshots finden Sie hier: Xcode4UserGuide


2

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

Geben Sie hier die Bildbeschreibung ein


0

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 (zu einem gemeinsamen Ziel) erstellt wurde. 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 / Freigabe ausführen, erhalten Sie die Option "iOS App Store-Paket (.ipa)" direkt über "Anwendung" (die jetzt ausgegraut ist) und "Archiv" (das das .xcarchive exportiert).


0

Gleicher Fehler. Ich habe es gelöst, das Flag "Installation überspringen" für jedes externe Projekt auf JA zu setzen und die anderen Ziele des Hauptprojekts unverändert zu lassen.

Ich musste auch zu "Schema bearbeiten ..." gehen, das Fenster "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

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

Verwenden Sie den Organizer, um Ihre Archivversion auszuwählen, und geben Sie diese Version Ihres Projekts frei. Sie müssen die richtige Codesignatur erneut auswählen. Damit können Sie die IPA-Datei an der gewünschten Stelle speichern.

Ziehen Sie die IPA-Datei per Drag & Drop in iTunes und synchronisieren Sie sie anschließend mit Ihrem iPhone.


0

Wenn es sich um ein Spiel handelt (möglicherweise auch eine App) und Sie einige statische Bibliotheken wie cocos2d oder eine andere Bibliothek von Drittanbietern haben, müssen Sie nur * NUR DIE * statische Bibliothek (NICHT DIE APP) und in den Build-Einstellungen unter auswählen Bereitstellung, setzen Sie das Flag " YESInstallation überspringen" auf " Archivieren" und archivieren Sie es ... !!


0

Ich warf das gleiche Problem. Keine der oben genannten Antworten hat bei mir funktioniert, aber ich habe die Lösung selbst gefunden. Die IPA-Datei wurde nicht erstellt, da sich unter Ziel-> Build-Phasen -> Bundle mit Ressourcen kopieren Bibliotheksdateien (libXXX.a) befanden

Hoffe es wird jemandem helfen :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.