iOS 底层 day 16 iOS签名机制 .certSigni
2020-08-10 本文已影响0人
望穿秋水小作坊
一、iOS 签名机制
1. iOS 签名机制的作用
- 保证安装到用户手机上的 APP 都是经过 Apple 官方允许的
2. 不管是真机调试,还是发布 APP,开发者都需要经过一系列复杂的步骤
- 生成
CertificateSigningRequest.certSigningRequest
文件 - 获得
ios_development.cer、ios_destribution.cer
证书文件 - 注册 device、添加 App ID
- 获得
*.mobileprovision
文件
3. 对于真机调试,现在的 Xcode 已经自动帮开发者做了以上操作,思考每一步的作用是什么?
二、iOS 签名机制-流程图
iOS 签名机制-流程图- Mac 设备拥有
公钥
、私钥
- Apple 后台用用
私钥
- 每台 iOS 设备都有苹果的
公钥
- ①②③步骤分别用
私钥
对图中信息进行签名 - ④⑤⑥步骤分别对③②①步骤生成的签名使用对应
公钥
进行验证 - 只有
所有
验证通过的 APP 才能安装到非越狱手机,并进行调试。
三、流程图映射到我们日常 iOS 开发分别对应哪些东西呢?
1.CertificateSigningRequest.certSigningRequest
- 这是我们从 Mac 电脑上的
钥匙串访问.app
获取的文件 - 这一步拿到的就是
苹果给我们的
Mac 电脑的公钥
2.development.cer
或者 distribution.cer
- 这个是我们在开发者中心,选择证书选项,上传
CertificateSigningRequest.certSigningRequest
文件获得的证书 - 这个证书就是对应我们的 ② 操作,由苹果后台给我们
公钥签名
生成的证书。
3. .mobileprovision
文件
- 这是我们选择了
App ID
、development.cer
、Devices
后生成的文件 - 这对应我们的 ③ 签名操作
-
App ID
通常包含了entitlements
权限相关的信息
4. 为什么同事需要你的 p12
文件才能正常运行程序到真机上呢?
- 因为一个开发者账号只能申请两台 mac 对应的
开发者证书
也就是development.cer
- 而将 APP 运行到真机的过程,分别需要 mac 的
私钥
和公钥
。对应①和②步骤。 -
development.cer
仅仅包含了公钥,而p12
可能既包含公钥也包含私钥。 - 所以将 p12 导出给同事,同事也能进行真机调试。
- 另外苹果的 APNS 也需要 mac 的公钥和私钥,所以很多推送的第三方平台也会让你上传 p12 文件。
四、iOS 签名机制 - App Store
iOS 签名机制 - App Store如果 APP 是从 App Store 下载的,你会发现里面没有 mobileprovision 文件,他的验证流程被简化了许多。