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> 本章描述 ...
随机推荐
- Facebook的ATOM Editor的底层Electron
Facebook的ATOM Editor的底层Electron 开源牛人 zcbenz 事情是这样的,微软推出了Visual Studio Code,我很好奇他怎么做跨平台的,所以就找找资料,在他的网 ...
- linux runtime pm在深入了解的机制
一:runtime机构简介 何为runtime机制?也就是系统在非睡眠状态,设备在空暇时能够进入runtime suspend状态同一时候不依赖系统wake_lock机制.非空暇时运行runtime ...
- 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)
这个工具已经准备第二版,读者了解编程软件,可以直接使用,请阅读和使用这个场地 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容 ...
- 【Android接口实现】PhotoView——单点支持/多图像缩放,实现了触摸
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 今天给大家介绍的开源项目,是来自Github的PhotoView项目,这个项目的主要功能是实现普通的Imag ...
- android详细信息java.util.ConcurrentModificationException变态
在今天做android当项目,我遇到了这个异常,好吧.其实最不寻常遇到异常IllegalstateException.它们与我们的硬件连接SDK抛出,我想折磨学生阿玉啊.扯远了. 今天,我想回到这个异 ...
- Swift入门教程:基本语法(三)
打印输出 Swift提供了2个打印输出函数 println :输出内容后会自动换行 print :对比println,少了个自动换行的功能 示例 输出字符串 println("欢迎学习传智播 ...
- C#获取本机所有用户名
using System.DirectoryServices; using System.Runtime.InteropServices; (需要添加引用) [StructLayout(LayoutK ...
- [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)
原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日 ...
- 实现关闭ssh继续实施方案---tmux
问题1:为什么ssh一个关闭.不再执行的程序 罪魁祸首:SIGHUP 信号 让我们来看看为什么关掉形式/断开将使程序被执行死. 在Linux/Unix在.有几个概念: 进程组(process grou ...
- VMware7安装CentOS6.5教程
VMware7安装CentOS6.5教程 http://www.91linux.com/html/2014/CentOS_0415/9727.html工欲善其事,必先利其器.学习linux系统,必须先 ...