一、IOS应用证书选择
对于一个未上线 App Store 的应用,一般来说,开发者如果需要将应用安装到某些用户的设备上,就需要将应用导出为这些设备可以直接安装的安装包(.ipa文件),安装包能否正确导出,是决定了应用能否被正确安装到设备上的关键因素。其中,最关键的一个因素是,导出安装包时,应用所使用的证书(即:签名方式)。
开发者可以选择如下两种方式的证书签名方式,来导出应用安装包:
- Ad-hoc 方式
- In-house 方式
其中,具体使用哪种方式,取决于开发者拥有苹果开发者账号的类型。例如,如果开发者拥有的是苹果个人开发者账号,则可以使用 Ad-hoc 方式;如果拥有的是苹果企业开发者账号,则可以使用 In-house 方式。关于苹果开发者账号支持的证书类型,请见下表:
个人账号 | $99 | 可以 | 100 | 无限制 | Ad Hoc, App Store |
公司账号 | $99 | 可以 | 100 | DUNS编码 | Ad Hoc, App Store |
企业账号 | $299 | 不可以 | 无限制 | DUNS编码 | Ad Hoc, In House |
教育账号 | $0 | 可以 | 100 | 教育机构 | Ad Hoc, App Store |
关于导出时,具体的操作方式,请查看:打包 iOS 的 IPA 文件
三种证书签名的区别
到目前为止,苹果为 iOS 应用共提供了三种类型的证书签名方式,每一种都有独特的用途。这三种分别是:
- Ad-hoc
- In-house
- App-Store
根据打包证书的不同,分别显示为内测版
、企业版
、App-Store版
。
关于这三种类型的证书,区别如下表所示:
Ad-hoc | 内测版 | 需要把设备UDID添加到证书才可安装 | 个人账号、公司账号、教育账号、企业账号 |
In-house | 企业版 | 任何iOS设备均可安装 | 企业账号 |
App-Store | App-Store | 只能通过App Store安装 | 个人账号、公司账号、教育账号 |
二、MAC上的操作,我这里用的虚拟机
准备苹果开发者账号,首先您需要有一个苹果的个人/公司开发者帐号。如果没有帐号可以打开https://developer.apple.com/申请加入苹果的开发者计划。如何申请网上有详细的介绍,在此不多做介绍。
申请发布证书前,您需要先本地创建一个证书请求文件,这时需要使用之前搭建好的mac os x虚拟系统。打开 应用程序-》实用工具-》钥匙串访问-》证书助理中选择“从证书颁发机构请求证书”。
打开“证书信息”界面如下图所示:用户电子邮件地址:填写您申请苹果开发者帐号的电子邮件地址;常用名称(默认即可);CA电子邮件地址空着;选择存储到磁盘,点击“继续”。
选择保存的位置,比如选择桌面,点击“存储”就可以看到在桌面上多了一个CertificateSigningRequest.certSigningRequest的证书请求文件。此文件申请ios发布证书时需要用到,请注意保存。
三、申请IOS发布证书
打开http://developer.apple.com/,点击“Member Center”进入登录界面。
进入Certificates,ldentifiers&Profiles后,选择左边的Certificates项进入详细界面,然后点击左侧菜单“Certificates”下的All。
进入Request,点击Continue进入下一步。
入Generate界面,点击下面的“Choose File”,选择桌面上本地创建的“CertificateSigningRequest.certSigningRequest”证书请求文件,点击Generate,生成发布证书。
下载发布证书
p12文件导出
将点击“download”下载您生成的证书。下载完成后双击证书安装。导入到钥匙串。在证书上单击右键,在弹出菜单上选择导出选项
给导出的证书起个名字,选择存储的位置。(注意:格式为P12的个人信息交换文件。)
给导出的P12文件设置密码,此密码在Justep X5平台上打ipa包时需要用到。需要注意的是,下一步输入的密码是系统登陆密码,不是上一步设置的
申请IOS appid
每个发布的应用需有一全唯一的AppId。在下图的左边选择 App IDs,点击右上角加号按钮,开始申请一个新的AppId。
输入App ID DescriptionName,用来描述您的AppId。(注意,必须输入英文)
查看生成的appid 继续下一步完成提交。点击左侧菜单App IDs即可回到列表看见已经生成的AppId
点击下拉菜单,选择要申请的App ID,点击Continue按钮进入下一步
选择发布证书选项,点击Continue按钮进入下一步。
选择允许安装该app的设备