【问题标题】:why my unity project build through xcode is 2gb?为什么我通过 xcode 构建的统一项目是 2gb?
【发布时间】:2022-07-10 18:55:30
【问题描述】:

我正在尝试在 Xcode 中构建 Unity 项目,它是一个简单的 2D 游戏项目,例如填字游戏、琐事、MCQ 问题...当我从 Testflight 存档和下载游戏时,游戏大小为 2GB,不知道该做什么做或为什么这么大?

【问题讨论】:

  • 我认为您应该首先通过将 TestFlight 排除在等式之外来验证应用程序的大小。与其从 Xcode 上传到 TestFlight,不如将您的应用导出为存档 (see Choose a Distribution Method and Options) 并获取生成文件的文件大小。如果大小大致相同,则问题与您的应用不是 TestFlight 有关。据我们所知,您的 “填字游戏” 游戏中有 1.99 GB 的资产。 ;)
  • @MickyD 做到了,压缩了将近 70 MB 未压缩 2 GB,我将统一构建中的压缩方法更改为 LZ4,应用程序减少到 180 MB,我的 Unity 项目文件夹总共为 3.3 GB,与2.6 GB 用于库/工件。
  • “我将统一构建中的压缩方法更改为 LZ4,应用程序减少到 180 MB” - 你永远不会想使用 LZ4 进行 TEST 和/或 PROD.
  • 您在 Unity Build Settings 中使用了哪些其他设置?开发建设? IL2CPP?

标签: xcode unity3d testflight


【解决方案1】:

注意:避免使用 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 文件夹,例如 AssetsPackagesProjectSettings 存在。无论如何,出于基本相同的原因,获取 Unity 项目文件夹的大小并没有帮助 - 它包含以下文件:

a) 不一定部署

b) 可能是临时的(日志

c) 仅供 Unity 使用,例如缓存 (Library)

获取 Unity 项目大小的最简单方法是获取 AssetsPackagesProjectSettings 文件夹的大小以及执行此操作的最佳时间是从源代码管理中重新签出您的项目。

请记住,只有上面以绿色突出显示的文件夹应该添加到源代码管理中,因此它们是确定 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,团结

【讨论】:

  • 正如我所说,Library 占据了大部分大小,所以 AssetsPakcagesProjectSettings 是 400 MB,对于我得到的应用程序大小报告 App + On Demand Resources size: 70 MB compressed, 2 GB uncompressed 。那么我能做些什么来减小尺寸吗?我的应用是 2 GB 还是最终构建会减少?
  • @JadElAsmar “正如我所说的......” - 不,你没有。您实际上所说的是 "...with 2.6 GB for Library/Artifacts",这有待解释。最初我以为你的意思是Library 文件夹,但后来你提到 ".../Artifacts" 让我感到困惑。在软件开发中,标记为人工制品的文件是kinda important,所以听起来你指的是别的东西,因此我在上面标注。除非您运行的是 Unity 4.2 或更早版本,否则不应将 Library 文件夹视为“人工制品”
  • @JadElAsmar “我得到的应用程序大小报告” - 请将您的报告附在您的问题中。 “那么我可以做些什么来减小尺寸吗?” - 请参阅我上面的编辑,修剪脂肪
  • 感谢所有信息,原来问题是纹理不是 POT,所以大多数纹理在导入统一时变得更大“例如 NPOT 200KB 图像在导入后将是 5MB”这就是为什么应用程序在查看资产文件夹信息时达到 2GB,仅显示 400MB。
  • @JadElAsmar 所以我们又回到了 Assets 文件夹。所以呢?它与已部署的游戏零相关,您可以无论如何都可以使用 NPOT。对记忆的影响是微不足道的。 docs.unity3d.com/2017.3/Documentation/Manual/…
【解决方案2】:

@MickyD 解释了很多有用的东西,但是问题在于导入的资产“精灵”太大,所以因为我有 3k 精灵,我无法将它们重新导入为一个 POT,所以我通过覆盖 IOS 将它们压缩到 Unity 中

  • 最大尺寸:512
  • 格式:RGB(A) 压缩 ASTC 4x4 块

如果精灵质量下降很多,我会将大小增加到 2048 或尝试其他格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    相关资源
    最近更新 更多