一.证书介绍
1.Certificates:证书
Certificates作用是为Mac电脑提供开发能力,具有Certificates的Mac电脑能够真机调试、打包、上架APP到app store。
Certificates有两种环境:开发(Development)环境和生产(Distribution)环境。
Certificates还有两种类型:Software 和 Services。
简单理解:
a.开发环境(Development):直接用Xcode调试debug就属于开发环境,在模拟器上debug是不需要Certificates的。但是在真机上调试运行就需要Certificates。
b.生产环境(Distribution):上架app store,打包生成ipa包等都属于生产环境。能简单理解:只要是通过Archive生成都都是属于生产环境。
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查看。
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
1.申请Identifiers:App 身份证。
先申请app身份证:Identifiers:iOS每个APP都有自己唯一的身份证(Identifiers)。app的身份证就在这里申请,也就是app的唯一标识。
选择App IDs:
填写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。
下面的App 能力部分(Capabilities)根据app实际功能来选择,一般,如果有消息推送功能会把Push Notifications选上。至于其他高级功能,能用到一般也不看本篇教程了。后续文章我会介绍App Groups功能。
然后Register。如果你的Bundle ID没被占用,返回就能看到你创建的app id了。
app身份证:Identifiers创建完成。
2.申请Certificates:证书
1.首先,通过Mac钥匙串管理工具生成CSR请求文件,用于申请Certificates,与Certificates绑定。
邮箱地址填一个,选择存储到磁盘,会正常一个.certSigningRequest文件,重命名一下,便于识别。
2.申请Development证书:
先创建software部分,再创建推送证书部分。
1.选择iOS Development ,创建iOS Development 开发证书。Xcode11以上可以创建Apple Development 证书,不过我的app只用于iOS开发,就创建iOS证书就好了。Apple类型的证书管理起来要麻烦一些。
选择刚刚生成的.certSigningRequest文件。
这里就完成了,download下载下来,名称是ios_development.cer。最好改个名称,方便识别。
让后安装,建议右键-打开。安装没有提示,只有有个放大动画,右键打开会确保打开了。
然后再打开钥匙串管理工具,在我的证书上就能看到安装的这个证书了。
注意显示的名称不是文件名,是你开发者账号的个人team名称,跟苹果证书管理页面上的名称是一样的。注意对比过期时间也能判断
3.申请iOS Distribution (App Store and Ad Hoc)生产证书
方法与2.2步骤一样,只是选择的时候选iOS Distribution (App Store and Ad Hoc)类型。
然后上传CSR文件,Register,Download, 改名。
同样右键打开,安装,这里显示的是公司team的名称,也是与苹果证书管理页面上的名称是一样的。
有了这两个证书后,这台Mac就具有开发和生产App的能力了。
4.推送证书申请
推送证书的申请与第二部分是一样的,只是中间会让选择证书绑定的App id。
同样,需要申请Development和Distribution两种环境。
选择绑定的App id:
选择Mac钥匙串工具导出的.certSigningRequest文件,与这台Mac绑定。
Register,Download, 改名,安装。
到这一步,所以的Certificates申请安装完毕。
最终的结果:
5. 添加Devices设备列表。
很简单,按照提示将udid加进去即可。
6. 创建描述文件Profiles。
最后一步,创建描述文件,将上面创建的所有信息联系起来,用于xcode使用。
同样需要分别创建Development和Distribution两种环境的描述文件。
选择绑定的APP id:
选择在第一步中创建的Certificates证书,开发环境对于开发环境,生产环境对于生产环境。
开发环境和Ad Hoc需要选择需要测试的Devices设备,选中的Devices才具有测试和安装能力。一般全选即可。
然后下载,重命名。描述文件不需要安装。
所有需要准备的证书和描述文件都建立完毕。下面到XCode测试、发布。
四.XCode配置
以上所有.cer文件安装后,转到XCode上配置app的证书,以便能够真机测试和打包app。
主要有两部分:
1.XCode登陆开发者账号
登陆后,会看到对应的profile。点击下载profile。
2. 证书配置
为项目配置bundle Identifier,此bundle id为申请App Identifiers时填入的泛域名。
首先需要取消Automatically manage signing。否则是XCode自动管理证书,会自动创建证书和bundle id等。这样会不利于证书管理。
配置profile描述文件,需要为debug和release两种环境分别配置描述文件。选择3.6章节里创建的对应的描述文件,debug对应development, release对应Distribution。
此处有可能与钥匙串中安装的cer不对应,在这里选择一下就好了。
同样,debug对应开发环境(iPhone developpment), release对应发布环境(iPhone Distribution)。选择在3.2章节里申请后安装在钥匙串的对应证书。
配置完成后,选择一个测试机device,这个测试机的udid需要在3.5章节中加入到Devices设备列表。如果以上都配置争取,就是下图这样。此时便可以真机测试了。
五.App Connect注册APP
第三部分是为一个app配置证书、描述文件等,以便能够开发app。这部分是创建一个与第三部分对于的用于测试发布的app。第三部与App Connect是独立的两部分,App connect主要是管理上架的app。
进入Apple开发者中心,登陆开发者账号,选择App store connect。选择“我的App”。
创建一个App。
这里的套装id即为3.2章节中申请的indentifiers。与之绑定。SKU可以填入申请的bundle id。
创建完成后根据提示填写app的相应信息。App Store为上架到应用商店的信息,用户也可以使用Testflightg测试功能。Testflight为Apple为开发者提供的测试途径,在上架App Store之前,可以在Testflight里进行内部和外部测试,功能完善后在上架app store。
六.多人协作开发证书管理
相信很多情况下,都会遇到多人一起开发一个iOS项目,或者多台电脑运行测试iOS项目。这时候就涉及到多人协作的iOS证书管理。
1.多台Mac运行相同iOS项目。
第三章节中申请的cer证书,是与生成csr的mac电脑绑定的,其他的Mac 电脑无法安装,这样其他的Mac电脑就无法真机测试打包这个iOS项目了。
但是,我们可以在钥匙串中导出.p12文件给其他的Mac安装,安装后这台Mac也具有同样打包测试发布能了。
开发需要导入developer证书,发布需要导出Distribution证书。
选择对应的证书,导出。
命一个名,方便识别。
输入密码。后导出
如果有推送功能,也导出推送证书的.p12。
这些.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,选择用户与访问。
点击新增。
填入B的Apple账号邮箱,选择B对于的职能,如果需要B协助管理证书描述文件等,在开发者资源那里勾选。
随后B的电子邮箱会手打一封邀请邮件,同意后即会加入A的开发者计划中。
B登陆苹果开发者中心,会看到自己加入的team。
然后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。
选择Generic iOS Device。
Product —— Archive。
Distribute App。
选择是上传App Store Connect还是其他。
选择是直接上传还是导出,直接上传即可。
选择第三部分创建的描述文件。
然后上传。
2.App Store Connect填写app信息
同样进入apple 开发者中心,进入App Store Connect,选择“我的App”。新建一个版本,建议这个版本号与上面的version一致。
完善版本的各种信息。并选择上一步构建上传的IPA。
这里完善后,变可以在右上角提交审核了。