|
|
@ -1,14 +1,38 @@ |
|
|
|
apply plugin: 'com.android.application' |
|
|
|
|
|
|
|
// Default values for signing properties |
|
|
|
project.ext.MY_KEYSTORE_FILE = "" |
|
|
|
project.ext.MY_KEYSTORE_PASSWORD = "" |
|
|
|
project.ext.MY_KEY_ALIAS = "" |
|
|
|
project.ext.MY_KEY_PASSWORD = "" |
|
|
|
|
|
|
|
// Try to load from environment variables first |
|
|
|
project.ext.MY_KEYSTORE_FILE = System.getenv('ANDROID_KEYSTORE_FILE') ?: "" |
|
|
|
project.ext.MY_KEYSTORE_PASSWORD = System.getenv('ANDROID_KEYSTORE_PASSWORD') ?: "" |
|
|
|
project.ext.MY_KEY_ALIAS = System.getenv('ANDROID_KEY_ALIAS') ?: "" |
|
|
|
project.ext.MY_KEY_PASSWORD = System.getenv('ANDROID_KEY_PASSWORD') ?: "" |
|
|
|
|
|
|
|
// If no environment variables, try to load from secrets file |
|
|
|
if (!project.ext.MY_KEYSTORE_FILE) { |
|
|
|
def secretsPropertiesFile = rootProject.file("gradle.properties.secrets") |
|
|
|
if (secretsPropertiesFile.exists()) { |
|
|
|
Properties secretsProperties = new Properties() |
|
|
|
secretsProperties.load(new FileInputStream(secretsPropertiesFile)) |
|
|
|
secretsProperties.each { name, value -> |
|
|
|
project.ext[name] = value |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
android { |
|
|
|
namespace 'app.timesafari' |
|
|
|
compileSdk rootProject.ext.compileSdkVersion |
|
|
|
defaultConfig { |
|
|
|
applicationId "app.timesafari" |
|
|
|
applicationId "app.timesafari.app" |
|
|
|
minSdkVersion rootProject.ext.minSdkVersion |
|
|
|
targetSdkVersion rootProject.ext.targetSdkVersion |
|
|
|
versionCode 1 |
|
|
|
versionName "1.0" |
|
|
|
versionCode 9 |
|
|
|
versionName "0.4.4" |
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
|
|
|
aaptOptions { |
|
|
|
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. |
|
|
@ -16,10 +40,41 @@ android { |
|
|
|
ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' |
|
|
|
} |
|
|
|
} |
|
|
|
signingConfigs { |
|
|
|
release { |
|
|
|
if (project.ext.MY_KEYSTORE_FILE && |
|
|
|
project.ext.MY_KEYSTORE_PASSWORD && |
|
|
|
project.ext.MY_KEY_ALIAS && |
|
|
|
project.ext.MY_KEY_PASSWORD) { |
|
|
|
|
|
|
|
storeFile file(project.ext.MY_KEYSTORE_FILE) |
|
|
|
storePassword project.ext.MY_KEYSTORE_PASSWORD |
|
|
|
keyAlias project.ext.MY_KEY_ALIAS |
|
|
|
keyPassword project.ext.MY_KEY_PASSWORD |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
buildTypes { |
|
|
|
release { |
|
|
|
minifyEnabled false |
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
|
|
|
// Only sign if we have the signing config |
|
|
|
if (signingConfigs.release.storeFile != null) { |
|
|
|
signingConfig signingConfigs.release |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Enable bundle builds (without which it doesn't work right for bundleDebug vs bundleRelease) |
|
|
|
bundle { |
|
|
|
language { |
|
|
|
enableSplit = true |
|
|
|
} |
|
|
|
density { |
|
|
|
enableSplit = true |
|
|
|
} |
|
|
|
abi { |
|
|
|
enableSplit = true |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|