这篇文章出来的时间稍晚了,一直保存在我的草稿箱里面没有写完,今天终于借机会把它整理好了。我相信目前很多小伙伴的Xcode 都从版本7升级到了版本8了吧!也相信大家在版本升级后遇到了一些不常见的错误问题(一脸懵比),例如调试怎么报错了,我用Xcode7的时候签名(pp文件,签名,开发配置文件,可能大家叫的方式有所不一样,下文我就全用签名文件来代替这些说法了)都是这么选的,怎么编译老是报错。好吧,今天就来谈谈如何用Xcode8 来进行开发调试。
按照我之前的习惯,如果我新建了一个新的工程,首先,我先会到工程的General页面去设置一下我的bundleID ,对没错,这一步都是必须的,不然你随机输入一个bundleID,那么你估计永远也不可能在真机上运行调试;然后第二步,进入到Build Setting页面去选择我对应的签名文件,有的签名是通配的例如.*的,而有的是唯一的,一般我单位如果项目进行调试的话,我会让项目都使用一个通配的签名,如果是要测试IAP内购买的话,就要针对各个项目生成专门的签名文件了。往下找到Signing这一栏,因为在老版本中我们都是在这里去设置签名文件的,熟门熟路so easy, 但是新版本怎么多了一栏Provision Profile(Deprecated),这是啥呢,其实这里面存放的都是你电脑上不能使用的签名文件,也就是说这些签名文件都废弃了,英语好一点的人可能一下子理解了,因为Deprecated就是过时的意思。
那如何才能回归到正确的调试环境呢,我们接着往下说,我们回到General页面,如图:
我们发现相比之前Xcode7的版本,多了Signing,Signing(Debug),Signing(Release),三个栏目,其实这里就是 Xcode 8 设置调试环境的关键。
首先,我们点击 ‘Enable Development Signing’ 按钮,它就会出现一个自动管理授权的check box, 如图:
当这个check box被选中后,我们的调试签名和证书就全部由Xcode自动去管理了,这个自动管理是个什么概念呢!就是你在team一栏中选择了你的开发者信息,如果缺少对应的证书Xcode就会去自动生成证书,对于签名也是同样会去生成,更加方便的一点就是如果你的设备是一个新的没有注册过的,你可以直接在Xcode8 中去注册你的手机或者平板,而不用像之前一样,要去苹果开发者后台注册。说了这么多好处,接下来我再说一下这新特性的烦人之处:
1.会导致证书管理混乱,如果你用 Xcode 8 去自动生成了一个调试环境,那就会出现以下情况,还未升级 Xcode 8 的项目就会出现证书无效的错误,你可以调试了,但是却导致他们无法调试;那该怎么解决呢,那就是让对方也去升级到Xcode 8,也去自动去生成调试环境,这样A项目就管理自己的环境,B项目就管他的,互不干扰。
2.可能有的人看了第一点觉得这不是挺好的么,自己管理自己的,这样就再也不用担心证书签名的问题了,但是当单位项目多的时候就又会出现幺蛾子,一个开发者帐号在Xcode 8上应该只能生成6个 证书,当你超过这个数量的时候就只能去选择一个存在的证书去覆盖掉,(to be or not to be , 到底覆盖谁比较合适呢!!!)。
用Xcode8 自动管理证书签名的功能有好处也有弊端,只能说各取所需。接下来,讲另一种配置方式,首先不勾选 ‘Automatically manage signing’ 的checkbox ,然后在Signing(Debug)中选择签名,如图:
在上图中你会看到,在签名的列表中,有三个签名’TestForMap, SnailUSEntDev, UniversalSnailDev’,这三个签名分别是我在苹果开发者后台下载安装的,其中有两个标识 ‘Eligible’ 和 ‘Ineligible’ ,分别表示 有效 和 无效,因为 TestForMap这个签名正好对应了我的bundleID, 这样我们就一目了然了,哪一个签名是可以调试的,哪些是不能使用的。使用这种方式的好处就是避免了证书混乱的局面,若是有多个项目共同使用一个开发者帐号的话,建议使用这种方式。
这里再给大家安利一个下载签名的技巧,每次去浏览器登录苹果开发者后台下载签名,效率很低下,不妨使用Xcode去下载我们想要的签名啊!在Xcode菜单中,点击Preference菜单打开账号控制面板,如图:
双击Agent栏目 或者 选择Agent栏目,点击View Details按钮,这样有关这个账号的所有签名就会显示出来了,这里我就不发图了,选择你所需要的签名,点击右边的download按钮,签名就直接会下载到本地了,如果没有找到你想要的,那就是你的签名在后台是invalid的状态,去后台重新生成一下就ok了。
Xcode 8 给我们开发者带来的好处还是很明显的,尤其是在优化证书签名这一块,为开发者省去了很多精力去管理,另外很多错误的提示都很到位,基本上看提示就能解决大部分的问题,只要用的多了,熟悉了,你就会觉得新版本是越来越好用了。