赞
踩
最近碰到IOS打包迁移开发环境的问题,整理了一下中间的一些细节和技术。
当需要创建一个新的App的时候,会提示需要先创建AppID
苹果的证书中使用大量的非对称加密技术和数字签名技术。
对称加密 : 发送方和接收方使用同样的私钥,在发送时候使用使用公钥加密,接受的使用私钥进行解密
非对称加密 :发送发使用接收方的公钥加密,接收方使用自己的私钥解密
摘要算法
对数据进行计算,得出数据的识别码(摘要)。常见的MD5
或者SHA
算法都属于摘要算法的范围。算法得出来的值不可逆,而且几乎可以认为是数据的唯一识别码的(在极少数的情况下,不同数据会得出相同的摘要)。
数字签名
是对数据进行摘要算法处理,然后用私钥
对摘要进行加密。
下边这个图是申请各个证书的流程
向苹果申请证书后,KeyChain
中自动添加公钥私钥,同时生成.cerSigningRequest(csr)
文件
PKCS #10
规范用ASN.1加密。CA会用CSR来创建你的SSL认证,但是它不会需要你的密钥。你需要自己保存你的密钥,这个CSR创建的认证只能和对应的密钥一起使用。所以如果你丢失了密钥,认证就会失效。
上传.cerSigningRequest
到MC
(Member Center)
开发者证书包括开发证书(Development Certificates)和发布证书(Production Certificates)
苹果的Push Notifications需要额外的SSL证书
.cer中包含证书中的信息,公钥,苹果公钥
Provisioning Profile中包含
这意味着,这个文件只能从MC下载,我们不能随意修改。
这个过程中,xcode会使用Provisioning Profile
xcode有自动签名的功能。会使用我们的私钥对应用的所有文件和framework进行签名。
然后再把他们压缩成ipa格式。就是我们最后的应用包啦。
根据证书的不同,可以发布到AppStore和Ad-hoc上。
在团队开发的时候,我们只要在一台机器上设置好以上所有步骤。再导出.p12文件,导入到其他设备中,就可以轻松搭建环境啦。
.p12
(在windows平台下为.pfx
)相当于.cer
+ 私钥
,同时包含公钥和私钥。在导出的时候需要额外的密码对数据进行额外的加密。
IOS系统内部嵌入了整套证书验证,在启动的时候大抵会验证一下这几步:
如果我们要对App进行重签名,就需要在MC上创建一个新的证书,provision文件。替换掉embedded.mobileprovision文件,用新的证书对所有文件进行签名,在对framework进行签名,最后再压缩ipa文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。