估算iOS应用程序在应用程序商店中的大小

问题描述:

Apple在https://developer.apple.com/library/content/qa/qa1795/_index.html中提到它们在为开发部署导出时生成的压缩应用程序小于人们实际从应用程序商店下载的应用程序,因为在压缩之前它们加密应用有效负载。估算iOS应用程序在应用程序商店中的大小

首先,他们为什么不在压缩之前加密,而不是在加密前进行压缩?它似乎将应用程序的大小增加了90%。

其次,有没有办法让我模拟Apple所做的工作,以便我可以估计它会有多大,以及它是否会超过100MB的WWAN下载限制?

+0

请按照您发布的链接中的步骤*获取应用程序大小报告* – nathan

+0

注意:此报告不考虑加密App Store应用程序,请参阅iOS App Store特定注意事项以获取更多信息。 – meisel

+0

我知道,但这是尽可能准确,因为你可以从你的mac得到 – nathan

首先:加密的结果与随机数据不可区分。压缩依赖于重复的序列。由于随机数据没有重复序列,因此它是不可压缩的。因此加密数据不会被压缩。

其次:Apple对代码部分进行加密并且不进行压缩。模拟Apple所做的:只压缩非代码部分,添加代码部分并检查大小。这应该是接近的。 (不需要加密代码,加密不会改变大小。)

从SAI Peregrinus on Cryptography:Compress then Encrypt将减小密文的大小,但会破坏安全性。压缩,然后加密可以安全地存储静态数据。有关更多详细信息,请参阅关联答案

+0

为什么他们不会在加密前压缩代码? – meisel

+0

只有代码是加密的资源不是。 .app软件包包含资源和编译的代码,只有代码被加密。这与一些元文件相结合,这些元文件被压缩为一个用.ipa扩展名重新命名的zip文件。代码的整体压缩也是压缩的。 \t 查看苹果技术问答QA1795 [减小Apple的尺寸(https://developer.apple.com/library/content/qa/qa1795/_index.html)。 – zaph

+0

我知道只有代码是加密的,但我不明白为什么它不能在加密步骤之前进行压缩,从本质上说,这是两全其美的。 – meisel

由于多种原因,App Store中列出的“大小”可能因不同设备而不同:应用程序细化,压缩等,只要您的应用程序的压缩大小小于100 MB(大小为实际数据下载)。 所以,你不应该担心解压缩后的应用程序大小,因为它通常不考虑通过蜂窝连接下载应用程序。

您的用户应该能够通过蜂窝连接下载它。但是请注意,如果用户的设备有足够的磁盘空间用于“下载大小”,而不是“安装大小”,则它们将无法安装该应用程序,因为设备上没有足够的空间来解开它。