Unity发布至iOS 10须知
随着iOS 10的发布,不少开发者在后续几周可能要忙于升级游戏。本文将为大家分享使用Unity结合Xcode发布至iOS 10平台的一些注意事项。
App Store提交相关的注意事项
建议继续使用Xcode 7.3将现有项目移植到iOS 10,因为这是目前体验最为流畅的版本。
如果想使用Xcode 8,以下建议或许对您有帮助:
- 相机访问权限说明:若您的应用需要访问相机(WebCamTexture API),必须在Unity所生成Xcode项目的Info.plist文件中说明使用该功能的理由。具体做法是添加包含字符串与简介的NSCameraUsageDescription键值对。您可以在Unity 5.4.1p1的Player Settings中找到该选项。
- 禁用相机代码(临时措施):若您的应用未调用WebCamTexture API,需要禁用Unity生成的Xcode项目中Camera部分的代码。这只是临时措施,我们将在9月22号之前修复这个问题。禁用方式为:打开Xcode项目内的Classes/Unity/CameraCapture.mm,将第一行的
#if !UNITY_TVOS手动替换成#if 0。这样程序就会清除相机捕捉代码以通过自动提交检查。
iOS 10.0与Xcode 8的兼容性
最新的Unity 5.3及5.4补丁版本(例如 5.3.6p4 和 5.4.0p4)可以正常使用Xcode 8开发iOS 10应用。Unity更早的版本大部分也能运行正常,但可能会出现一些不便之处。
更多细节概览
- 项目签名问题:自7月中旬起,Unity 5.3和5.4的版本就可以正常Build & Run来生成Xcode项目。但默认情况下Xcode项目一般不会指定您的Team,这会造成项目签名失败。您可以在Xcode中重新指定Team,并设置相关项目来解决该问题。我们正在研究如何让用户在Player Setting中指定Team ID,9月15日发布的补丁(5.3.6p5、5.4.1p1)已包含此项功能,未来还会让它更加自动化。
- 模拟器兼容性:最新的5.3与5.4版本可以正常构建至Xcode 8模拟器,但更早的Unity版本可能会出现崩溃。
- 功能使用理由阐述:iOS 10.0现在要求所有访问相机、麦克风以及定位功能都要阐述使用理由。我们在Unity 5.4及以上的版本中添加了该字段。对于更早的Unity版本,建议通过后处理脚本更新Info.plist来解决。
- 设备与OS版本枚举更新:9月15日发布的补丁版中添加了iPhone 7 和 7 Plus的设备枚举,还更新了目标OS版本枚举以包含最新的iOS版本。
- ReplayKit的broadcasting API:ReplayKit的broadcasting API还在开发中,我们将在Unity 5.5 或5.4未来的某个补丁版本中添加。
使用Unity结合Xcode发布应用至iOS 10的注意事项总结如上。综上所述,如果力求项目稳定,请继续使用Xcode 7.3;若使用Xcode 8,请仔细阅读上文的建议。