前言:
ARkit很好玩,但没有Mac开发机怎么办?弄个虚拟机快速开发原型吧。DO it、DO it、DO it。
环境搭建:
硬件配置:Inter Core i3-4150 @3.50GHz
8G 内存
NVIDIA GeForce GT 730 4G
开发工具:Unity 2017.1.0f3 (64-bit) 推荐:5.6.1 以上
操作系统:Windows7 64位sp1 旗舰版
虚拟机:VMware Workstation 12
分配双核+3G内存
MacOS系统:MacOS 10.12 安装后升级至 10.12.5
Xcode 9 仅支持10.12.5以上版本
ARkit版本:Unity ARkit Plugin 1.0
Unity官方市场下载
IOS开发工具:MacOS Xcode 9
最好在Windows下用工具下载 4.99G的大小在MacOS上下载容易卡住
测试硬件:Iphone6s 美版无锁 转转官方购机。必须A9处理器以上,iphone6s以下都不可以。
第一步骤:(虚拟机安装)
我安装虚拟机MAC系统时百度的资料:原文传送门:VMware 11安装Mac OS X 10.10
注1:运行VMware需要CPU支持虚拟化技术,如果CPU支持但提示问题,请自行百度查找修改BIOS设置。
注2:链接苹果设备需要进行如下设置
关闭虚拟机-虚拟机-设置-USB-改为USB2.0即可链接苹果设备到虚拟机了。
我在测试时,并没有找到百分百连接通过率的方法,所以有时候连接会被本地抢夺控制权,多连接几次试试就好了。
注3:连接网络设置
开启win系统服务组件,与家庭网络相关的服务启动 例如:HomeGroupProvider
开启Routing and Remote Access以及Firewall。我这里启动这两个就可以了。
打开VMware,MAC的虚拟机。打开 虚拟机-设置-网络适配器-仅主机模式 。
还有一种是桥接模式(直接连接物理网络)-打勾 复制物理网络连接状态。
按照这样的操作即可让虚拟机使用主机的网络,个别情况请根据自身条件进行调整设置。
注4:删除虚拟机后重新安装最好更换目录,否则容易出错。
注5:安装Tools工具,可以进行虚拟机与本地系统的互动操作。
选择虚拟机-设置-CD/DVD设置-勾选已连接-使用ISO映像文件-找到VMware的安装目录-根目录 下的darwin.iso。确定后在macOS的桌面出现安装选项按照提示进行安装后重启即可。
接下来就是定义资源文件的文件夹了,选择虚拟机-设置-选项-共享文件夹-勾选总是启用-选择本地目录。保存即可。
然后,选择Finder-偏好设置-勾选已连接的服务器。重启虚拟机
在桌面上就可以看到共享文件夹了,将下载好的文件拷贝到windows的共享目录里即可。
以上只是安装虚拟机并装好MAC系统所出问题的一部分,可能还会遇到其他我所不知道的问题,那就只能去请教百度阿姨了。
虽然繁琐,但经过我的近一个星期的测试是可以通过虚拟机进行Arkit的测试,所以请放心,如果不行一定是某个步骤出了问题,冷静!!!切记善待鼠标
步骤2:(Xcode的安装)
https://developer.apple.com/download/
这里是xcode的下载地址,我推荐从电脑下载,然后复制到Mac虚拟机里,再进行安装。
双击安装,会出现xcode 的图标,双击运行即可,值得注意的是,运行以后在Dock菜单的xcode图标点击右键-选项-在Dock中保留,下次就不用去目录去找了。
安装不能运行,应该是MAC的系统版本的问题。
步骤3:(Unity的初始开发准备)
首先在Unity开启一个新项目,进入官方市场搜索并导入Unity ARkit Plugin。
测试Unity官方测试场景是否可以正常运行,如果可以就可以进行IOS的导出操作了:
1、点击菜单栏的File-Build Settings。
2、点击IOS 选择Download,Unity会自动下载,安装即可。
3、点击Switch 进行IOS环境的编译,时间可能会挺长。
4、添加场景。
5、选择要导出的场景。
6、选择环境配置Player Settings,在Inspector面板,修改Bundle identity作为唯一标识(需要和xcode 的标识一致),修改Target minimum IOS 为11.0,修改Camera Usage 定义一个名称。
7、Build 发布到自定义目录,我是发布到VMware的共享目录下。
注:ARkit的源代码除了官方的,还可以去Github去下载,还有Unity官方市场也有,有一个传送门的插件,不贵几十美金,去买吧!
步骤4:(Xcode的操作)
准备:
首先要有Apple公司的开发者账号,仅注册一个就可以了。传送门:https://developer.apple.com/点击Account 登录或者注册即可。
如果不去上传到苹果市场,仅仅拿来测试,那么注册一个开发者账号就够了。我这时还没上传过苹果市场,以后要是有这方面经验了,我再分享,我也想了解这方面的过程。
实施:
在这里我卡了好久,因为第一次使用Xcode和接触ios开发,走了不少弯路。
1、将Unity导出后(放置到Vmware虚拟机的共享目录),这里要注意,不可以直接在
共享目录运行
,否则xcode会编译出错,具体啥问题,俺知不道!需要拷贝到mac的文件系统内,我是建了一个文件夹单独存放Unity导出的文件。
2、点击菜单栏的Xcode选项,在下拉菜单选择Preference进入弹出界面。
3、选择Accounts。
4、点击Accounts内的+的表示符号。
5、点击Appid ID。其他没试过。
6、点击选择刚刚录入的开发者账号。
将Bundle identity 修改为一个唯一的标识,并记录到你的记事本,因为这个标识和你的ID是绑定的,并且是唯一的,而且有一个数量的规定,一旦超出了数量,就需要新建立一个开发者账号,很麻烦,所以我推荐记录到有道云笔记,因为我就是这么做的,并在这里花了很多时间。
7、选择已经连接好的Apple公司的测试硬件,例如Iphone6s。
xcode9,支持无线连接设备,具体百度一下。
8、可以进行测试了,经过一个小小的等待,首先是检测 编译 到安装。具体原理就不懂了。
我期望看完我的文章,您能够一次就编译成功!祝福您。
注意事项:
1、在升级到bate5的时候 发现有些arkit打不开,闪退,以为是升级的问题,但在经过一天的搏斗中发现,原来是xcode又的更新了,更新到bate5 就 的行了。经历了手机清除重置,更换版本等等。不过xcode的官方项目就可以完整运行,具体原因 去 的苹果公司吧。
2、ARkit_Remote 连接 需要将UnityARKitRemote场景 发布为development Build。
3、ARkit_Remote 在WIN平台下会把资源占至100%以上直至死机,MAC虚拟机下不占满也会卡死。
4、添加证书:
Targets-项目名称-General-Signing添加Apple的ID-登录后
申请证书:
找到钥匙串管理,申请钥匙串-保存到磁盘-进入apple开发者管理后台。
5、提示:锁定文件失败,打不开磁盘或快照所依赖的磁盘 传送门:http://blog.csdn.net/asdfzjs/article/details/48465487
6、xcode编译问题:
描述:
parser at unknown location
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
解决:
虚拟机的话,把项目在虚拟机中复制到Mac盘符,打开编译一下。
谷歌搜索到的,第一条说的,一般来说初学者遇到的大部分问题,都可以搜索到,学习iOS中, 共同学习。
评论的补充答案:解决过程是将项目拷贝到mac系统下的文件夹,不是虚拟机和windows的共享文件夹中,在共享文件夹中打开clang会报错的。