diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml
index 1fced5c1..40c0b8e9 100644
--- a/.buildkite/pipeline.yml
+++ b/.buildkite/pipeline.yml
@@ -17,10 +17,12 @@ steps:
commands:
- make lint
- - label: Build Example App 3.10.0
+ - label: Build Example App 3.24.4
timeout_in_minutes: 10
+ agents:
+ queue: macos-14
env:
- FLUTTER_BIN: "/opt/flutter/3.10.0/bin/flutter"
+ FLUTTER_BIN: "/opt/flutter/3.24.4/bin/flutter"
commands:
- bundle install
- pod repo update
@@ -70,6 +72,10 @@ steps:
- "--no-tunnel"
- "--aws-public-ip"
- "--fail-fast"
+ test-collector#v1.10.2:
+ files: "reports/TEST-*.xml"
+ format: "junit"
+ branch: "^main|next$$"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
@@ -110,6 +116,10 @@ steps:
- "--device=ANDROID_12"
- "--appium-version=1.22.0"
- "--fail-fast"
+ test-collector#v1.10.2:
+ files: "reports/TEST-*.xml"
+ format: "junit"
+ branch: "^main|next$$"
concurrency: 5
concurrency_group: 'browserstack-app'
concurrency_method: eager
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 9c2a8fc8..a334fb91 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -22,6 +22,7 @@ jobs:
VERSION: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.target_version || inputs.target_version }}
BUNDLE_GITHUB__COM: ${{ secrets.BUNDLE_ACCESS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REVIEWER: kstenerud,robert-smartbear
steps:
- uses: actions/checkout@v4
with:
@@ -55,7 +56,7 @@ jobs:
if: ${{ steps.current-branch.outputs.branch != 'next'}}
run: >
gh pr create -B next
- -H bumpsnag-$TARGET_SUBMODULE-$TARGET_VERSION
- --title "Update $TARGET_SUBMODULE to version $TARGET_VERSION"
+ -H bumpsnag-$SUBMODULE-$VERSION
+ --title "Update $SUBMODULE to version $VERSION"
--body 'Created by bumpsnag'
- --reviewer kstenerud,robert-smartbear
+ --reviewer $REVIEWER
diff --git a/.gitignore b/.gitignore
index 0867a344..174aa195 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@
Package.resolved
Podfile.lock
maze_output/
+Gemfile.lock
+.idea/
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48c16982..e30ca54f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog
+## 4.1.0 (2024-11-04)
+
+- Upgrade Android compileSdkVersion from 29 to 31.
+ [263](https://github.com/bugsnag/bugsnag-flutter/pull/263)
+
## 4.0.0 (2024-07-29)
### Breaking Changes
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 457998bd..00000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,220 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- CFPropertyList (3.0.7)
- base64
- nkf
- rexml
- activesupport (7.1.3.2)
- base64
- bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
- connection_pool (>= 2.2.5)
- drb
- i18n (>= 1.6, < 2)
- minitest (>= 5.1)
- mutex_m
- tzinfo (~> 2.0)
- addressable (2.8.6)
- public_suffix (>= 2.0.2, < 6.0)
- algoliasearch (1.27.5)
- httpclient (~> 2.8, >= 2.8.3)
- json (>= 1.5.1)
- appium_lib (12.0.1)
- appium_lib_core (~> 5.0)
- nokogiri (~> 1.8, >= 1.8.1)
- tomlrb (>= 1.1, < 3.0)
- appium_lib_core (5.4.0)
- faye-websocket (~> 0.11.0)
- selenium-webdriver (~> 4.2, < 4.6)
- atomos (0.1.3)
- base64 (0.2.0)
- bigdecimal (3.1.7)
- bugsnag (6.27.1)
- concurrent-ruby (~> 1.0)
- bugsnag-maze-runner (9.11.1)
- appium_lib (~> 12.0.0)
- appium_lib_core (~> 5.4.0)
- bugsnag (~> 6.24)
- cucumber (~> 7.1)
- cucumber-expressions (~> 6.0.0)
- curb (~> 0.9.6)
- dogstatsd-ruby (~> 5.5.0)
- json_schemer (~> 0.2.24)
- optimist (~> 3.0.1)
- os (~> 1.0.0)
- rack (~> 2.2)
- rake (~> 12.3.3)
- rubyzip (~> 2.3.2)
- selenium-webdriver (~> 4.0)
- test-unit (~> 3.5.2)
- webrick (~> 1.7.0)
- builder (3.3.0)
- childprocess (4.1.0)
- claide (1.1.0)
- cocoapods (1.15.2)
- addressable (~> 2.8)
- claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.15.2)
- cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 2.1, < 3.0)
- cocoapods-plugins (>= 1.0.0, < 2.0)
- cocoapods-search (>= 1.0.0, < 2.0)
- cocoapods-trunk (>= 1.6.0, < 2.0)
- cocoapods-try (>= 1.1.0, < 2.0)
- colored2 (~> 3.1)
- escape (~> 0.0.4)
- fourflusher (>= 2.3.0, < 3.0)
- gh_inspector (~> 1.0)
- molinillo (~> 0.8.0)
- nap (~> 1.0)
- ruby-macho (>= 2.3.0, < 3.0)
- xcodeproj (>= 1.23.0, < 2.0)
- cocoapods-core (1.15.2)
- activesupport (>= 5.0, < 8)
- addressable (~> 2.8)
- algoliasearch (~> 1.0)
- concurrent-ruby (~> 1.1)
- fuzzy_match (~> 2.0.4)
- nap (~> 1.0)
- netrc (~> 0.11)
- public_suffix (~> 4.0)
- typhoeus (~> 1.0)
- cocoapods-deintegrate (1.0.5)
- cocoapods-downloader (2.1)
- cocoapods-plugins (1.0.0)
- nap
- cocoapods-search (1.0.1)
- cocoapods-trunk (1.6.0)
- nap (>= 0.8, < 2.0)
- netrc (~> 0.11)
- cocoapods-try (1.2.0)
- colored2 (3.1.2)
- concurrent-ruby (1.2.2)
- connection_pool (2.4.1)
- cucumber (7.1.0)
- builder (~> 3.2, >= 3.2.4)
- cucumber-core (~> 10.1, >= 10.1.0)
- cucumber-create-meta (~> 6.0, >= 6.0.1)
- cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
- cucumber-gherkin (~> 22.0, >= 22.0.0)
- cucumber-html-formatter (~> 17.0, >= 17.0.0)
- cucumber-messages (~> 17.1, >= 17.1.1)
- cucumber-wire (~> 6.2, >= 6.2.0)
- diff-lcs (~> 1.4, >= 1.4.4)
- mime-types (~> 3.3, >= 3.3.1)
- multi_test (~> 0.1, >= 0.1.2)
- sys-uname (~> 1.2, >= 1.2.2)
- cucumber-core (10.1.1)
- cucumber-gherkin (~> 22.0, >= 22.0.0)
- cucumber-messages (~> 17.1, >= 17.1.1)
- cucumber-tag-expressions (~> 4.1, >= 4.1.0)
- cucumber-create-meta (6.0.4)
- cucumber-messages (~> 17.1, >= 17.1.1)
- sys-uname (~> 1.2, >= 1.2.2)
- cucumber-cucumber-expressions (14.0.0)
- cucumber-expressions (6.0.1)
- cucumber-gherkin (22.0.0)
- cucumber-messages (~> 17.1, >= 17.1.1)
- cucumber-html-formatter (17.0.0)
- cucumber-messages (~> 17.1, >= 17.1.0)
- cucumber-messages (17.1.1)
- cucumber-tag-expressions (4.1.0)
- cucumber-wire (6.2.1)
- cucumber-core (~> 10.1, >= 10.1.0)
- cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
- curb (0.9.11)
- diff-lcs (1.5.1)
- dogstatsd-ruby (5.5.0)
- drb (2.2.1)
- ecma-re-validator (0.4.0)
- regexp_parser (~> 2.2)
- escape (0.0.4)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- eventmachine (1.2.7)
- faye-websocket (0.11.3)
- eventmachine (>= 0.12.0)
- websocket-driver (>= 0.5.1)
- ffi (1.15.5)
- fourflusher (2.3.1)
- fuzzy_match (2.0.4)
- gh_inspector (1.1.3)
- hana (1.3.7)
- httpclient (2.8.3)
- i18n (1.14.4)
- concurrent-ruby (~> 1.0)
- json (2.7.2)
- json_schemer (0.2.25)
- ecma-re-validator (~> 0.3)
- hana (~> 1.3)
- regexp_parser (~> 2.0)
- simpleidn (~> 0.2)
- uri_template (~> 0.7)
- mime-types (3.5.2)
- mime-types-data (~> 3.2015)
- mime-types-data (3.2024.0702)
- minitest (5.22.3)
- molinillo (0.8.0)
- multi_test (0.1.2)
- mutex_m (0.2.0)
- nanaimo (0.3.0)
- nap (1.1.0)
- netrc (0.11.0)
- nkf (0.2.0)
- nokogiri (1.16.6-arm64-darwin)
- racc (~> 1.4)
- nokogiri (1.16.6-x86_64-darwin)
- racc (~> 1.4)
- optimist (3.0.1)
- os (1.0.1)
- power_assert (2.0.3)
- public_suffix (4.0.7)
- racc (1.8.0)
- rack (2.2.9)
- rake (12.3.3)
- regexp_parser (2.9.2)
- rexml (3.2.6)
- ruby-macho (2.5.1)
- rubyzip (2.3.2)
- selenium-webdriver (4.5.0)
- childprocess (>= 0.5, < 5.0)
- rexml (~> 3.2, >= 3.2.5)
- rubyzip (>= 1.2.2, < 3.0)
- websocket (~> 1.0)
- simpleidn (0.2.3)
- sys-uname (1.3.0)
- ffi (~> 1.1)
- test-unit (3.5.9)
- power_assert
- tomlrb (2.0.3)
- typhoeus (1.4.1)
- ethon (>= 0.9.0)
- tzinfo (2.0.6)
- concurrent-ruby (~> 1.0)
- uri_template (0.7.0)
- webrick (1.7.0)
- websocket (1.2.11)
- websocket-driver (0.7.6)
- websocket-extensions (>= 0.1.0)
- websocket-extensions (0.1.5)
- xcodeproj (1.24.0)
- CFPropertyList (>= 2.3.3, < 4.0)
- atomos (~> 0.1.3)
- claide (>= 1.0.2, < 2.0)
- colored2 (~> 3.1)
- nanaimo (~> 0.3.0)
- rexml (~> 3.2.4)
-
-PLATFORMS
- arm64-darwin-22
- x86_64-darwin-20
- x86_64-darwin-21
- x86_64-darwin-23
-
-DEPENDENCIES
- bugsnag-maze-runner (~> 9.0)
- cocoapods
-
-BUNDLED WITH
- 2.4.18
diff --git a/Makefile b/Makefile
index 1339432b..6cfbd6f1 100644
--- a/Makefile
+++ b/Makefile
@@ -112,3 +112,39 @@ else ifeq ($(SUBMODULE), bugsnag-cocoa)
else
@$(error SUBMODULE must be one of bugsnag-android or bugsnag-cocoa)
endif
+
+prerelease: bump stage ## Generates a PR for the $VERSION release
+ifeq ($(VERSION),)
+ @$(error VERSION is not defined. Run with `make VERSION=number prerelease`)
+endif
+ rm -rf staging
+ @git checkout -b release-v$(VERSION)
+ @git add packages/bugsnag_flutter/pubspec.yaml packages/bugsnag_breadcrumbs_dart_io/pubspec.yaml packages/bugsnag_breadcrumbs_http/pubspec.yaml packages/bugsnag_flutter/lib/src/client.dart CHANGELOG.md VERSION
+ @git diff --exit-code || (echo "you have unstaged changes - Makefile may need updating to `git add` some more files"; exit 1)
+ @git commit -m "Release v$(VERSION)"
+ @git push origin release-v$(VERSION)
+ @open "https://github.com/bugsnag/bugsnag-flutter/compare/main...release-v$(VERSION)?expand=1&title=Release%20v$(VERSION)&body="$$(awk 'start && /^## /{exit;};/^## /{start=1;next};start' CHANGELOG.md | hexdump -v -e '/1 "%02x"' | sed 's/\(..\)/%\1/g')
+
+release: stage ## Releases the current main branch as $VERSION
+ @git fetch origin
+ifneq ($(shell git rev-parse --abbrev-ref HEAD),main) # Check the current branch name
+ @git checkout main
+ @git rebase origin/main
+endif
+ifneq ($(shell git diff origin/main..main),)
+ $(error you have unpushed commits on the main branch)
+endif
+ @git tag v$(PRESET_VERSION)
+ @git push origin v$(PRESET_VERSION)
+ @git checkout next
+ @git rebase origin/next
+ @git merge main
+ @git push origin next
+ # Prep GitHub release
+ # We could technically do a `hub release` here but a verification step
+ # before it goes live always seems like a good thing
+ @open 'https://github.com/bugsnag/bugsnag-flutter/releases/new?title=v$(PRESET_VERSION)&tag=v$(PRESET_VERSION)&body='$$(awk 'start && /^## /{exit;};/^## /{start=1;next};start' CHANGELOG.md | hexdump -v -e '/1 "%02x"' | sed 's/\(..\)/%\1/g')
+ cd staging/bugsnag_flutter && $(FLUTTER_BIN) pub publish
+ cd staging/bugsnag_breadcrumbs_dart_io && $(FLUTTER_BIN) pub publish
+ cd staging/bugsnag_breadcrumbs_http && $(FLUTTER_BIN) pub publish
+ rm -rf staging
diff --git a/VERSION b/VERSION
new file mode 100644
index 00000000..fcdb2e10
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+4.0.0
diff --git a/docker-compose.yml b/docker-compose.yml
index bf1d84d6..2c5f70a3 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -20,15 +20,18 @@ services:
BUILDKITE_REPO:
BUILDKITE_RETRY_COUNT:
BUILDKITE_STEP_KEY:
+ BUILDKITE_ANALYTICS_TOKEN:
MAZE_BUGSNAG_API_KEY:
BROWSER_STACK_USERNAME:
BROWSER_STACK_ACCESS_KEY:
+ MAZE_NO_FAIL_FAST:
ports:
- "9000-9499:9339"
volumes:
- ./features/:/app/features/
- ./maze_output:/app/maze_output
- /var/run/docker.sock:/var/run/docker.sock
+ - ./reports/:/app/reports/
networks:
default:
diff --git a/examples/flutter/.gitignore b/examples/flutter/.gitignore
index b19fdb05..0bdfcccd 100644
--- a/examples/flutter/.gitignore
+++ b/examples/flutter/.gitignore
@@ -8,6 +8,7 @@
.buildlog/
.history
.svn/
+migrate_working_dir/
# IntelliJ related
*.iml
diff --git a/examples/flutter/.metadata b/examples/flutter/.metadata
index f991a3ab..3e091192 100644
--- a/examples/flutter/.metadata
+++ b/examples/flutter/.metadata
@@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
-# This file should be version controlled.
+# This file should be version controlled and should not be manually edited.
version:
- revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
- channel: stable
+ revision: "603104015dd692ea3403755b55d07813d5cf8965"
+ channel: "stable"
project_type: app
@@ -13,14 +13,14 @@ project_type: app
migration:
platforms:
- platform: root
- create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
- base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
+ create_revision: 603104015dd692ea3403755b55d07813d5cf8965
+ base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: android
- create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
- base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
+ create_revision: 603104015dd692ea3403755b55d07813d5cf8965
+ base_revision: 603104015dd692ea3403755b55d07813d5cf8965
- platform: ios
- create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
- base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8
+ create_revision: 603104015dd692ea3403755b55d07813d5cf8965
+ base_revision: 603104015dd692ea3403755b55d07813d5cf8965
# User provided section
diff --git a/examples/flutter/analysis_options.yaml b/examples/flutter/analysis_options.yaml
index 61b6c4de..0d290213 100644
--- a/examples/flutter/analysis_options.yaml
+++ b/examples/flutter/analysis_options.yaml
@@ -13,8 +13,7 @@ linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
- # and their documentation is published at
- # https://dart-lang.github.io/linter/lints/index.html.
+ # and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
diff --git a/examples/flutter/android/.gitignore b/examples/flutter/android/.gitignore
index 6f568019..55afd919 100644
--- a/examples/flutter/android/.gitignore
+++ b/examples/flutter/android/.gitignore
@@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/examples/flutter/android/app/build.gradle b/examples/flutter/android/app/build.gradle
index 18f40c36..f071d35a 100644
--- a/examples/flutter/android/app/build.gradle
+++ b/examples/flutter/android/app/build.gradle
@@ -1,68 +1,43 @@
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id "dev.flutter.flutter-gradle-plugin"
}
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
android {
- namespace "com.bugsnag.examples.flutter"
- compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ namespace = "com.bugsnag.examples.flutter"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
- jvmTarget = '1.8'
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
+ jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
- applicationId "com.bugsnag.examples.flutter"
- minSdkVersion flutter.hasProperty('minSdkVersion') ? flutter.minSdkVersion : 16
- targetSdkVersion flutter.hasProperty('targetSdkVersion') ? flutter.targetSdkVersion : 30
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
+ applicationId = "com.bugsnag.examples.flutter"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
}
buildTypes {
release {
+ // TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
+ signingConfig = signingConfigs.debug
}
}
}
flutter {
- source '../..'
-}
-
-dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ source = "../.."
}
diff --git a/examples/flutter/android/app/src/main/AndroidManifest.xml b/examples/flutter/android/app/src/main/AndroidManifest.xml
index d29131e9..e50216a0 100644
--- a/examples/flutter/android/app/src/main/AndroidManifest.xml
+++ b/examples/flutter/android/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
+ android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
@@ -30,4 +31,15 @@
android:name="flutterEmbedding"
android:value="2" />
+
+
+
+
+
+
+
diff --git a/examples/flutter/android/build.gradle b/examples/flutter/android/build.gradle
index f7eb7f63..d2ffbffa 100644
--- a/examples/flutter/android/build.gradle
+++ b/examples/flutter/android/build.gradle
@@ -1,16 +1,3 @@
-buildscript {
- ext.kotlin_version = '1.7.10'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:7.3.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
allprojects {
repositories {
google()
@@ -18,12 +5,12 @@ allprojects {
}
}
-rootProject.buildDir = '../build'
+rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
- project.evaluationDependsOn(':app')
+ project.evaluationDependsOn(":app")
}
tasks.register("clean", Delete) {
diff --git a/examples/flutter/android/gradle.properties b/examples/flutter/android/gradle.properties
index 94adc3a3..25971708 100644
--- a/examples/flutter/android/gradle.properties
+++ b/examples/flutter/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx1536M
+org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
diff --git a/examples/flutter/android/gradle/wrapper/gradle-wrapper.properties b/examples/flutter/android/gradle/wrapper/gradle-wrapper.properties
index 3c472b99..7bb2df6b 100644
--- a/examples/flutter/android/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/flutter/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-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
diff --git a/examples/flutter/android/settings.gradle b/examples/flutter/android/settings.gradle
index 44e62bcf..b9e43bd3 100644
--- a/examples/flutter/android/settings.gradle
+++ b/examples/flutter/android/settings.gradle
@@ -1,11 +1,25 @@
-include ':app'
+pluginManagement {
+ def flutterSdkPath = {
+ def properties = new Properties()
+ file("local.properties").withInputStream { properties.load(it) }
+ def flutterSdkPath = properties.getProperty("flutter.sdk")
+ assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+ return flutterSdkPath
+ }()
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
-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"
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "8.1.0" apply false
+ id "org.jetbrains.kotlin.android" version "1.8.22" apply false
+}
+
+include ":app"
diff --git a/examples/flutter/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter/ios/Flutter/AppFrameworkInfo.plist
index 9625e105..7c569640 100644
--- a/examples/flutter/ios/Flutter/AppFrameworkInfo.plist
+++ b/examples/flutter/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 11.0
+ 12.0
diff --git a/examples/flutter/ios/Podfile b/examples/flutter/ios/Podfile
index bfd60c48..b331c7b2 100644
--- a/examples/flutter/ios/Podfile
+++ b/examples/flutter/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-platform :ios, '11.0'
+platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/examples/flutter/ios/Runner.xcodeproj/project.pbxproj b/examples/flutter/ios/Runner.xcodeproj/project.pbxproj
index 664e7602..7b2acd1b 100644
--- a/examples/flutter/ios/Runner.xcodeproj/project.pbxproj
+++ b/examples/flutter/ios/Runner.xcodeproj/project.pbxproj
@@ -166,7 +166,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1300;
+ LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -353,7 +353,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -428,7 +428,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -477,7 +477,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
diff --git a/examples/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index c87d15a3..5e31d3d3 100644
--- a/examples/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/examples/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@