iOS 理解证书与描述文件

来源:互联网 发布:防止java接口被刷 编辑:程序博客网 时间:2024/05/11 02:29

简单的理一下iOS应用打包用到的Certificate与Provision Profile的关系


1.Certificate ——证书


1.1证书是什么?

百度百科是这么解释的:  

由此,知道证书是由权利机关办法的用以证明资格或权利的文件.

1.2 我们向Apple申请证书是在干什么?

我们向Apple申请证书,就是在向权利机关(Apple)申请资格(开发/推送/发布..).而Apple颁发给我们的证书就是对资格的证明.


1.3 申请证书时,为什么要有CSR?

我们来看一下申请证书时的提示: 


翻译一下:

当CSR文件创建的时候,会自动生成一对私钥和公钥.私钥存储在本地电脑.mac上,私钥存储默认存储在登录钥匙串中,可以在钥匙串的分类钥匙下查看.请求到的证书会包含公钥部分.


证书拿到手,最重要的一件事是如何证明这个证书是你的.不是假的,不是别人的.


CSR就提供了如何证明的方法.

CSR生成的同时,生成一对私钥公钥,私钥保存在本地,用来加密数据或者解密公钥加密的数据.公钥包含在CSR中,Apple用来加密数据及解密私钥加密的数据.这样就像把数据放在带锁的箱子中传递,使得Apple可以通过公钥来验证你就是你.


1.4 为什么要通过.p12来传递证书?

因为直接从Apple下载的证书只有公钥,没有私钥.没有办法证明这个证书是你的(潜台词:没有办法证明你有这个权利).而从本地钥匙串中导出.p12文件是包含私钥的,换句话说,可以把证书上描述的权利赋予他人.



2.Provision Profile ——描述文件


2.1 描述文件是什么?

描述文件,顾名思义,就是描述应用的文件. 


2.2 描述文件描述什么?

  如图:

    注意到描述文件里边包含了App ID , Certificates , Devices. 说明生成描述文件需要用到这些信息.


    那么再来对照一下Developer/Certificates, Identifiers & Profiles


    看着这个排布顺序,有没有感觉Provisioning Profiles 在最后就是对上面信息的总结呢?



    (当然,描述文件中还有其他信息,这里着重点明开发者时常操作的配置间的关系)














3.XCode中Code Signing的配置 




3.1 Code Signing  —— 代码签名

使用证书中公钥对应的私钥对代码进行签名(加密代码).应用在安装之后会用公钥解密,来验证应用的合法性(来源可信,内容完整).


3.2 注意事项

1.证书一定要有对应私钥.

如果是别人传递的,一定要通过生成.p12文件的方式.

2.要有对应描述文件的证书.

本地要保留有描述文件中包含的证书.


1 0