原文出自:http://ryantang.me/blog/2013/11/28/apple-account-3/

这是苹果开发者账号相关系列第三篇,本篇主要介绍Provisioning Profile,如果你还没有看过前两篇,可以先看看:

  • 苹果开发者账号那些事儿(一)
  • 苹果开发者账号那些事儿(二)

什么是Provisioning Profile?

从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者账号体系中所扮演的角色也是配置和验证的作用。如果你有开发者账号,可以打开你的开发者控制台,在首页可以看到如下界面。如果你没有开发者账号,那就看图片意会吧!:)

现在开发者控制台相比之前在界面布局上已经进行了改版,更加直观,也更加美观。红框标记的地方我们可以看到Provisioning Profile文件夹图标,点击进去,就来到了所有证书和配置文件的管理控制中心。我们可以在最下方看到标记为Provisioning Profiles的区域,这里就是我们管理iOS或者Mac应用程序Provisioning Profile的地方啦。

点击右上方的“+”号会提示我们新建什么类型的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台)。

到这里,我们已经知道Provisioning Profile有两类,一类是开发状态下的,一类是发布状态下得。那Provisioning Profile里面究竟有些什么东西呢,我们接着往下看。

我们选择创建一个Development状态下的Provisioning Profile,首先需要我们填写App ID,我们知道,每一个应用都有唯一的App ID,这个ID就好比我们应用程序的身份证,通过下图可以看到关于App ID的构成。

现在,App ID由一个Apple产生的Team ID作为前缀,后面跟的其实就是我们在Xcode中设置的Bundle ID,其实就相当于包名(Android里面也是利用应用包名来唯一标记App)。通过这种方式,我们就将一个指定的App与一个Provisioning Profile进行绑定了,也就是说这个Provisioning Profile只能作为这一个App的开发配置文件。那我们每一次开发新应用的时候就得重新来新建Provisioning Profile,这显得非常麻烦,好在Apple已经为我们想到了这一点,我们可以通过通配符来标记App ID,这样我们可以只创建一个开发配置文件就可以来测试所有我们开发的App了,下图是使用通配符标记的App ID格式。

关于App ID的创建,可以到证书配置管理控制台Identifiers模块下App IDs栏目下进行创建,这里就不再详细赘述了。App ID选好了,我们继续下面的步骤。这时,提示会要求我们选择Certificates。

那什么是Certificates呢?你可以在苹果开发者账号那些事儿(二)中得到详细的答案。如果你现在不想看,那简单的说,Certificates就是一个来验证你是合法开发者的证书文件,这里通常是对你进行开发的Mac进行授权。我们可以选择一个经过验证的Certificate来配置这个Provisioning Profile。选择完毕后我们就可以进行下一步了。这时,提示会要求我们选择Device。

选择Device也就是说我们希望这个Provisioning Profile对哪些设备进行授权,只有选中的设备,才能使用这个配置文件来进行真机调试,否则,装了也没有,因为别人压根没对你授权。设备选择完毕后,我们继续下面的步骤,这时,提示就会要求我们输入这个Provisioning Profile的名字了。

在统计信息中我们可以看到,Provisioning Profile的类型为Development类型,选择了一个指定的App ID,指定了一个Certificates,另外指定了一台设备,这样,我们的Provisioning Profile就配置完成了。这时到配置文件列表我们可以看到刚刚生成的这个配置文件,显示为Active已激活,另外要说的是,每一个Provisioning Profile都有一个有效期,通常是一年,过期后就得重新验证一下,不需要重新生成,只需手动验证一下即可,点击查看详情。

这里,我们可以看到比之前的详情更丰富的信息,其中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?这里做一个简单的总结:

  • Provisioning Profile是一个安装在测试设备上的配置文件,文件扩展名为.mobileprovision
  • Provisioning Profile有两种类型,一种是Development、一种是Distribution,分别对应开发状态和发布状态的配置文件
  • 配置Provisioning Profile之前需要先设置好Certificates、App ID、Devices等信息
  • Provisioning Profile的有效期为12个月,过期后得手动验证方可继续使用

内容就到这里了,要想理解的更透彻,还是实际去操作和实验来的快。如果你是Xcode5了,进到Preferences里面,选择Accounts选项卡,将你的Apple ID添加到Xcode里面,然后到工程General和Build Settings里面去折腾吧。后面的事,你就自己琢磨吧!:)

本期内容就到这里了,有不足之处,欢迎指正,如果你希望经常收到一些有趣的内容,欢迎微信扫描网页右边的二维码关注我的微信公众账号“Android及iOS开发汇总”。

Reference From Apple Developer Center

苹果开发者账号(三)相关推荐

  1. 苹果开发者账号那些事儿(三)

    什么是Provisioning Profile? 从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者账号体系中所扮演的角色也是配置和验证的作用.如果你有开发者账号,可以 ...

  2. 苹果开发者账号可以创建多少测试证书_苹果开发者账号相关问题解答—企业开发者账号...

    APP上架以及APP的测试都是需要用苹果开发者证书进行签名之后才可以的. 那么关于苹果开发者账号是什么小微就来讲解一下关于苹果开发者账号的原理,苹果开发者账号具体是怎么进行操作的,如何发挥作用.一起来 ...

  3. iOS开发:苹果开发者账号第一次新建APP ID以及创建App的步骤

    在iOS开发过程中,关于苹果开发者账号相关操作的知识点也是不可忽视的,尤其是对于一些刚接触苹果开发的开发者来说,更应该多了解一些关于苹果开发者账号的知识点,这样有利于App的测试和上架. 苹果开发者账 ...

  4. 没有苹果开发者账号能否创建ios证书-最新

    在2020年以前,注册苹果开发者账号后,就可以使用香蕉云编生成证书. 但2020年后,因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号,所以需要缴费才能创建ios证书 ...

  5. 苹果开发者账号注册申请流程

    苹果开发者账号的注册过程比较复杂,和大家分享一下过程和细节,以免大家走了弯路. 1.登陆苹果开发者官网页面 https://developer.apple.com/programs/ios/ 2.点击 ...

  6. 苹果开发者账号购买流程

    谈到苹果开发者账号,我们需要区分一下个人账号.公司账号和企业账号这三种,还有一种是教育账号,这个就不多说了. 个人账号:个人申请用于开发苹果app所使用的账号,仅限于个人使用,申请比较容易,$99. ...

  7. 关于苹果开发者账号应用的那些事

    前言 好久没打过包,也没上传过App Store应用了,最近因为开发需要,又需要折腾证书这块东西,发现这块知识掌握的不牢,以前所了解的也有些模糊,导致使用时出现各种问题,究其原因还是自己理解的不够深! ...

  8. 苹果开发者账号申请及升级更换

    苹果开发者账号99美元和299美元的完全是独立的账号,即:99美元的不可以用同一账号升级为299美元,必须重新申请一个apple ID 但是邓白氏码可以一样,299美元也不可以同一账号直接降级为99美 ...

  9. 苹果开发者账号和邓白氏编码申请总结

    最近为下属公司申请了一个新的苹果开发者账号, 但是在获取邓白氏编码的过程中出了一些问题. 今天来说一下在苹果开发者账号申请和DUNS码申请中遇到的这些坑. 苹果开发者账号申请流程 关于苹果开发者账号的 ...

最新文章

  1. 【漫画】以后在有面试官问你AVL树,你就把这篇文章扔给他。
  2. Linux 爱好者的飞行棋:sudo
  3. 杭电2037java实现
  4. C#常见金额优选类型及其三种常用的取整方式
  5. 大数据如何改变安全视角
  6. 【已解决】[Error] reference to ‘min‘ is ambiguous
  7. lnmp 备份mysql_mysql全量备份与增量备份
  8. 如何使用纯CSS3来生成家谱(family tree)
  9. 自学html多久能找到工作,学web前端需要多久? 自学多长时间能找到工作?
  10. 容器技术Docker K8s 52 边缘容器服务(ACK@Edge)-边缘计算和边缘容器
  11. mac 安装mysql5.7_mac 安装 mysql 5.7
  12. 手把手教你理解SURF算法的全部过程
  13. 【博主推荐】html好看的年会抽奖(附源码)
  14. JavaScript编辑器推荐
  15. LOL云顶弈记牌易语言源码
  16. acc转mp3最好用的格式转换器推荐?
  17. PhotoShop 之钢笔工具
  18. 【软件测试】测试人终将迎来末路?测试人的我35岁就坐等失业?
  19. 10 大开源免费的项目管理软件推荐
  20. TiDB 在马上消费金融核心账务系统归档及跑批业务下的实践

热门文章

  1. 手把手教你使用Keras进行人脸检测和识别
  2. 蛋白质二级结构预测Linux,蛋白质稳定性预测工具-Rosetta ddg_monomer
  3. CentOS 7 安装rar解压缩软件
  4. JSON在java和js分别用法
  5. 【p093】细胞分裂
  6. 测试之美(2)对测试的几点理解----谁是利益相关者?
  7. 模拟电路6(共射基本放大电路的组成及工作原理)
  8. Message中obtain()与recycle()
  9. 【BZOJ4379】[POI2015]Modernizacja autostrady 树形DP
  10. linux 发送邮件到163或者QQ邮箱