为什么要签名?
- 保证这个APP是经过苹果官方授权的
iOS签名原理
-
- MAC端
- 生成CSR文件(公钥M)
- 创建CSR文件的同时会在kehchain中生成私钥M
-
- Apple后台签名
- 生成证书文件
- 将公钥M上传至Apple后台
- Apple后台使用私钥A对公钥M进行签名
- 生成.cert证书文件
- 生成描述文件
- 1.关联App描述信息,appiddeviceID
- 2.选择证书
- 3.使用私钥A对证书和描述信息进行签名
- 4.生成描述文件provisionfile
- 3.下载证书和描述文件到MAC本地,安装证书(包含公钥和签名),此时keychanin中就会存在一个证书文件,直接导出的话,会生成一个.p12文件,p12文件包含了公钥M,私钥M,和签名
- 4.编译项目,生成.app文件,XCode使用私钥M对.app进行签名,然后.app和描述文件一起压缩成安装.ipa文件
- 5.Xcode准备把安装包装在iPhone上
- 6.iPhone对安装进行验证,用公钥A验证描述文件的签名,验证通过,则说明描述文件里的数据苹果授权的
- 7.用公钥A验证证书中的签名,验证通过,说明公钥M是安全可信任的
- 8.上述步骤验证通过后,取出描述文件里的数据进行元数据验证
- 公钥M验证App签名
- 验证iPhone时是否在设备列表中
- 验证appid是否正确
- 验证使用权限是否跟Entitlement对应等
网友评论