iOS证书及配置文件设置

本文结合作者的工作经历对iOS的证书(certificate)及配置文件(provisioning profile)做个总结。

1. 发布流程

在开发及发布过程中,都会用到证书及相关的配置文件。规范的配置可以保证你的应用在上架后不会因为证书问题被审核拒绝或者影响用户使用。

2. 代码签名(Code signing)

只有通过代码签名的应用才能保证其来源是可靠的,并且代码是完整的、没被更改的。代码签名由签名标示(signing identity)及配置文件(provisioning profile)共同构成。

签名标识(由苹果提供的算法生成的一对公私钥组成),Xcode通过你的签名来创建应用。

如图所示,Juan Chavez上传他的公钥到苹果,用以生成属于他的开发/产品环境证书(certificates),持有他私钥的电脑生成的应用才能匹配成功,从而保证编译/提交成功的第一个条件。编译需要在本机安装开发环境的.cer证书,发布需要在苹果官方持有有效的产品.cer证书。

保证编译/提交成功的第二个条件是配置文件(provisioning profile)。该文件在苹果开发者后台中生成,关于如何生成,参考3.2。

3. 证书、配置文件

如果你恰好拥有APP的后台管理员权限,那么在苹果开发者后台将可以查看到"Certificates, IDs & Profiles"菜单。该目录下,有Certificates, Identifiers, Devices & Provisioning Profiles四个二级菜单。它们的关系用一张图来表示:

(1) 证书(Certificates)

证书是用于应用签名的,证书包含开发(development)和产品(production)两套环境。

一般而言,开发环境会为每位开发者创建一个开发者证书,发布版本会有一个共同的产品证书。此外,如果应用包含其他的调用服务,如通知 (app push notification service),则会单独生成相应的证书。

生成证书的步骤就不再累述了,按引导完成即可。

(2) 配置文件(Provisioning Profiles)

相对于证书(certificates),配置文件(provisioning profiles)也有开发/产品两套。

用于开发的配置文件(iOS Development)

该文件主要用于开发者在沙盒手机上测试,因此创建该配置文件时,需要勾选相关的开发者证书(哪些开发人员编译的包有权限运行),及相关沙盒手机设备(该设备在Devices中注册)。

用于发布的配置文件(iOS Distribution)

该文件用于上传包到TestFlight及苹果应用商城。因此创建该配置文件时,需要勾选用于发布的证书。

值得注意的是,一旦任何的证书失效,其相关的配置文件也将变得无效,此时可以重新生成新的证书,但只需要编辑对应的配置文件,刷新它的相关证书即可。

在Xcode中开发/发布切换证书及配置文件:

4. p12文件

如上述所示,证书(certificates)是验证应用是否有效的凭证。但证书都是直接安装在mac系统里的,如何让它导入到其他系统中,以便通过该应用ID去请求苹果的其他服务(如通知等)?

这个时候,就需要用到.p12文件。.p12文件是通过特殊格式化及加密处理的,包含应用证书的文件。其导出方式如下:

在很多的移动应用代理平台,既是用.p12的方法,让用户提交自己应用的p12文件到代理平台,由平台来中转相关请求/响应。

此外,由于用于发布的证书有且只能有一个处于激活状态,而证书的生成只能包含一个开发者ID的私钥。如果团队中需要多人承担发布版本的职能,目前能想到的办法为:

  1. 创建一个专门用于发布版本的开发者ID,用其绑定发布证书
  2. 导出该开发者ID证书的.p12文件,并分享给相关发布人员
  3. 发布人员发布版本时,通过公共开发者ID打包发布

如果读者有更好的办法,请赐教,谢谢。

希望这篇文章能为你带来帮助!

相关资料:

About App Distribution Workflows

Maintaining Your Signing Identities and Certificates

Maintaining Identifiers, Devices, and Profiles

时间: 2024-10-18 02:33:37

iOS证书及配置文件设置的相关文章

iOS 证书及配置文件介绍

1.Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1)Developer Certification(开发证书) 安装在电脑上提供权限:开发人员通过设备进行真机测试. 可以生成副本供多台电脑安装: 2)Distribution Certification(发布证书) 安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序. 不可生成副本,仅有配置该证书的电脑才可使用:(副本制做介绍在下面Keychain中介绍) 2.Prov

【新技术】免ios开发者账号申请ios证书打包ipa真机调试

虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号. 想安装到自己非越狱手机测试是无能为力了. 不过新技术来了,只需要普通免费的苹果账号无需付费成为开发者就可以申请iOS证书打包ipa安装到自己手机测试,强大吧! 这个神器就是Appuploader,ios app测试及上架辅助工具. Appuploader安装教程 当然如果要上架App Store还是需要注册一个付费的苹果开发者账号. 如果只是安装ios应用到自己手机测试,现在只需要注册一个普通的苹果账号就行

李洪强iOS之集成极光推送二iOS 证书 设置指南

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #000000 } span.s1 { } span.s2 { font: 18.0px Menlo } 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning Portal中,点击App IDs进入App ID列表. 创建 App ID,如果

iOS提交应用至App Store流程及真机调试 一,证书、配置文件

前言:你要有苹果开发者账号,我用的是个人账号.其次xcode为xcode 7,由于xcode 7需要 os x 系统 10.11 或更高的版本, 所以os x 系统也需要 10.11 或更高的版本.(本文说的提交是源代码用xCode提交,不是ipa 提交,ipa提交我还没有试过,暂不阐述)关于xCode中真机调试与提交的操作,在下一篇"iOS提交应用至App Store流程及真机调试 二,xCode操作"篇幅原因,这一篇只做,证书与配置文件的说明.篇幅加上图有点长,内容其实不多,多数为

iOS开发证书和配置文件的使用

提示:之前只是根据网上的流程完成了iOS项目的发布过程,对于证书和配置文件仍是一头雾水,这里参照别人的文章,简单了解一下,毕竟以后用的着. 这里有几个问题: 什么是iOS证书,它是如何与app应用关联的? iOS开发证书和生产证书有何区别,如何使用的? 证书与配置文件(Provisioning Profiles)是什么关系,配置文件在Xcode中如何使用? 证书以及配置文件如何申请? 什么是Key Pair(公钥/私钥)?如何与证书关联的? 签名的作用是什么? 1. 准备工作: 如果想要进行iO

iOS证书说明和发布

1.首先通过钥匙串访问——证书助理——从证书颁发机构请求证书——填写证书信息(邮箱,常用名称,存储到磁盘)——存储为(自定义名称.certSigningReuqest,简称CSR文件,只是为了提交到苹果开发者账号中,然后就没用了)到本地 2.苹果开发者账号中,创建证书(Development和Production)——上传CSR文件——下载证书运行 ( xxx.cer文件) 注意:只有在当前电脑中生成本地生成证书,上传到苹果开发账号,然后下载cer文件运行后,钥匙串中才有证书以及对应的秘钥 如果

iOS证书深究

iOS证书深究 iOS的系列证书很令人头痛,但是也提供了完整的保护. 在开发过程中,遇到的基本的证书有Xcode真机调试或者打包用证书,也有消息推送证书等:每种证书分为开发版(development)和发布版(distribute).除了证书,还有概要配置文件.众多的分类和配置,很容易混淆,接下来详细描述一番,并解释我的理解. 先看苹果开发者中心的证书界面.主要分类为:Certificate.AppID.Device.Provisioning Profile. AppID是一切的开始,就如一个身

IOS证书的申请和使用

苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有证书,做了这么多次还是感觉很纠结,索性直接记录下来,日后你我他查阅都方便: 关于证书 苹果使用密文签名技术来验证App的合法性,不管是iOS应用还是Mac应用都需要相应的签名证书来作为测试或发布App用.这里主要谈谈iOS的证书,当然,Mac的证书也基本类似. 在开发iOS应用的时候,我们需要签名证书(开发证书)来验证,并允许我们在真机上对App进行测试.另外,在发布App到App store的时候,我们也需要证书(发布证书)

iOS 证书那些事

关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾.对于一个iOS开发小白.半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详.疑问.疑惑甚至困惑: 什么是App ID?Explicit/Wildcard App ID有何区别?什么是App Group ID? 什么是证书(Certificate)?如何申请?有啥用? 什么是Key Pair(公钥/私钥)?有啥用?与证书有何关联