如果您最近使用这些软件为iOS(armv7,arm64)构建了应用程序,请注意分享:您使用了哪些版本的unity,vuforia,xcode。
注意:此答案基于问题评论中的信息。
iOS 64 位要求
自 2015 年 2 月 1 日起,Apple 强制 iOS 开发人员在向 App Store 提交新应用程序时提供 64 位二进制文件。
来源: https://developer.apple.com/news/?id=01192015a
对于应用程序更新,这在 2015 年 6 月 1 日变得相关。
来源:https://developer.apple.com/news/?id=04082015a
所以,你是对的,你需要一个 64 位二进制文件来提交你的应用程序的更新。
Unity3D 64 位支持
版本 4.6.2 中添加了 iOS 64 位支持
来源: http://blogs.unity3d.com/2015/01/29/unity-4-6-2-ios-64-bit-support/
Unity 编写了一个支持 64 位的新编译器IL2CPP
,这是使用 Unity 创建 64 位版本的唯一方法。由于这个新的编译器是相当新的(并且仍然有很多错误),我建议坚持使用最新版本的Unity 4.6.x(或5.x,如果你愿意的话)。较新的版本包括许多错误修复,尤其是对于 IL2CPP
.
如何使其工作
我们将Vuforia SDK 4.0与Unity 4.6.6(我相信它也适用于4.6.5)和Xcode 6.3.1一起使用。
使用 Unity 创建 64 位版本
- 输入
Player Settings
➔iOS Platform
➔Other Settings
- 从
Scripting Backend
中选择IL2CPP
- 从
Architecture
中选择Universal
注意:IL2CPP 编译器并没有真正提供有关其进度的反馈,因此构建可能会将 Unity 冻结几分钟(取决于项目大小)。等到它完成。
Xcode 中的 LLVM 优化级别
由于 Xcode 默认剥离了大量代码,我们需要降低 Xcode 项目中的优化级别。
- 点击项目 ➔
Build Settings
- 向下滚动到
Apple LLVM 6.1 - Code Generation
(替代:使用搜索功能) - 将
Optimization Level
更改为Fast
以进行Release
另请参阅:https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/Performance/Performance.html
如果你走到了这一步,它现在应该可以工作了;-)