17

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

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

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

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

4

4 回答 4

11

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

于 2013-03-15T09:04:07.530 回答
6

一种相当简单的方法是通过Test Flight。我们定期通过试飞测试新版本,旧版本保留在那里,随时可以返回。它与您最终提交给 App Store 的构建不同,但这始终是正确的,因为 App Store 构建是使用分发证书签名的,除非通过商店安装,否则 AFAIK 不会在任何地方运行。

于 2013-03-15T09:03:42.403 回答
2

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

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

于 2013-03-15T09:05:04.267 回答
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 后,您可以将其安装在物理设备上,如果它已使用正确的签名创建,否则您可以重新签名

于 2013-03-15T09:17:38.400 回答