From 5f6312490357a6352f2005da7bb491ab81e15fa8 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:13:37 +0100 Subject: [PATCH 1/6] feat: Bump Android build tool versions --- .fvmrc | 2 +- analysis_options.yaml | 5 +++++ android/build.gradle.kts | 6 +++--- example/analysis_options.yaml | 5 +++++ example/android/app/build.gradle.kts | 8 ++++---- example/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/android/settings.gradle.kts | 5 ++++- example/pubspec.lock | 16 ++++++++-------- 9 files changed, 32 insertions(+), 19 deletions(-) diff --git a/.fvmrc b/.fvmrc index 457360f..c283258 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.44.0" + "flutter": "3.47.4" } \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml index a5744c1..76c87cd 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,3 +1,8 @@ +analyzer: + exclude: + - build/** + - android/** + - ios/** include: package:flutter_lints/flutter.yaml # Additional information about this file can be found at diff --git a/android/build.gradle.kts b/android/build.gradle.kts index d663785..ab4e03e 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -2,14 +2,14 @@ group = "com.apadmi.security_toolkit" version = "1.0-SNAPSHOT" buildscript { - val kotlinVersion = "2.3.20" + val kotlinVersion = "2.4.10" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:9.2.1") + classpath("com.android.tools.build:gradle:9.4.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } @@ -28,7 +28,7 @@ plugins { android { namespace = "com.apadmi.security_toolkit" - compileSdk = 36 + compileSdk = 37 compileOptions { sourceCompatibility = JavaVersion.VERSION_17 diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml index 0d29021..0d87f43 100644 --- a/example/analysis_options.yaml +++ b/example/analysis_options.yaml @@ -7,6 +7,11 @@ # The following line activates a set of recommended lints for Flutter apps, # packages, and plugins designed to encourage good coding practices. +analyzer: + exclude: + - build/** + - android/** + - ios/** include: package:flutter_lints/flutter.yaml linter: diff --git a/example/android/app/build.gradle.kts b/example/android/app/build.gradle.kts index aabb3fd..d5fdf66 100644 --- a/example/android/app/build.gradle.kts +++ b/example/android/app/build.gradle.kts @@ -6,12 +6,12 @@ plugins { android { namespace = "com.apadmi.security_toolkit_example" - compileSdk = flutter.compileSdkVersion + compileSdk = 37 ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } defaultConfig { @@ -36,7 +36,7 @@ android { kotlin { compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21 } } diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 048833c..6be930b 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -4,4 +4,4 @@ android.enableJetifier=true # This newDsl flag was added automatically by Flutter migrator android.newDsl=false # This builtInKotlin flag was added automatically by Flutter migrator -android.builtInKotlin=false +android.builtInKotlin=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 2f745f9..5fadfe8 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-all.zip diff --git a/example/android/settings.gradle.kts b/example/android/settings.gradle.kts index 147ad08..bfec9c1 100644 --- a/example/android/settings.gradle.kts +++ b/example/android/settings.gradle.kts @@ -18,7 +18,10 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "9.2.1" apply false + id("com.android.application") version "9.3.2" apply false + // Explicitly pinned as Flutter 3.47's minimum Kotlin version is higher than AGP's. + // Not applied so proiject still uses built-in Kotlin. + id("org.jetbrains.kotlin.android") version "2.4.20" apply false } include(":app") diff --git a/example/pubspec.lock b/example/pubspec.lock index e221e8d..9b4e7de 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -134,10 +134,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" url: "https://pub.dev" source: hosted - version: "0.12.19" + version: "0.12.20" material_color_utilities: dependency: transitive description: @@ -150,10 +150,10 @@ packages: dependency: transitive description: name: meta - sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" + sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" path: dependency: transitive description: @@ -250,18 +250,18 @@ packages: dependency: transitive description: name: test_api - sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" + sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" url: "https://pub.dev" source: hosted - version: "0.7.11" + version: "0.7.12" vector_math: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.4.2" vm_service: dependency: transitive description: From 32bafe7fe59ceef1913ee6fb1bd7ac9eeedd7fa3 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:13:56 +0100 Subject: [PATCH 2/6] chore: Bump minimum iOS versions to match Flutter SDK --- example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 32cb558..e886bcb 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -372,7 +372,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -499,7 +499,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -550,7 +550,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; From 9bb286a9e4e677346023b7e5ba61a54648076fec Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:16:21 +0100 Subject: [PATCH 3/6] chore: Bump Android Java version from 17 -> 21 --- android/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index ab4e03e..4e97bcd 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -31,8 +31,8 @@ android { compileSdk = 37 compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } buildFeatures { @@ -71,7 +71,7 @@ android { kotlin { compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21 } } From b7fbc4d40c73beb032d40eb5899a84f152008b6f Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:16:35 +0100 Subject: [PATCH 4/6] chore: Bump minimum Android SDK to 24 to match Flutter SDK --- android/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 4e97bcd..c6a230a 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -49,7 +49,7 @@ android { } defaultConfig { - minSdk = 23 + minSdk = flutter.minSdkVersion } testOptions { From 3c9ed973357299d4fa7532f0285344591246e547 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:20:17 +0100 Subject: [PATCH 5/6] docs: Bump plugin version to 2.1.0 --- CHANGELOG.md | 6 ++++++ README.md | 4 ++-- pubspec.yaml | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bc5199..83e1ddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.1.0 + +* Bump AGP to 9.4.0, Gradle to 9.6.0, Java to version 21, and Kotlin to 2.4.20. +* Raise minimum Android SDK to 24 (from 23) to align with Flutter 3.47 +* Raise minimum iOS SDK to 15.0 (from 12.0) to align with Flutter 3.47. + ## 2.0.0 * Changed package name to `security_toolkit`. diff --git a/README.md b/README.md index dc218ba..92e3228 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ insecure environment. Usage of this plugin has the following requirements: -* Minimum Android SDK: 23 -* Minimum iOS version: 12.0 +* Minimum Android SDK: 24 +* Minimum iOS version: 15.0 ## Usage diff --git a/pubspec.yaml b/pubspec.yaml index 2dda1c7..05eee80 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: security_toolkit description: "Security utilities for Flutter apps" -version: 2.0.0 +version: 2.1.0 homepage: environment: From 3524c90e4f627fdeb43a26d86a8cbc23bd7a7a4d Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 14 Sep 2026 11:22:28 +0100 Subject: [PATCH 6/6] docs: Amend previous iOS minimum SDK typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83e1ddf..d03a8b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ * Bump AGP to 9.4.0, Gradle to 9.6.0, Java to version 21, and Kotlin to 2.4.20. * Raise minimum Android SDK to 24 (from 23) to align with Flutter 3.47 -* Raise minimum iOS SDK to 15.0 (from 12.0) to align with Flutter 3.47. +* Raise minimum iOS SDK to 15.0 (from 13.0) to align with Flutter 3.47. ## 2.0.0