From 4138c99e20a7a989bec64dc163030c4500835f57 Mon Sep 17 00:00:00 2001 From: Grzegorz Kucmierz Date: Thu, 19 Feb 2026 05:22:13 +0100 Subject: [PATCH] (release): prepare android build config and signing --- android/.gitignore | 5 +++-- android/app/build.gradle | 22 ++++++++++++++++--- android/app/src/main/AndroidManifest.xml | 3 ++- android/build.gradle | 2 +- android/gradle.properties | 10 +++++++++ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ios/App/App/Info.plist | 2 ++ 7 files changed, 38 insertions(+), 8 deletions(-) diff --git a/android/.gitignore b/android/.gitignore index 48354a3..1153304 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -54,8 +54,9 @@ captures/ # Keystore files # Uncomment the following lines if you do not want to check your keystore files in. -#*.jks -#*.keystore +*.jks +*.keystore +keystore.properties # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild diff --git a/android/app/build.gradle b/android/app/build.gradle index 9b97c94..764c92b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -3,12 +3,27 @@ apply plugin: 'com.android.application' android { namespace = "pl.nonograms.app" compileSdk = rootProject.ext.compileSdkVersion + + signingConfigs { + release { + def keystorePropertiesFile = rootProject.file("keystore.properties") + if (keystorePropertiesFile.exists()) { + def keystoreProperties = new Properties() + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + storeFile = file(keystoreProperties['storeFile']) + storePassword = keystoreProperties['storePassword'] + keyAlias = keystoreProperties['keyAlias'] + keyPassword = keystoreProperties['keyPassword'] + } + } + } + defaultConfig { applicationId "pl.nonograms.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" + versionCode 1144 + versionName "1.14.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. @@ -18,8 +33,9 @@ android { } buildTypes { release { + signingConfig signingConfigs.release minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ba2b7bc..9fb4f0c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -30,6 +30,7 @@ - + + diff --git a/android/build.gradle b/android/build.gradle index f8f0e43..31fb6e2 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -7,7 +7,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.0' + classpath 'com.android.tools.build:gradle:9.0.1' classpath 'com.google.gms:google-services:4.4.4' // NOTE: Do not place your application dependencies here; they belong diff --git a/android/gradle.properties b/android/gradle.properties index 2e87c52..65681bf 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -20,3 +20,13 @@ org.gradle.jvmargs=-Xmx1536m # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true +android.defaults.buildfeatures.resvalues=true +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.enableAppCompileTimeRClass=false +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false +android.builtInKotlin=false +android.newDsl=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 7705927..4eac4a8 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index 4126cdd..962be65 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -24,6 +24,8 @@ $(CURRENT_PROJECT_VERSION) LSRequiresIPhoneOS + NSCameraUsageDescription + This app requires camera access to import nonograms from photos. UILaunchStoryboardName LaunchScreen UIMainStoryboardFile