iOS证书深究
iOS证书深究
iOS的系列证书很令人头痛,但是也提供了完整的保护。
在开发过程中,遇到的基本的证书有Xcode真机调试或者打包用证书,也有消息推送证书等;每种证书分为开发版(development)和发布版(distribute)。除了证书,还有概要配置文件。众多的分类和配置,很容易混淆,接下来详细描述一番,并解释我的理解。
先看苹果开发者中心的证书界面。主要分类为:Certificate、AppID、Device、Provisioning Profile。
AppID是一切的开始,就如一个身份证,和每个人是唯一对应的;根据identifier生成不同类型的证书,都在Certificate列表里,证书之间都是平等关系,例如消息推送证书不是根据打包证书生成的,而同样是根据identifier产生的;Device列表管理测试用设备;Provisioning Profile是概要配置文件,是联系identifier、设备、证书的一个纽带,一般先选择AppID,然后指定证书和测试设备,进而产生作为纽带的配置文件。
除了上述对象,在产生部分文件过程中,还有一个证书签名请求文件(CSR),这是标识Mac OS系统的,上述文件要用在哪台Mac机上,就用该机钥匙串生成的CSR文件。
不然,会出现如下错误:将非本Mac机CSR文件支持产生的证书导入钥匙串,是找不到私钥的,这样就无法在Xcode中使用。
各种证书的生成方法和过程,想必不会太纠结,按照提示就可以了,关键在于使用过程中的关系。
证书生成好以后,下载下来,双击,就会自动加载到钥匙串的“登陆”项中,有私钥就说明添加成功了。概要配置文件也是双击,会自动加载到Xcode中。然后去Xcode的Target编译设置中,找到Code Signing项,对应debug、release、distribute三种模式,先选择相应的配置文件,然后在证书配置项里就可以看到跟配置文件关联的证书选项。
介绍一下推送证书。推送证书是根据AppID产生的,然后下载下来,格式为.cer,也可以先双击加入钥匙串,然后在钥匙串中导出p12格式的文件,也可以生产.pem格式,供不同推送程序直接加载使用。而推送证书跟应用的唯一关联关系,就存储于概要配置文件中,所以应该先生产推送证书,后生成概要配置文件。否则就会引发推送无效的问题。
再说一下Ad Hoc证书。这种证书跟发布版(distribute)类似,也就是说可以Archive成ipa安装包。但是不能上传到AppStore中。主要用于给远方合作的测试人员使用。这样既解决了远距离安装测试的问题,也避免了ipa包被他人传到AppStore中。
补充:
开发版和发布版证书会产生不同的deviceToken,但是只有前者才能在Xcode中log输出看到,因为后者只能Archive打包成ipa包,所以为了测试,可以show一个UIAlertView出来。
这就引申出消息推送的一个问题。在测试开发版和发布版app时候,同一台设备,会产生两个deviceToken,切记不要搞错了推送目标!
iOS证书深究的更多相关文章
- iOS证书失效
iOS证书突然失效 今早上班打包直接报错,错误如图 根据错误信息到“钥匙串”里面看了一下证书,证书都莫名其妙的失效了,昨天还是好好的. 重新去钥匙串从证颁发中心获取证书,然后登陆开发者账号重新申请证书 ...
- IOS证书/私钥/代码签名/描述文件
1. 相关资源 (1) 钥匙串程序(常用工具->钥匙串),用于创建证书请求.安装证书.导出私钥等 (2) IOS开发中心:https://developer.apple.com/de ...
- ios证书
内容提要: 安装app时提示 “无法下载应用,此时无法安装“XXX””.我遇到过多次是由于ios的app出现证书问题.本篇文章讲解用ios证书制作过程,以及每个步骤的解释. 正文: Xcode签名至少 ...
- iOS证书申请详细流程
一.事前准备 1.1 准备苹果帐号 首先您需要有一个苹果的开发者帐号,一个mac系统.如果没有帐号可以打开申请加入苹果的开发者计划.如何申请网上有详细的介绍,在此不多做介绍. 如果您已经有了一个帐号, ...
- iOS 证书申请和使用详解(详细版)
对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Certification(证书) ...
- iOS 证书调试的理解(Personal)
证书签名 证书:众所周知,我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,而这个过程中实际上是生成了一对公钥和私钥,保存 ...
- 阐明iOS证书和provision文件
译:阐明iOS证书和provision文件 许多iOS开发人员都会和你说在iOS开发很困惑的问题之一,将app真正运行在真实的设备(iPhone iPad而不是模拟器),因为所有的这些都会涉及从苹果获 ...
- 真机测试---iOS证书(.p12)和描述文件(.mobileprovision)
iOS证书和描述文件: 证书类型 使用场景 开发(Development)证书和描述文件 用于开发测试,在starain中打包后可在真机环境通过Safari调试 发布(Distribution)证书和 ...
- (转)iOS 证书、密钥及信任服务
iOS 证书.密钥及信任服务 ——翻译自Apple Reference<Certificate,Key,and Trust Services Programming Guide> 本章描述 ...
随机推荐
- AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】
原文:AES加密CBC模式兼容互通四种编程语言平台[PHP.Javascript.Java.C#] 由于本人小菜,开始对AES加密并不了解,在网络上花了比较多时间查阅资料整理: 先简单从百度找来介绍: ...
- Android - 错: java.lang.IllegalStateException: Already attached
错: java.lang.IllegalStateException: Already attached 本文地址: http://blog.csdn.net/caroline_wendy 可能原因: ...
- Linux/Unix
Linux/Unix 新手和专家教程 你正在找一些高质量的Linux 和 UNIX 的教程吗?如果是,这篇文章会告诉你到哪去找到这些教程.这里我们将给出超过30个相当的不错的 Linux 和 UNIX ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...
- hdu5044 Tree 树链拆分,点细分,刚,非递归版本
hdu5044 Tree 树链拆分.点细分.刚,非递归版本 //#pragma warning (disable: 4786) //#pragma comment (linker, "/ST ...
- oracle_job 清空冗余数据 ,每一分钟执行一次
参照这个例子:http://cherryqq.iteye.com/blog/855022 思路: data表中有4条数据 ,relation有3条数据,通过data_id 对应,需要定时删除 data ...
- oracle_体系结构图_逻辑结构图
1.oracle 的体系结构图 重要!!! 2.oracle的逻辑结构图
- 线程同步synchronized
一Java规划共享多个线程之间数据的能力. 当线程以异步方式訪问共享数据时.有时候是不安全的或者不和逻辑的. 比方卖火车票.同一时刻一个线程在读取数据,另外一个线程在处理数据,当处理数据的线程没有等到 ...
- hdu1848 Fibonacci again and again(SG游戏功能)
现在的变化是看不清楚SG功能什么寻求方法 临时模板标题是首当 性能mex1它正在寻求g(x) 然后XOR #include<cstdio> #include<iostream> ...
- Pki原则
核心提示: 公开密钥和公开密钥证明书,产生的私钥client要么server证书.加密的公共密钥才能解密私钥文件只.私钥只能解密公开的加密文件.公众认为,它是开放的.所有的人都能够得到它.私人还表明, ...