Xcode 6.3.2 中的管理器 - 没有估计二进制大小

Organizer in Xcode 6.3.2 - No estimate binary size

在以前的 Xcode 版本中,有一个地方可以估算您的应用程序的 archive/binary 文件大小。存档后,您可以从管理器中单击估计文件大小。在6.3中,没有这个按钮或功能!奇怪的是,在 Xcode 6.2 测试版中,此功能仍然存在。它位于隐藏的某个地方还是我遗漏了什么?请告知他们是否弃用了此功能。您可以在查找器中查看文件或存档,但它与 "estimate size".

不同

如果您想创建低于 150mb 阈值的应用程序,则必须执行此操作。将我的应用程序保持在 150mb 的蜂窝下载限制以增加 "impulse" 从 iOS 用户购买是很有帮助的。在 Android OS 中要容易得多,因为您可以简单地查看 APK 的大小。

好的,我终于找到了一个估计尺寸的骗局。完成后,您可以在查找器中查看存档,然后打开包内容。在你的 xcarchive 文件下。有一个 Products/Applications 目录。在 finder 中打开 xcarchive,然后显示包内容。

浏览至 -> 产品 -> 应用程序 ->(产品名称),您可以查看文件大小。文件大小比估计的产品大约大5mb(我不确定这个原因)。

在管理器中,您需要导出一个存档,例如 "Save for Ad Hoc Deployment"。您可以使用 "Use local signing assets"。它将导出一个 IPA 文件。此文件的大小是 App Store 上存档的估计大小。

IPA/App 大小无法为您提供 App Store 的可靠最终大小估计。 Apple 重新加密可执行文件,这通常意味着它不会像您上传以提交的包中的那样压缩。

获得 .app(*) 后,您需要对其执行“显示包内容”,找到可执行文件并将其移出 .app。将 .app 压缩为 .zip(确保其中不再包含可执行文件)并记下该大小。将该数字添加到可执行文件的未压缩大小的大小,再加上 ~100K,这将为您提供绝对最大的最终包大小:

TheorecticalMax = CompressedAppWithoutExec + UncompressedExec + 100K

实际上,您的可执行文件仍然可以获得不错的压缩率(如果您知道以前版本的 AppStore 大小,或者 Apple 已通知您post-提交,您可以计算出上次提交的压缩率)。例如,对于 2D 三消游戏,我们在 Unity 5.0.1 中构建的 32 位 + 64 位可执行文件上获得了大约 82% 的压缩率,因此在我们的例子中,数字是这样计算的:

Submitted IPA size: 78.2MB

Apple reported size after AppStore preparation: 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

仍在削减它,但我们几天前提交了,但尚未收到 Apple 的任何消息,说我们超过 100MB(他们之前在上次提交后几个小时报告,必须是自动检查)

(*) 要从 .xcarchive 获取 .app,只需“显示包内容”,然后 “Products->Applications”。从 .ipa,将其重命名为 .zip,解压缩为任何 .zip 文件,然后查看“Payload”

如果您想对 Apple 商店的大小进行最佳估计,请解压缩应用程序的 IPA 文件,将可执行文件替换为完全相同大小的随机位文件(从而使其不可压缩),然后压缩生成的(不可执行的)IPA文件夹并检查生成的 zip 文件大小。

您可以按照下面的 Apple 文档创建 App 瘦身报告,

https://developer.apple.com/library/content/qa/qa1795/_index.html

另外还有一些优化技巧。