2011-09-16 63 views
2

我知道应用程序包是由Apple签名的,所以它不能被修改,我想知道的是,如果iOS实际读入整个包并重新计算包的签名或他们使用一些技巧。对于较大的应用程序,400MB +似乎将整个bundle捆绑在一起会花费大量的时间。有没有加速验证的技巧?iOS如何验证应用程序包?

对于奖励积分:iOS在哪里存储签名?在钥匙扣?

回答

2

代码签名是应用程序包内的文件,例如Whatever.app/_CodeSignature/CodeResources。它不需要整个包的散列 - 只是其中的一些东西,比如binary和Info.plist。这就是为什么您可以在代码签名的应用程序中交换资源的原因 - 就像其中一个OS X系统安装的应用程序(几乎都是Lion的代码签名),而不会导致系统拒绝运行它。