三:苹果签名原理

  • 首先Windows或者是安卓系统各种盗版软件或者是个人开发软件(非官方软件)都可以安装,iOS 为了解决这个问题对上架APP进行加签操作,如图:


    防止安装3方软件
  • 如果这样以后,只能在App Store下,不能开发调试,也不能使用企业账号打包的,为了解决这个问题,苹果使用双重验证,如图:


    双向验证
  • 申请证书步骤

  1. mac使用钥匙串创建CSR文件(文件其实就是公钥)如图:
文件
公钥生成请求证书所填写的内容
  1. App Store 使用自己的私钥加签mac 请求的CSR文件,返回证书文件
  2. Xcode 使用生成CSR文件的公钥对应的私钥加签APP包(同时APP包里边包括服务器返回的证书)
  3. 测试手机里边包含App Store服务器对应的公钥,使用公钥验签证书是否是是苹果服务器授权的,再用证书里边的公钥验证加签的APP(在这个过程中,不验证APP是否被串改(APP的完整性),因为开发过程中APP经常改动)。
  • 然而这样以后只要是开发人员打包的应用都可以装到任何手机上,所以苹果又增加了注册设备,注册AppID,权限等等的限制条件;完整的流程如图:


    完整流程
  1. 还是和原来一样使用公钥请求证书,但是必须在苹果的后台填写测试手机的UUID和程序的AppID 来生成描述文件
  2. 下载证书和描述文件,证书安装到钥匙串,而描述文件安装到Xcode,以后打包的时候,打包到APP包里边
  3. 使用私钥签名APP,这个签名保存到APP的MachO文件里边
  4. 安装到手机上的时候,公钥去验证描述文件里边的证书,设备编号,等等信息,证书里边的公钥去验证APP的签名
  5. 多人合作开发的时候,申请证书的开发人员在钥匙串中导出申请好的证书的p12证书给他人使用(证书其实就是私钥),而其他的开发人员使用这个私钥和描述文件去打包调试

你可能感兴趣的:(三:苹果签名原理)