最近,没啥事情,就逛逛论坛,研究一些新技术,偶尔导入github上一些开源的iOS项目学习学习别人的一些写法。不过有时间,在运行别人的项目的时候,总会报一些错误,有些是语法上的错误,老的代码在新的编译环境下不通过,还有的因为因为签名导致的错误,如常见的错误提示:“Failed to create provisioning profile.”,ios的证书管理是ios开发中必须掌握的技能,本文先简单的总结下。
证书
证书,是苹果颁发给开发者的凭证,常常以.cer结尾的文件。这个.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限。形如:
在苹果开发体系中,证书主要分为两种:开发证书和发布证书。
Developer Certification(开发证书)
安装在电脑上提供权限:开发人员通过设备进行真机测试。也可以生成副本供多台电脑安装;
Distribution Certification(发布证书)
安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。不可生成副本,仅有配置该证书的电脑才可使用;
授权文件
授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即:使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。
开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。授权文件分为两种,并对应相应的证书使用。
Developer Provisioning Profile(开发授权文件)
在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。
Distribution Provisioning Profile(发布授权文件)
在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。
开发密钥
安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本(导出证书重新命名)就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
证书申请与使用
注:本部分截图全部来源于网上,笔者在最新的苹果环境中已验证。
1,登录苹果开发者中心,地址为:https://developer.apple.com。登录成功后在页面右侧选择“Certificates”。
登录成功之后,可以看到和你账号相关的证书和账号等信息。
2,如果你的账号是新的账号,则需要重新走申请流程。首先,需要生成CSR文件。在桌面快捷中打开钥匙串访问。
打开右上方钥匙串访问栏->证书助理->从证书颁发机构请求证书…,然后填写相关信息。最后将.csr文件下载到本地硬盘。
3,如果你还没有申请App ID,那么直接申请一个就可以。打开证书管理界面,点击左侧的APP IDs选项,点击+即可。
然后填写相关的信息。
最后会有一个详细的内容列表,对应无误后,提交完成。
4,证书申请,选择证书的类型,iOS罗列了开发常用的证书类型。
如果是申请推送证书,则会关联一个App ID。
接下来,需要上传之前建好的CSR文件。
5,授权文件申请。和申请证书一样,系统会罗谢ios开发中的常用授权文件。
选择关联App ID。
6,在项目中选择运行的链接上真机,记得勾选自动管理证书选项。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/app/5933.html