从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者帐号体系中所扮演的角色也是配置和验证的做用。若是你有开发者帐号,能够打开你的开发者控制台,在首页能够看到以下界面。若是你没有开发者帐号,那就看图片意会吧!:)html
如今开发者控制台相比以前在界面布局上已经进行了改版,更加直观,也更加美观。红框标记的地方咱们能够看到Provisioning Profile文件夹图标,点击进去,就来到了全部证书和配置文件的管理控制中心。咱们能够在最下方看到标记为Provisioning Profiles的区域,这里就是咱们管理iOS或者Mac应用程序Provisioning Profile的地方啦。ios
点击右上方的“+”号会提示咱们新建什么类型的Provisioning Profile,能够看到,Provisioning Profile分为两大类,一类是Development,一类是Distribution,前者是建立咱们在开发环境下的配置文件,不能进行发布,后者能够建立发布到App Store或者以Ad Hoc发布的配置文件。建立Development下得Provisioning Profile后,咱们能够在真机上对App进行开发和调试。在Distribution下的Provisioning Profile,咱们能够选择建立发布到应用商店的配置文件,另外就是Ad Hoc方式下的配置文件。Ad Hoc是指在不发布到App Store的状况下,能够将发布状态下的App装在指定的一些真机上进行测试,可是这里指定的设备数量是有限的(99台)。web
到这里,咱们已经知道Provisioning Profile有两类,一类是开发状态下的,一类是发布状态下得。那Provisioning Profile里面究竟有些什么东西呢,咱们接着往下看。微信
咱们选择建立一个Development状态下的Provisioning Profile,首先须要咱们填写App ID,咱们知道,每个应用都有惟一的App ID,这个ID就比如咱们应用程序的身份证,经过下图能够看到关于App ID的构成。app
如今,App ID由一个Apple产生的Team ID做为前缀,后面跟的其实就是咱们在Xcode中设置的Bundle ID,其实就至关于包名(Android里面也是利用应用包名来惟一标记App)。经过这种方式,咱们就将一个指定的App与一个Provisioning Profile进行绑定了,也就是说这个Provisioning Profile只能做为这一个App的开发配置文件。那咱们每一次开发新应用的时候就得从新来新建Provisioning Profile,这显得很是麻烦,好在Apple已经为咱们想到了这一点,咱们能够经过通配符来标记App ID,这样咱们能够只建立一个开发配置文件就能够来测试全部咱们开发的App了,下图是使用通配符标记的App ID格式。ide
关于App ID的建立,能够到证书配置管理控制台Identifiers模块下App IDs栏目下进行建立,这里就再也不详细赘述了。App ID选好了,咱们继续下面的步骤。这时,提示会要求咱们选择Certificates。布局
那什么是Certificates呢?你能够在苹果开发者帐号那些事儿(二)中获得详细的答案。若是你如今不想看,那简单的说,Certificates就是一个来验证你是合法开发者的证书文件,这里一般是对你进行开发的Mac进行受权。咱们能够选择一个通过验证的Certificate来配置这个Provisioning Profile。选择完毕后咱们就能够进行下一步了。这时,提示会要求咱们选择Device。post
选择Device也就是说咱们但愿这个Provisioning Profile对哪些设备进行受权,只有选中的设备,才能使用这个配置文件来进行真机调试,不然,装了也没有,由于别人压根没对你受权。设备选择完毕后,咱们继续下面的步骤,这时,提示就会要求咱们输入这个Provisioning Profile的名字了。测试
在统计信息中咱们能够看到,Provisioning Profile的类型为Development类型,选择了一个指定的App ID,指定了一个Certificates,另外指定了一台设备,这样,咱们的Provisioning Profile就配置完成了。这时到配置文件列表咱们能够看到刚刚生成的这个配置文件,显示为Active已激活,另外要说的是,每个Provisioning Profile都有一个有效期,一般是一年,过时后就得从新验证一下,不须要从新生成,只需手动验证一下便可,点击查看详情。ui
这里,咱们能够看到比以前的详情更丰富的信息,其中Enabled Service中例举的信息是在配置App ID的时候选择的,做用是为这个配置文件申请诸如消息推送和应用内购买的权限。另外,Expires指明了这个配置文件的过时时间,最后Status就显示状态为Activie,若是不可用的话会显示Invalid。若是发现配置文件过时,就像以前说的,手动验证一下便可。最后,能够将Provisioning Profile下载到本地,下载完成后,咱们就能够看到一个扩展名为.mobileprovision的文件,打开Xcode,连上设配,双击这个配置文件,这个配置文件就被安装到咱们的测试设备中了,经过Xcode的Device窗口能够查看这台测试设备全部的Provisioning Profile。到这里,咱们已经知道了Provisioning Profile是用来作验证受权的,也知道了它实际上是装在咱们的测试设备上的,固然,你也知道了如何去建立它。那么,接下来咱们就来看看Provisioning Profile的内部结构图。
这里,拿Ad Hoc方式的配置文件来举例,按照以前说的,Ad Hoc可以在不发布到App Store的前提下容许指定的设备安装App,那这个配置文件中确定就包含Devices信息,同时也包含App ID,另外还包含一个发布状态下的Certificate。到这里,或许你会有疑问,正式发布状态下的配置文件应该是怎样的,首先要说的是,正式发布App时,Provisioning Profile是不须要提早安装到用户手机上的,若是这样的话,那估计Apple就傻了。在正式发布到Apple Store时,发布状态的Provisioning Profile已经以签名的方式和App进行了绑定,有一点不一样的是,发布状态的Provisioning Profile不须要指定Device,由于它不知道将被哪些设备使用,下图是发布状态下的配置文件结构。
最后,若是是Company类型的开发者帐号,能够生成一个供团队使用的Team Provisioning Profile,经过这个配置文件,团队内成员能够共用一个配置文件来进行开发调试,固然,App ID得指定成通配类型的。
这里须要注意的是,每个苹果开发者帐号只有一个Agent权限,就就是说,最终真正有权限发布到App Store的人就是这个开发者帐号的拥有者,他的身份类型就是Agent,另外还有两种身份类型,一种是Admin,一种是Member,关于更多团队帐号角色的信息,你能够参考这里。
经过上面的内容,你是否已经可以回答最开始提出的问题呢?什么是Provisioning Profile?这里作一个简单的总结:
内容就到这里了,要想理解的更透彻,仍是实际去操做和实验来的快。若是你是Xcode5了,进到Preferences里面,选择Accounts选项卡,将你的Apple ID添加到Xcode里面,而后到工程General和Build Settings里面去折腾吧。后面的事,你就本身琢磨吧!:)
本期内容就到这里了,有不足之处,欢迎指正,若是你但愿常常收到一些有趣的内容,欢迎微信扫描网页右边的二维码关注个人微信公众帐号“Android及iOS开发汇总”。
Reference From Apple Developer Center