从Xcode 4.5开始,我们无法为armv6构建,因此无法支持iPhone 3G等设备。
是否有可能使用Xcode 4.3生成一个正确签名的armv6二进制文件,然后使用lipo将该二进制文件和Xcode-4.5生成的armv7二进制文件组合成一个胖文件?
我该怎么做?有谁知道一个好的教程?
是否允许生成的fat二进制文件提交到App Store?
答案 0 :(得分:5)
使用lipo修改二进制文件后,代码签名将不再匹配。因此,之后需要对包进行重新编码。
使用Xcode 4.4甚至更早版本构建的应用程序仍可在iOS 6设备上正常运行;并且有报道称Apple仍在接受使用iOS 5.1 SDK构建的应用程序。
目标C将允许您使用不在旧链接框架中的一些较新的API,通过名称通过Objective C运行时调用它们。 (当然,应用应首先检查当前设备的可用性!)
您甚至可以通过在应用程序包中添加568 @ 2x高的默认图像来支持早期Xcode和iOS-6 SDK之前的新iPhone 5显示,并设置所有应用程序的窗口和视图大小以及调整属性大小正常。更新:当提交到iTunes App商店时,Apple不再接受以这种方式构建的应用程序。
增加: 另一个可能的解决方案是将您的开发分成两个类似的应用程适用于iOS 4.3及更高版本。一个适用于iOS 4.2.x及更低版本,不支持iOS 6和iPhone 5。应用商店中有两个不同的应用。但是,不知道Apple是否允许这样做。
答案 1 :(得分:0)
似乎其他人想出了怎么做,请参阅this SO question。
但我自己还没有测试过它。