如何使用--split-debug-info=/<project-name>/<directory>?

25

在下面的命令中,如何使用--split-debug-info=/<project-name>/<directory>

flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>

当我声明项目名称和目录路径时,构建后的路径中不包含任何内容。

--split-debug-info标志指定Flutter可以输出调试文件的目录。此命令生成符号映射。

因此,目录已定义,但结果的符号映射在哪里?

5个回答

45

一个合理的值应该是:

--split-debug-info=build/app/outputs/symbols

这样将其放置在与实际结果文件出现的逻辑位置相近的地方。


1
( --> glorious <--) - HoseinGhanbari

16

首先,确保你正在使用一个版本号大于等于1.16.2Flutter框架版本,你可以通过运行以下命令进行检查:

flutter --version

如果不是这种情况,您可以通过运行以下命令升级Flutter框架:

flutter upgrade

然后,为了在运行flutter build命令时生成符号映射文件,您可以使用以下命令:

flutter build --debug --extra-gen-snapshot-options="--symbol-map"
 flutter build apk --obfuscate --split-debug-info=some_parent_directory/some_child_directory
注意,some_parent_directorysome_child_directory是任意的名称,您可以将其替换为任何您想要的名称。
另请注意,在命令的--split-debug-info=some_parent_directory/some_child_directory部分的等号(=)符号右侧的开头没有斜杠(/)符号。
对于上面的示例,在命令完成后,您可以在项目的根目录下找到一个名为some_parent_directory的目录,其中包含另一个名为some_child_directory的目录,最终包含符号映射文件:
  • app.android-arm.symbols
  • app.android-arm64.symbols
  • app.android-x64.symbols

12

理想的目录应该是build/app/outputs/symbols

所以:

--split-debug-info=build/app/outputs/symbols

可以使用项目的相对路径确切位置替换/<目录>。

示例: ./ProjectFolderName/output

它将在您的项目目录中创建ProjectFolderName文件夹

或者

/Users/apple/Desktop/items/example

这将是文件夹的特定路径


1
如果您计划将其上传至Play商店,则建议这样做。
flutter build appbundle --target-platform android-arm,android-arm64,android-x64

0
如果您使用不同的目标和风味,请将风味放在最后,否则由于某种原因无法混淆。
flutter build apk -t lib/flavors/company_a/prod.dart --obfuscate --split-debug-info=obfuscate/symbols --flavor=company_a_prod

那种方式对我不起作用:

flutter build apk -t lib/flavors/company_a/prod.dart --flavor=company_a_prod release --obfuscate --split-debug-info=obfuscate/symbols

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接