iOS打包签名原理
前言
开发iOS应用程序过程中,会涉及到真机运行、团队测试时打包adHoc或者是企业证书打包,以及上传到App Store,都会涉及到打包签名。那么为什么需要证书进行签名?其中会涉及certSigningRequest、cer、mobileprovision、p12等相关证书,这些证书的具体用途以及在相关的使用场景是什么呢?这就是本文需要探讨的内容了。
签名的原由
为什么需要签名机制呢?是为了确保安装到手机上的应用都是通过Apple官方验证和许可的。在iOS系统问世前,主流的操作系统Windows、Android都不会限制App的来源,盗版应用、恶意应用都可以随意安装。苹果为了解决这个问题,以保证整个生态系统的安全,提出了应用的签名机制。
签名的步骤
如果单一的验证iOS设备上的应用,似乎通过非对称加密的方式就可以解决,开发者通过MC(Member Center)提供的公钥加密,MC服务器通过私钥解密验证即可。可是实际开发过程中,会涉及到开发人员真机调试运行,测试人员安装调试,以及正式发布应用后用户下载安装,这种简单的非对称加密方式就无法解决这些复杂场景下的应用安全问题。所以,苹果给出了双重签名机制。
- 把Mac中的公钥M(M:代表Mac)生成CSR文件,然后在MC中向苹果请求证书。
- 苹果服务器把CSR中的公钥M取出来跟MC中的开发者账号信息一起打包并使用苹果服务器的私钥A(A:代表Apple )进行签名打包成证书。
- 把