Conversation
- Add GitHub Actions CI/CD workflow for automated testing - Add local test script for pre-push validation - Add testing documentation - Add PR template with testing checklist This enables testing Android/iOS builds without physical devices, which is critical for validating changes like compileSdk updates.
Updates compileSdkVersion from 31 to 34 to fix compatibility with com.android.application 8.13.+, which requires API 34+. This change only affects build-time compilation and does not impact runtime compatibility. The minSdkVersion remains 16, so the plugin continues to support Android 4.1+ devices.
- Format all Dart files to match dart format standards - Add basic smoke test to prevent "no tests found" error - Fix example app test to match actual UI - Make iOS build step continue on error (Podfile issue to be fixed separately) These fixes ensure the Android build test runs successfully to validate the compileSdk update.
- Remove unused imports in test files - Update Gradle plugin from 7.2.0 to 8.1.0 for SDK 34 compatibility - Update example app to use compileSdkVersion 34 This resolves all CI analysis warnings and ensures proper SDK 34 support.
- Add PrivacyInfo.xcprivacy file required for App Store submissions - Update podspec to include privacy manifest in resource bundle - Declares no data collection or tracking (plugin only measures keyboard height) This is required by Apple for iOS 17+ App Store submissions.
Create explicit Podfile for example app that only configures the Runner target. This fixes the "Unable to find a target named RunnerTests" error that prevented running the example app on iOS simulators. Without this file, Flutter auto-generates a Podfile that tries to configure test targets that don't exist in the Xcode project.
Update from Gradle 7.5 to 8.5 to support Java 21, which is required for the Android Gradle Plugin 8.1.0 and compileSdk 34. Gradle 8.5+ supports Java 8-21, fixing the "Unsupported class file major version 65" error on systems with Java 21.
Update example app to use the new declarative plugins block instead of imperative apply methods, as required by Gradle 8.x and modern Flutter. Changes: - Migrate settings.gradle to use pluginManagement and plugins blocks - Update app/build.gradle to use plugins block - Fixes "app_plugin_loader Gradle plugin imperatively" error This is required for Gradle 8.1+ compatibility.
Move plugins block to the top of build.gradle file as required by
Gradle 8.x. The plugins block must be the first statement, before
any variable definitions or other code.
Fixes: "only buildscript {}, pluginManagement {} and other plugins {}
script blocks are allowed before plugins {} blocks"
- Update Gradle wrapper from 8.5 to 8.7 (Flutter min requirement) - Update Android Gradle Plugin from 8.1.0 to 8.3.0 (Flutter min 8.1.1) - Update AGP in plugin build.gradle to match Fixes: "Your project's Android Gradle Plugin version (8.1.0) is lower than Flutter's minimum supported version of 8.1.1"
- Update Kotlin from 1.7.10 to 1.9.0 (Flutter minimum is 1.8.10) - Update Android Gradle Plugin from 8.3.0 to 8.6.0 (Flutter minimum) - Update versions in both plugin and example app Fixes: "Your project's Kotlin version (1.7.10) is lower than Flutter's minimum supported version of 1.8.10"
Fix the example app's build.gradle that was still using old versions: - Update Kotlin from 1.7.10 to 1.9.0 - Update AGP from 7.2.0 to 8.6.0 This was causing the "Kotlin version (1.7.10) is lower than Flutter's minimum" error even though the plugin's build.gradle was updated.
- Update Kotlin from 1.9.0 to 2.1.0 in plugin build.gradle - Update Kotlin from 1.9.0 to 2.1.0 in example app build.gradle - Update Kotlin from 1.9.0 to 2.1.0 in example app settings.gradle This brings the plugin up to date with the latest stable Kotlin version.
Add namespace declaration required by AGP 8.6+. The namespace replaces the package attribute from AndroidManifest.xml. Fixes: "Namespace not specified. Specify a namespace in the module's build file"
Add ignore patterns for: - ios/Flutter/Debug.xcconfig and Release.xcconfig (Flutter-generated) - flutter_export_environment.sh (Flutter-generated) - pubspec.lock (dependency lock file) - *.zip (Android bug report files) These files are auto-generated and shouldn't be committed.
BREAKING CHANGES: This release updates to modern Android build tooling. - Bump version from 0.1.5 to 0.2.0 - Update CHANGELOG with all breaking changes and new features - Update README with version requirements and migration guidance Version 0.2.0 requires: - Android Gradle Plugin 8.6.0+ - Gradle 8.7+ - Kotlin 2.1.0+ - Java 17+ Projects unable to upgrade should remain on version 0.1.5. Closes #14 (compileSdk 34 compatibility) Closes #6 (iOS Privacy Manifest)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Version 0.2.0 with modern Android build tooling and iOS App Store compliance.
Quick Wins
Requires: AGP 8.6+, Gradle 8.7+, Kotlin 2.1+, Java 17+
Projects unable to upgrade should use version 0.1.5.
See CHANGELOG.md for migration guide.
Closes #14
Closes #6