关于苹果证书
Jan 11, 2016 · 1 minute read · Comments开发
关于苹果证书
摘要:
- 苹果证书简介
- 具体解读
- 如何优雅地使用
- 关于苹果证书企业版的那些事儿
苹果证书简介
- 开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的。
- appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID。
- 推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中创建生成,和开发者证书一样,安装到开发电脑上;
- Provisioning Profiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和必架必备之珍品
具体解读
首先先说一下,苹果账号分两种,一种是$99 ,另一种是$299。
$99,个人或公司账号。可发布到App Store,这是最重要的。但不可以无限给设备分发,只能分发100个设备,根据UUID来唯一识别设备。
$299,企业账号。不可以发布到App Store,这是最重要的。但可以无限分发,无限分发,无限分发。(但iOS的企业开发者信任调整了,所以虽可以任意分发,但需要安装后,手动在设置里先信任开发者,这点很讨厌)
然后开始解读上面提到的四种证书,先上图看一下,开发者中心的目录解读。
ok,基础了解之后。具体讲述一下,这堆乱起八糟的东西到底有什么用。
苹果为了保证开发者(就是交完钱的孩子),能安安全全的开发,开开心心的发布,而不交钱的孩子开发都比较困难,所以搞出了这一大套折腾的东西。
Certificates,AppID(Bundle id),Provisioning Profiles 。到底是怎么用的呢?
Provisioning Profiles,可以理解为安装到苹果设备的认证,通俗讲就是能不能安装到苹果设备,就看Provisioning Profiles这把钥匙能不能用。能用,进门安装。不能,弹出一个提示无法安装,就呵呵哒了。
既然如此,怎样才能生成一个Provisioning Profiles呢。看一下苹果这边生成Provisioning Profiles需要什么?
终于好了,将证书Certificates,AppID(Bundle id),devices都选择完后,绑定到一起,成功召唤出神龙,帮你生成了这把钥匙。
那这把钥匙到底开的是哪扇门呢?是代码,是代码,是代码!!!
看一下打包的时候,在哪里用到这个签名,在build setting 下。
注意左上角是代码签名,代码签名!
所以上面那个图告诉我们的是,谁(*iOS Developer 或者iPhone Distribution*)给这段代码签名了,然后并配上了一把钥匙(Provisioning Profiles 描述文件,可以打开app store上的app,或者 可以打开 XC:AD HOC 私下分发的app等),共同组合一起完成了一个叫扩张名为ipa的打包文件。
如何优雅地使用
有这段主要是由于本公司混乱和冗余的证书把整个开发者中心搞得…简直就是乌烟瘴气。
- Certificates 是一定要通过电脑生成证书,然后提交网页签名的。所以,命名一定要特别的长,长到把此证书是何用,用在何处的信息尽量多的写。
- appID ,也是有备注名的,备注名的,备注名的。所以,还是尽量多的写,尽量多的写。
- Provisioning Profiles,尽量不要在网页生成下载,建议直接用Xcode生成。
- 协同开发者,下载Provisioning Profiles一定要用Xcode的account管理,一键下载安装。
(选择xcode —> prefenerces—>accounts—>view details)
这里就可以下载所有的profiles。
关于苹果证书企业版的那些事儿
刚才提到过,企业版证书就是价值299美元的那个。
和普通版本没有什么大的区别,就是Provisioning Profiles的生成中多了一个叫做in-house
的发布类型。
只有这一点区别。
看一下生成后的描述文件有哪里不一样。可以看到类型不一样!!!
当然,打包的时候,build setting 中也要同时选中这个版的Provisioning Profiles。
然后选择