本文包括内容:上线证书配置、推送证书配置、蒲公英测试证书配置。
一、 简单科普
苹果开发者中心网站
开发者账号类型:
个人开发者账号:
99美金(约688元/年)(调试证书最多只能有两个),开发者直接显示申请人姓名,最多添加100台测试设备,(公司也可以)
公司开发者账号:
99美金(约688元/年)需要提供邓白氏编码,用于企业认证,可以进行团队开发管理,开发直接显示公司名称,最多添加100台测试设备
企业开发者账号:
299美金 需要提供邓白氏编码,程序不能上架到AppStore(用于企业内部办公软件等)(调试证书最多有五个),需要公司老板或者合伙人才能申请,流程复杂。测试设备无限,用于外包公司开发者测试
4个证书:
真机调试证书
推送调试证书
发布证书: 用于发布appstore的证书
推送发布证书: 用于上传appstore的程序具备推送功能
1个AppID: 就是bundleId
在开发者后台配置bundleid,如果配置精确的,那么才可以推送
如果配置含有通配符的,那么不可以推送
2个Profile文件:调试和发布都需要
有一些公司不能开发者账号: 给profile+p12文件,首先搜集你的id,也可上淘宝上买证书
1. cer证书:
功能: 认证电脑,确定这台电脑是开发者所有,才可以调试打包
上传电脑唯一标识,然后生产、安装证书到本地,调试的时候需要判断证书
2. 描述文件:
cer+udid(手机唯一标识)+bundleid ----> 登录开发者账号 -》证明该描述文件是开发者所有
xcode7自带调试free免费原理:
p12证书(通过cer证书生成,本来我的电脑可以调试,转让电脑调试权利生成p12证书)
描述文件: p12+udid+bundleid
不给开发者账号:
1. 提供手机udid,然后公司领导添加开发者账号中,
重新生成profile文件,包含你的手机的udid信息
2. 从.cer证书中导出 .p12证书, 导出profile文件
3. 安装.p12证书, xcode导入profile文件
通过蒲公英获取UDID: 在蒲公英官网的最下方
打包之前把设备信息UDID添加到开发者账号上:
然后打包以后把包上传到蒲公英后台,生成二维码即可扫描下载用safari浏览器,支持100台设备
iOS 持续集成: jekins (自动打包上传蒲公英)
二、上线证书配置
1.创建证书
点击“证书、标识符、文件”
添加证书
选择证书
开发证书(Development):最多1个(20180525日只能生成一个了)
发布证书(Production):最多3个(网传)
准备创建CSR文件(这里以Production 的 App Store And AD Hoc为例)
创建CSR文件01(打开钥匙串->证书助理->从证书颁发机构请求证书)
创建CSR文件02(填写电子邮件地址,常用名称,这两项都可以随便填,注意要把CSR文件存储到磁盘)
创建CSR文件(为CSR文件取名,建议最好取一个和你项目名称相关的名字)
选择刚刚创建的CSR文件
创建证书完毕,下载证书
Extension:CSR是Cerificate
Signing
Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
2.配置APP ID
配置项目的APPID(即BundleID)
给AppID取名(建议使用项目名称,便于区分)
设置BundleID(建议设置精确的BundleID。如果选择通配符BundleID,比如推送功能是无法使用的)
注册BundleID
确认无误,注册BundleID
注册BundleID完毕
Tips:
Bundle ID 是唯一标识符,不能重复,必须保证是唯一的(如果某些程序在真机调试的时候报 Bundle ID 的错误,更改一下 BundleID 一般可以解决)
3.配置Device
添加测试设备
获取设备的UDID(iTunes或者Xcode获取)
注册设备
Tips
这里的设备在开发者付费后1年内最多只能添加100台,如果没有在这里配置Device的UDID,Xcode在登录过开发者账号的情况下, 也可以自动修复
4.配置包含以上三者信息的描述文件
添加描述文件
选择创建发布到AppStore的类型
选择对应的AppID,如果之前AppID是按照项目名取的,这里就很好找。所以说取名一定要有套路,一定要规范!
选择对应的证书(之前是可以默认全部勾选的,但是现在不可以了,所以只能选择刚才创建的证书,看名字不好辨别,只能根据证书到期日期判断,比如今天是2018年3月20日,所以推断出,2019年3月19日的那个证书是刚刚创建的)
如果配置开发证书,这里还要多一步,选择设备,直接全部选择就好了
给描述文件取名(一定要规范!一定要规范!!一定要规范!!!)
下载描述文件
三、推送证书配置
以极光推送为例。创建 App ID和钥匙串签名为上文重复内容,如果已经做过,不必重复。
创建 App ID,填写 App ID 的 NAME 和 Bundle ID(如果 ID 已经存在可以直接跳过此步骤)。
注: 此处需要指定具体的 Bundle ID 不要使用通配符。
为 App 开启 Push Notification 功能。如果是已经创建的 App ID 也可以通过设置开启 Push Notification 功能。
填写好以上属性后,点击 “Continue”,确认 AppId 属性的正确性,点击 “Register”,注册 AppId 成功。
两种鉴权方式的配置
极光官网应用的鉴权信息一旦配置,只能用相同 bundleID 的鉴权信息进行更新,无法修改为其他的 bundleID,请在配置前仔细检查 bundleID 是否正确,若因特殊原因需要修改,请联系 [email protected]
方式一:通过 .p12 证书鉴权
如果你之前没有创建过 Push 证书或者是要重新创建一个新的,请在证书列表下面新建。
新建证书需要注意选择 APNs 证书种类。如图 APNs 证书有开发(Development)和生产(Production)两种。
注:开发证书用于开发调试使用;生产证书既能用于开发调试,也可用于产品发布。此处我们选择生产证书为例。
点击 "Continue", 之后选择该证书准备绑定的 AppID。
点击 “Continue”,会进入 CSR 说明界面。
再点 “Continue” 会让你上传 CSR 文件。( CSR 文件会在下一步创建)
打开系统自带的 KeychainAccess 创建 Certificate Signing Request。如下图操作:
填写“用户邮箱”和“常用名称” ,并选择“存储到磁盘”,证书文件后缀为 .certSigningRequest 。
回到浏览器中 CSR 上传页面,上传刚刚生成的后缀为 .certSigningRequest 的文件。
生成证书成功后,点击 “Download” 按钮把证书下载下来,是后缀为 .cer 的文件。
双击证书后,会在 “KeychainAccess” 中打开,选择左侧“钥匙串”列表中“登录”,以及“种类”列表中“我的证书”,找到刚才下载的证书,并导出为 .p12 文件。如下图:
在极光控制台上,进入你应用的应用设置中 iOS 的鉴权方式选择 “证书”,上传刚才导出的 .p12 证书。极光会在后台为你的应用进行鉴权。
Apple 的生产推送证书允许用于开发环境的推送,勾选将生产证书用于开发环境,开发者可以仅上传生产证书,即可在官网推送平台处选择开发环境做推送,不用再生成和上传开发证书。
或者直接从AppID编辑中分别配置开发和生产证书。钥匙串上传和之前一样,配置完成后分别Download。然后分别双击证书进行安装,进入证书管理界面,分别导出对应的P12证书,并设置密码。
选中AppID查看详情
点击编辑
上传钥匙串后
分别下载
方式二:通过 APNs Auth Key 鉴权
点击左侧列表 “Keys” 中的 “All”,看账户中是否已有 auth key,没有则点击 “+” 新建。
填写该 key 的描述并选择服务,如下图。 (注:在开发和生产环境均可使用,且不会过期。)
点击 “Continue” 让你确认信息,再点击 “confirm”,就可以下载该 key 了。(注意:记下 key id,而且只可以下载一次,请妥善保存。)
获取你之前创建过的应用的 Bundle ID
在开发者账户的 “Membership” 页面获取 Team ID
在极光控制台上,进入你应用的应用设置中 iOS 的鉴权方式选择 “Token Authentication”,上传 auth key 文件,并填写你的 KEY ID,TeamID,和指定应用的 BundleID。极光会在后台为你的应用进行鉴权。
Provisioning Profile 的创建
创建 Provisioning Profile 的前提,已在 Apple Developer 网站创建待发布应用所使用的 Bundle ID 的 App ID,且为该 App ID 创建了 iOS Development 证书。
在苹果开发者账号的 Provisioning Profile 页面点击下图按钮,创建 Provisioning Profile
选择此 Provisioning Profile 的环境后点击 [Continue]:
选择要创建 Provisioning Profile 的 App ID 后点击 [Continue]:
选择所属的开发者证书,(这里创建了多个开发者证书,建议只创建一个,方便管理)为了方便,选择了 [Select All],再点击 [Continue] 进入下一步:
为该 Provisioning Profile 选择将要安装的设备(一般选择 [Select All]),点击 [Continue]:
给该 Provisioning Profile 填写 Profile Name,点击 [generate] 完成创建。
填写完 Profile Name 后点击 [generate] 完成创建,之后点击 [DownLoad] 下载 Provisioning Profile
双击下载下来的 Provisioning Profile,添加到 xcode。
XCode 的证书配置教程
参照 iOS SDK 集成指南集成 JPush SDK 和上传了推送用到的 p12 证书后在编译运行前需要先配置一下证书,步骤如下:
打开 xxx-info.plist 的 Bundle identifier 项把上传到 JPush 控制台的 bundle id 填写进去:
点击项目,选择目标 TARGETS 后进入 Build Setting 界面,搜索 “Code signing”,按照下图配置
四、蒲公英测试证书配置
iOS 应用的证书选择
对于一个未上线 App Store 的应用,一般来说,开发者如果需要将应用安装到某些用户的设备上,就需要将应用导出为这些设备可以直接安装的安装包(.ipa文件),安装包能否正确导 出,是决定了应用能否被正确安装到设备上的关键因素。其中,最关键的一个因素是,导出安装包时,应用所使用的证书(即:签名方式)。
开发者可以选择如下两种方式的证书签名方式,来导出应用安装包:
1.Ad-hoc 方式
2.In-house 方式
其中,具体使用哪种方式,取决于开发者拥有苹果开发者账号的类型。例如,如果开发者拥有的是苹果个人开发者账号,则可以使用 Ad-hoc 方式;如果拥有的是苹果企业开发者账号,则可以使用 In-house 方式。关于苹果开发者账号支持的证书类型,请见下表:
账号类型价格可以发布AppStore?可以通过蒲公英安装?支持安装设备数量申请条件证书类型
关于导出时,具体的操作方式,请查看:打包 iOS 的 IPA 文件
三种证书签名的区别
到目前为止,苹果为 iOS 应用共提供了三种类型的证书签名方式,每一种都有独特的用途。这三种分别是:
1.Ad-hoc
2.In-house
3.App-Store
蒲公英会根据打包证书的不同,分别显示为内测版、企业版、App-Store版。
关于这三种类型的证书,区别如下表所示:
当一个 iOS 的应用上传到蒲公英后,蒲公英会显示出这个应用是使用哪种方式的证书来签名打包的。如图所示:
同时,在应用下载页面、应用管理页面中,也可以看到某个应用的打包方式。
注:此文仅适用于 iOS 类型的应用。
iOS 设备的 UDID
什么是 UDID?
UDID 是由子母和数字组成的 40 个字符串的序号,用来区别每一个唯一的 iOS 设备,包括 iPhones, iPads, 以及 iPod Touches,这些编码看起来是随机的,实际上是跟硬件设备特点相联系的。
例如,一个典型的 UDID 类似这样:
37f2f993bae681636e30e74b04d6b8955ba36f29
如何获取 iOS 设备 UDID?
UDID 的获得可以由 iTunes 工具来获得,也可以通过 Xcode 来获得,不过无论是 iTunes 还是 Xcode,都会稍显麻烦。蒲公英提供了一个简单的获取 UDID 的工具。
http://www.pgyer.com/udid
在 iOS 设备上打开上面的地址,即可方便的获取到当前设备的 UDID。
注意:请根据网页的提示,安装蒲公英提供的描述文件。如果手机设置了锁屏密码,则需要根据提示输入锁屏密码。
UDID 和 Ad Hoc
如果 iOS 设备要安装以 Ad Hoc 方式打包的 iOS 应用时,必须将该设备的 UDID 加入打包应用时的证书文件(.mobileprovision文件),才可以在该设备上正常安装。
如何查看应用中包含哪些 UDID?
当一个 iOS 应用的安装包文件(.ipa)被上传到蒲公英后,蒲公英会自动显示出该安装包中包含的 UDID 列表。开发者可以在如下页面中查看:
应用管理 -> 应用名称 -> 内测设备
如图所示:
点击数字,可以查看具体的 UDID 列表
向安装包中添加设备 UDID
前言
注:本文适用于只有苹果个人开发者账号、公司开发者账号、或教育开发者账号的 iOS 开发者。
对于没有企业开发者账号(299$)的开发者来说,要想使用蒲公英将自己的应用分发给其他用户的 iOS 设备,只能通过将要安装设备的 UDID 添加到应用的 mobileprovision 文件中来实现。本文说明了如何正确的将 iOS 设备的 UDID 添加到应用的 mobileprovision 文件中。
关于苹果开发者账号类型的说明,请见:iOS 应用的证书选择
1. 获取 iOS 设备的 UDID:
蒲公英提供一个非常方便的功能,可以帮助开发者快速获取一台设备的 UDID。具体可见文章:获取 iOS 设备的 UDID
2. 生成 Provisioning Profile 文件:
在获取到设备的 UDID 后,接下来,登录苹果开发者网站,添加想要安装测试应用的设备的 UDID(苹果设置最多只能添加 100 个 UDID)。
添加发布证书。点击左侧导航栏 Provisioning Profiles 中的 Distribution,添加一个新的证书:
选择Ad Hoc
选择一个App ID,这里选择要安装应用的 App ID
选择开发者
勾选需要安装应用的测试设备(一般情况下全选即可)
给 Provisioning Profiles 设置一个名字
下载 Provisioning 文件到本地
至此,我们就完成了 Provisioning Profile 文件的生成。目前这个生成的文件中,就是包含设备 UDID 的文件。接下来,我们就需要将这个文件导入 Xcode,然后重新打包应用安装包(.ipa文件)。
3. 导入 Provisioning Profile 文件到 Xcode
导入 Provisioning Profile 文件非常方便,只需要双击 Provisioning Profile,即可导入 Xcode。导入 Xcode 后,开发者就可以在项目的 Building Settings - Provisioning Profile 一项中,看到新的 Provisioning Profile 名字。
4. 打包应用的安装包(.ipa文件)
设置好 Provisioning Profile 文件后,即可使用新的 Provisioning Profile 文件来生成新的应用安装包,蒲公英对于如何生成应用安装包,有一篇文章来专门描述,请点击这里查看:打包 iOS 的 IPA 文件
5. 上传应用的安装包(.ipa文件)到蒲公英
用这种方式生成的应用安装包,上传到蒲公英后,就可被已经添加了 UDID 的设备来安装。这种应用上传到蒲公英后,蒲公英会显示为 内测版,同时会显示出这个安装包的 Provisioning Profile 文件中包含的 UDID 列表。
关于如何上传应用安装包到蒲公英,请见:应用上传 文档。
个人更喜欢fir这个平台。