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

roz*_*rro 5 flutter

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

flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>
Run Code Online (Sandbox Code Playgroud)

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

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

所以定义了目录,但是结果符号映射在哪里?

Gáb*_*bor 14

一个合理的值是:

--split-debug-info=build/app/outputs/symbols
Run Code Online (Sandbox Code Playgroud)

无论如何,这会将其置于靠近实际结果文件出现的逻辑位置。


Kab*_*uda 12

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

所以 :

--split-debug-info=build/app/outputs/symbols
Run Code Online (Sandbox Code Playgroud)

/<目录>也可以替换为项目的相对路径或确切位置

前任: ./ProjectFolderName/output

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

或者

/Users/apple/Desktop/items/example

这将是文件夹的特定路径


Sal*_*ala 10

首先,确保您使用的Flutter 框架版本>= 1.16.2,您可以通过运行来检查它:

flutter --version
Run Code Online (Sandbox Code Playgroud)

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

flutter upgrade
Run Code Online (Sandbox Code Playgroud)

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

 flutter build apk --obfuscate --split-debug-info=some_parent_directory/some_child_directory
Run Code Online (Sandbox Code Playgroud)

请注意,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