苹果开发者证书详解

转自千叶飞雪的文章:http://www.jianshu.com/p/8eff18ad88b3

对于iOS开发者来说,apple开发者账号肯定不会陌生。在开发中我们离不开它。下面为大家分享一下关于iOS开发中所用的证书相关知识。
首先得描述一下各个证书的定位,作用,这样在制作的时候心中有谱,对整个流程的把握也会准确一些;
第一部分:成员介绍
1.Certification(证书)
证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:
1)Developer Certification(开发证书)
安装在电脑上提供权限:开发人员通过设备进行真机测试。
可以生成副本供多台电脑安装;
2)Distribution Certification(发布证书)
安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。不可生成副本,仅有配置该证书的电脑才可使用;
2.Provisioning Profile(授权文件)
授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App ID,即:使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App ID对应的程序。
开发者帐号在创建授权文件时候会选择App ID,(开发者帐号下App ID中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。
授权文件分为两种,对应相应的证书使用:
1)Developer Provisioning Profile(开发授权文件)
在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App ID要一致;连接调试的设备的UDID在选中的授权文件中有记录。
2)Distribution Provisioning Profile(发布授权文件)
在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App ID,无需选择UDID;
测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App ID和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。

  1. Keychain(开发密钥)
    安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本(导出证书重新命名)就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
    注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。
    平常我们的制作流程一般都是先利用开发者帐号登陆开发者中心,创建开发者证书,AppID,在AppID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),之后在Provisioning Profile文件中绑定所有的证书id,添加调试真机等;
    具体操作流程如下:
    第一步:申请“开发证书”
    登录,登录成功后如下图所示


找到证书板块,点击进入



点进证书,会显示如下界面,点击右上角的加号



会出现以下界面,该操作重复两次,分别创建开发测试证书和发布证书,开发测试证书用于真机调试,发布证书用于提交到appStore,我们以开发测试证书为例,选择第一个红框中的内容;

然后下一步,会提示创建CSR文件,也就是证书签名请求文件,会有很详细的操作说明,如果英文不太好,可以参考下图;


(1) 点击钥匙图标



(2) 在菜单栏中依次选择:钥匙串访问⟶偏好设置⟶证书选项卡,下面两项全部选关闭



(3) 生成证书请求:钥匙串访问⟶证书助理⟶从证书颁发机构请求证书

填写开发账号邮件和常用名称,勾选“存储到磁盘”
保存后的名称应该为:CertificateSigningRequest.certSigningRequest



保存到磁盘后在你的钥匙串访问窗口应该会出两个密钥,一个公钥密钥,一个专用密钥,红色部分就是你在上面输入的常用名


备注:CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字;之后在开发者中心将该CSR文件提交;


提交上去后就会生成一个cer证书,如图所示,有效期为一年;


利用同样的方法配置一下Distribution发布证书,下载保存,双击安装;在钥题串登陆证书中可以查看,其中专用密钥的名字即为CSR请求文件中的常用名称;
如果是申请推送证书,则会关联一个App ID


第二步:注册 App ID
选择 “Identifiers”的 “App IDs”,点击“+”

出现以下界面:
App ID Description 是一个App ID的描述,就是一个名字,这个名字可以随便取
App ID Prefix 苹果已经帮我们填了,不需要我们填,可以看出,它是一个团队的ID
填写bundle ID:


服务中文翻译


最后会有一个详细的内容列表,对应无误后,提交完成


第三步:申请设备
如图,点击“+”,一个99美元账号只能申请100个设备。

填写自己测试设备的名字和UDID,UDID在Xcode中可以查看


查看UDID
打开Xcode



填好 name 和 UDID后,点击continue 就可以看到如下界面,点击“Register”就可以在苹果上登记了。


第四步:授权文件申请(Provisioning Profile)
选择授权文件类型,下面罗列了iOS常的授权文件类型


选择我们刚刚生成的 App ID,选好后,点击“Continue”


这里选择一个开发证书,有两点要注意:
这个证书是我们刚刚自己在本机(当前电脑)与苹果开发者网站生成的 开发证书 “Development certificate”
如果不是刚生成的,这个证书必须在本地的mac的钥匙串中存在(带密钥的证书,不带密钥的依然无效)


如果不想自己在重新生成证书,用别人生成的证书,可以从别人的电脑中导出p12文件
选好证书以后,点击“Continue”


选择设备,设备可以选择全部设备,也可以按需选择你需要的设备:


这里给我们的描述文件取一个名字,这个名字在以后的xcode中是看得到的,所以可以取一个好辨认的名字。取好名字后,选择“Continue”生成描述文件。



生成好描述文件后,选择“Download”,双击进行安装
关于.p12证书
为什么要导出p12
当我们用大于三个mac设备开发应用
时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,2个开发证书,可以发现再也申请不了开发证书和发布证书了(一般在我们的证书界面中应该
只有一个开发证书,一个发布证书,没必要生成那么多的证书,证书一般在过期之后才会重新添加。)
如图:


这时候,再点击“+”时,就会发现点击不了开发和发布证书,也就是添加不了开发证书和发布证书了:


有两个解决不能添加证书的方法:
第一种方法是将以前的证书“revoke”掉,如图:


然后重新生成一个新的证书。
这种方法是可以的,但是会造成相应的Provisioning Profiles失效,这个可大可小。如果只有你一个人则问题不大,如果是一个团队大家都在用,你把这个证书删除了,会导致别人的描述文件失效,这意味着别人不能发布应用了(还可以开发),这可是大问题,****所以不提倡这种做法****。
第二种方法是生成p12文件:
我们的每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的mac设备使用,使设备不需要在苹果开发者网站重新申请开发和发布证书,就能使用(强烈推荐,目前基本上都是这样用)。
注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件,如图:


打开钥匙串,选择我们需要的证书,右击,选择“导出“iPhone Distribition:```”:


为.p12文件填一个名字,点击存储:


填一个“密码”,“验证”和密码相同:


点击好,在桌面上就形成了一个.p12文件了:


在别人的电脑上要成功安装,必须具备两个文件:
该证书导出的“.p12”文件。
苹果开发者中的与“证书”对应的“描述文件”
如果需要用于开发的,那么需要这两个文件:
.p12文件本身就是一个加密的证书,所以用这两个文件就可以让其他mac设备使用了:


拿到这两个文件后,依次双击“证书”,“.p12“文件(需要输入密码,密码就是当时生成.p12时设定的密码,),作用是加入钥匙串中,使我们的电脑具备开发的证明,”描述文件“(作用是置于xcode中,让xcode知道我们开发的合法性),添加完后就可以使用了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容