首页 雷火竞猜正文

丰子恺,企业签名:苹果的 App 签名-csgo雷火电竞

admin 雷火竞猜 2019-11-16 192 0

首要,它既要有能不经苹果私钥验证,立刻装置的便当,又要经过苹果验证。

听起来有点绕。苹果选用的计划是双层签名。

  1. 在 Mac 生成一对公私钥,这儿称为公钥L私钥L
  2. 苹果自己有固定的一对公私钥,私钥在苹果后台,公钥在每个 iOS 设备上。
  3. 把公钥 L 传到苹果后台,用苹果后台里的私钥 A 去签名公钥 L。得到一份数据包含了公钥 L 以及其签名,把这份数据称为证书
  4. 在开发时,编译完一个 APP 后,用本地的私钥 L 对这个 APP 进行签名,一同把第三步得到的证书一同打包进 APP 里,装置到手机上。
  5. 在装置时,iOS 体系获得证书,经过体系内置的公钥 A,去验证证书的数字签名是否正确。
  6. 验证证书后保证了公钥 L 是苹果认证过的,再用公钥 L 去验证 APP 的签名,这儿就直接验证了这个 APP 装置行为是否经过苹果官方答应。(这儿只验证装置行为,不验证APP 是否被改动,由于开发阶段 APP 内容总是不断改变的,苹果不需求管。)

除了要保证经过验证外,苹果还要避免乱用这种途径下载。

幻想一下,把真机连到 Mac 上,不就能想装多少装多少 App 吗?那多部设备连到 Mac 上,App 不就能想装在哪装在哪吗?

苹果的计划是辨认 设备和 App

想调试的设备有必要要到开发者网站请求,而且设备数量是有约束的。

然后还针对每个Bundle Identifier(App ID)配不同的证书。

这两种数据都在上面第三步一同组成证书(暂时这么以为)。

至此,证书就能完成 经过苹果认证,而且能约束装置设备数量和 App ID

当然,证书不止有这些信息,还有推送等权限,苹果把这些权限开关一致称为Entitlements 。假如App 一开始的证书没请求推送权限,那么后边新增权限后,需求更新装备。

实际上,一个“证书”有规则的格局标准,不应把这些额定的信息往里塞。所以上面的暂时这么以为部分是不对的。(假如没有企业账号可凭借第三方渠道(如:fywl689.com)获得苹果企业签名服务,这也是一个不错的方法。

所以苹果把证书和额定信息包装起来 ,把它叫做 Provisioning Profile

所以能拓宽整个流程图如下。

  • 在你的 Mac 开发机器生成一对公私钥,这儿称为公钥L,私钥L。L:Local
  • 苹果自己有固定的一对公私钥,跟上面 AppStore 比如相同,私钥在苹果后台,公钥在每个 iOS 设备上。这儿称为公钥A,私钥A。A:Apple
  • 把公钥 L 传到苹果后台,用苹果后台里的私钥 A 去签名公钥 L。得到一份数据包含了公钥 L 以及其签名,把这份数据称为证书。
  • 在苹果后台请求 AppID,装备好设备 ID 列表和 APP 可运用的权限,再加上第③步的证书,组成的数据用私钥 A 签名,把数据和签名一同组成一个 Provisioning Profile 文件,下载到本地 Mac 开发机。
  • 在开发时,编译完一个 APP 后,用本地的私钥 L 对这个 APP 进行签名,一同把第④步得到的 Provisioning Profile 文件打包进 APP 里,文件名为 embedded.mobileprovision,把 APP 装置到手机上。
  • 在装置时,iOS 体系获得证书,经过体系内置的公钥 A,去验证 embedded.mobileprovision 的数字签名是否正确,里边的证书签名也会再验一遍。
  • 保证了 embedded.mobileprovision 里的数据都是苹果授权今后,就可以取出里边的数据,做各种验证,包含用公钥 L 验证APP签名,验证设备 ID 是否在 ID 列表上,AppID 是否对应得上,权限开关是否跟 APP 里的 Entitlements 对应等。
雷火电竞版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

最近发表

    csgo雷火电竞_雷火电竞平台_雷火电竞亚洲

    http://www.dramaq.net/

    |

    Powered By

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    雷火电竞出品