diff --git a/.fvmrc b/.fvmrc index d80cf57..457360f 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.41.9" + "flutter": "3.44.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d97287..04708a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.1.0 + +* Migrates plugin to built-in Kotlin & AGP 9. +* Raises minimum Flutter SDK to 3.44.0 + ## 1.0.0 * Initial public release. diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 4595898..0000000 --- a/android/build.gradle +++ /dev/null @@ -1,71 +0,0 @@ -group = "com.apadmi.flutter_security_suite" -version = "1.0-SNAPSHOT" - -buildscript { - ext.kotlin_version = "1.8.22" - repositories { - google() - mavenCentral() - } - - dependencies { - classpath("com.android.tools.build:gradle:8.7.0") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: "com.android.library" -apply plugin: "kotlin-android" - -android { - namespace = "com.apadmi.flutter_security_suite" - - compileSdk = 35 - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - - sourceSets { - main.java.srcDirs += "src/main/kotlin" - test.java.srcDirs += "src/test/kotlin" - } - - defaultConfig { - minSdk = 23 - } - - buildFeatures { - buildConfig = true - } - - dependencies { - implementation("com.scottyab:rootbeer-lib:0.1.1") - testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") - } - - testOptions { - unitTests.all { - useJUnitPlatform() - - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..30ce784 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,81 @@ +group = "com.apadmi.flutter_security_suite" +version = "1.0-SNAPSHOT" + +buildscript { + val kotlinVersion = "2.3.20" + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:9.2.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") +} + +android { + namespace = "com.apadmi.flutter_security_suite" + + compileSdk = 36 + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + buildFeatures { + buildConfig = true + } + + sourceSets { + getByName("main") { + java.directories += "src/main/kotlin" + } + getByName("test") { + java.directories += "src/test/kotlin" + } + } + + defaultConfig { + minSdk = 23 + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + all { + it.useJUnitPlatform() + + it.outputs.upToDateWhen { false } + + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} + +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + } +} + +dependencies { + implementation("com.scottyab:rootbeer-lib:0.1.2") + testImplementation("org.mockito:mockito-core:5.23.0") +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..0597fa1 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,11 @@ +android.builtInKotlin=true +android.defaults.buildfeatures.resvalues=true +android.dependency.useConstraints=true +android.enableAppCompileTimeRClass=false +android.newDsl=false +android.r8.optimizedResourceShrinking=false +android.r8.strictFullModeForKeepRules=false +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.uniquePackageNames=false +android.useAndroidX=false +android.usesSdkInManifest.disallowed=false \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index cea7a79..5dd3c01 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.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 92ee2bc..0000000 --- a/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'flutter_security_suite' diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..c8fa1e6 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "flutter_security_suite" \ No newline at end of file diff --git a/android/src/main/kotlin/com/apadmi/flutter_security_suite/SecuritySuiteImpl.kt b/android/src/main/kotlin/com/apadmi/flutter_security_suite/SecuritySuiteImpl.kt index dbc15f6..7b9fdc1 100644 --- a/android/src/main/kotlin/com/apadmi/flutter_security_suite/SecuritySuiteImpl.kt +++ b/android/src/main/kotlin/com/apadmi/flutter_security_suite/SecuritySuiteImpl.kt @@ -16,5 +16,6 @@ class SecuritySuiteImpl( override fun isLikelyEmulator(): Boolean = emulatorChecker.isLikelyEmulator() + // Intentional - Not implemented on Android override fun isReverseEngineered(): Boolean = false } \ No newline at end of file diff --git a/example/android/app/build.gradle.kts b/example/android/app/build.gradle.kts index 71033e5..169dc6c 100644 --- a/example/android/app/build.gradle.kts +++ b/example/android/app/build.gradle.kts @@ -1,7 +1,6 @@ plugins { id("com.android.application") - id("kotlin-android") - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + // The Flutter Gradle Plugin must be applied after the Android Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } @@ -11,12 +10,8 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.toString() + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { @@ -39,6 +34,12 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + } +} + flutter { source = "../.." } diff --git a/example/android/gradle.properties b/example/android/gradle.properties index f018a61..048833c 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -1,3 +1,7 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true 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 diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8e..2f745f9 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-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-all.zip diff --git a/example/android/settings.gradle.kts b/example/android/settings.gradle.kts index a439442..147ad08 100644 --- a/example/android/settings.gradle.kts +++ b/example/android/settings.gradle.kts @@ -18,8 +18,7 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.0" apply false - id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.android.application") version "9.2.1" apply false } include(":app") diff --git a/example/pubspec.lock b/example/pubspec.lock index a2df242..d0b3557 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -89,7 +89,7 @@ packages: path: ".." relative: true source: path - version: "0.1.3" + version: "1.1.0" flutter_test: dependency: "direct dev" description: flutter @@ -157,10 +157,10 @@ packages: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.0" path: dependency: transitive description: @@ -250,10 +250,10 @@ packages: dependency: transitive description: name: test_api - sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.11" vector_math: dependency: transitive description: @@ -279,5 +279,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=3.9.0-0 <4.0.0" - flutter: ">=3.41.0" + dart: ">=3.12.0 <4.0.0" + flutter: ">=3.44.0 <4.0.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 00db27a..ef2a322 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -3,7 +3,8 @@ description: "Demonstrates how to use the flutter_security_suite plugin." publish_to: 'none' environment: - sdk: ^3.7.2 + sdk: ^3.12.0 + flutter: ^3.44.0 dependencies: flutter: diff --git a/pubspec.yaml b/pubspec.yaml index 34cbb76..8eb1a64 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,11 +1,11 @@ name: flutter_security_suite description: "Security utilities for Flutter apps" -version: 1.0.0 +version: 1.1.0 homepage: environment: - sdk: ^3.7.2 - flutter: '>=3.41.0' + sdk: ^3.12.0 + flutter: '>=3.44.0' dependencies: flutter: