2011-09-16 68 views
2

我知道應用程序包是由Apple簽名的,所以它不能被修改,我想知道的是,如果iOS實際讀入整個包並重新計算包的簽名或他們使用一些技巧。對於較大的應用程序,400MB +似乎將整個bundle捆綁在一起會花費大量的時間。有沒有加速驗證的技巧?iOS如何驗證應用程序包?

對於獎勵積分:iOS在哪裏存儲簽名?在鑰匙扣?

回答

2

代碼簽名是應用程序包內的文件,例如Whatever.app/_CodeSignature/CodeResources。它不需要整個包的散列 - 只是其中的一些東西,比如binary和Info.plist。這就是爲什麼您可以在代碼簽名的應用程序中交換資源的原因 - 就像其中一個OS X系統安裝的應用程序(幾乎都是Lion的代碼簽名),而不會導致系統拒絕運行它。