来自文档:
构建应用的发布版本时,请考虑使用 --split-debug-info 标记。此标志可以显著减小代码大小。有关使用此标志的示例
我还检查了混淆飞镖代码:
若要对应用进行模糊处理,请使用 --obfuscate 标志和 --split-debug-info 标志构建发布版本。--split-debug-info 标志指定 Flutter 可以输出调试文件的目录。此命令生成符号映射。目前支持 apk、appbundle、iOS 和 ios 框架目标(主频道和开发者频道支持 macos 和 aar(。
我确实理解混淆飞镖代码的含义,但我无法找到--split-debug-info
本身的作用。我读到它拆分了调试信息。我们在谈论什么信息,有什么缺点,它与混淆有什么不同?
>--split-debug-info
是关于提取生成人类可读的StackTrace所需的数据。
当我们有一个 StackTrace 时,我们同时拥有类/方法名称和关联的行。 拥有这些信息意味着该应用程序包含生成此类 StackTrace 所需的所有信息 - 这可能会很重要
--split-debug-info
是关于最小化名称和其他类似元素。 然后,由于它使 StackTrace 不可读,--split-debug-info
还生成一些应该保留的文件,这允许将最小化的堆栈跟踪转换为人类可读的内容。
StackTrace 的解包是通过flutter symbolize
命令完成的 - 该命令在普通的 StackTrace 中同时需要最小化的堆栈跟踪和--split-debug-info
的输出。
--split-debug-info
标志指定 Flutter 可以输出调试文件的目录。
例如:
flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>
在这里,您可以使用它来混淆您的应用程序,构建发布版本 使用
--obfuscate
标志,并与--split-debug-info
标志结合使用。
如果您以后想要对堆栈跟踪进行反混淆,则需要它。事实上,一旦你对二进制文件进行了模糊处理,这就是管理包含符号的文件的备份的方法.
此文件对于读取模糊的堆栈跟踪或调试由模糊的应用程序创建的堆栈跟踪至关重要。
注意:--split-debug-info
标志也可以单独使用。事实上,它可以显着减小应用程序的大小。
有关应用大小的详细信息,请参阅测量应用大小。