61 行
2.5 KiB
Groovy
61 行
2.5 KiB
Groovy
import java.util.Properties
|
|
plugins { id 'com.android.application' }
|
|
def signingPath = providers.gradleProperty('releaseSigningProperties').orElse('release-signing.properties').get()
|
|
def signingFile = rootProject.file(signingPath)
|
|
def signing = new Properties()
|
|
if (signingFile.isFile()) signingFile.withInputStream { signing.load(it) }
|
|
def approved = signing.getProperty('releaseApproved','false').toBoolean()
|
|
android {
|
|
namespace 'com.sydxky.crabinput'
|
|
compileSdk 37
|
|
defaultConfig {
|
|
applicationId 'com.sydxky.crabinput'
|
|
minSdk 27
|
|
targetSdk 35
|
|
versionCode 10203
|
|
versionName '1.2.3'
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
}
|
|
signingConfigs {
|
|
if (approved) {
|
|
release {
|
|
storeFile new File(signingFile.parentFile, signing.getProperty('storeFile',''))
|
|
storePassword signing.getProperty('storePassword','')
|
|
keyAlias signing.getProperty('keyAlias','')
|
|
keyPassword signing.getProperty('keyPassword','')
|
|
enableV1Signing false
|
|
enableV2Signing true
|
|
enableV3Signing false
|
|
enableV4Signing false
|
|
}
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
if (approved) signingConfig signingConfigs.release
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
testProguardFiles 'proguard-test.pro'
|
|
}
|
|
}
|
|
compileOptions { sourceCompatibility JavaVersion.VERSION_11; targetCompatibility JavaVersion.VERSION_11 }
|
|
lint { abortOnError true }
|
|
testBuildType providers.gradleProperty('imeTestBuildType').orElse('debug').get()
|
|
}
|
|
tasks.register('checkReleaseSigning') {
|
|
doLast {
|
|
if (!approved || !signingFile.isFile() || !android.signingConfigs.release.storeFile.isFile())
|
|
throw new GradleException('Supply approved local signing with -PreleaseSigningProperties=<protected-file>')
|
|
}
|
|
}
|
|
tasks.matching { it.name in ['packageRelease','assembleRelease'] }.configureEach { dependsOn 'checkReleaseSigning' }
|
|
dependencies {
|
|
implementation project(':keyboard')
|
|
testImplementation 'junit:junit:4.13.2'
|
|
androidTestImplementation 'androidx.test:runner:1.5.2'
|
|
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
|
|
androidTestImplementation 'com.google.errorprone:error_prone_annotations:2.36.0'
|
|
androidTestImplementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.22'
|
|
}
|