7

从 Xcode 4.5 开始,我们无法为 armv6 构建,因此无法再支持 iPhone 3G 等设备。

是否可以使用 Xcode 4.3 生成正确签名的 armv6 二进制文件,然后使用 lipo 将该二进制文件和 Xcode-4.5 生成的 armv7 二进制文件组合成一个胖子?

我该怎么办?有谁知道好的教程吗?

是否允许将生成的胖二进制文件提交到 App Store?

4

2 回答 2

5

使用 lipo 修改二进制文件后,代码签名将不再匹配。因此,捆绑包之后需要重新设计。

使用 Xcode 4.4 甚至更早版本构建的应用程序仍然可以在 iOS 6 设备上正常运行;并且有报道称 Apple 仍在接受使用 iOS 5.1 SDK 构建的应用程序。

Objective C 将允许您使用一些不在旧链接框架中的较新 API,方法是通过名称通过 Objective C 运行时调用它们。(当然,应用程序应该首先检查它们在当前设备上的可用性!)

您甚至可以从早期的 Xcode 和 pre-iOS-6 SDK 支持新的 iPhone 5 显示,只需在应用程序包中包含一个 568@2x 高的默认图像,并正确设置应用程序的所有窗口和视图大小以及调整属性大小。更新:当提交到 iTunes App Store 时,Apple 不再接受以这种方式构建的应用程序。

补充:另一个潜在的解决方案是将您的开发分成两个类似的应用程序。一个适用于 iOS 4.3 及更高版本。一款适用于不支持 iOS 6 和 iPhone 5 的 iOS 4.2.x 及更低版本。应用商店中有两个不同的应用。然而,苹果是否会允许这样做还不得而知。

于 2012-09-25T02:49:31.507 回答
0

似乎其他人想出了如何做到这一点,请参阅此 SO question

不过,我自己还没有测试过。

于 2012-10-28T21:51:38.927 回答