iOS开发证书管理

最近,没啥事情,就逛逛论坛,研究一些新技术,偶尔导入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,在项目中选择运行的链接上真机,记得勾选自动管理证书选项。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

如何建立一个OpenVPN服务器在Ubuntu 14.04

当连接到不受信任的网络(例如酒店或咖啡店的WiFi)时,是否想从智能手机或笔记本电脑安全,安全地访问互联网?虚拟专用网络(VPN)允许您将不可信的网络私密安全地...

7411
来自专栏LIN_ZONE

laravel+阿里大于实现发送验证码短信

之前在laravel中使用composer安装阿里大于的扩展包,但是尝试之后,一直返回code=11的错误码,是扩展包的权限不足,具体原因还未找到

1302
来自专栏Python爬虫与数据挖掘

windows服务器ssl证书安装及配置https

然后下载证书压缩包到服务器解压有三个文件夹根据自己的需要选择不同文件夹中的证书即可,这里我用的IIS所以只需要IIS文件夹里的证书即可

7575
来自专栏移动端周边技术扩展

Charles抓包 - https

Charles下载地址 关于Charles4.2.1破解,下载完成后替换Charles显示包内容>Contents>Java>charles.jar文件

1220
来自专栏君赏技术博客

【已解决】Xcode 9对于 Fastlane 打包成功无法Export iPA

1742
来自专栏DannyHoo的专栏

苹果app上线流程

Command /usr/bin/codesign failed with exit code 1

4032
来自专栏V站

一张验证码引发对DOS的思考

他的目的就是为了让攻击目标网站或者在线服务失去相应,或者因为大量流量和IP一时间如洪水般涌入服务器,导致服务器拒绝服务,甚至宕机。

1452
来自专栏俗人笔记

如何免费将网站升级到HTTPS

由于HTTPS可以防止页面被中间人攻击、确保数据传输过程不被篡改,保证内容完整性。所以升级网站到HTTPS是大的趋向。像苹果AppStore已经禁止使用HTTP...

3146
来自专栏技术博文

ssh(安全外壳协议)

SSH 为Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础...

32011
来自专栏Youngxj

网站状态批量监控源码

1.2K4

扫码关注云+社区