iOS开发,从证书配置到上架发布

一.证书介绍

iOS开发,从证书配置到上架发布_第1张图片
证书配置页面

1.Certificates:证书

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

iOS开发,从证书配置到上架发布_第2张图片
证书介绍.png

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

iOS开发,从证书配置到上架发布_第3张图片
image.png

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查看。


iOS开发,从证书配置到上架发布_第4张图片
image.png
iOS开发,从证书配置到上架发布_第5张图片
image.png

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

iOS开发,从证书配置到上架发布_第6张图片
证书配置页面

1.申请Identifiers:App 身份证。

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


iOS开发,从证书配置到上架发布_第7张图片
image.png

填写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。


iOS开发,从证书配置到上架发布_第8张图片
image.png

下面的App 能力部分(Capabilities)根据app实际功能来选择,一般,如果有消息推送功能会把Push Notifications选上。至于其他高级功能,能用到一般也不看本篇教程了。后续文章我会介绍App Groups功能。
推送功能
iOS开发,从证书配置到上架发布_第9张图片
image.png

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


iOS开发,从证书配置到上架发布_第10张图片
image.png

app身份证:Identifiers创建完成。

2.申请Certificates:证书

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

iOS开发,从证书配置到上架发布_第11张图片
image.png

iOS开发,从证书配置到上架发布_第12张图片
image.png

iOS开发,从证书配置到上架发布_第13张图片
image.png

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


image.png

2.申请Development证书:

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

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


iOS开发,从证书配置到上架发布_第14张图片
image.png

iOS开发,从证书配置到上架发布_第15张图片
image.png

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


iOS开发,从证书配置到上架发布_第16张图片
image.png

iOS开发,从证书配置到上架发布_第17张图片
image.png

iOS开发,从证书配置到上架发布_第18张图片
image.png

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


iOS开发,从证书配置到上架发布_第19张图片
image.png

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


iOS开发,从证书配置到上架发布_第20张图片
image.png

iOS开发,从证书配置到上架发布_第21张图片
image.png

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

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


iOS开发,从证书配置到上架发布_第22张图片
image.png

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

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

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

4.推送证书申请

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


iOS开发,从证书配置到上架发布_第23张图片
image.png

选择绑定的App id:


iOS开发,从证书配置到上架发布_第24张图片
image.png

选择Mac钥匙串工具导出的.certSigningRequest文件,与这台Mac绑定。
iOS开发,从证书配置到上架发布_第25张图片
image.png

Register,Download, 改名,安装。

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


iOS开发,从证书配置到上架发布_第26张图片
image.png

iOS开发,从证书配置到上架发布_第27张图片
image.png

5. 添加Devices设备列表。

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


iOS开发,从证书配置到上架发布_第28张图片
image.png

6. 创建描述文件Profiles。

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


iOS开发,从证书配置到上架发布_第29张图片
image.png

选择绑定的APP id:


iOS开发,从证书配置到上架发布_第30张图片
image.png

选择在第一步中创建的Certificates证书,开发环境对于开发环境,生产环境对于生产环境。
iOS开发,从证书配置到上架发布_第31张图片
image.png

开发环境和Ad Hoc需要选择需要测试的Devices设备,选中的Devices才具有测试和安装能力。一般全选即可。
iOS开发,从证书配置到上架发布_第32张图片
image.png

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


iOS开发,从证书配置到上架发布_第33张图片
image.png

iOS开发,从证书配置到上架发布_第34张图片
image.png

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

四.XCode配置

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

1.XCode登陆开发者账号

iOS开发,从证书配置到上架发布_第35张图片
image.png

iOS开发,从证书配置到上架发布_第36张图片
image.png

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


iOS开发,从证书配置到上架发布_第37张图片
image.png

2. 证书配置

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


iOS开发,从证书配置到上架发布_第38张图片
image.png

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


iOS开发,从证书配置到上架发布_第39张图片
此处我已经import了,第一次选择import profile就好。

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


iOS开发,从证书配置到上架发布_第40张图片
image.png

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


iOS开发,从证书配置到上架发布_第41张图片
image.png

配置完成后,选择一个测试机device,这个测试机的udid需要在3.5章节中加入到Devices设备列表。如果以上都配置争取,就是下图这样。此时便可以真机测试了。
iOS开发,从证书配置到上架发布_第42张图片
image.png

五.App Connect注册APP

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


iOS开发,从证书配置到上架发布_第43张图片
image.png

创建一个App。


iOS开发,从证书配置到上架发布_第44张图片
image.png

这里的套装id即为3.2章节中申请的indentifiers。与之绑定。SKU可以填入申请的bundle id。
iOS开发,从证书配置到上架发布_第45张图片
image.png

创建完成后根据提示填写app的相应信息。App Store为上架到应用商店的信息,用户也可以使用Testflightg测试功能。Testflight为Apple为开发者提供的测试途径,在上架App Store之前,可以在Testflight里进行内部和外部测试,功能完善后在上架app store。
iOS开发,从证书配置到上架发布_第46张图片
image.png

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

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

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

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


iOS开发,从证书配置到上架发布_第47张图片
image.png

命一个名,方便识别。


iOS开发,从证书配置到上架发布_第48张图片
image.png

输入密码。后导出
iOS开发,从证书配置到上架发布_第49张图片
image.png

如果有推送功能,也导出推送证书的.p12。
iOS开发,从证书配置到上架发布_第50张图片
image.png

这些.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,选择用户与访问。


iOS开发,从证书配置到上架发布_第51张图片
image.png

iOS开发,从证书配置到上架发布_第52张图片
image.png

点击新增。


iOS开发,从证书配置到上架发布_第53张图片
image.png

填入B的Apple账号邮箱,选择B对于的职能,如果需要B协助管理证书描述文件等,在开发者资源那里勾选。
iOS开发,从证书配置到上架发布_第54张图片
image.png

随后B的电子邮箱会手打一封邀请邮件,同意后即会加入A的开发者计划中。
B登陆苹果开发者中心,会看到自己加入的team。
iOS开发,从证书配置到上架发布_第55张图片
image.png

然后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。


iOS开发,从证书配置到上架发布_第56张图片
image.png

选择Generic iOS Device。


image.png

Product —— Archive。


iOS开发,从证书配置到上架发布_第57张图片
image.png

Distribute App。


iOS开发,从证书配置到上架发布_第58张图片
image.png

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


iOS开发,从证书配置到上架发布_第59张图片
image.png

选择是直接上传还是导出,直接上传即可。
iOS开发,从证书配置到上架发布_第60张图片
image.png

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


iOS开发,从证书配置到上架发布_第61张图片
image.png

然后上传。

2.App Store Connect填写app信息

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


iOS开发,从证书配置到上架发布_第62张图片
我这里展示的是已经审核完成的版本

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

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