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=') } } 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' }