升级到XCode 4.5以支持armv7s,但XCode 4.5不再支持armv6且无法限制要求。

7
我已将XCode升级至4.5以添加armv7s架构支持,但是我发现无法生成armv6二进制文件。
虽然我已经支持armv6,但想要使用XCode 4.5来支持armv7s似乎违反了这个条款:“您只能扩展设备要求。提交更新的二进制文件以限制设备要求是不允许的。
请问是否有人知道我们是否可以放弃支持armv6,或者是否存在解决方法?
值得一提的是,我正在构建一个框架(库),而不是应用程序。因此我希望能够支持应用程序开发者。

1
这个问题在谷歌的第一页出现,所以我想指向其他用户这个答案:https://dev59.com/w2cs5IYBdhLWcg3wu2Yp#12678077 - mmilo
2个回答

2

armv6是原始iPhone和iPhone 3G的CPU架构。由于两者都已不再支持iOS两代及以上版本,因此可以安全地将其从支持目标中删除。事实上,针对armv7应该能够为当前设备生成更优化的二进制文件。

考虑到您正在开发一个库,这将对用户施加限制。您将限制armv6用户或armv7用户 - 对我来说,选择似乎很明显,但为了安全起见,我建议将您的armv7及更高版本作为一个新项目进行分支(也许是“v2”),以便旧库的用户可以继续安全地使用它,直到他们能够升级其项目。保持原始库不受支持以激励更快的升级。


为什么这条评论被踩了?我们刚刚为我们的产品做了这个。 - Léo Natan
我不认为我会对此进行贬低。我认为如果我们说我们只支持iOS 4.3及以上版本,我们可以删除armv6。构建机器将获得XCode 4.5并仅构建armv7 / armv7s / i386。任何想要armv6的人都必须使用旧版本,如果我们需要支持它,我们将不得不保留XCode 4.4以手动修补旧库。如果可能的话,我宁愿不使用新名称(例如“v2”)来命名库。 - Christian
你可以决定不支持它,并将旧的、不受支持的库命名为“遗留”名称。 - Léo Natan

0

在重新阅读了您的问题后,我对您为什么会遇到任何问题感到困惑。您正在构建一个框架,因此这个限制并不适用于您:

  • 之前使用支持Armv6的版本的用户无论如何都无法更新他们的应用程序,除非他们放弃Armv6。

  • 由于新的应用程序开发人员将被迫使用XCode 4.5,他们无论如何都会放弃Armv6。如果他们想要在新应用程序中使用您的框架,他们也无法支持Armv6。

因此,在我看来,作为一个框架开发者,这个指南根本不适用于您。

编辑 - 此外... Facebook应用程序已更新,仅支持iOS 4.3,放弃支持Armv6设备。 http://itunes.apple.com/us/app/facebook/id284882215?mt=8


我认为你需要一些支持性证据来表明你可以限制设备要求。你所说的似乎与以下链接相矛盾:https://developer.apple.com/library/ios/#documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/B_DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html - Christian
我想从技术上讲,库的现有用户可能是企业开发者计划的用户,因此仍然可以开发和分发armv6二进制文件。不过这种情况的机会很小,而且你总是可以给他们一个使用XCode 4.4构建的二进制文件。另外一件事,我还没有尝试过,就是使用XCode 4.4的编译器构建一个armv6二进制文件,并使用lipo将其拼接到使用iOS6 SDK构建的二进制文件中。我怀疑苹果可能会拒绝这样的三重架构二进制文件。 - pmdj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接