iOS 的签名机制是怎么样的?【图文详解】

今天爱分享给大家带来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文件就是我们电脑中的私钥。

人已赞赏
IOS

面试题:请描述一下你的iOS应用开发流程。

2020-10-20 17:08:32

IOS

IOS开发 关键字const有什么作用?修饰类有什么作用呢

2020-10-20 17:18:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
'); })();