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 条评论
登录 后参与评论

相关文章

来自专栏V站

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

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

1572
来自专栏FreeBuf

浅析PyCmd加密隐形木马

之前写了一个基于python的一句话木马客户端程序,这个程序的作用大致就是为了绕过防护设备,使敏感数据能在网络里自由穿梭。由于编程能力有限,当时以python程...

4773
来自专栏君赏技术博客

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

2032
来自专栏娱乐心理测试

iOS ipa包进行重新签名安装好brew,先用brew安装ruby,然后用gem安装sigh。安装好后,就可以直接使用了

1814
来自专栏Zachary46

Andriod Studio两种签名机制V1和V2的区别

Android Studio 2.2以上版本打包apk的时候,我们会发现多了个签名版本(v1、v2)选择,如下图红色方框所示

1253
来自专栏DannyHoo的专栏

苹果app上线流程

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

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

Charles抓包 - https

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

1400
来自专栏俗人笔记

如何免费将网站升级到HTTPS

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

3466
来自专栏HadesMo

调用STS接口生成临时密钥

APPID获取链接:https://console.cloud.tencent.com/developer

5597
来自专栏云计算教程系列

加固你的Roundcube服务器

Roundcube是一个Webmail客户端,具有强大的安全功能和来自其插件存储库的广泛自定义选项。本文介绍如何进一步保护基本的现有Roundcube安装。

2980

扫码关注云+社区

领取腾讯云代金券