0

我试图弄清楚 Firebase 将如何进行从混淆代码到真实代码的映射,根据他们的文档,我需要添加这一行 -

-keepattributes SourceFile,LineNumberTable

这应该保持文件名和行号不变。然而,尽管使用了这种配置,我注意到在反编译我的 APK 后,它包含了混淆的文件名,如 a.java、b.java 等。此外,我在这个答案中读到这SourceFile只是一个可以重命名的字符串。我不明白这一点。

我的问题是

  1. SourceFile属性是什么?
  2. 尽管文档说文件名保持不变,为什么保持SourceFile属性仍然混淆文件?
  3. 为什么SourceFile属性可以重命名?
4

1 回答 1

0

这些选项引用作为堆栈跟踪一部分的文件名和行号。类、方法等的名称仍然是模糊的。Firebase 可以使用您的映射文件将这些混淆名称转换为其原始名称。

-keep如果您需要保留类、方法等的名称,您可以按照此处“保留选项”下的说明 设置规则: https ://www.guardsquare.com/manual/configuration/usage

您可以使用ProGuard Playground查看配置对源代码树的影响。

于 2021-12-22T19:56:52.270 回答