美文网首页iOS 开发 Objective-C
iOS 底层 day 16 iOS签名机制 .certSigni

iOS 底层 day 16 iOS签名机制 .certSigni

作者: 望穿秋水小作坊 | 来源:发表于2020-08-10 15:25 被阅读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 IDdevelopment.cerDevices 后生成的文件
  • 这对应我们的 ③ 签名操作
  • App ID 通常包含了 entitlements 权限相关的信息
4. 为什么同事需要你的 p12 文件才能正常运行程序到真机上呢?
  • 因为一个开发者账号只能申请两台 mac 对应的开发者证书也就是 development.cer
  • 而将 APP 运行到真机的过程,分别需要 mac 的私钥公钥。对应①和②步骤。
  • development.cer 仅仅包含了公钥,而 p12可能既包含公钥也包含私钥。
  • 所以将 p12 导出给同事,同事也能进行真机调试。
  • 另外苹果的 APNS 也需要 mac 的公钥和私钥,所以很多推送的第三方平台也会让你上传 p12 文件。

四、iOS 签名机制 - App Store

如果 APP 是从 App Store 下载的,你会发现里面没有 mobileprovision 文件,他的验证流程被简化了许多。

iOS 签名机制 - App Store

相关文章

网友评论

    本文标题:iOS 底层 day 16 iOS签名机制 .certSigni

    本文链接:https://www.haomeiwen.com/subject/vsoddktx.html