【问题标题】:Proguard/R8 how to not obfuscate only a part of the code?Proguard/R8 如何不混淆代码的一部分?
【发布时间】:2022-01-25 20:55:35
【问题描述】:

我想避免混淆我的代码的一部分。最初,我尝试像这样使用-keep

-keep class com.my.package.** { *; }

但是,我发现按照我的需要让它工作的唯一方法是添加:

-dontobfuscate

尽管如此,所有代码都不会被混淆,我需要的是不要只混淆我的应用程序的特定部分(在本例中是第三方库com.my.package.**)。

有谁知道这是否可行?

【问题讨论】:

标签: android proguard android-r8


【解决方案1】:

为确保 ProGuard 不会触及代码的特定部分,您可以使用 keeprule。您提到的保留规则应该有效。您能否具体说明您是如何验证名称是否仍被混淆的?

您指出“使用 -dontobfuscate”的第二件事确实会保留最有可能不是预期行为的所有内容。

查看某些 keeprule 对源代码的影响的一个好方法是使用ProGuard Playground。 它非常适合学习 ProGuard 保持规则的工作原理,它允许您上传一次项目,之后您可以交互式地调整您的保持规则,而无需重新构建您的应用程序。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多