本机调试符号包含无效的目录符号。仅支持 Android ABI

Jay*_*ash 3 android unity-game-engine google-play-console

当我尝试在游戏控制台上上传我的符号.zip 文件时,出现此错误消息,请帮助我解决此问题“本机调试符号包含无效的目录符号。仅支持 Android ABI” - unity

在此输入图像描述

小智 5

默认情况下,Unity 生成的调试符号 zip 不符合 Google Play 的预期。然而,只要准确地遵循这些步骤,它就很容易纠正。


第 1 步:进行备份

在继续之前,请备份原始的symbols.zip 文件!您希望保留它以备将来需要时使用。虽然在实践中我从未发现需要它,但最好是安全的。我通常将其解压缩,然后使用 7-Zip 将其重新压缩为更小的文件管理器。


第 2 步:解压符号并修复它们

将symbols.zip 解压缩到一个单独的文件夹。

在其中,您应该找到一两个名为“arm64-v8a”和/或“armeabi-v7a”的文件夹,具体取决于您是否支持较旧的 32 位arm cpu。

对于每个文件夹;

  • 打开文件夹。
  • 删除文件“libil2cpp.so.debug”。
  • 将文件“libil2cpp.sym”重命名为“libil2cpp.so”。

有时文件名不同,在这种情况下

  • 删除文件“libil2cpp.dbg.so”
  • 将文件“libil2cpp.sym.so”重命名为“libil2cpp.so”
  • 将文件“libunity.sym.so”重命名为“libunity.so”

第三步:压缩你的新符号

选择文件夹并将其压缩。

在 Windows 上,您可以简单地使用右键单击 - 发送到 - 压缩(zipped)文件夹,尽管我通过“添加到存档”使用 7-Zip,使用高压缩级别的 zip 格式。

重要信息 您必须确保 zip 目录结构与原始 Unity 生成的symbols.zip 的目录结构相匹配。这两个文件夹在 zip 文件中都是“松散”的,它们不是父文件夹的子文件夹!

例如,而不是有一个拉链

MyApp-1.0.2-v2.symbols/arm64-v8a/libil2cpp.sym.so

你最终可能会得到

MyApp-1.0.2-v2.symbols/MyApp-1.0.2-v2.symbols/arm64-v8a/libil2cpp.sym.so


第 4 步:重命名新压缩的文件

重命名新压缩的文件以匹配原始 Unity 生成的symbols.zip 文件的名称。


第 5 步:上传您的新 Symbols.zip

您应该能够将 Symbols.zip 上传到 Play 管理中心,不会出现错误。

如果确实出现错误,请对照 Unity 中的原始压缩包仔细检查该压缩包。确保文件名完全匹配并确保目录结构匹配!

如果您仍然遇到错误,您可能还需要在两个文件夹中将“libunity.sym.so”重命名为“libunity.so” - 尽管对此有相互冲突的报告,但我从来没有这样做过。


应该注意的是,Unity 的默认 zip 压缩设置很差,生成的文件非常大且压缩效果很差。当您按照上述步骤重新压缩符号时,它应该小得多。例如,我经常从 Unity 获取 1GB debug.symbol.zips,但执行上述步骤后最终只得到大约 150MB 的 zip 文件。