使用 ProGuard 时是否可以混淆 GSON 注释中的字符串?
Is it possible to obfuscate Strings in GSON Annotations while using ProGuard?
我正在尝试使用 ProGuard 缩小、优化和混淆我的应用程序。除了 GSON 注释外,一切正常。我的应用程序中有这样的东西:
@Expose
@SerializedName("testbla")
private String test;
当我使用 ProGuard 时,它变成了这样的东西:
@com.google.a.a.a
@c(a="testbla")
private String a;
因此存在某种混淆,但 "testbla" 仍然可读。
我在文档中读到字符串常量不会被 ProGuard 混淆(例如 https://www.guardsquare.com/en/proguard/faq#encrypt)。不过,如果有任何选择,我想混淆那些字符串。那么有没有可能请告诉我!
感谢您的帮助!
ProGuard 不会混淆字符串。
Gson 注释确保您的映射 class 正常工作很重要。
如果您删除注释并使用混淆器,当您的应用需要将您的 JSON 转换为 POJO 时,将会发生错误。因为代码将尝试查找属性 "a" 而不是 "test" (因为您的代码被混淆了)。
正因如此,Gson注解很重要。
还有其他选项可以混淆您的代码,例如 DexGuard,但它不是免费的。
查看差异:
Link
我正在尝试使用 ProGuard 缩小、优化和混淆我的应用程序。除了 GSON 注释外,一切正常。我的应用程序中有这样的东西:
@Expose
@SerializedName("testbla")
private String test;
当我使用 ProGuard 时,它变成了这样的东西:
@com.google.a.a.a
@c(a="testbla")
private String a;
因此存在某种混淆,但 "testbla" 仍然可读。 我在文档中读到字符串常量不会被 ProGuard 混淆(例如 https://www.guardsquare.com/en/proguard/faq#encrypt)。不过,如果有任何选择,我想混淆那些字符串。那么有没有可能请告诉我!
感谢您的帮助!
ProGuard 不会混淆字符串。
Gson 注释确保您的映射 class 正常工作很重要。
如果您删除注释并使用混淆器,当您的应用需要将您的 JSON 转换为 POJO 时,将会发生错误。因为代码将尝试查找属性 "a" 而不是 "test" (因为您的代码被混淆了)。 正因如此,Gson注解很重要。
还有其他选项可以混淆您的代码,例如 DexGuard,但它不是免费的。
查看差异: Link