iOS 64 位要求 iTunes Connect

iOS 64-bit requirement iTunes Connect

我继承了一个旧项目,里面有旧的第 3 方框架。 它在我的 iPhone 6 上运行良好,并且我已成功存档该应用程序以进行 AdHoc 部署。 但是,当我尝试将应用程序提交到 App Store 时,我收到有关缺少 64 位架构的错误消息。 当我将 Arm64 添加到我的目标(以及与此相关的项目)的构建设置中的体系结构和有效体系结构时,该应用程序将无法编译,因为其中一个框架是 "missing required architecture arm64"。然后链接失败,我无法创建存档。

因为上面提到的一些设置对我来说有一种巫术的感觉,我希望有一个设置的组合,以某种方式采用 32 位代码,但在编译为 64 位后显示它。

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

大家有什么建议吗?

谢谢

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

以防万一您只是在构建设置的某处出现错误。您是否检查过不同的发布方案是否设置正确,如下所示:

有时将 Build Active Architecture Only 标志更改为 no 对我也有帮助:

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

老框架的话,是手动包含还是使用CocoaPods之类的?我知道 CocoaPods 可以有自己的设置,只为 armv7 和 armv7s 而不是 arm64 构建。

Apple's guidelines 将现有应用程序转换为 64 位可能会有用。

如果您使用的是仅包含 32 位版本的编译库,您将无能为力。

iOS 上的大多数库都以源代码的形式提供,因此您需要做的就是找到合适的位置将它们编译为 64 位代码。您可能需要查看库的来源并下载新版本。如果没有可用的新版本,您可能必须自己编写代码或下载不同的库。一些开发人员有为单个十行方法导入庞大库的坏习惯,所以如果幸运的话,重写缺失的代码可能并不费力。

I hope that there is a combination of settings, that somehow takes 32-bit code, but presents it after compiling as 64 bit.

你好像是想作弊。你不能作弊。 now a requirement 应用程序为 64 位。此要求从 2015 年 6 月开始。Apple 提前发出了此更改的信号,作为开发人员,您自己至少收到了一封警告您的电子邮件!

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