用于多项目构建的全局签名配置

Ser*_*Ch. 7 android gradle

我正在使用这样的项目结构:

root
  |--build.gradle
  |--settings.gradle
  |
  |--child1
  |    |--build.gradle
  |
  |--child2
       |--build.gradle
Run Code Online (Sandbox Code Playgroud)

在两个子项目中,build.gradle包含以下内容:

apply plugin: 'android'

...

android {
    ...

    signingConfigs {
        release {
            storeFile file("release.keystore")
            storePassword "pass"
            keyAlias "alias"
            keyPassword "pass"
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

如何将signingConfigs部分移动到根项目以减少代码重复?

Ben*_*hko 1

鉴于所有子项目都是 Android 项目,您可以将代码移动到根级别构建脚本中定义的子项目配置块中。

subprojects {
    apply plugin: 'android'

    android { 
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

如果需要,您还可以根据某些条件过滤项目列表并将此配置应用于它们。