一般来说,对于exe等文件来说,我们发布的时候,只需要编译连接,就可以生成一个exe,然后就可以分发给使用者了。
但是这样无法保证exe文件的完整性和可靠性。
完整性:
安装包没有被别人篡改
可靠性:
包是是否是由使用者信任的开发者提供的
Appstore上的IPA包的验证规则
Appstore上的下载的IPA包,是经过苹果的私钥加密的文件,iOS设备下载完IPA包之后,使用iOS的公钥进行解密,如果能解密成功,说明IPA包是经过了苹果的审核和认证的,这里已经保证了IPA包的可靠性和完整性。
Develop、In-house、Enterprice模式下IPA包的验证规则
如果开发者在开发app的时候,每次都要经过苹果的审核,然后再下载到手机上进行调试,那就太浪费时间精力了不是吗?
苹果工程师们想到了一个权限验证机制
权限验证机制
1.开发者首先要购买拥有开发权限的开发者账号
2.本地生成一对秘钥(如果team开发,需要将私钥分享给team其他人)
3.提交开发者公钥给苹果,在开发者后台申请开发权限(包括device的uuid,语音权限,录音权限等)
4.苹果
而开发者付费购买开发者账号之后,便成为苹果认可的开发者。那么这也仅仅是苹果服务器端认可的开发者。(iOS设备此时还没有认可)
总结一点:
苹果将iOS设备对苹果的信任转化为iOS设备对开发者的信任,而在这个机制中,苹果又能控制开发者的权限,巧妙的实现了各种复杂控制