颤振--split-debug-info做什么

时间:2020-07-01 16:42:14

标签: flutter

从文档中

在构建应用的发行版时,请考虑使用--split-debug-info标记。该标签可以大大减少代码大小。有关使用此标记的示例,请参见混淆Dart代码。

我还检查了混淆Dart代码:

要对应用进行混淆处理,请使用--obfuscate标志和--split-debug-info标志相结合来构建发行版本。 --split-debug-info标志指定Flutter可以在其中输出调试文件的目录。该命令生成符号图。目前支持apk,appbundle,ios和ios框架目标。 (master和dev频道支持macos和aar。)例如:

我确实理解了混淆的飞镖代码的含义,但是我找不到--split-debug-info本身的作用。我读了它拆分调试信息。我们在谈论什么信息,有什么缺点吗?它与混淆有何不同?

2 个答案:

答案 0 :(得分:3)

--split-debug-info是关于提取产生易于理解的StackTrace所需的数据的。

当我们有一个StackTrace时,我们既有类/方法名,也有相关的行。 拥有这些信息意味着该应用程序包含生成此类StackTrace所需的所有信息-可能会带来很大的负担

--split-debug-info是关于最小化名称和其他类似元素的操作。 然后,由于--split-debug-info使得StackTrace不可读,因此还会生成一些应保留的文件,从而可以将最小化的堆栈跟踪转换为人类可读的文件。

StackTrace的解压缩是通过flutter symbolize命令完成的–该命令同时使用最小化的堆栈跟踪和--split-debug-info的输出,以在常规StackTrace中生成。

答案 1 :(得分:0)

--split-debug-info 标志指定 Flutter 可以输出调试文件的目录。

例如:

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

在这里,您可以使用它来混淆您的应用程序,构建发布版本 使用
--obfuscate 标志,结合 --split-debug-info 标志。

如果您以后想要去混淆堆栈跟踪,则需要它。事实上,一旦你混淆了你的二进制文件,这就是管理包含符号的文件的备份。
此文件对于读取模糊堆栈跟踪或调试由您的模糊应用程序创建的堆栈跟踪至关重要。

注意: --split-debug-info 标志也可以单独使用。事实上,它可以显着减小应用大小。

有关应用大小的详细信息,请参阅 Measuring your app’s size