iOS签名机制
一、 通过App Store安装
1. 由苹果生成一对公私钥,公钥内置与iOS设备中,私钥由苹果保管。
2. 开发者上传App给苹果审核后,苹果用私钥对App数据进行签名,发布至App Store。
3. iOS设备下载App后,用公钥进行验证,若正确,则证明App是由苹果认证过的。
二、通过Xcode安装(真机调试)
由于不需要提交苹果审核,所以苹果没办法对App进行签名,因此苹果采用了双重签名的机制。Mac电脑有一对公私钥,苹果还是原来的一对公私钥。
1. 开发时需要真机测试时,需要从钥匙串中的证书中心创建证书请求文件(CSR),并传至苹果服务器。
2. Apple使用私钥对 CSR 签名,生成一份包含Mac公钥信息及Apple对它的签名,被称为证书(CER:即开发证书,发布证书)。
3. 编译完一个App后,Mac电脑使用私钥对App进行签名。
4. 在安装App时,根据当前配置把CER证书一起打包进App。
5. iOS设备通过内置的Apple的公钥验证CER是否正确,证书验证确保Mac公钥时经过苹果认证的。
6. 再使用CER文件中Mac的公钥去验证App的签名是否正确,确保安装行为是经过苹果允许的。
苹果只是确定这里的安装行为是否合法,不会验证App内容是否修改。
在日常开发中,我们都会在工程中选择“Automatically manage signing”,让Xcode来完成一系列的签名工作
网友评论