IPA/App的大小并不能可靠地估计App Store中的最终大小。苹果公司会重新加密可执行文件,这通常意味着它不会像您上传提交包中的文件那样压缩得那么好。
一旦您获得了.app(*)文件,您需要在其上执行“显示包内容”,找到可执行文件并将其移出.app文件。将.app文件压缩为.zip文件(确保其中不再包含可执行文件),并记录该大小。将此数字加上可执行文件未压缩时的大小,再加上约100K,即可得到绝对最大的最终包大小:
TheorecticalMax = CompressedAppWithoutExec + UncompressedExec + 100K
实际上,您的可执行文件仍然可以获得不错的压缩比(如果您知道之前发布的AppStore大小,或者苹果在提交后告知了您,则可以计算出上次提交的压缩比)。例如,我们在Unity 5.0.1中构建了一个2D匹配三个标题的32位+64位可执行文件,获得了约82%的压缩比,因此在我们的情况下,数字如下所示:
提交的IPA大小:78.2MB
AppStore准备后苹果报告的大小:107.4MB(!)
经过一些严格的优化,我们将.ipa文件压缩到了:
IPA: 62MB
Uncompressed executable: 76.6MB (!!! THANKS UNITY !!!)
Compressed executable assuming similar 82% compression: 62.8MB
APP minus executable: 85.8MB
Compressed APP minus executable: 33.7MB
我们得到的最终估计为:
76.6*0.82 + 33.7 + 0.1 = 96.6MB
我们虽然提交的时间很紧,但几天前已经提交了,目前还没有收到苹果方面的任何通知告知我们的文件超过100MB(上一次提交后,在几小时内就会收到通知,可能是自动检查)。
(*) 从.xcarchive中获取.app文件,只需“显示包内容”,然后选择“Products->Applications”
。从.ipa文件中,将其重命名为.zip文件,像解压任何.zip文件一样解压缩,然后在“Payload”文件夹中查找。