iOS APP 的签名

一、苹果好的生态

        大家都知道iOS 的APP只能从苹果商店下载、而iOS系统只有一个开发者,那就是苹果公司,所以苹果公司可以在所有的iOS系统中作出统一的事情,也就是说在iOS系统中内置的一个公钥A
不像安卓那样可以随便安装任何的应用,苹果这样好的生态使得苹果公司有绝对的管理权

二、iOS APP签名角色

        角色            密钥

        Mac电脑公钥M、私钥M

        苹果服务器私钥A

        iPhone手机公钥A

三、请求证书的过程

        iOS 开发者需要在苹果开发者网站生成证书,其中的过程如下:MAC电脑会生成一个CSR文件(也就是我们的公钥M)发送给苹果的服务器,然后苹果的服务器接到这个公钥后用自己的私钥A对公钥M(CSR)进行一次SHA256加密,此时就生成了一个证书(包含公钥M和公钥M的HASH值)  这个过程就是签名,这个证书苹果服务器会发给你,然后下载存储到本地 ,也就是这代码签名在Mach-O文件里的Code Signature。

四、APP安装到手机的过程

        Xcode 在安装APP到IPhone的时候,会用私钥M 对APP进行一次签名。签名的过程:首先对APP进行一次SHA256加密,获得APP的HASH值,在用私钥M 对HASH值进行加密就生成了一个APP签名

五、手机进行验证

        首先手机里面的公钥A会对APP里面的证书进行解密,判断证书是否合法,得到公钥M以及HASH值,然后用公钥M对APP签名进行解密,判断APP是否合法

六、苹果的限制

        1.苹果开发者后台有显示一个开发者最多添加100设备,限制苹果后台注册过的设备(UDID)才可以安装    

        2.签名只能说针对唯一一个APP

        别的电脑(开发者)也想编译、安装这个App,这个时候就需要把私钥M导出成p12文件给别的开发者。因为只有你有了p12(私钥M),你才能对App进行签名。


签名的过程

你可能感兴趣的:(iOS APP 的签名)