iOS 64位要求iTunes Connect

时间:2016-05-24 16:05:02

标签: ios objective-c 32bit-64bit

我继承了一个旧项目,其中包含旧的第三方框架。 它在我的iPhone 6上运行良好,我已经成功存档了AdHoc部署的应用程序。 但是,当我尝试将应用程序提交到App Store时,我收到有关缺少的64位架构的错误。 当我将Arm64添加到我的目标的构建设置中的架构和有效架构(以及该项目的项目)时,应用程序不会编译,因为其中一个框架是"缺少必需的架构arm64" 。然后链接失败,我无法创建存档。

由于上面提到的一些设置对我们来说有一种伏都式触摸,我希望有一些设置的组合,以某种方式采用32位代码,但在编译为64位后呈现它。

我查看了导致该问题的最新版本的框架,但其文件结构和命名约定完全不同,因此升级将需要相当多的工作。

你们有没有一些建议?

感谢

3 个答案:

答案 0 :(得分:1)

如果您使用的是仅提供32位版本的编译库,则无法执行任何操作。

iOS上的大多数库都是源代码,所以您需要做的就是找到合适的位置来编译为64位代码。您可能需要查看库的来源,并可能下载新版本。如果没有可用的新版本,您可能必须自己编写代码或下载其他库。一些开发人员习惯于为单个十行方法导入一个巨大的库,所以如果你运气好,重写丢失的代码可能不会太费劲。

答案 1 :(得分:1)

  

我希望有一些设置的组合,以某种方式采用32位代码,但在编译为64位后将其呈现。

你似乎要求作弊。你不能作弊。应用程序为64位,now a requirement为{{3}}。这项要求于2015年6月开始。苹果公司提前告知了这一变化,作为开发人员,您自己至少收到一封电子邮件警告您!

如果您在此之前提交了应用程序的早期版本,则不是必需的。但现在是。

答案 2 :(得分:0)

我猜你有三个选择:1 - 它可能只是构建设置中的错误; 2 - 删除64位架构;或者3 - 重新编译旧框架以获得64位兼容性。

如果您的构建设置中某处出现错误。您是否检查过不同的发布方案是否正确设置如下:

enter image description here

有时将store标记更改为Build Active Architecture Only也有助于我:

enter image description here

只需确保单击显示三角形为每个方案设置正确的设置(调试和发布)。

就旧框架而言,是手动包含还是使用像CocoaPods这样的东西?我知道CocoaPods可以拥有自己的设置,仅用于构建armv7和armv7s而不是arm64。

Apple's guidelines用于将现有应用转换为64位可能很有用。