From 51583178632f3d5ca833951dbdb8459f39b733a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 26 Feb 2024 23:08:05 +0000 Subject: [PATCH 01/16] :arrow_up: update Android project to AGP 8.2 --- android/build.gradle | 19 +++++++++++++++---- android/src/main/AndroidManifest.xml | 3 +-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 1e0a029..0c40f3f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,14 +2,14 @@ group 'com.mparticle.mparticle_flutter_sdk' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.7.21' + ext.kotlin_version = '1.9.22' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.android.tools.build:gradle:8.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,18 +25,29 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 33 + namespace "com.mparticle.mparticle_flutter_sdk" sourceSets { main.java.srcDirs += 'src/main/kotlin' } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } + defaultConfig { minSdkVersion 16 + compileSdkVersion 34 } } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation 'com.mparticle:android-core:5+' // Required for gathering Android Advertising ID (see below) diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 6107425..a2f47b6 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,3 +1,2 @@ - + From 22f5d89f76c1654e63a26974e0841c73c4f9f06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Thu, 7 Mar 2024 20:21:02 +0000 Subject: [PATCH 02/16] :arrow_down: downgrade Java compatibility from 11 to 1.8 --- android/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 0c40f3f..a9d5c8a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -32,12 +32,12 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_17 + jvmTarget = JavaVersion.VERSION_1_8 } defaultConfig { From d9ad77b8bf09d37ef721cf8b9ccb3562dff5eb7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 11 Mar 2024 21:11:42 +0000 Subject: [PATCH 03/16] :arrow_up: bump Dart SDK to v3.0.0 and Flutter to v3.10.0 --- pubspec.lock | 129 ++++++++++++++++++++++++++++++++------------------- pubspec.yaml | 6 +-- 2 files changed, 85 insertions(+), 50 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index d1be63b..feb96f5 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,51 +5,50 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.18.0" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -65,41 +64,62 @@ packages: description: flutter source: sdk version: "0.0.0" - js: + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: dependency: transitive description: - name: js - url: "https://pub.dartlang.org" + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" source: hosted - version: "0.12.11" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" source: hosted - version: "0.1.4" + version: "0.8.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.11.0" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -109,51 +129,66 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" source: hosted - version: "0.4.9" + version: "0.6.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" sdks: - dart: ">=2.17.0-0 <3.0.0" - flutter: ">=1.20.0" + dart: ">=3.2.0-0 <4.0.0" + flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1d0dc4b..1479c98 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,12 +1,12 @@ name: mparticle_flutter_sdk description: mParticle Flutter Plugin - SDK wrapper for iOS, Android, and Web platforms -version: 1.0.3 +version: 1.0.4-dev homepage: https://github.com/mParticle/mparticle-flutter-sdk repository: https://github.com/mParticle/mparticle-flutter-sdk environment: - sdk: ">=2.12.0 <3.0.0" - flutter: ">=1.20.0" + sdk: ">=3.0.0 <4.0.0" + flutter: ">=3.10.0" dependencies: flutter: From 1b94ebddc30b9924e88ff4bd45ec4406bf7e09e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 11 Mar 2024 21:12:03 +0000 Subject: [PATCH 04/16] :white_check_mark: fix tests --- test/mparticle_flutter_sdk_test.dart | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/mparticle_flutter_sdk_test.dart b/test/mparticle_flutter_sdk_test.dart index 30bf499..7f2348d 100644 --- a/test/mparticle_flutter_sdk_test.dart +++ b/test/mparticle_flutter_sdk_test.dart @@ -22,13 +22,19 @@ void main() { MparticleFlutterSdk mp = MparticleFlutterSdk(); setUp(() async { - channel.setMockMethodCallHandler((MethodCall call) async { - methodCall = call; - }); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall call) async { + methodCall = call; + return null; + }, + ); }); tearDown(() { - channel.setMockMethodCallHandler(null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); methodCall = null; }); From 432c0adaa2b417bc55f4a919b60eef30a3ffad16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 11 Mar 2024 21:12:46 +0000 Subject: [PATCH 05/16] :technologist: update examples --- example/.gitignore | 1 - example/android/app/build.gradle | 30 ++-- .../android/app/src/main/AndroidManifest.xml | 3 +- example/android/build.gradle | 21 +-- example/android/gradle.properties | 6 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/android/settings.gradle | 31 ++-- example/ios/Flutter/AppFrameworkInfo.plist | 2 +- example/ios/Podfile | 2 +- example/ios/Runner.xcodeproj/project.pbxproj | 7 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- example/ios/Runner/Info.plist | 4 + example/lib/main.dart | 3 +- example/pubspec.lock | 136 +++++++++++------- example/pubspec.yaml | 6 +- 15 files changed, 160 insertions(+), 96 deletions(-) diff --git a/example/.gitignore b/example/.gitignore index 0fa6b67..a1345d0 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -32,7 +32,6 @@ /build/ # Web related -lib/generated_plugin_registrant.dart # Symbolication related app.*.symbols diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index e878a3e..e0769b4 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "dev.flutter.flutter-gradle-plugin" + id "org.jetbrains.kotlin.android" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -21,12 +27,19 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 33 + namespace "com.mparticle.mparticle_flutter_sdk_example" + + compileSdkVersion 34 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -35,7 +48,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.mparticle.mparticle_flutter_sdk_example" - minSdkVersion 16 + minSdkVersion flutter.minSdkVersion targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName @@ -55,12 +68,11 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.mparticle:android-core:5+' // Required for gathering Android Advertising ID (see below) - implementation 'com.google.android.gms:play-services-ads-identifier:16.0.0' + implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' // Recommended to query the Google Play install referrer - implementation 'com.android.installreferrer:installreferrer:1.0' + implementation 'com.android.installreferrer:installreferrer:2.2' } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 1803c8d..0eb318c 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + properties.load(reader) } +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "8.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.9.23" apply false +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +include ':app' diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 9367d48..7c56964 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 12.0 diff --git a/example/ios/Podfile b/example/ios/Podfile index ef1fcd8..68514c0 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 8cfb369..18a9d31 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -155,7 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1250; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -199,10 +199,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -230,6 +232,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 7785fe3..5e31d3d 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + diff --git a/example/lib/main.dart b/example/lib/main.dart index 056b83f..367081e 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -34,10 +34,11 @@ final myController = TextEditingController(); class _MyAppState extends State { bool _isInitialized = false; + TextButton buildButton(text, onPressedFunction) { return TextButton( style: TextButton.styleFrom( - primary: Colors.white, + foregroundColor: Colors.white, backgroundColor: Colors.green, ), child: Text( diff --git a/example/pubspec.lock b/example/pubspec.lock index 0a26762..ff3e785 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,58 +5,58 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.18.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.6" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -72,48 +72,69 @@ packages: description: flutter source: sdk version: "0.0.0" - js: + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: dependency: transitive description: - name: js - url: "https://pub.dartlang.org" + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" source: hosted - version: "0.12.11" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" source: hosted - version: "0.1.4" + version: "0.8.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.11.0" mparticle_flutter_sdk: dependency: "direct main" description: path: ".." relative: true source: path - version: "1.0.3" + version: "1.0.4-dev" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -123,51 +144,66 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" source: hosted - version: "0.4.9" + version: "0.6.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" sdks: - dart: ">=2.17.0-0 <3.0.0" - flutter: ">=1.20.0" + dart: ">=3.2.0-0 <4.0.0" + flutter: ">=3.10.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index dc9fc0d..5487856 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,12 +1,14 @@ name: mparticle_flutter_sdk_example description: Demonstrates how to use the mparticle_flutter_sdk plugin. +version: 1.0.0+1 + # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: @@ -22,7 +24,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.2 + cupertino_icons: ^1.0.6 dev_dependencies: flutter_test: From d6c1fb9c879c0b14e87ba060d3f5b9922246a4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 11 Mar 2024 21:12:58 +0000 Subject: [PATCH 06/16] :green_heart: fix CI --- .github/workflows/pull-request.yml | 170 +++++++++++++++++++++++------ 1 file changed, 136 insertions(+), 34 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 535a976..2e98d73 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,52 +1,154 @@ name: Build and Test -on: [push, pull_request] +on: + push: + pull_request: +defaults: + run: + shell: bash +env: + PUB_ENVIRONMENT: bot.github + jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 + with: + channel: "stable" + cache: true + - name: Install dependencies + run: flutter pub get + - name: Run tests + run: flutter test + - name: Cleanup + if: ${{ always() }} + run: | + if command -v flutter &>/dev/null; then + flutter clean + fi build-android: + needs: test name: Build Android flutter app runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v4 with: - java-version: "12.x" - - uses: subosito/flutter-action@v2 + distribution: "temurin" + java-version: "17" + cache: "gradle" + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 with: - flutter-version: "3.3.8" - channel: 'stable' - - run: | - cd example - flutter pub get - flutter test - flutter build apk - flutter build appbundle + channel: "stable" + cache: true + - name: Install example dependencies + working-directory: example + run: flutter pub get + - name: Test example + working-directory: example + run: flutter test + - name: Build example APK + working-directory: example + run: flutter build apk + - name: Check if example APK exists + working-directory: example + run: | + set -e + if [ ! -f build/app/outputs/apk/release/app-release.apk ]; then + echo "APK file not found!" + exit 1 + fi + - name: Build example App Bundle + working-directory: example + run: flutter build appbundle + - name: Check if example App Bundle exists + working-directory: example + run: | + set -e + if [ ! -f build/app/outputs/bundle/release/app-release.aab ]; then + echo "App Bundle not found!" + exit 1 + fi + - name: Cleanup + if: ${{ always() }} + working-directory: example + run: | + rm -rf build + if command -v flutter &>/dev/null; then + flutter clean + fi build-ios: + needs: test name: Build iOS flutter app - runs-on: macos-latest + runs-on: macos-14 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v1 - with: - java-version: "12.x" - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@v4 + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 with: - flutter-version: "3.3.8" - channel: 'stable' - - run: | - cd example - flutter pub get - flutter test - flutter build apk - flutter build ios --release --no-codesign + channel: "stable" + cache: true + - name: Install example dependencies + working-directory: example + run: flutter pub get + - name: Test + working-directory: example + run: flutter test + - name: Build unsigned example Xcode archive + working-directory: example + run: flutter build ipa --release --no-codesign + - name: Check if unsigned example Xcode archive exists + working-directory: example + run: | + set -e + if [ ! -d build/ios/archive/Runner.xcarchive ]; then + echo "Xcode archive not found!" + exit 1 + fi + - name: Cleanup + if: ${{ always() }} + working-directory: example + run: | + rm -rf build + if command -v flutter &>/dev/null; then + flutter clean + fi build-web: + needs: test name: Build web flutter app runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@v4 + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 with: - flutter-version: "3.3.8" - channel: 'stable' - - run: | - cd example - flutter pub get - flutter build web + channel: "stable" + cache: true + - name: Install example dependencies + working-directory: example + run: flutter pub get + - name: Test example + working-directory: example + run: flutter test + - name: Build example web + run: flutter build web + - name: Check if example web exists + working-directory: example + run: | + set -e + if [ ! -f build/web/flutter.js ]; then + echo "Web build not found!" + exit 1 + fi + - name: Cleanup + if: ${{ always() }} + working-directory: example + run: | + rm -rf build + if command -v flutter &>/dev/null; then + flutter clean + fi \ No newline at end of file From 0c03cd57cb8da152c7a5aad99f7e254123b29ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 11 Mar 2024 21:16:16 +0000 Subject: [PATCH 07/16] :green_heart: fix CI --- .github/workflows/pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2e98d73..dce8b0c 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -100,7 +100,7 @@ jobs: run: flutter test - name: Build unsigned example Xcode archive working-directory: example - run: flutter build ipa --release --no-codesign + run: flutter build ipa --no-codesign - name: Check if unsigned example Xcode archive exists working-directory: example run: | From 30b0f42afebd3b8ff2aacc4a189d0a8f08f29580 Mon Sep 17 00:00:00 2001 From: Klemen Tusar Date: Wed, 13 Mar 2024 16:36:50 +0000 Subject: [PATCH 08/16] bump actions/checkout to v4 --- .github/workflows/pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index dce8b0c..38672cb 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -34,7 +34,7 @@ jobs: name: Build Android flutter app runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: "temurin" @@ -151,4 +151,4 @@ jobs: rm -rf build if command -v flutter &>/dev/null; then flutter clean - fi \ No newline at end of file + fi From ffd3783039dc8288758261435270268ef5189bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 18:58:23 +0000 Subject: [PATCH 09/16] :green_heart: fix web CI --- .github/workflows/pull-request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 38672cb..83943b1 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -135,6 +135,7 @@ jobs: working-directory: example run: flutter test - name: Build example web + working-directory: example run: flutter build web - name: Check if example web exists working-directory: example From f1978450d0aba3de60319179ead589d14fc31c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 22:31:14 +0000 Subject: [PATCH 10/16] :rewind: revert example/.gitignore --- example/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/example/.gitignore b/example/.gitignore index a1345d0..0fa6b67 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -32,6 +32,7 @@ /build/ # Web related +lib/generated_plugin_registrant.dart # Symbolication related app.*.symbols From 178ad164cb6f9cf737fbbc816415a77489fddbe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 22:32:21 +0000 Subject: [PATCH 11/16] :pushpin: pin FLUTTER_SDK_VERSION --- .github/workflows/pull-request.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 83943b1..eabcfd3 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -7,6 +7,8 @@ defaults: shell: bash env: PUB_ENVIRONMENT: bot.github + # pinned to latest stable version + FLUTTER_SDK_VERSION: 3.19.3 jobs: test: @@ -17,6 +19,7 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} channel: "stable" cache: true - name: Install dependencies @@ -43,6 +46,7 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} channel: "stable" cache: true - name: Install example dependencies @@ -90,6 +94,7 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} channel: "stable" cache: true - name: Install example dependencies @@ -126,6 +131,7 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} channel: "stable" cache: true - name: Install example dependencies From 94163d761cf3e05f957210167de74d872f8d3d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 22:32:53 +0000 Subject: [PATCH 12/16] :bookmark: remove -dev --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 1479c98..5e80eff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: mparticle_flutter_sdk description: mParticle Flutter Plugin - SDK wrapper for iOS, Android, and Web platforms -version: 1.0.4-dev +version: 1.0.4 homepage: https://github.com/mParticle/mparticle-flutter-sdk repository: https://github.com/mParticle/mparticle-flutter-sdk From aa60349b8d97bc8a0fc9c2a135c5ca117dbb6877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 22:51:30 +0000 Subject: [PATCH 13/16] :construction_worker: use a matrix of last known working and latest --- .github/workflows/pull-request.yml | 71 +++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index eabcfd3..1ae8341 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -7,21 +7,31 @@ defaults: shell: bash env: PUB_ENVIRONMENT: bot.github - # pinned to latest stable version - FLUTTER_SDK_VERSION: 3.19.3 jobs: test: name: Test runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + # Last known working Flutter SDK + - flutter_sdk_version: "3.19.3" + flutter_channel: "stable" + allow_failure: false + # Latest stable Flutter SDK + - flutter_sdk_version: "any" + flutter_channel: "stable" + allow_failure: true + continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ env.FLUTTER_SDK_VERSION }} - channel: "stable" - cache: true + flutter-version: ${{ matrix.flutter_sdk_version }} + channel: ${{ matrix.flutter_channel }} - name: Install dependencies run: flutter pub get - name: Run tests @@ -36,6 +46,19 @@ jobs: needs: test name: Build Android flutter app runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + # Last known working Flutter SDK + - flutter_sdk_version: "3.19.3" + flutter_channel: "stable" + allow_failure: false + # Latest stable Flutter SDK + - flutter_sdk_version: "any" + flutter_channel: "stable" + allow_failure: true + continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -46,8 +69,8 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ env.FLUTTER_SDK_VERSION }} - channel: "stable" + flutter-version: ${{ matrix.flutter_sdk_version }} + channel: ${{ matrix.flutter_channel }} cache: true - name: Install example dependencies working-directory: example @@ -89,13 +112,26 @@ jobs: needs: test name: Build iOS flutter app runs-on: macos-14 + strategy: + fail-fast: false + matrix: + include: + # Last known working Flutter SDK + - flutter_sdk_version: "3.19.3" + flutter_channel: "stable" + allow_failure: false + # Latest stable Flutter SDK + - flutter_sdk_version: "any" + flutter_channel: "stable" + allow_failure: true + continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ env.FLUTTER_SDK_VERSION }} - channel: "stable" + flutter-version: ${{ matrix.flutter_sdk_version }} + channel: ${{ matrix.flutter_channel }} cache: true - name: Install example dependencies working-directory: example @@ -126,13 +162,26 @@ jobs: needs: test name: Build web flutter app runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + # Last known working Flutter SDK + - flutter_sdk_version: "3.19.3" + flutter_channel: "stable" + allow_failure: false + # Latest stable Flutter SDK + - flutter_sdk_version: "any" + flutter_channel: "stable" + allow_failure: true + continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ env.FLUTTER_SDK_VERSION }} - channel: "stable" + flutter-version: ${{ matrix.flutter_sdk_version }} + channel: ${{ matrix.flutter_channel }} cache: true - name: Install example dependencies working-directory: example From 5af5c351dfea1bb8de24b999b52f12ed1e105fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 22:57:07 +0000 Subject: [PATCH 14/16] :construction_worker: cache test flutter sdk --- .github/workflows/pull-request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 1ae8341..470841d 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -32,6 +32,7 @@ jobs: with: flutter-version: ${{ matrix.flutter_sdk_version }} channel: ${{ matrix.flutter_channel }} + cache: true - name: Install dependencies run: flutter pub get - name: Run tests From 608b804af3455fad6495dfe37413cb12ec360a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 23:59:19 +0000 Subject: [PATCH 15/16] Revert ":construction_worker: cache test flutter sdk" This reverts commit 5af5c351dfea1bb8de24b999b52f12ed1e105fc4. --- .github/workflows/pull-request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 470841d..1ae8341 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -32,7 +32,6 @@ jobs: with: flutter-version: ${{ matrix.flutter_sdk_version }} channel: ${{ matrix.flutter_channel }} - cache: true - name: Install dependencies run: flutter pub get - name: Run tests From 84b83300edabb6a5b915a426548d6dedb4ac712d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Tu=C5=A1ar?= Date: Mon, 18 Mar 2024 23:59:23 +0000 Subject: [PATCH 16/16] Revert ":construction_worker: use a matrix of last known working and latest" This reverts commit aa60349b8d97bc8a0fc9c2a135c5ca117dbb6877. --- .github/workflows/pull-request.yml | 71 +++++------------------------- 1 file changed, 11 insertions(+), 60 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 1ae8341..eabcfd3 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -7,31 +7,21 @@ defaults: shell: bash env: PUB_ENVIRONMENT: bot.github + # pinned to latest stable version + FLUTTER_SDK_VERSION: 3.19.3 jobs: test: name: Test runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - # Last known working Flutter SDK - - flutter_sdk_version: "3.19.3" - flutter_channel: "stable" - allow_failure: false - # Latest stable Flutter SDK - - flutter_sdk_version: "any" - flutter_channel: "stable" - allow_failure: true - continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ matrix.flutter_sdk_version }} - channel: ${{ matrix.flutter_channel }} + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} + channel: "stable" + cache: true - name: Install dependencies run: flutter pub get - name: Run tests @@ -46,19 +36,6 @@ jobs: needs: test name: Build Android flutter app runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - # Last known working Flutter SDK - - flutter_sdk_version: "3.19.3" - flutter_channel: "stable" - allow_failure: false - # Latest stable Flutter SDK - - flutter_sdk_version: "any" - flutter_channel: "stable" - allow_failure: true - continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -69,8 +46,8 @@ jobs: - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ matrix.flutter_sdk_version }} - channel: ${{ matrix.flutter_channel }} + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} + channel: "stable" cache: true - name: Install example dependencies working-directory: example @@ -112,26 +89,13 @@ jobs: needs: test name: Build iOS flutter app runs-on: macos-14 - strategy: - fail-fast: false - matrix: - include: - # Last known working Flutter SDK - - flutter_sdk_version: "3.19.3" - flutter_channel: "stable" - allow_failure: false - # Latest stable Flutter SDK - - flutter_sdk_version: "any" - flutter_channel: "stable" - allow_failure: true - continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ matrix.flutter_sdk_version }} - channel: ${{ matrix.flutter_channel }} + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} + channel: "stable" cache: true - name: Install example dependencies working-directory: example @@ -162,26 +126,13 @@ jobs: needs: test name: Build web flutter app runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - # Last known working Flutter SDK - - flutter_sdk_version: "3.19.3" - flutter_channel: "stable" - allow_failure: false - # Latest stable Flutter SDK - - flutter_sdk_version: "any" - flutter_channel: "stable" - allow_failure: true - continue-on-error: ${{ matrix.allow_failure }} steps: - uses: actions/checkout@v4 - name: Setup Flutter SDK uses: subosito/flutter-action@v2 with: - flutter-version: ${{ matrix.flutter_sdk_version }} - channel: ${{ matrix.flutter_channel }} + flutter-version: ${{ env.FLUTTER_SDK_VERSION }} + channel: "stable" cache: true - name: Install example dependencies working-directory: example