2012-09-20 52 views
7

我已升级到XCode 4.5以添加armv7s arch支持,但是,我发现无法使用XCode 4.5生成armv6二进制文件。升级到XCode 4.5 for armv7s,但XCode 4.5删除armv6但不能限制需求

我已经支持ARMv6的,但是,想要支持armv7s用的XCode 4.5,似乎迫使我违背了条款:“你被允许只扩大你的设备的要求提交更新了自己的二进制文件,以限制设备的要求是不允许的

有谁知道我们是否被允许放弃armv6,或者如果有解决方法吗?

它可能也值得一提的是,我正在构建一个框架(库),而不是一个应用程序。所以我想支持应用程序开发人员。

+1

这个问题表明了在谷歌上的第一页,所以我想我会点别的用户这样的回答:http://stackoverflow.com/a/12678077/206520 – mmilo

回答

2

armv6是原iPhone和iPhone 3G的CPU架构。看到两代iOS及更多版本不再支持这两者,可以将它从支持的目标中移除是安全的。实际上,针对armv7应该为当前设备生成更优化的二进制文件。

看到你如何开发一个库,这将对用户施加限制。您将限制armv6用户或armv7s用户 - 这个选择对我来说似乎很明显,但为了安全起见,我建议将armv7和up版本分支为新项目(也许是“v2”),以便老图书馆的用户可以继续安全地使用它,直到他们能够升级他们的项目。保持不支持的原始版本以激励更快的升级。

+0

为什么这个评论downvoted?我们只是为我们的产品做了这个。 –

+0

我不认为我低估了这一点。我想如果我们说我们只支持iOS 4.3及以上版本,我们可以删除armv6。构建机器将获得XCode 4.5,并仅构建armv7/armv7s/i386。任何想要armv6的人都必须使用旧版本,如果我们需要支持它,我们必须保留XCode 4.4以手动修补旧库。如果我能避免它,我宁愿不必为图书馆使用新名称(例如“v2”)。 – Christian

+0

您可以决定不支持它,并为旧的,不受支持的lib提供“传统”名称。 –

0

重新阅读您的问题后,我很困惑,为什么你有任何问题。你需要建立一个框架,因此,这种限制并不适用于你:

  • 谁以前使用的框架,即支持ARMv6的版本的用户,将无法更新他们的应用程序反正除非他们下降的ARMv6。

  • 由于新的应用程序开发人员将被迫使用XCode 4.5,他们将全部放弃Armv6。如果他们想用新的应用程序使用你的框架,他们将无法支持Armv6。

因此,在我看来,作为框架开发人员,本指南并不适用于您。

修改 - 另外... Facebook应用程序已更新为仅支持iOS 4.3,不再支持Armv6设备。 http://itunes.apple.com/us/app/facebook/id284882215?mt=8

+0

我认为你需要一些证据来证明你可以限制设备的要求。你所说的话似乎与以下链接矛盾:https://developer.apple。com/library/ios /#documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/B_DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html – Christian

+0

已更改我的答案。 –

+0

我想在技术上,库的现有用户可能是企业开发人员程序的用户,因此仍然可以开发和分发armv6二进制文件。尽管这样做的可能性很小,并且总是可以给他们一个使用XCode 4.4构建的二进制文件。另一件事,我还没有尝试过,就是用XCode 4.4的编译器构建一个armv6二进制文件,并使用'lipo'将它拼接到由iOS6 SDK构建的二进制文件中。不过,我怀疑苹果可能会拒绝这样的三连拱。 – pmdj