iOS 证书配置到上架发布

一.证书介绍

image

1.Certificates:证书

Certificates作用是为Mac电脑提供开发能力,具有Certificates的Mac电脑能够真机调试、打包、上架APP到app store。

image

Certificates有两种环境:开发(Development)环境生产(Distribution)环境
Certificates还有两种类型:SoftwareServices
简单理解:
a.开发环境(Development):直接用Xcode调试debug就属于开发环境,在模拟器上debug是不需要Certificates的。但是在真机上调试运行就需要Certificates。
b.生产环境(Distribution):上架app store,打包生成ipa包等都属于生产环境。能简单理解:只要是通过Archive生成都都是属于生产环境。

image

c. Software: 使mac具有相应的开发和发布能力,一台Mac只需要建立一套即可。
d: Services: Apple提供的额外服务,最常见的就是消息推送服务,会针对不同的App建立不同的Services Certificates,毕竟每个app需要的Services不同。

针对Software部分重点注意:
Certificates是对Mac电脑有效的,是根据Mac的CSR请求证书创建的,而不是对app,所以Certificates的开发(Development)证书和发布(Distribution)证书是有数量限制的。超过数量就不能再创建了,除非删除已有的证书。
只要你这个Mac电脑拥有了Certificates证书,就能用申请Certificates的账号在这个Mac上开发多个app而不需要再重新申请Certificates。所以正确操作是,对一个Mac电脑,只需要申请一套Certificates就好了,在创建第二个第三app时不需要再去创建一套Certificates。
Services的证书是需要另外创建的,而且没有数量限制,但是还是建议只用一台Mac创建就好,他人合作导出.p12文件给对方Mac安装即可。
Software和Services都是和Mac绑定的:
Certificates是和Mac绑定的,不能直接copy给其他Mac使用,但是Certificates可以导出.p12给其他Mac电脑用的,导出的.p12同样具有测试打包和发布的能力。如果多人协同开发,第二个Mac也是不需要再去申请一套Certificates的。用他人Mac电脑上Certificates导出的.p12文件安装上即可。详细操作见下面第六部分。

2.Identifiers:App 身份证。

iOS每个APP都有自己唯一的身份证(Identifiers)。app的身份证就在这里申请,也就是app的唯一标识。每个Identifiers都是通过Bundle ID来区别,Bundle ID就好像app的身份证号码,唯一绑定。

3.Devices:设备列表。

app的每个设备都有唯一的udid。将udid加入到Devices列表后,这些设备具有debug测试和ad hoc安装能力。
反正,需要测试的iPhone,iPad都需要加入到这个列表里面。
Devices设备列表是针对开发者账号,所以也只需要添加一次。
如何查看设备的udid。有很多方法,对于开发者最直接的方式是,将手机接入Mac电脑,用XCode查看。

image
image

4.Profiles: 描述文件

简单理解:描述文件Profiles将team、Identifiers、Certificates、Devices等信息联系起来。
Profiles同样分为两种环境:开发(Development)环境发布(Distribution)环境,不同的环境需建立不同的描述文件Profiles。
描述文件是这对app绑定的,所以每个APP都会建立相应的一套描述文件。但是描述文件可copy给其他Mac使用,但是对于的Mac需要安装相应的Certificates导出的.p12文件。

二.证书申请

申请证书前提,还需要加入Apple开发者计划

想要能够申请Apple开发和发布证书,除了拥有一台Mac电脑,还需要加入Apple开发者计划:
https://developer.apple.com/
最新版加入开发者计划已转移到Apple Developer app上申请了。下载app按照流程申请就好。
需要注意的是,Apple目前有三种开发者计划:a. 个人 b.公司 c.企业
这里大致说明一下,详细区别可参考其他文章。
a. 个人开发者计划:99美元/年,申请最容易,只针对个人使用,无法添加member ship,也就无法邀请其他人加入你的开发组team。
b. 公司开发者计划:99美元/年,一般公司能够申请,可以邀请成员加入member ship协助开发和管理app。
c. 企业开发者计划: 299美元/年,适合大型公司申请,申请较为困难,需要邓白氏码,一般公司申请不到,具有公司开发者计划所有完整功能。
相比较而言,最大的局别就是:
个人开发者计划,只有用申请的这个账号来配置证书和发布,不能邀请成员。
公司开发者计划,可以邀请成员协助管理,被邀请的成员的账号也具有开发和管理能力。这两种只能上架app store发布app。
企业开发者计划,最大的优势是可以内部分发直接安装APP,而不用上架app store。可以给IPA安装包签名,而使这个IPA包具有直接安装的能力。

一般公司申请公司开发者计划就好。

下面开始正式配置证书

证书配置地址:https://developer.apple.com/account/resources/certificates/list

image

1.申请Identifiers:App 身份证。

先申请app身份证:Identifiers:iOS每个APP都有自己唯一的身份证(Identifiers)。app的身份证就在这里申请,也就是app的唯一标识。
选择App IDs:

image

填写app描述,和Bundle ID。
关于Bundle ID:十分重要的东西,可以理解为app的身份证号码。所有app都是唯一的。为了避免重复和辨识,一般都采用反域名的格式+app名称。
如图所示。这里一经申请变无法更改,在每个项目建立时就应该事先定义好app的Bundle ID。Bundle ID除了这里申请app需要用到以外,在申请第三方服务:如微信登陆、友盟推送、google服务等等都需要使用到Bundle ID与你的app绑定。所以,Bundle ID非常重要。
一般,我们会采用Explicit(明确的)Bundle ID标识,而不会采用Wildcard(通配符)来定义Bundle ID。

image

下面的App 能力部分(Capabilities)根据app实际功能来选择,一般,如果有消息推送功能会把Push Notifications选上。至于其他高级功能,能用到一般也不看本篇教程了。后续文章我会介绍App Groups功能。

image
image

然后Register。如果你的Bundle ID没被占用,返回就能看到你创建的app id了。

image

app身份证:Identifiers创建完成。

2.申请Certificates:证书

1.首先,通过Mac钥匙串管理工具生成CSR请求文件,用于申请Certificates,与Certificates绑定。

image
image
image

邮箱地址填一个,选择存储到磁盘,会正常一个.certSigningRequest文件,重命名一下,便于识别。

image

2.申请Development证书:

先创建software部分,再创建推送证书部分。

1.选择iOS Development ,创建iOS Development 开发证书。Xcode11以上可以创建Apple Development 证书,不过我的app只用于iOS开发,就创建iOS证书就好了。Apple类型的证书管理起来要麻烦一些。

image
image

选择刚刚生成的.certSigningRequest文件。

image
image
image

这里就完成了,download下载下来,名称是ios_development.cer。最好改个名称,方便识别。

image

让后安装,建议右键-打开。安装没有提示,只有有个放大动画,右键打开会确保打开了。
然后再打开钥匙串管理工具,在我的证书上就能看到安装的这个证书了。
注意显示的名称不是文件名,是你开发者账号的个人team名称,跟苹果证书管理页面上的名称是一样的。注意对比过期时间也能判断

image
image

3.申请iOS Distribution (App Store and Ad Hoc)生产证书

方法与2.2步骤一样,只是选择的时候选iOS Distribution (App Store and Ad Hoc)类型。

image

然后上传CSR文件,Register,Download, 改名。

同样右键打开,安装,这里显示的是公司team的名称,也是与苹果证书管理页面上的名称是一样的。

有了这两个证书后,这台Mac就具有开发和生产App的能力了。

4.推送证书申请

推送证书的申请与第二部分是一样的,只是中间会让选择证书绑定的App id。
同样,需要申请Development和Distribution两种环境。

image

选择绑定的App id:

image

选择Mac钥匙串工具导出的.certSigningRequest文件,与这台Mac绑定。

image

Register,Download, 改名,安装。

到这一步,所以的Certificates申请安装完毕。
最终的结果:

image
image

5. 添加Devices设备列表。

很简单,按照提示将udid加进去即可。

image

6. 创建描述文件Profiles。

最后一步,创建描述文件,将上面创建的所有信息联系起来,用于xcode使用。
同样需要分别创建Development和Distribution两种环境的描述文件。

image

选择绑定的APP id:

image

选择在第一步中创建的Certificates证书,开发环境对于开发环境,生产环境对于生产环境。

image

开发环境和Ad Hoc需要选择需要测试的Devices设备,选中的Devices才具有测试和安装能力。一般全选即可。

image

然后下载,重命名。描述文件不需要安装。

image
image

所有需要准备的证书和描述文件都建立完毕。下面到XCode测试、发布。

四.XCode配置

以上所有.cer文件安装后,转到XCode上配置app的证书,以便能够真机测试和打包app。
主要有两部分:

1.XCode登陆开发者账号

image
image

登陆后,会看到对应的profile。点击下载profile。

image

2. 证书配置

为项目配置bundle Identifier,此bundle id为申请App Identifiers时填入的泛域名。

image

首先需要取消Automatically manage signing。否则是XCode自动管理证书,会自动创建证书和bundle id等。这样会不利于证书管理。
配置profile描述文件,需要为debug和release两种环境分别配置描述文件。选择3.6章节里创建的对应的描述文件,debug对应development, release对应Distribution。

image

此处有可能与钥匙串中安装的cer不对应,在这里选择一下就好了。

image

同样,debug对应开发环境(iPhone developpment), release对应发布环境(iPhone Distribution)。选择在3.2章节里申请后安装在钥匙串的对应证书。

image

配置完成后,选择一个测试机device,这个测试机的udid需要在3.5章节中加入到Devices设备列表。如果以上都配置争取,就是下图这样。此时便可以真机测试了。

image

五.App Connect注册APP

第三部分是为一个app配置证书、描述文件等,以便能够开发app。这部分是创建一个与第三部分对于的用于测试发布的app。第三部与App Connect是独立的两部分,App connect主要是管理上架的app。
进入Apple开发者中心,登陆开发者账号,选择App store connect。选择“我的App”。

image

创建一个App。

image

这里的套装id即为3.2章节中申请的indentifiers。与之绑定。SKU可以填入申请的bundle id。

image

创建完成后根据提示填写app的相应信息。App Store为上架到应用商店的信息,用户也可以使用Testflightg测试功能。Testflight为Apple为开发者提供的测试途径,在上架App Store之前,可以在Testflight里进行内部和外部测试,功能完善后在上架app store。

image

六.多人协作开发证书管理

相信很多情况下,都会遇到多人一起开发一个iOS项目,或者多台电脑运行测试iOS项目。这时候就涉及到多人协作的iOS证书管理。

1.多台Mac运行相同iOS项目。

第三章节中申请的cer证书,是与生成csr的mac电脑绑定的,其他的Mac 电脑无法安装,这样其他的Mac电脑就无法真机测试打包这个iOS项目了。
但是,我们可以在钥匙串中导出.p12文件给其他的Mac安装,安装后这台Mac也具有同样打包测试发布能了。
开发需要导入developer证书,发布需要导出Distribution证书。
选择对应的证书,导出。

image

命一个名,方便识别。

image

输入密码。后导出

image

如果有推送功能,也导出推送证书的.p12。

image

这些.p12文件其实就加密的.cer证书。可以copy给其他Mac安装。

第二台Mac安装.p12后,进行第四章的XCode配置后即可具有开发、测试、发布iOS的能力。

2.多人多台Mac开发相同ios项目。

有时候开发者账号密码不方便给其他人使用。
为方便描述,假定情景为:有两为开发者,A和B。A开发者的apple账号已加入apple开发者计划(需要公司或者企业型),B开发者未加入开发者计划,A和B协作开发一个iOS程序。
此时,可以将B开发者加入到A开发者计划的team中。这样A和B同在A开发者计划的同一个team。B开发者的账号也同样具有开发测试发布能力。(实际是A的开发者账号“用户与成员”管理。这里秒速可能不太恰当)

A将B加入到开发者成员中,使B具有App开发能力。
同样进入App Store Connect,选择用户与访问。

image
image

点击新增。

image

填入B的Apple账号邮箱,选择B对于的职能,如果需要B协助管理证书描述文件等,在开发者资源那里勾选。

image

随后B的电子邮箱会手打一封邀请邮件,同意后即会加入A的开发者计划中。
B登陆苹果开发者中心,会看到自己加入的team。

image

然后A进行6.1章节的操作导出.p12证书给B安装,B进行第四部分XCode配置后,B便具有开发测试发布能力了。4.1登陆apple id部分,登陆B的apple id即可。
此时A与B便能协同开发统一ios项目了。

主要步骤:
1.导出.p12证书文件给其他的Mac电脑。
2.将协同者加入到iOS开发计划的team中,是协同者的apple id具备开发能力。

七.App打包上架

开发结束后,便进入到打包发布阶段了。

1. XCode打包上传IPA包。

首先确保cer/.p12证书、profile描述文件配置正确。
设置Version和build。
其中build为构建号,每次上传给app store connect的build都必须是唯一的,意思是每次build不可重复。
version为版本号,多个build号可以属于同一个version。

image

选择Generic iOS Device。

image

Product —— Archive。

image

Distribute App。

image

选择是上传App Store Connect还是其他。

image

选择是直接上传还是导出,直接上传即可。

image

选择第三部分创建的描述文件。

image

然后上传。

2.App Store Connect填写app信息

同样进入apple 开发者中心,进入App Store Connect,选择“我的App”。新建一个版本,建议这个版本号与上面的version一致。

image

完善版本的各种信息。并选择上一步构建上传的IPA。
这里完善后,变可以在右上角提交审核了。

原文链接:https://www.jianshu.com/p/815cba9e7a61

你可能感兴趣的:(iOS 证书配置到上架发布)