diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2018-06-05 19:54:53 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2018-06-05 19:58:34 +0530 |
commit | 0496b94aa8ca12db5282e4a573065909fe489126 (patch) | |
tree | ebfa380757b0abd90157984ae19d081a393b9cbc | |
parent | d8d6e99df138069aec60895947ff44ccd392c067 (diff) |
build: Allow building release artifacts in-tree
This change avoids all need for changing any file under
VCS to insert signing keys and configs for release builds.
Example contents of keystore.properties
```
// Location of keystore, relative to module build.gradle,
// in this case, of the app module
storeFile=../wireguard.jks
storePassword=b3ty0uc4nth4xxth1s
keyAlias=wireguard
keyPassword=4ndr01dsux
```
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | app/build.gradle | 26 |
2 files changed, 28 insertions, 0 deletions
@@ -13,3 +13,5 @@ build/ *.class *.dex *.iml +*.jks +keystore.properties diff --git a/app/build.gradle b/app/build.gradle index 7284eafd..00f4cb10 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,9 @@ apply plugin: 'com.android.application' +// Create a variable called keystorePropertiesFile, and initialize it to your +// keystore.properties file, in the rootProject folder. +final def keystorePropertiesFile = rootProject.file("keystore.properties") + android { buildToolsVersion '27.0.3' compileOptions { @@ -17,6 +21,28 @@ android { versionCode 422 versionName '0.0.20180605' } + // If the keystore file exists + if (keystorePropertiesFile.exists()) { + // Initialize a new Properties() object called keystoreProperties. + final def keystoreProperties = new Properties() + + // Load your keystore.properties file into the keystoreProperties object. + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile file(keystoreProperties['storeFile']) + storePassword keystoreProperties['storePassword'] + } + } + } + buildTypes { + release { + if (keystorePropertiesFile.exists()) signingConfig signingConfigs.release + } + } externalNativeBuild { cmake { path 'tools/CMakeLists.txt' |