iOS关于苹果开发者账号及证书的一些说明

在iOS开发过程中,无论是安装到真机测试,还是上线到App Store,你总是要接触到证书的。
相信大家对苹果证书的创建都有一定的了解,网上也有很多教程,可是你还是会在开发过程中遇到各种证书不能用的情况

下面先来介绍几个概念。

1、Apple ID 。这个是指苹果开发者账号(下面还有个App IDs,这两个(Apple ID、App IDs)有些人会搞混,这就有点尴尬了)。有了这个,你才可以登录到App Store去下载App。

2、Apple ID会员资格。如果你仅有Apple ID(普通用户只有Apple ID,就是用来从App Store下载应用的那个账号),那还接触不到证书,因为没资格。说白了,会员资格是要付费的。付费后,你才有可能能接触证书,并用证书打包App,上传App 到App Store。

会员资格有两种:

(1)Apple Developer Program - 苹果开发者计划($99

(2)Apple Developer Enterprise Program - 苹果开发者企业计划($299

关于价格:原来是以美元为单位的。现在也有当地价格。当然现在也有人民币价格(之前是没有的)。

关于App Store:Apple Developer Program可以上传到App Store;Apple Developer Enterprise Program不可以上传到App Store。

关于企业内发布:Apple Developer Program不可以企业内发布;Apple Developer Enterprise Program可以企业内发布。什么叫做企业内发布,就是不用发布到App Store,可以把IPA文件挂着自己的网站,供使用者下载、使用,而且不受UDID限制。

关于注册用户类型:Apple Developer Program可以个人,也可以是企业;Apple Developer Enterprise Program只能是企业。其中企业需要在注册时,提供邓白氏编码。

因为Apple Developer Program注册者可以是企业,有些人经常把Apple Developer Program和Apple Developer Enterprise Program搞混。
有些人经常说个人账号、企业账号,想当然的把Apple Developer Program注册的企业账号理解成苹果开发者企业计划,即Apple Developer Enterprise Program类型的账号。
又有些人经常把Apple Developer Enterprise Program说成企业账号,被人理解成Apple Developer Program注册的企业账号。
我一开始怎么区别的?我是以价格区别的,就说$99账号,还是$299账号。后来因为在国内可以用人民币支付,有些人不理解什么$99$299,我改口以是否能够上传到App Store来区分(当然这些是对于那些门外汉来说的)。如果你知道了,那么你肯定能理解别人在说苹果开发者计划和苹果开发者企业计划的区别。

好了,上面说了那么多,相信你能对两种会员资料有了深刻理解。

有了会员资格,就可以通过这个界面登录

登录界面.png

登录以后,会看到这样的界面(当然随着苹果开发者网站界面更新,Web界面肯定会有变化,不过大同小异):

Apple Developer Program界面.png

点击Certificates, Identifiers & Profiles,会进入:

Certificates, Identifiers & Profiles界面.png

到这里就进入到证书管理界面了。

关于Certificates,我喜欢称之为证书文件,有开发证书和发布证书两种。

苹果开发者计划-证书选项

1、Apple Development Xcode 11及以后,可以用这个给iOS、macOS、tvOS、watchOS apps开发版本签名使用。
2、Apple Distribution Xcode 11及以后,可以用这个给iOS、macOS、tvOS、watchOS apps发布版本签名使用,可以上传App Store,也可以Ad Hoc方式发布。
3、iOS App Development 给iOS app 开发版本签名
4、iOS Distribution(App Store and Ad Hoc) 给iOS app 发布版本签名,可以上传App Store,也可以Ad Hoc方式发布;
5、Mac Development 给 Mac app 开发版本签名;
6、Mac App Distribution 给 Mac app 发布版本签名,上传到App Store使用;
7、Mac Installer Distribution 给 Mac App Store以外的应用安装包发布签名;
8、Developer ID Application 给Mac App Store以外的应用发布签名;

苹果开发者企业计划-证书选项

1、Apple Development Xcode 11及以后,可以用这个给iOS、macOS、tvOS、watchOS apps开发版本签名使用。
2、iOS App Development 给iOS app 开发版本签名
3、Mac Development 给 Mac app 开发版本签名
4、Developer ID Installer 给 Mac App Store以外的应用安装包发布签名;
5、Developer ID Application 给Mac App Store以外的应用发布签名;
6、In-House and Ad Hoc 给iOS app发布版本签名(In-House 和 Ad Hoc的区别是,In-House没有设备UDID安装限制,Ad Hoc限制每个应该发布设备不能超过100个以上)

关于certSigningRequest
证书创建时,需要CertificateSigningRequest.certSigningRequest文件,这个是从Mac电脑上的钥匙串导出的。我把这一步理解为证书和Mac电脑绑定。
CSR导出方法如下图:

从钥匙串中请求证书

填入邮件,输入常用名,勾选存储到磁盘

点击继续,就会获得一个CertificateSigningRequest.certSigningRequest(默认名称)文件。
xxx.certSigningRequestMac设备的公钥。
(1)上传xxx.certSigningRequest到苹果开发者账号后台,苹果会对Mac的公钥,用自己的私钥进行数字签名,最后生成证书文件.cer
(2)下载.cer文件,可以添加到xxx.certSigningRequest对应的Mac上。(我的理解xxx.certSigningRequest的作用就是防止.cer,被其他Mac使用)

之前,iOS Development模式下只能绑定一个xxx.certSigningRequest文件,iOS Distribution模式下只能绑定一个xxx.certSigningRequest文件,也就是这两中模式下只能绑定一台Mac电脑。现在可以绑定两个了
细心的会发现在上面截图中,发现有很多Certificate,注意看Type,其他的都是 APNs开头,这个是什么呢?这个表示是推送证书。为什么推送证书会有那么多,因为推送证书是和App IDs相关的,多个App IDs配置了推送证书,这里就会有多个APNs的Certificate。

证书分发
绑定成功后,下载xxx.cer,加载到电脑中的钥匙串。会发现只有绑定的电脑上才显示可用,放到其他电脑上不可用。

如果其他电脑上也想用怎么办,通过绑定电脑导出相应xxx.p12文件(这个大家应该都会导出),然后给其他电脑使用。这步,我喜欢称之为授权给其他电脑使用。

证书撤销
还有一种情况,如果我绑定的电脑坏了,或者是之前同事的电脑,现在他走了,不能用了,怎么办?这种情况下,可以revoke,即撤销。这样之前绑定的会通通不可用。这个也是在多人开发时,会经常遇到的一个问题,用着用着,突然发现证书不可用了。
发现证书不可用,两个解决办法
(1)自己再revoke一次,从新绑定。(不太推荐,因为证书可能在被其他人使用,建议先确定当前绑定者是谁)
(2)找当前绑定者提供p12文件。

关于Identifiers,我常用的是App IDs,其他有用,但很少。App IDs要与Xcode中的Bundle Identifier对应使用。

关于Devices,添加真机的Identifier,就是我们常说的UDID,这个在开发证书环境下,真机调试时,会有用到。

关于Provisioning Profiles,我喜欢称之为配置描述文件,也简称描述文件,这个叫法还是因为我经常使用iPhone配置实用工具,从这上面沿袭下来的。这个会安装到真机设备中(当然不会让我们手动安装,系统会自动安装)。

就介绍到这里,本文没有介绍证书的具体做法(这个可以在网上搜到很多),主要介绍了开发者账号类型,即不同的会员资格的区别;还有主要介绍了Certificates,为什么会经常遇到证书不能使用,还有证书不能使用后的一些处理方法。
希望对一个账号有多个使用者的情况下的朋友们有所帮助。这种很多开发者使用同一个账号的情况,建议有一个Admin,其他通过p12授权使用,防止使用混乱。

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

推荐阅读更多精彩内容

  • 1 企业版开发账号注册细节 1.1 企业版开发账号和个人的开发账号无法同时兼容,必须新注册一个AppleID,已向...
    滕的世界阅读 7,157评论 7 17
  • 引言关于开发证书配置(Certificates & Identifiers & Provisioning Prof...
    molake阅读 48,098评论 7 62
  • 端木圣渊:化名云崖。网游名无心,武器,噬心镰刃。势力初云吞月。法宝:九龙天翔,炎黄图,黎明灯。 介绍:一名大家族少...
    百骨修罗阅读 247评论 2 0
  • 让一个女人闭嘴的最好方式是啥? 别说话!吻她! 壹 初次相识,怦然心动。 关关文静、端庄大方,和人说话聊天都细声细...
    是年阅读 850评论 3 7
  • 发型是一个人的名片,提升你的气质,展示你的品味。选择什么样的发型适合自己的脸型非常重要。发型搭配的技巧其实是生活里...
    雨林中的阳光阅读 236评论 0 5