我可以在模拟器中运行旧的应用程序存档吗?

时间:2013-03-15 08:48:19

标签: ios objective-c xcode

当我们通过XCode将新版iOS应用程序部署到App Store时,会生成一个存档。

有没有办法获取旧档案并在模拟器中运行?我想这样做是为了能够轻松测试服务器端代码与所有以前版本的应用程序(或至少当时主要使用的两个版本)的向后兼容性。

我知道我可以提交到GIT存储库并提取特定版本,但这有两个问题:a。它比简单地运行档案更复杂,b。它很容易出错,并且在它完成的机器上停止开发新版本,并且c。可能存在一些与编译器更改有关的偏差,或者在渲染版本难以编译之间的任何其他XCode更改。

我在StackOverflow上找不到任何帮助,也没有在XCode的Archive存储库中找到任何这种可能性的迹象。我应该提交功能请求@ Apple吗?

4 个答案:

答案 0 :(得分:9)

不,您无法为App Store生成存档并在模拟器中运行 - 即使您可以处理签名问题等,为App Store生成的存档包含为其编译的代码i-devices拥有的ARM处理器。为模拟器构建的代码是为x86处理器编译的,因此它可以在Mac上运行。

答案 1 :(得分:5)

这样做的一个相当简单的方法是Test Flight。我们通过Test Flight定期测试新版本,旧版本停留在那里,随时可以返回它们。它与您最终提交给App Store的版本不同,但是这一切都将是真实的,因为App Store版本使用分发证书进行签名,除非通过商店安装,否则AFAIK将无法在任何地方运行。

答案 2 :(得分:2)

您可以制作应用程序的OTA(无线)版本(然后您可以从服务器下载这些二进制文件),或者只是创建一个ipa文件并从iTunes安装它。

为此,您必须创建一个特殊配置概要文件。检查Apple文档,因为它解释起来有点复杂

答案 3 :(得分:1)

如果您的存档是为设备(AdHoc或Release)构建的,您可以创建一个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后,如果使用正确的签名创建了ipa,则可以将其安装在物理设备上,否则you can re-sign it