IOS开发者证书申请及打包步骤

文章目录

      • 1 创建苹果开发者账号
      • 2 创建`Certificates`、`APP IDs`、`Provisioning Profile`
        • 自动创建
        • 手动创建
          • 创建`Certificates`证书
          • 创建`App IDs`应用标识
          • 添加`Devices`测试设备
          • 创建`Provisioning Profiles`配置文件
      • 3 APP打包
    • 扩展
      • 如何将开发者证书导出给其他人员使用(`Profile` + `p12`)
      • 如何从本地导出包含公私钥的P12证书?
      • 证书文件`Development`、`Ad Hoc`、`Distribution`、区别
      • 参考

1 创建苹果开发者账号

  • 账号类型

    账号类型 费用 应用审核周期 应用上架 特点
    个人 99$ 一周 仅支持AppStore 1、只能有一个开发者
    2、装机量100台
    3、需提供支持Visa信用卡
    公司 99$ 半个月以上 仅支持AppStore 1、允许多个开发者
    2、装机量100台
    3、需提供信用卡、公司地址、营业执照编号、授权许可
    4、需要申请邓白氏编码
    企业 299$ 半个月以上 支持AppStore和企业内部署 1、装机量不限制
    2、可发布内部APP
    3、提供代码级别技术支持
    4、需申请邓白氏码
  • 申请地址

    账号类型 申请地址
    个人和公司 https://developer.apple.com/programs/
    企业 https://developer.apple.com/programs/enterprise/
  • 补充说明

    1. 公司和企业账号需要先申请邓白氏编码,免费,需提供公司的相关资质,可在苹果官网申请;邓白氏编码申请
    2. 公司开发者支持多账号管理,允许添加三种角色的账号:
      • 超级管理员(Agent):即申请到的公司开发者账号,权限最高,可以管理开发者和AppStore中应用。
      • 管理员(Admin):可对应用进行一些配置,添加证书,手机udid等。
      • 普通管理员(Member):普通开发者,通过超级管理员或管理员邀请拥有Apple ID账号的人可成为普通管理员,只能下载和使用证书、真机调试、发布到蒲公英,不能上架到AppStore

2 创建CertificatesAPP IDsProvisioning Profile

Certificates证书是用来给应用程序签名和验签的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。 代码签名正是使用这种基于非对称秘钥的加密方式,用私钥进行签名,用公钥进行验证

自动创建

Xcode8 之后引用Automatic manage signing 。XCode会自动为我们创建证书及其对应的Profile文件无需手动操作。

1)XCode中登陆开发者账号

IOS开发者证书申请及打包步骤_第1张图片

2)设置主TARGET签名配置

选中主TARGETS—>Signing&Capabilities—>Signing

  • 勾选Automatic manage signing自动管理签名
  • Team选择我们登陆的开发者账号
  • Bundle Identifer填写我们的应用标识(唯一)
    IOS开发者证书申请及打包步骤_第2张图片

设置好以后刷新Xcode会自动在开发者平台创建Certificates证书、同时在本地创建App IDsProvisioning Profile(内部关联的Devices是开发者平台添加的所有设备,内部关联的Certificates是开发者平台所有符合的开发者证书,包含刚才XCode自动创建的证书)。

创建结束以后,我们在开发者平台Certificates中查看到XCode自动为我们创建的证书(包含公钥的cer文件)
IOS开发者证书申请及打包步骤_第3张图片
同时在本地的钥匙串访问中可以查看到XCode自动创建的包含了Certificates及其对应的私钥的证书,XCode在编译程序时候就是使用该证书中的私钥进行签名。

IOS开发者证书申请及打包步骤_第4张图片
同样在我们本地的 /Users/你的设备登陆名/Library/MobileDevice/Provisioning Profiles 路径下生成对应的Provisioning Profile文件
在这里插入图片描述
至此通过XCode自动创建开发者证书完成,我们可以在XCode中运行程序安装到Profile配置文件中包含的设备上进行调试
IOS开发者证书申请及打包步骤_第5张图片
在这里插入图片描述
注意:

XCode自动生成的Provisioning Profile配置文件是属于XCode自动管理的,不支持配置为手动签名,因此不可共享给同开发组其他伙伴使用,如果需要共享则使用下面介绍的手动创建App IDs,Provisioning Profile

手动创建

上面介绍了Apple开发者的CertificatesApp IDsProvisioning Profile通过XCode自动生成,优点是无需我们手动创建和管理证书,同时也存在无法共享Provisioning Profile配置文件的缺点。如果我们想在同开发组内多个开发人员之间共享私钥和Profile配置文件如何操作呢?这就需要我们在开发者平台手动创建我们的AppIDsProvisioning Profile.

注意

这里没有提及手动创建Certificates证书,原因是XCode自动创建的该证书可通用,我们只需要在本地钥匙串访问中将XCode自动创建的Certificates证书对应的包含私钥的证书导出为p12格式,连同手动创建的Provisioning Profile包含该Certificates公钥证书配置文件一起发送给伙伴即可。当然你也可以不使用XCode自动为我们创建的Certificates证书,而是亲力亲为,那么就开始吧…

创建Certificates证书

1. 准备证书签名请求文件(简称CSR文件)

创建证书时, 需要上传csr文件(certSigningRequest), 这个csr文件需要在你电脑打开钥匙串, 工具栏左上角的

钥匙串访问 —> 证书助理 —> 从证书颁发机构请求证书,

然后保存到磁盘即可得到这个csr文件, 该文件存有设备信息, 通过这个csr文件制作的Certificates证书, 安装之后在本机才能获取到私钥(小钥匙图标)。

1-1)打开电脑里面的钥匙串访问
IOS开发者证书申请及打包步骤_第6张图片
1-2)选择证书助理—>从证书颁发机构请求证书

1-3)填写用户邮件地址和常用名,存储到磁盘
IOS开发者证书申请及打包步骤_第7张图片
1-4)生成的证书签名请求文件
在这里插入图片描述
2. 生成证书(Certificates)

创建一个开发版的证书, 上传csr文件, 完成后下载该证书, 该证书为.cer文件. 双击这个文件, 会在你的钥匙串中看到这个证书, 点击证书左边的三角, 下边会出现一行, 这一行有小钥匙图标, 这是私钥。可以导出为 p12文件,就可以把这个p12文件和Profile配置文件一起分发给其他小伙伴使用, 这样他们在自己的电脑上双击p12文件, 自己的钥匙串也会多一个证书, 就可以进行开发了(生产证书申请流程和开发证书一致);

注意

  • 需要从本机的钥匙串访问中导出这个包含私钥的p12证书发送给小伙伴使用,而不是从开发者平台直接下载cer证书,开发者平台下载的cer格式证书仅包含公钥无法使用。
  • 一般我们将本机导出包含私钥的p12证书文件连同包含该私钥对应的CertificateProvisioning Profile配置文件一同发给伙伴使用。单独发送一个p12证书(缺少对应配置文件),或者单独一个Profile配置文件(缺少p12证书)都无法正常的进行开发。

上一步我们创建了证书签名请求文件,接下来我们利用该文件生成证书。
IOS开发者证书申请及打包步骤_第8张图片
2-1)点击+可进行添加证书:
IOS开发者证书申请及打包步骤_第9张图片
2-2)选择好环境后继续需要上传之前创建的.certSigningRequestCSR证书请求文件继续下一步。
IOS开发者证书申请及打包步骤_第10张图片
2-3)生成对应的cer证书,在Certificates列表中可以看到,我们将生成的证书下载下来
IOS开发者证书申请及打包步骤_第11张图片
2-4)双击下载的Certificates证书安装到本地(可见证书链上多了一个证书,展开的小钥匙的私钥)
IOS开发者证书申请及打包步骤_第12张图片

创建App IDs应用标识

Identifiers 标识决定那个APP可以真机调试

1)选择Identifiers—>点击+新建
IOS开发者证书申请及打包步骤_第13张图片
2)选择App IDs
IOS开发者证书申请及打包步骤_第14张图片3) 填写应用名称Bundle Id,勾选应用需要支持的服务(比如推送通知、钱包等等,根据需要勾选)
IOS开发者证书申请及打包步骤_第15张图片
4)继续下一步点击注册即可。
IOS开发者证书申请及打包步骤_第16张图片

添加Devices测试设备

devices 决定哪台设备可以真机调试

1)进入Apple Develop平台,选择Devices点击的+
IOS开发者证书申请及打包步骤_第17张图片
2)填写设备名称(可随意)和设备UDID,继续下一步点击注册即可。
IOS开发者证书申请及打包步骤_第18张图片
PS:设备UDID获取,可通过ITunes/ITools获取,或者从Xcode中:Window—>Devices and Simulators获取
IOS开发者证书申请及打包步骤_第19张图片
IOS开发者证书申请及打包步骤_第20张图片
注意:udid需要双击全选复制,防止复制不全!!

创建Provisioning Profiles配置文件

Provisioning Profile 应用配置描述文件。通过苹果开发者账号创建,其中包含了 certificates证书App ID设备

试想一下:如果要我们打包或者直接在真机上运行一个应用程序,出于安全考虑,我们需要使用证书来对这个App进行签名,用来标识这个应用程序是合法的、安全的、完整的等等。然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里

该描述文件有两种

  • Development:ios app development是真机调试的描述文件
  • Distribution
    • Ad Hoc :用于安装你的App到有限的注册设备上调试
    • App Store:用于发布你的App到AppSotre上

1)进入Apple Develop开发者平台,选择Provisioning Profiles点击+
IOS开发者证书申请及打包步骤_第21张图片
2)选择环境
IOS开发者证书申请及打包步骤_第22张图片
3)选择关联的App ID应用标识符
IOS开发者证书申请及打包步骤_第23张图片
4)选择关联Certificates证书(可多选)

注意

  • Distribution(发布环境的)描述配置文件只能关联一个发布证书
    IOS开发者证书申请及打包步骤_第24张图片
    5)选择关联Devices设备(发布环境下的App Store环境不需要关联dvices)
    IOS开发者证书申请及打包步骤_第25张图片
    6)填写描述配置文件的名称
    IOS开发者证书申请及打包步骤_第26张图片
    7)点击继续生成了对应的Provisioning Profile文件了(这里创建了三个环境分别为:Dev、Hoc、AppStore的)
    IOS开发者证书申请及打包步骤_第27张图片

8)如何使用Provisioning Profile文件?

Provisioning Profile配置文件主要用于手动管理签名,而非使用XCode的Automatically manage signing自动管理签名功能,从而实现多人可共享私钥+Provisioning Profile配置文件进行开发。

我们将不同环境的Profile配置文件下来到本地,可在XCode中使用手动方式来管理签名(可手动下载,然后双击加在到XCode中,或者在XCode的Signing—>Provisioning Profile—>Download Profile下载),XCode加载后可在本地的/Users/你的设备登陆名/Library/MobileDevice/Provisioning Profiles路径下查看到
在这里插入图片描述
具体使用步骤如下:

选择主TARGET—>Signing&Capabilities—>Signing

  • 不要勾选Automatically manage signing手动管理签名
  • Bundle Identifier:填写Profile配置文件关联的App ID
  • Provisioning Profile:选择我们下载的所需环境的Profile文件即可
  • Signing Certificate:签名证书必须已经安装在本地了且是被包含在Profile配置文件中的Certificate对应的私钥证书(如果是共享给伙伴,则需要将本地包含私钥的证书导出为p12格式+对应的Profile文件一起发送出去)
    IOS开发者证书申请及打包步骤_第28张图片
    至此通过XCode自动创建及手动创建Apple开发者证书等一系列配置文件及来实现XCode自动管理签名和通过手动管理签名的方式已经结束,两种方式的优缺点在上面也已经展示出来,接下来我们开始使用XCode进行开发及打包。

3 APP打包

经过上述证书等一系列配置文件申请结束,接下来我们就可以针对App进行打包或发布

具体步骤:

  • 选择Product—>Archive XCode会对代码进行一次构建操作等待片刻即可

  • 构建结束之后跳出一个页面我们选择分发App
    IOS开发者证书申请及打包步骤_第29张图片

  • 下一步选择分发方式(我们这里选择Ad Hoc打包给测试人员安装到指定设备上进行测试,如果是发布到市场选择App Store Connect)
    IOS开发者证书申请及打包步骤_第30张图片

  • 下一步应用瘦身选择需要的即可
    IOS开发者证书申请及打包步骤_第31张图片

  • 继续下一步填写应用配置信息
    IOS开发者证书申请及打包步骤_第32张图片

  • 下一步选择发布的Certificate证书和Profile配置文件(Distributiion(发布环境)的Certificate证书我已经创建并且对应的私钥证书已经安装在本地,我这里Profile使用的是Ad Hoc,)
    IOS开发者证书申请及打包步骤_第33张图片

  • 下一步开始进行打包等待片刻即可,打包结束我们选择导出即可
    IOS开发者证书申请及打包步骤_第34张图片
    最后我们可通过Itunes或者Itools将ipa安装包安装到指定设备上即可。

扩展

如何将开发者证书导出给其他人员使用(Profile + p12)

如果想实现将一套开发者证书供同开发组内多个开发人员使用

  1. 创建Provisioning Profile配置文件

    首先我们要通过开发者平台创建所需环境(Dev/Ad Hoc/App Store)的Profile配置文件(不可使用XCodeAutomatically manage signing自动管理签名生成的Profile文件),并关联对应的CertificatesAppIDDevices然后将其下载备用。

  2. 本地导出P12证书文件

    注意

    • P12证书文件不是随意导出,必须是Profile配置文件中关联的Certificates中任意一个且具备该Certificate对应私钥的本地已安装的证书才可作为导出证书对象

      那么该导出证书对象中的私钥是从哪里来的?公钥上面说了一般是我们从开发者平台下载的Ceritficate中就包含了,而其对应的私钥是我们创建Certificate时候通过CSR文件生成,因此我们只需通过CSR创建完成Ceritficate后下载该公钥证书安装即可,本地就会生成一个包含了该公钥和其私钥的证书。

      但是!如果本地没有Certificate公钥证书对应的私钥,我们是无法导出p12证书给他人使用的,此时我们只能接受他人的P12证书来使用。

    步骤:

    从本地的钥匙串访问—>登陆—>我的证书列表中选择Profile中关联包含任意一个Certificate公钥和私钥的证书文件,右键导出即可。

  3. 将下载的Profile和P12文件一起发送给他人即可

  4. 其他开发者收到后,先安装P12证书文件,然后在Xocde项目中Signing配置使用手动管理签名,导入该Profile即可使用。

具体使用参考上面如何使用Provisioning Profile文件?

如何从本地导出包含公私钥的P12证书?

进入钥匙串访问—>登陆—>我的证书 选择我们目标证书,右键导出为(.p12)输入密码即可
IOS开发者证书申请及打包步骤_第35张图片
IOS开发者证书申请及打包步骤_第36张图片
IOS开发者证书申请及打包步骤_第37张图片
生成了包含公私钥的p12证书,发给小伙伴安装即可
IOS开发者证书申请及打包步骤_第38张图片

证书文件DevelopmentAd HocDistribution、区别

  • Development:该类型证书适用于真机在线调试(需要包含可调试的Devices),不可用于打包

    使用场景:

    例如你的Tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有Development开发证书就够了。

  • Ad Hoc:该类型证书适用于Archive(离线打),安装至手机调试(需要包含可调试的Devices)

    使用场景

    如果Tester人员的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的Tester,让他通过itunes进行安装,那就需要Ad hoc证书了。

  • Distribution:该类型证书适用于将App分发至AppStore。

    使用场景

    如果你的App经过你的Tester人员测试通过,需要发布到AppStore供别人下载使用,此时就需要Distribution证书了。

参考

  • 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  • 最新xcode打包IPA(完整详细图文)

你可能感兴趣的:(IOS)