iOS开发之带你玩转Xcode自动管理证书
每个iOS开发者都是被折翼过翅膀的天使,都曾被证书配置折磨的痛苦不止,好不容易学会了手动管理证书,结果苹果霸霸来了一个Automatically manage signing,又会陷入一圈的懵逼中,还真是不让我们轻松,下面跟着我来将“充满雾霾”的身心放空,不埋怨,不抱怨,毕竟苹果霸霸也是好意嘛!接下来,让这篇文章带你理解自动配置证书如轻拂过额头的一缕清风一般,吹过就驱散了你心中的“雾霾”。
一:首先我们用一个全新的开发者账号来帮你理解Automatically manage signing的过程
- 1.看下图——这是一个全新的账号!
-
2.我们来看看现在没有设置账号情况是这样的,状态旁边有一个红的点提醒我们需要一个开发者账号。同时在Automatically manage signing下面有一行灰色的文字,意思是说我Xcode现在强大了,不要你们再手动管理证书了,我要减轻你们这些开发者的痛苦!我会自动创建和更新证书,appID以及配置文件,你看我是不是很牛,还不赶紧勾选!
2.png -
3.当我们选择一个开发者账号后,它会开始给我们创建证书,appID;至于配置文件,经过测试并没有自动创建。
3.png -
4.经过那个圈圈转完后,一切看起开清爽许多,我们点开profile旁边的感叹号,会看到它给我们已经创建好了APP ID,并且旁边有一个*号,紧接着下面的文字就是说我创建的这个APP ID是根据你的Bundle ID来匹配的,而*号就是通配符的意思,它保证你在改变Bundle ID后账号下依然还是那个App ID而不会再次创建,下面还会介绍它。
4.png -
5.我们进入网页看看开发者账号下已经为我们创建好了证书,我的天呐--好神奇有木有?创建的证书名称是开发者的名字后面括号加上我电脑的名称。
5.png -
6.我们再来看看APP ID也给我们创建好了~好体贴的服务啊!自动创建的APP ID的名称为"XC WildCard"即“Xcode通配符”,很容易区分!仔细看,你会发现APP ID不是一个具体的名称,而是一个*号,就是我刚刚说的通配的意思,下面还会介绍到。
6.png -
7.经过前面两个帮我们创建好了证书和APP ID愉快的过程,我想配置文件它应该也创建好了,结果,点击一看,见证奇迹的时刻没有了—— 来就来全套嘛,真是的,搞一半是几个意思呢?好吧,接下来创建配置文件要用手解决了~
7.png
二:理解Bundle ID与*通配符之间的关系
-
1.我们来看看刚说的通配符*的作用,我们将Bundle ID由“com.MingTaiQinz”改为“com.MingTaiQinzys”。
8.png -
2.看下图,此时的APP ID仍然为*,而下面的Matches Bundle ID则变为了“com.MingTaiQinzys”,也就是刚设置的Bundle ID,其实英文单词“Matches Bundle ID”的意思就是匹配Bundle ID,也就是取的Bundle ID。
9.png -
3.此时进入开发账号查看,会发现没有任何变化,ID使用*通配符代替的,所以*作用就是保证你使用不同Bundle ID不会再次去创建APP ID文件。
10.png
三:保证使用自己创建的APP ID不混淆
-
1.创建一个APP ID,Bundle ID为“com.MingTaiQinzys”
11.png -
2.创建配置文件
12.png -
3.我们打开账号管理界面,我这里使用的是Xcode8.3,和8.3之前的版本有区别,之前的是可以点击进去看到很多配置文件,可以依次下载,而这个界面只有“Download All Profiles”这个选项,有点坑爹啊!以前我们不知道使用哪个配置文件的时候,直接进入文件夹删除所有配置文件,然后下载自己需要的那个就可以了,这里一下载就是下载全部,还不让直接点进文件夹,觉得有点不方便~不过也不用着急,下面我会介绍如何进入放置配置文件的文件夹!
13.png -
4.我这里先点击下载全部,等那个灰色的圈圈转完就行了
14.png -
5.再看看Xcode界面,自动变成了我自己创建的"com.MingTaiQinzys",看仔细哦~APP ID的旁边不再是*这个通配符了,这里我解释下为什么不是通配符而是我自己刚刚创建的“com.MingTaiQinzys”,虽然之前通配符*也是获取的Bundle ID,也为“com.MingTaiQinzys”,显然,通过这点,我们明白它查找的规则如下:如果有和通配符一样自己创建的ID,那么使用创建的ID,而不使用通配符。
15.png -
6.下面我们找到放置配置文件的文件夹,它在资源库的子文件夹下,这是一个隐藏文件夹,这里是放置所有工程配置文件的地方:~/Library/MobileDevice/Provisioning Profiles
-
这里介绍MAC下显示和隐藏文件夹的命令
显示
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
隐藏
defaults write com.apple.finder AppleShowAllFiles -boolean false ; killall Finder
16.png
-
7.如果你不放心,可以将这个文件夹的配置文件全部删除,你会发现很神奇的事,就是Xcode会根据你配置好的证书的Bundle ID去自动下载对应的配置文件放在这个文件夹,而且你删了立马就会自动创建,看来是一只打不死的小强啊~又让我无比怀念星爷的电影了😆
打不死的小强 -
8.Xcode是根据Bundle ID来找证书和配置文件的,所以保证了唯一性和不会混淆,当你想创建一个相同的APP ID时,它会提示你不能创建已经存在了,当然这个是最基本的常识了。
17.png
到此,我想你已经能够理解Xcode自动管理证书的过程了,如果还不够理解,建议静下心来再看一遍保证其意自现!
总结:
1:自动管理证书的原则是根据你创建的APP ID来匹配证书和配置文件,也可以理解成根据你的Bundle ID来匹配,比较手动管理还是方便很多,同时也不易出错,理解证书的管理过程让你在配置的时候轻松一笑面对,不再打错配置文件的包,不再混淆证书配置之间的关系,这点还是非常重要的,你要理解证书配置的来龙去脉,而不是每次配置好后自己仍不知所以然,虽然成功了,但是难免出错。
2:如果你发现Xcode自动配置的APP ID不是你想要的配置文件时候,因为你一个APP ID可以对应多个配置文件,所以它虽然APP ID是对的,配置文件不一定对,这个时候,你去文件夹删除所有配置文件,然后再配置就可以了!
我是Qinz,希望我的文章对你有帮助。