今天爱分享给大家带来iOS 的签名机制是怎么样的?【图文详解】,希望能够帮助到大家。
苹果的签名机制主要是为了保证安装到苹果设备上的 APP 都是经过苹果官方允许的,我们在实际开发过程中如果要发布 APP,需要经过一系列复杂的步骤去生成证书等,下面我们直接介绍苹果的签名机制。通过一张流程图来为大家解释:
Mac 设备上带有 Mac 公钥、Mac 私钥
Apple 后台存储了 Apple 私钥
iOS 设备上带有 Apple 公钥
1.App 开发完后, 编译生成 ipa 安装包,里面包括 App、Mac 私钥进行的签名
2.通过钥匙串访问,生成CertificateSigningRequest.certSigningRequest文件,即 Mac 设备的公钥。
利用 Apple 的私钥对 Mac 的公钥进行签名,上传.certSigningRequest文件,生成.cer证书文件,里面包括 Mac 公钥、签名。
3.上传devices、APP ID、entitlements,利用 Apple 私钥连同第 2 步生成的.cer证书一起签名,生成mobileprovision文件
4.手机端利用 Apple 公钥验证mobileprovision中的签名,拿到.cer证书
5.再次用 Apple 公钥进行验证签名,拿到 Mac 公钥
6.利用 Mac 公钥对 ipa 包进行验证签名,安装 App
当然,如果 App 是从 AppStore 下载安装的,说明你的ipa是经过验证的,并不需要mobileprovision来验证,所以里面是没有 mobileprovision 文件的。因为 App 上传到 Apple 后台后,苹果会用自己的私钥进行签名,企业级开发证书也是这个道理只不过apple私钥换成了你的企业账号私钥。由于我们的设备中包含 Apple 公钥,所以下载App 后,则可以直接用设备中的 Apple 公钥进行验证。
还有,如果我们编译生成 ipa 安装包后,想通过其他电脑直接给手机安装 App 时,我们只需要从自己的电脑中导出.p12文件,分享给别人就行了。.p12文件就是我们电脑中的私钥。