准备
Mac OS系统
使用Unity做IOS开发,需要一台苹果系统的电脑,如果没有,那就用虚拟机或者安装黑苹果吧,虽然Windows版Unity也可以跨平台发布IOS,但是问题多的让你怀疑人生。
虚拟机安装Mac OS请参见:VMware 14虚拟机安装Mac OS 10.14详细教程安装Mac版Unity 软件
在Unity官网下载Mac版Unity,最好使用安装器进行安装,可以选择你所需要的插件和平台一并安装到位,但是下载速度会不稳定。根据提示安装即可。
安装xcode
可以在Apple Store进行下载安装,若Mac OS版本较低可以参考我的这篇博文进行非Apple Store安装。低版本Mac OS安装合适xcode的方法
苹果iphone或iPad设备一台
如果仅是真机测试,可以不使用Apple开发者账户,使用Apple ID即可。
Unity发布IOS平台
发布前需要特殊设置的地方
1、Build Settings->Player Settings->Other Settings->SDKVersion 选择真机SDK
2、Build Settings->Player Settings->Other Settings->ScriptingBackend 选择IL2CPP支持64位
3、Build Settings->Player Settings->Other Settings->TargetDevice 根据开发的目标设备不同可以选择,默认选择iPhone+iPad
4、Build Settings->Player Settings->Other Settings->取消勾选Craphics APIs,并将Metal去除,仅保留OpenGLES2 (因为Xcode不支持Metal)
5、Build Settings->Player Settings->Company Name 与Product Name 根据项目认真填写
6、Build Settings->Player Settings->Other Settings->BundleIdentifier 根据项目认真填写
点击Build
选择发布位置,点击Save即可发布Xcode工程
发布后的文件结构如下图
Xcode工程发布步骤
- 双击.xcodeproj文件, Xcode会打开该项目文件。
- 在左上角,选择Unity-iPhone来查看项目设置。它将在选中的常规选项卡(General)打开。
- 在Signing属性中勾选Automatically manage signing,并在Team中输入Apple ID和Password建立Personal Team,成功后下面的Status中红色叹号会消失。
- 使用数据线将苹果设备与电脑USB连接,连接成功后苹果设备会提示是否信任此设备,点击信任,Xcode即可识别出该设备信息并连接此设备
- 点击“运行”按键,等待部署完成
6.在运行过程中,会提示“Build Successed”说明程序已经安装到了设备上,在接下来会弹出提示的大概意思是需要在设备上进行验证才能打开该程序。
7.此时可以拔下数据线,苹果设备需要连接互联网进行开发者验证。验证方法:设置–>通用–>设备管理–>开发商应用–>信任设备,点击验证即可验证成功
8.返回界面,点击应用图标即可打开部署的程序。
注意事项
1、如果在虚拟机上发布时,设备一直不能连接。
解决办法:
请关闭虚拟机,在编辑虚拟机设置中,将USB控制器中,USB兼容(C)设置为:USB 2.0,勾选下面所有的选项。重启虚拟机即可连接苹果设备。
2、在XCode发布到苹果设备时报错,应该是Xcode版本较低,不包含当前设备的真机调试包导致的错误。
解决办法:
在苹果设备中查看系统版本号(通用–>关于本机)
在Mac 电脑中点击 前往–>应用程序–>Xcode(若没有在搜索栏中Xcode)–>右键选择显示包内容,按照以下路径:Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport依次展开,查看是否包含苹果设备的版本号的文件夹,一般会没有的。请在网上下载该苹果设备对应的调试包,解压后复制到该路径下,重启Xcode即可。
真机调试大全包下载地址如下,请根据情况对应下载
链接:https://pan.baidu.com/s/1lAN2hIWqsGGt2otxs11pSQ
提取码:7jcp
3、发布到真机设备上后,打开程序时出现闪退的问题,出现这种情况是程序没有获取某项权限导致的。
解决办法:
在发布的Xcode工程中,找到Info.plist,双击打开。添加所需的权限即可
麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?
相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?
相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?
通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?
语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?
日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?
定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据
定位权限: Privacy - Location Always Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据