iOS开发-Certificates、Identifiers和Profiles详解
如果是才进入公司进行开发的iOS程序猿来说人难免会对苹果的证书、配置文件,尤其有的需要重头开始的公司来说,最简单的来说真机调试是免不了和这些东西打交道的,有的时候赶时间做完了可能心里也犯嘀咕,本文根据个人经验对Certificates、Identifiers和Profiles做下简单的介绍,不过默认你已有苹果账号,如果你还在学习的路上,将来有一天你也会有的,开始正题吧:
1.登录苹果官网,苹果在WWDC15之后对网站进行了改版,以下是最新的截图:
2.三合一的管理模式:
3.管理iOS Apps,这个就是网上有的时候会看到的图片,隐藏了账号信息;
如果进入了这里就到了文章的重点,接下来就解释这些选项的作用(本文链接:http://www.cnblogs.com/xiaofeixiang,iOS技术交流群:228407086)
Certificates(证书)
证书主要分Development和Production两类,Development证书用来开发和调试应用程序,Production主要用来分发应用程序,不同的种类的证书功能不一样:
Development:
- App Development (1年):用来开发和真机调试应用程序。
- Push Development (1年):用来调试Apple Push Notification
Production:
App Store and Ad Hoc (3年):发布App Store和AdHoc的应用程序;
Apple Push Notification service SSL (Production)(1年):在发布版本中使用Apple Push Notification;
VoIP Services Certificate
Pass Type ID Certificate
Website Push ID Certificate
标注过的证书都用过,未标注本人没有使用过,不敢误人子弟。在Xcode的Code Signing中,可以设置用于为代码签名的证书。
小贴士:
我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,如图所示:
这个过程中实际上是生成了一对公钥和私钥,保存在自己的Mac的Keychain中。代码签名正是使用这种基于非对称秘钥的加密方式,用私钥进行签名,用公钥进行验证。图片来源网上,原理大同小异,在自己Mac的keychain的login中存储着相关的公钥和私钥,而证书中包含了公钥。你只能用私钥来进行签名,所以如果没有了私钥,证书也就没有意义。因此在申请完证书时,最好导出并保存好你的私钥。当你的团队有新成员或其他设备需要共享证书时,用同一私钥就可以。私钥保存在自己的Mac中,而苹果生成的Certificate中包含了公钥。当用自己的私钥对代码签名后,苹果就可以用证书中的公钥来进行验证,确保是本人对代码进行了签名,而不是被冒充,确保代码的完整性。
Identifiers(标识)
Identifiers分为六种,App IDs,Pass Type IDs,Website Push IDs,iCloud Containers,App Groups和Merchant IDs,其中App IDs是最常用的,其他的五种没有使用过,重点说下App IDs,App IDs用于标识一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的或者匹配的。App IDs主要有以下两种:
- Explicit App ID:唯一的App ID,这种App ID用于唯一标识一个应用程序,例如com.cnblogs.xiaofeixiang,标识Bundle ID为com.cnblogs.xiaofeixiang的程序。
- Wildcard App ID:通配符App ID,用于标识一组应用程序。例如*可以表示所有应用程序,而com.cnblogs.*可以表示以com.cnblogs开头的所有应用程序。
每创建一个App ID,我们都可以设置该App ID所使用的APP Services,也就是其所使用的额外服务,如下图所示可以进行勾选:
Devices(设备)
随着苹果帝国的发展,现在设备类型分为Apple TV,Apple Watch,iPad,iPhone和iPod Touch五类。Devices中包含了该账户中所有可用于开发和测试的设备。 每台设备使用UDID来唯一标识。每个账户中的设备数量限制是100个。Disable 一台设备也不会增加名额,只能过了一年之后才能删除,所以如果机器比较多慎用。
Profiles (配置文件)
配置文件,分为两种,一种是Development,另外一种是Distribution,如下图:
Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备,我们先思考两秒,如果没有配置文件我们如何在真机上运行一个应用程序:
①通过证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的。。
②指明它的App ID,并且验证Bundle ID是否与其一致;
③如果是真机调试,需要确认这台设备能否用来运行程序;
Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件,而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。团队的Provisioning Profile中包含了该Provisioning Profile对应的App ID,可使用的证书和设备,通过Provisioning Profile打包程序拥有与之相应的证书,并且是将App ID对应的程序运行到Devices中包含的设备上去。
本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4564585.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2015 年 Android 碎片化情况让人吃惊
目前,Android生态系统是完全不同的OEM厂商和相同操作系统的不同版本构成的“烂摊子”,现在一项调查显示了到目前为止2015年Android生态系统的碎片化情况,它调查了68万2000台 Android设备,其中24093是今年新开机的设备,其中37.8%是三星手持设备,所有设备代表了1294家厂商,厂商数量如此之多令人印象深刻。 下面GIF图显示,不同的Android设备数量惊人,同时 与2014年相比,Android设备厂商在2015年又增加不少,两年来Android的碎片化已经从2013年的11868翻倍。2015年已经过去 一半,Android版本仍非常混乱。根据公开的数据,5.7%的Android智能手机运行Android 2.3姜饼操作系统,而大部分智能手机采用Android 4.4 Kitkat操作系统,占据主导地位,Android 5.0和5.1操作系统还处于少数地位。 相比之下,iOS平台上,85%的iPhone已经采用iOS 8操作系统,只有2%的iPhone还在采用iOS 7之前的版本。不过好消息是Android OEM厂商已经开始找出智能手机需要什么样的传感...
- 下一篇
今年 0-day 漏洞数量可能超过去年
丹麦安全公司Secunia在黑帽大会上公布了2015年安全漏洞发展趋势报告。根据这份报告显示,2015年已经发现15个 0 day 漏洞,全年零日漏洞总数可能超过2014年发现的25个 0 day 漏洞。2015年到现在发现的 0 day 漏洞,大都集中在流行的Adobe和微软产品当中,跨越个人和专业的IT系统。卡斯帕Lindgaard,Secunia公司研究和安全总监表示,越来越多的 0 day 漏洞绝对不是惊喜。 但是,如果 0 day 漏洞数量锐减,就将意味着更多的 0 day 漏洞被黑客团队拿来卖给第三方,就如同意大利那家安全公司的所作所为,向多个政府和企业销售利用 0 day 漏洞的间谍软件。 Secunia 公司报告显示,从今年1月1日至7月31日,外界总共发现了9225个漏洞,去年同期这个数字是9560。今年到现在发现的9225个漏洞当中,极度危急漏洞的比例从去年同期的0.3%提升到0.5%,高度危急的漏洞比例从去年同期的11.1%提升到今年的12.7%,),而中等危急的漏洞比例从去年同期 的28.2%下降至23.7%。 该公司这份报告还显示,今年以来苹果iOS操作系统发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16