【问题标题】:Configure proguard in a multimodule SDK Android library project在多模块 SDK Android 库项目中配置 proguard
【发布时间】:2021-12-29 03:55:24
【问题描述】:

我正在开发一个即将拆分为单独模块的 Android SDK,其中一些代码在其他模块之间共享,即:

  • 共享课程
  • 具有功能 #1 的 SDK
  • 具有功能 #2 的 SDK

需要混淆输出 AAR。使用单个模块这不是问题,但我找不到如何使用 Proguard 正确配置整个项目。

如果我想发布所有这些库的新版本,Proguard 混淆是如何工作的?所有模块都会被单独混淆吗?如何确保一次对所有模块进行混淆处理,并且库的发布版本将正确引用位于 shared 模块中的所有工件?

【问题讨论】:

    标签: android sdk proguard


    【解决方案1】:

    不确定我是否理解问题。

    但如果你想现在发布 2 个 SDK 而不是 1 个(拆分前),我认为设置应该不会有太大差异。

    只需确保您在这些 SDK 中有 proguard 文件,并且您在特定于该 SDK(模块)的构建脚本中使用它。然后运行:sdk:assembleRelease 之类的东西就完成了。

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro'
    }
    

    本期详细介绍: Obfuscating the .aar files

    我知道shared模块没有发布,所以你只需要定义其他模块将使用的特定proguard规则,如下所示:

     release {
          minifyEnabled true
          consumerProguardFiles 'onboarding-proguard-rules.pro'
     }
    

    【讨论】:

      猜你喜欢
      • 2017-07-17
      • 2015-02-24
      • 1970-01-01
      • 2020-03-01
      • 2013-02-16
      • 2022-08-25
      • 2015-08-29
      • 2022-11-09
      • 2012-02-14
      相关资源
      最近更新 更多