2013-03-15 1 views
14

iOSアプリケーションの新しいバージョンをXCode経由でApp Storeにデプロイすると、アーカイブが生成されます。Simulatorで古いアプリアーカイブを実行できますか?

古いアーカイブを取り出してシミュレータで実行する方法はありますか?私は簡単にサーバー側のコードのすべての以前のバージョンのアプリケーション(または少なくとも2つのほとんどは当時使用されていた)との下位互換性をテストすることができるようにするためにそれをしたいと思います。

私はGITリポジトリにコミットして特定のバージョンを取得することができますが、それには2つの問題があります。単純にアーカイブを実行するよりも複雑です。b。エラーが発生しやすく、実行されたマシン上で新しいバージョンの開発を停止します。バージョンをコンパイルするのが難しい間に、コンパイラの変更や他のXCodeの変更に関連する偏りがあるかもしれません。

StackOverflowのヘルプやXCodeのアーカイブリポジトリにこのような兆候がありませんでした。 Appleに機能要求を提出する必要がありますか?

+0

あなたはシミュレータにそれを行うことはできませんが、単にそれらのファイルをあなたのデバイスに単純にテストしないでください。 –

+0

@MrBonjour:アーカイブされたバイナリは、配布証明書を使って作成されているため、デバイス上では実行されません。 – zoul

+0

@MrBonjourそれもうまくいくでしょう、これはどのように行われますか? – Resh32

答えて

9

いいえ、App Store用に生成されたアーカイブをシミュレータで実行することはできません。署名の問題などを処理できたとしても、App Store用に生成されたアーカイブにはARM用にコンパイルされたコードが含まれていますi-devicesが持っているプロセッサー。シミュレータ用に構築されたコードは、x86プロセッサ用にコンパイルされており、Mac上で実行することができます。

+1

+1。確かに技術的に言えば、おそらくx86とARMコードの両方を含むパッケージを作ることができるかもしれませんが、App Storeはそれを気に入らず、依然として署名があります。 – zoul

+0

+1アップルにリリースするときに2つのアーカイブを作成すると動作しますか? 2番目のアーカイブは他のスキームにマッチしますが、署名だけが違うでしょう - @Lefteris提案されたソリューションを使ってiPod touchでも実行できます(私はシミュレータについて忘れることができます)。 – Resh32

5

これを行うには、合理的に簡単な方法は、Test Flightです。私たちはTest Flightを通じて定期的に新しいバージョンをテストします。古いバージョンはそこにとどまり、いつでもそれらに戻ることができます。最終的にApp Storeに提出するビルドとは異なるビルドですが、App Storeビルドは配布証明書を使用して署名され、店舗にインストールされていない限りAFAIKはどこでも実行されないため、常に真実になります。

+0

+1すでにtestflightを使っていますが、テストとプロダクションの違いはまだあります(たとえば、testflightはプロダクションビルドでは無効になっています)。それがまだまだ最善のアプローチだと考えてください。 – Resh32

2

アプリのOTA(大気)バージョンを作成して(サーバーからこれらのバイナリをダウンロードすることもできます)、ipaファイルを作成してiTunesからインストールすることができます。

これを行うには、アドホックプロビジョニングプロファイルを作成する必要があります。説明が少し複雑なので、Appleのマニュアルを確認してください。

1

あなたのアーカイブがデバイス用にビルドされている場合(AdHocまたはリリース)、ipaファイルを作成してデバイスにインストールすることができます(下記の説明を参照)。 シミュレータ(i386 cpuアーキテクチャを意味します)用にビルドされている場合は、デバイスのipaを作成できません。

私の知る限りでは、コマンドラインを使用してXcodeの4アーカイブのうち、IPAを行うことができます。

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

あなたはIPAを取得した後、それがされていた場合、あなたは、物理的なデバイスにインストールすることができますがyou can re-sign it

関連する問題