注意:避免使用 LZMA 压缩,因为 Asset Bundles "...results in smaller compressed Asset Bundles but they must be entirely decompressed before use.", Unity。
尺码
尺寸准确吗?
当我存档并从 Testflight 下载游戏是 2GB 大小,知道要做什么或为什么这么大吗?
您不能只查看从 TestFlight 下载的存档/捆绑包或文件来确定应用的大小,因为在这些开发/测试场景中生成的二进制文件包含其他文件(例如 DSYM ) 不会以最终形式出现,从而扭曲结果。1
Apple 在这个主题上有这样的说法(我的重点):
在开发过程中,为您的应用获取准确的下载和安装大小的唯一方法是在您的 Mac 上创建应用大小报告。但是,如果您的应用可通过 App Store 或 TestFlight 应用获得,App Store Connect 会提供最准确的尺寸信息。它会显示应用的每个变体的尺寸并在超过通过移动互联网连接下载的限制时发出警告。1
也不必太担心 TestFlight,因为构建仍然会大于比 AppStore 中显示的要大。1
为使用 TestFlight 进行测试而分发的应用程序包含 App Store 版本所没有的额外数据,因此 TestFlight 版本更大。当您在 App Store 中提供这些附加数据时,它不会包含在您的应用程序中。 1
此外,假设您的应用获得批准,Apple 将修改您的提交,包括添加 DRM 和重新压缩所有内容。所以您可能需要等待才能看到最终尺寸。1
但是,与您上传的二进制文件相比,您的应用在 App Store 获批后的最终大小可能会稍大一些。当 App Store 对您应用的二进制文件执行额外处理、添加 DRM 以防止应用盗版然后重新压缩二进制文件时,可能会发生这种大小增加。1
如何获取更准确的尺码信息?
我认为最好的方法是生成应用程序大小报告。 Apple 网站上有关于创建最准确的下载和安装大小的文件大小报告的说明。2
这是一个示例(由 Apple 提供):2
App Thinning Size Report for All Variants of ExampleApp
Variant: ExampleApp.ipa
Supported variant descriptors: [device: iPhone11,4, os-version: 12.0], [device: iPhone9,4, os-version: 12.0], [device: iPhone10,3, os-version: 12.0], [device: iPhone11,6, os-version: 12.0], [device: iPhone10,6, os-version: 12.0], [device: iPhone9,2, os-version: 12.0], [device: iPhone10,5, os-version: 12.0], [device: iPhone11,2, os-version: 12.0], and [device: iPhone10,2, os-version: 12.0]
App + On Demand Resources size: 6.7 MB compressed, 18.6 MB uncompressed
App size: 6.7 MB compressed, 18.6 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed
// Other Variants of Your App.
操作:
压缩了将近 70 MB 未压缩 2 GB,我将统一构建中的压缩方法更改为 LZ4,应用程序减少到 180 MB
如上所述,开发/测试输出并不代表 Apple Store 的最终规模。
Unity 文件夹大小
操作:
...我的 Unity 项目文件夹总共为 3.3 GB,其中库/工件为 2.6 GB。
“项目文件夹”是指项目的顶级文件夹,其中包含 Unity 文件夹,例如 Assets、Packages 和 ProjectSettings 存在。无论如何,出于基本相同的原因,获取 Unity 项目文件夹的大小并没有帮助 - 它包含以下文件:
a) 不一定部署
b) 可能是临时的(日志)
c) 仅供 Unity 使用,例如缓存 (Library)
获取 Unity 项目大小的最简单方法是获取 Assets、Packages 和 ProjectSettings 文件夹的大小以及执行此操作的最佳时间是从源代码管理中重新签出您的项目。
请记住,只有上面以绿色突出显示的文件夹应该添加到源代码管理中,因此它们是确定 Unity 项目大小的候选者。3
修剪脂肪
在 Unity 中选择了更好的压缩选项。这将压缩资产、场景和全局光照数据。
对于PROD,您应该使用LZ4HC,它提供了最佳压缩,但构建速度较慢。
LZ4 是次优压缩,生成速度更快,适合 DEV 构建。
Unity 中的 Default 选项不使用任何形式的压缩。
查看 Unity 网站上的 App Thinning。由于这是一个大主题,我无法通过在此处复制它来真正做到公正。
1"Reducing Your App’s Size",苹果
2Create the App Size Report
3Using external version control systems with Unity,团结