From 07e13ccf04db8079aa3c4788e0880e6cd1023738 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 15 Apr 2023 23:01:55 +0800 Subject: [PATCH] Modify merge contents of build.gradle into constant definitions --- .gitignore | 2 +- .secret/key_store_secret.json | 6 +++ keystore/public => .secret/universal.p12 | Bin app/build.gradle | 53 ++++++++++++++--------- build.gradle | 18 ++++++-- demo-app/build.gradle | 45 +++++++++++-------- 6 files changed, 80 insertions(+), 44 deletions(-) create mode 100644 .secret/key_store_secret.json rename keystore/public => .secret/universal.p12 (100%) diff --git a/.gitignore b/.gitignore index a7f1783..a463467 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # Project exclude paths *.iml .gradle -.secret +.secret/APP_CENTER_SECRET /local.properties /.idea/caches /.idea/libraries diff --git a/.secret/key_store_secret.json b/.secret/key_store_secret.json new file mode 100644 index 0000000..8fd7367 --- /dev/null +++ b/.secret/key_store_secret.json @@ -0,0 +1,6 @@ +{ + "keyAlias": "public", + "keyPassword": "123456", + "storeFileName": "universal.p12", + "storePassword": "123456" +} \ No newline at end of file diff --git a/keystore/public b/.secret/universal.p12 similarity index 100% rename from keystore/public rename to .secret/universal.p12 diff --git a/app/build.gradle b/app/build.gradle index 82bb1c2..bb14495 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,43 +1,54 @@ +import groovy.json.JsonSlurper + plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' - id 'com.google.devtools.ksp' version '1.8.20-1.0.10' + id 'com.google.devtools.ksp' } android { - namespace 'com.fankes.apperrorstracking' - compileSdk 33 - signingConfigs { - debug { - storeFile file('../keystore/public') - storePassword '123456' - keyAlias 'public' - keyPassword '123456' + universal { + def dirPath = rootProject.ext.app.signingConfigs.secretConfigsDirPath + def fileName = rootProject.ext.app.signingConfigs.secretConfigsFileName + def configs = new JsonSlurper().parse(file("${dirPath}/${fileName}")) + keyAlias configs.keyAlias + keyPassword configs.keyPassword + storeFile file("${dirPath}/${configs.storeFileName}") + storePassword configs.storePassword v1SigningEnabled true v2SigningEnabled true } } - defaultConfig { - applicationId "com.fankes.apperrorstracking" - minSdk 24 - targetSdk 33 - versionCode rootProject.ext.appVersionCode - versionName rootProject.ext.appVersionName + namespace 'com.fankes.apperrorstracking' + compileSdk rootProject.ext.android.compileSdk - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + defaultConfig { + applicationId 'com.fankes.apperrorstracking' + + minSdk rootProject.ext.android.minSdk + targetSdk rootProject.ext.android.targetSdk + + versionCode rootProject.ext.app.versionCode + versionName rootProject.ext.app.versionName + + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' /** 添加 App Center Secret 到 BuildConfig */ - buildConfigField("String", "APP_CENTER_SECRET", "\"${getAppCenterSecret()}\"") + buildConfigField('String', 'APP_CENTER_SECRET', "\"${getAppCenterSecret()}\"") } buildTypes { + debug { + minifyEnabled false + signingConfig signingConfigs.universal + } release { - minifyEnabled rootProject.ext.enableR8 - shrinkResources rootProject.ext.enableR8 - zipAlignEnabled rootProject.ext.enableR8 - signingConfig signingConfigs.debug + minifyEnabled true + shrinkResources true + zipAlignEnabled true + signingConfig signingConfigs.universal proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/build.gradle b/build.gradle index cdc1e77..54b8736 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,22 @@ plugins { id 'com.android.application' version '7.4.1' apply false id 'com.android.library' version '7.4.1' apply false id 'org.jetbrains.kotlin.android' version '1.8.20' apply false + id 'com.google.devtools.ksp' version '1.8.20-1.0.10' apply false } ext { - appVersionName = "1.2" - appVersionCode = 4 - enableR8 = true + android = [ + compileSdk: 33, + minSdk : 24, + targetSdk : 33, + ndkVersion: '24.0.8215888' + ] + app = [ + versionName : '1.2', + versionCode : 4, + signingConfigs: [ + secretConfigsDirPath : "${projectDir.getAbsolutePath()}/.secret", + secretConfigsFileName: "key_store_secret.json" + ] + ] } \ No newline at end of file diff --git a/demo-app/build.gradle b/demo-app/build.gradle index 2bed188..826d237 100644 --- a/demo-app/build.gradle +++ b/demo-app/build.gradle @@ -1,3 +1,5 @@ +import groovy.json.JsonSlurper + plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' @@ -5,39 +7,44 @@ plugins { android { namespace 'com.fankes.apperrorsdemo' - compileSdk 33 - ndkVersion '24.0.8215888' + compileSdk rootProject.ext.android.compileSdk + ndkVersion rootProject.ext.android.ndkVersion signingConfigs { - debug { - storeFile file('../keystore/public') - storePassword '123456' - keyAlias 'public' - keyPassword '123456' + universal { + def dirPath = rootProject.ext.app.signingConfigs.secretConfigsDirPath + def fileName = rootProject.ext.app.signingConfigs.secretConfigsFileName + def configs = new JsonSlurper().parse(file("${dirPath}/${fileName}")) + keyAlias configs.keyAlias + keyPassword configs.keyPassword + storeFile file("${dirPath}/${configs.storeFileName}") + storePassword configs.storePassword v1SigningEnabled true v2SigningEnabled true } } defaultConfig { - minSdk 24 - targetSdk 33 - versionCode 1 - versionName "1.0" + applicationId 'com.fankes.apperrorsdemo' - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - externalNativeBuild { - cmake { - cppFlags "" - } - } + minSdk rootProject.ext.android.minSdk + targetSdk rootProject.ext.android.targetSdk + + versionCode rootProject.ext.app.versionCode + versionName rootProject.ext.app.versionName + + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' + consumerProguardFiles 'consumer-rules.pro' } buildTypes { + debug { + minifyEnabled false + signingConfig signingConfigs.universal + } release { minifyEnabled false - signingConfig signingConfigs.debug + signingConfig signingConfigs.universal proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }