文章目录
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/ -
补充说明
- 公司和企业账号需要先申请邓白氏编码,免费,需提供公司的相关资质,可在苹果官网申请;邓白氏编码申请
- 公司开发者支持多账号管理,允许添加三种角色的账号:
- 超级管理员(Agent):即申请到的公司开发者账号,权限最高,可以管理开发者和AppStore中应用。
- 管理员(Admin):可对应用进行一些配置,添加证书,手机udid等。
- 普通管理员(Member):普通开发者,通过超级管理员或管理员邀请拥有Apple ID账号的人可成为普通管理员,只能下载和使用证书、真机调试、发布到蒲公英,不能上架到AppStore
2 创建Certificates
、APP IDs
、Provisioning Profile
Certificates证书是用来给应用程序签名和验签的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。 代码签名正是使用这种基于非对称秘钥的加密方式,用
私钥进行签名
,用公钥进行验证
,
自动创建
Xcode8 之后引用
Automatic manage signing
。XCode会自动为我们创建证书及其对应的Profile文件无需手动操作。
1)XCode中登陆开发者账号
2)设置主TARGET签名配置
选中主TARGETS
—>Signing&Capabilities
—>Signing
- 勾选
Automatic manage signing
自动管理签名 - Team选择我们登陆的开发者账号
- Bundle Identifer填写我们的应用标识(唯一)
设置好以后刷新Xcode会自动在开发者平台创建Certificates
证书、同时在本地创建App IDs
和Provisioning Profile
(内部关联的Devices是开发者平台添加的所有设备,内部关联的Certificates是开发者平台所有符合的开发者证书,包含刚才XCode自动创建的证书)。
创建结束以后,我们在开发者平台Certificates
中查看到XCode自动为我们创建的证书(包含公钥的cer文件
)
同时在本地的钥匙串访问
中可以查看到XCode自动创建的包含了Certificates及其对应的私钥的证书,XCode在编译程序时候就是使用该证书中的私钥进行签名。
同样在我们本地的 /Users/你的设备登陆名/Library/MobileDevice/Provisioning Profiles
路径下生成对应的Provisioning Profile文件
至此通过XCode自动创建开发者证书完成,我们可以在XCode中运行程序安装到Profile配置文件中包含的设备上进行调试
注意:
XCode自动生成的Provisioning Profile
配置文件是属于XCode自动管理的,不支持配置为手动签名,因此不可共享给同开发组其他伙伴使用,如果需要共享则使用下面介绍的手动创建App IDs
,Provisioning Profile
手动创建
上面介绍了Apple开发者的Certificates
、App IDs
、Provisioning Profile
通过XCode自动生成,优点是无需我们手动创建和管理证书,同时也存在无法共享Provisioning Profile
配置文件的缺点。如果我们想在同开发组内多个开发人员之间共享私钥和Profile配置文件如何操作呢?这就需要我们在开发者平台手动创建我们的AppIDs
和Provisioning Profile
.
注意
这里没有提及手动创建Certificates
证书,原因是XCode自动创建的该证书可通用,我们只需要在本地钥匙串访问
中将XCode自动创建的Certificates证书对应的包含私钥的证书导出为p12格式,连同手动创建的Provisioning Profile
包含该Certificates公钥证书配置文件一起发送给伙伴即可。当然你也可以不使用XCode自动为我们创建的Certificates
证书,而是亲力亲为,那么就开始吧…
创建Certificates
证书
1. 准备证书签名请求文件(简称CSR文件)
创建证书时, 需要上传csr文件(certSigningRequest), 这个csr文件需要在你电脑打开钥匙串, 工具栏左上角的
钥匙串访问
—>证书助理
—>从证书颁发机构请求证书
,然后保存到磁盘即可得到这个csr文件, 该文件存有设备信息, 通过这个csr文件制作的
Certificates
证书, 安装之后在本机才能获取到私钥(小钥匙图标)。
1-1)打开电脑里面的钥匙串访问
1-2)选择证书助理
—>从证书颁发机构请求证书
1-3)填写用户邮件地址和常用名,存储到磁盘
1-4)生成的证书签名请求文件
2. 生成证书(Certificates)
创建一个开发版的证书, 上传csr文件, 完成后下载该证书, 该证书为
.cer
文件. 双击这个文件, 会在你的钥匙串中看到这个证书, 点击证书左边的三角, 下边会出现一行, 这一行有小钥匙图标, 这是私钥。可以导出为 p12文件,就可以把这个p12文件和Profile配置文件一起分发给其他小伙伴使用, 这样他们在自己的电脑上双击p12文件, 自己的钥匙串也会多一个证书, 就可以进行开发了(生产证书申请流程和开发证书一致);注意
需要从本机的钥匙串访问中导出这个包含私钥的p12证书发送给小伙伴使用,而不是从开发者平台直接下载cer证书,开发者平台下载的cer格式证书仅包含公钥无法使用。
- 一般我们将本机导出包含私钥的
p12证书
文件连同包含该私钥对应的Certificate
的Provisioning Profile
配置文件一同发给伙伴使用。单独发送一个p12证书(缺少对应配置文件),或者单独一个Profile配置文件(缺少p12证书)都无法正常的进行开发。
上一步我们创建了证书签名请求文件,接下来我们利用该文件生成证书。
2-1)点击+
可进行添加证书:
2-2)选择好环境后继续需要上传之前创建的.certSigningRequest
CSR证书请求文件继续下一步。
2-3)生成对应的cer
证书,在Certificates列表中可以看到,我们将生成的证书下载下来
2-4)双击下载的Certificates
证书安装到本地(可见证书链上多了一个证书,展开的小钥匙的私钥)
创建App IDs
应用标识
Identifiers 标识决定那个APP可以真机调试
1)选择Identifiers
—>点击+
新建
2)选择App IDs
3) 填写
应用名称
、Bundle Id
,勾选应用需要支持的服务(比如推送通知、钱包等等,根据需要勾选)
4)继续下一步点击注册即可。
添加Devices
测试设备
devices 决定哪台设备可以真机调试
1)进入Apple Develop平台,选择Devices
点击的+
2)填写设备名称(可随意)和设备UDID,继续下一步点击注册即可。
PS:设备UDID获取,可通过ITunes/ITools获取,或者从Xcode中:Window
—>Devices and Simulators
获取
注意: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
点击+
2)选择环境
3)选择关联的App ID应用标识符
4)选择关联Certificates证书(可多选)
注意:
Distribution(发布环境的)描述配置文件只能关联一个发布证书
5)选择关联Devices设备(发布环境下的App Store环境不需要关联dvices)
6)填写描述配置文件的名称
7)点击继续生成了对应的Provisioning Profile文件了(这里创建了三个环境分别为:Dev、Hoc、AppStore的)
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文件一起发送出去)
至此通过XCode自动创建及手动创建Apple开发者证书等一系列配置文件及来实现XCode自动管理签名和通过手动管理签名的方式已经结束,两种方式的优缺点在上面也已经展示出来,接下来我们开始使用XCode进行开发及打包。
3 APP打包
经过上述证书等一系列配置文件申请结束,接下来我们就可以针对App进行打包或发布
具体步骤:
-
选择
Product
—>Archive
XCode会对代码进行一次构建操作等待片刻即可 -
构建结束之后跳出一个页面我们选择分发App
-
下一步选择分发方式(我们这里选择Ad Hoc打包给测试人员安装到指定设备上进行测试,如果是发布到市场选择App Store Connect)
-
下一步应用瘦身选择需要的即可
-
继续下一步填写应用配置信息
-
下一步选择发布的Certificate证书和Profile配置文件(Distributiion(发布环境)的Certificate证书我已经创建并且对应的私钥证书已经安装在本地,我这里Profile使用的是Ad Hoc,)
-
下一步开始进行打包等待片刻即可,打包结束我们选择导出即可
最后我们可通过Itunes或者Itools将ipa安装包安装到指定设备上即可。
扩展
如何将开发者证书导出给其他人员使用(Profile
+ p12
)
如果想实现将一套开发者证书供同开发组内多个开发人员使用
-
创建
Provisioning Profile
配置文件首先我们要通过开发者平台创建所需环境(Dev/Ad Hoc/App Store)的Profile配置文件(不可使用XCode
Automatically manage signing
自动管理签名生成的Profile文件),并关联对应的Certificates
、AppID
、Devices
然后将其下载备用。 -
本地导出P12证书文件
注意:
-
P12证书文件不是随意导出,必须是Profile配置文件中关联的Certificates中任意一个且具备该Certificate对应私钥的本地已安装的证书才可作为导出证书对象
。那么该导出证书对象中的私钥是从哪里来的?公钥上面说了一般是我们从开发者平台下载的Ceritficate中就包含了,而其对应的私钥是我们创建Certificate时候通过CSR文件生成,因此我们只需通过CSR创建完成Ceritficate后下载该公钥证书安装即可,本地就会生成一个包含了该公钥和其私钥的证书。
但是!如果本地没有Certificate公钥证书对应的私钥,我们是无法导出p12证书给他人使用的,此时我们只能接受他人的P12证书来使用。
步骤:
从本地的
钥匙串访问
—>登陆
—>我的证书
列表中选择Profile中关联包含任意一个Certificate公钥和私钥的证书文件,右键导出即可。 -
-
将下载的Profile和P12文件一起发送给他人即可
-
其他开发者收到后,先安装P12证书文件,然后在Xocde项目中Signing配置使用手动管理签名,导入该Profile即可使用。
具体使用参考上面如何使用Provisioning Profile文件?
如何从本地导出包含公私钥的P12证书?
进入钥匙串访问—>登陆—>我的证书 选择我们目标证书,右键导出为(.p12)
输入密码即可
生成了包含公私钥的p12
证书,发给小伙伴安装即可
证书文件Development
、Ad Hoc
、Distribution
、区别
-
Development:该类型证书适用于真机在线调试(需要包含可调试的Devices),不可用于打包
使用场景:
例如你的Tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有
Development
开发证书就够了。 -
Ad Hoc:该类型证书适用于Archive(离线打),安装至手机调试(需要包含可调试的Devices)
使用场景
如果Tester人员的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的Tester,让他通过itunes进行安装,那就需要
Ad hoc
证书了。 -
Distribution:该类型证书适用于将App分发至AppStore。
使用场景
如果你的App经过你的Tester人员测试通过,需要发布到AppStore供别人下载使用,此时就需要
Distribution
证书了。