2013-03-15 15 views
14

Wenn wir neue Versionen der iOS-App über XCode im App Store bereitstellen, wird ein Archiv generiert.Kann ich ein altes App-Archiv im Simulator ausführen?

Gibt es eine Möglichkeit, ein altes Archiv aufzunehmen und im Simulator auszuführen? Ich möchte das tun, um die Rückwärtskompatibilität des serverseitigen Codes mit allen früheren Versionen der App (oder zumindest den beiden, die zu dieser Zeit am häufigsten verwendet wurden) leicht zu testen.

Ich weiß, dass ich in ein GIT-Repository festschreiben und eine bestimmte Version ziehen könnte, aber das hat zwei Probleme: a. es ist komplexer als einfach ein Archiv zu führen, b. es ist fehleranfällig und stoppt die Entwicklung der neuen Version auf der Maschine, die es getan wird, und c. Es könnte eine gewisse Verzerrung im Zusammenhang mit den Compiler-Änderungen oder irgendeiner anderen XCode-Änderung zwischen dem Rendern der Version, die schwer zu kompilieren ist, geben.

Ich konnte keine Hilfe auf StackOverflow finden, noch irgendein Anzeichen dieser Möglichkeit im Archiv-Repository in XCode. Soll ich eine Feature-Anfrage bei Apple einreichen?

+0

Nicht 100% sicher, dass Sie das in den Simulator tun können, aber warum testen Sie diese Archive nicht einfach in Ihr Gerät. –

+0

@MrBonjour: Weil die archivierte Binärdatei mit dem Verteilungszertifikat erstellt wurde, das auf dem Gerät nicht ausgeführt wird? – zoul

+0

@MrBonjour Das würde auch funktionieren, wie wird das gemacht? – Resh32

Antwort

9

Nein, Sie können kein für den App Store generiertes Archiv erstellen und es im Simulator ausführen. Auch wenn Sie mit Signierproblemen usw. fertig werden, enthält das für den App Store generierte Archiv Code, der für ARM kompiliert wurde Prozessoren, die die i-Geräte haben. Code, der für den Simulator erstellt wurde, ist für x86-Prozessoren kompiliert, so dass er auf Macs laufen kann.

+1

+1. Rein technisch gesehen könnte man wahrscheinlich ein Paket bauen, das sowohl den x86- als auch den ARM-Code enthält, aber der App Store wird es nicht mögen und es gibt immer noch das Signieren. – zoul

+0

+1 Würde es dann funktionieren, wenn ich bei der Freigabe an Apple zwei Archive mache? Das zweite Archiv würde dem anderen Schema entsprechen, aber nur die Signierung wäre anders - dann könnte ich immer noch auf einem iPod touch (OK kann ich den Simulator vergessen) mit @Lefteris vorgeschlagener Lösung laufen. – Resh32

5

Ein relativ einfacher Weg, dies zu tun ist durch Test Flight. Wir testen routinemäßig neue Versionen über Test Flight, die alten bleiben dort und es ist jederzeit möglich, zu ihnen zurückzukehren. Es ist ein anderer Build als der, den Sie schließlich an den App Store senden, aber das ist immer wahr, da der Build des App Stores mit dem Distributionszertifikat signiert ist und AFAIK nur dann ausgeführt wird, wenn es über den Store installiert wird.

+0

+1 Wir verwenden Testflight bereits auf diese Weise, aber es gibt immer noch den Unterschied zwischen Test und Produktion Apps (und zum Beispiel testflight für Produktion Build deaktiviert ist) - aber ich denke, das ist immer noch der beste Ansatz. – Resh32

2

Sie können OTA (Over-the-Air) Version Ihrer App (dann können Sie diese Binärdatei von einem Server herunterladen), oder erstellen Sie einfach eine Ipa-Datei und installieren Sie es von iTunes.

Um dies zu tun, müssen Sie ein Adhoc Provisioning-Profil erstellen. Überprüfen Sie die Apple-Dokumentation, da es ein wenig kompliziert zu erklären ist.

1

Wenn Ihr Archiv für ein Gerät (AdHoc oder Release) erstellt wurde, können Sie eine Ipa-Datei erstellen und auf einem Gerät installieren (Erklärung unten auf how-to). Wenn es für den Simulator erstellt wurde (dh i386-CPU-Architektur), können Sie das ipa für das Gerät nicht erstellen.

Soweit ich weiß, können Sie ein ipa aus einem Xcode 4-Archiv mit der Befehlszeile machen:

/usr/bin/xcrun -sdk iphoneos PackageApplication 
    "/absolute/path/to/MyApp.xcarchive/Products/Applications/MyApp.app" 
    -o "/absolute/path/to/MyApp.ipa" 

Nachdem Sie die ipa erhalten, können Sie es auf physischen Geräten installieren können, wenn es gewesen war erstellt mit der richtigen Signatur, sonst you can re-sign it

Verwandte Themen