Unity发布至IOS的流程 趟坑分享
这篇文章主要记录本人在将Unity发布到iOS平台过程中遇到的各种问题(实际上是一些不太理解的强制设定),希望能为后续有类似需求的开发者提供参考,减少不必要的弯路。
开发环境
- Unity 5.2.2 个人版(破解版)
- macOS Sierra 10.12.1
- Xcode 8.2
- iPhone 6S 真机一台
需要注意的是,由于Unity、macOS或Xcode的版本不同,可能会遇到未知问题。这里无法涵盖所有情况,开发者只能根据实际情况摸索,运气好一次就能成功,运气不好可能会花费数天时间仍无头绪。
具体流程
第一步:安装环境
- Unity 5.2.2 个人版:可直接从Unity官网下载,破解补丁可参考[此处](请补充具体链接)。
- 虚拟机(可选):如果没有真机或黑苹果,可以安装虚拟机VM。虚拟机的安装流程在百度上有很多教程,重点是VM安装成功后需要使用对应的unlocker进行破解,破解后才能直接安装Apple OS系统。这里提供mac OS X10.11.1的镜像系统,安装完成后可升级到最新版。
- Xcode:可以直接在App Store下载,但速度可能较慢,建议在苹果开发者中心下载,可通过百度搜索“苹果开发者中心”找到相关链接。
第二步:Unity发布Xcode工程
有两种发布方式,分别是在Windows和Mac上使用Unity发布。两种方式的操作流程基本相同,但某些引用了特殊插件的项目可能在Windows上发布失败,而在Mac上通常可以成功。推测是Windows上缺少某些必要组件,因此建议在Mac系统(真机、黑苹果或虚拟机均可)上使用Unity发布Xcode工程。
具体操作步骤如下:
- 切换平台:在Build Setting中,将当前平台切换至IOS(点击Platform中的IOS,选择Switch Platform),并将Run in Xcode as设置为Release,其他保持默认。
- Player Settings设置:点击Player Settings,选择Other Settings(其他设置保持默认,若需要可自行替换Splash Image加载背景)。
- 取消勾选Auto Graphics API,并取消Metal(选中Metal,点击右边的减号删除),使APP仅使用OpenGLES2渲染。
- Bundle Identifier按照标准格式com.XXXX.XXXX填写,注意XXXX不能随意填写,否则Xcode编译可能失败。
- Target SDK选择Device SDK(真机),如果没有真机可选择模拟器,但可能会遇到更多问题。
- AOT Compatibility Options填写字符串:nrgctx - trampolines=8096, nimt - trampolines=8096, ntrampolines=4048。参考[此处](请补充具体链接),若APP出现不明闪退情况,可添加此属性。
- 发布工程:完成上述设置后,直接点击Build发布(在Mac系统中,Build and Run会在发布完成后自动打开Xcode)。发布过程中可能会出现DLL加载失败的错误,例如UnityEngine.UI及部分组件加载失败。解决方法参考[此处](请补充具体链接),思路是在Unity安装文件夹中找到加载失败的DLL,将其全部移出,运行一次Unity(不要保存场景,仅打开窗口),关闭Unity后将文件放回原位,再次打开Unity,错误通常会消失,这可能是Unity的一个Bug。
第三步:用Xcode打开工程,进行相关设置并发布
- 打开工程:打开Xcode,选择右下角的Open another Project,选择Unity发布的Xcode工程并打开。
- 生成项目:若不清楚需要更改哪些配置,可直接点击上方菜单栏Product -> Build生成项目。生成失败会弹出报错信息。
- 查看报错信息:点击左侧的三角感叹号图标,再次点击项目配置文件(如Unity - iPhone),显示所有配置信息。常见报错原因是Team ID为空,需要为APP指定一个Team ID。
- 添加账户和团队证书:点击Team输入框后面的蓝色按钮,选择Add an Account,使用Apple ID登录。若没有账号,可点击左下角Create Apple ID免费申请。登录后,选中ID,在右下角(可能因网络问题加载缓慢)可看到默认的个人团队证书。关闭窗口后,在Team输入框后面的蓝色按钮下拉框中选择个人团队证书。
- 解决可能的错误:再次Build项目,可能会因Unity版本问题出现报错,解决方法参考[此处](请补充具体链接),直接删除NORETURN即可,该问题在Unity 5.3.2版本中已修复。
- 添加使用权限说明:如果项目使用了摄像机、定位等功能,需要在配置信息中说明使用理由,否则发布到真机可能会黑屏或闪退。在Xcode编辑界面左侧点击文件夹图标,展开项目工程目录,选中info.plist,在Information Property List选项后面点击加号,在新生成的行的Key值中选择Privacy - Camera Usage Description,Value值中输入使用摄像机的理由。
- 发布到真机:用数据线连接真机,在Xcode编辑界面左上方选择iPhone设备,再次Build项目。Build成功后,点击左上角的三角箭头运行图标,当显示Running XXX on iPhone时,可在iPhone上打开APP。
本文仅介绍了发布到真机测试版的流程,后续有时间将补充发布到App Store的流程。