A Gradle plugin for providing your secrets securely to your Android project.
This Gradle plugin reads secrets from a properties file not checked into version control,
such as local.properties
, and expose those properties as variables in the Gradle-generated BuildConfig
class and in the Android manifest file.
- Gradle-based Android project
- Android Gradle plugin 4.1.x or newer
In your app-level build.gradle
file:
Groovy:
plugins {
id 'com.google.secrets_gradle_plugin' version '0.3'
}
Kotlin:
plugins {
id("com.google.secrets_gradle_plugin") version "0.3"
}
Example contents of local.properties
under your root project:
apiKey=YOUR_API_KEY
After applying the plugin and building your project, the API key then becomes accessible in two ways.
- As a
BuildConfig
value:
val apiKey = BuildConfig.apiKey
- As a variable accessible in your
AndroidManifest.xml
file:
<meta-data android:value=${apiKey} />
The plugin can optionally be configured:
secrets {
// Change the properties file from the default "local.properties" in your root project
// to another properties file in your root project.
propertiesFileName 'secrets.properties'
// Configure which keys should be ignored by the plugin by providing regular expressions.
// "sdk.dir" is ignored by default.
ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*"
}
Contributions to this library are always welcome and highly encouraged!
See CONTRIBUTING.md and CODE_OF_CONDUCT.md for more information on how to get started.
Apache 2.0. See LICENSE for more information.