From 594cac74f253ec8866cef9871db06b4789d074a1 Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Wed, 11 Dec 2024 15:20:55 -0500 Subject: [PATCH] codelab_rebuild platform channels --- .../flutter_module_using_plugin/pubspec.yaml | 2 +- .../books/flutter_module_books/pubspec.yaml | 2 +- .../fullscreen/flutter_module/pubspec.yaml | 2 +- .../multiple_flutters_module/pubspec.yaml | 2 +- .../flutter_module_using_plugin/pubspec.yaml | 2 +- .../flutter_module/pubspec.yaml | 2 +- analysis_defaults/pubspec.yaml | 2 +- android_splash_screen/pubspec.yaml | 2 +- animations/pubspec.yaml | 2 +- .../grayscale_transformer/pubspec.yaml | 2 +- asset_transformation/pubspec.yaml | 2 +- background_isolate_channels/pubspec.yaml | 2 +- code_sharing/client/pubspec.yaml | 2 +- code_sharing/server/pubspec.yaml | 2 +- code_sharing/shared/pubspec.yaml | 2 +- compass_app/app/pubspec.yaml | 2 +- compass_app/server/pubspec.yaml | 2 +- context_menus/pubspec.yaml | 2 +- deeplink_store_example/pubspec.yaml | 2 +- desktop_photo_search/fluent_ui/pubspec.yaml | 2 +- desktop_photo_search/material/pubspec.yaml | 2 +- dynamic_theme/pubspec.yaml | 2 +- experimental/date_planner/pubspec.yaml | 2 +- .../federated_plugin/example/pubspec.yaml | 2 +- .../federated_plugin/pubspec.yaml | 2 +- .../federated_plugin_macos/pubspec.yaml | 2 +- .../pubspec.yaml | 2 +- .../federated_plugin_web/pubspec.yaml | 2 +- .../federated_plugin_windows/pubspec.yaml | 2 +- experimental/pedometer/example/pubspec.yaml | 2 +- experimental/pedometer/pubspec.yaml | 2 +- .../varfont_shader_puzzle/pubspec.yaml | 2 +- experimental/web_dashboard/pubspec.yaml | 2 +- flutter_maps_firestore/pubspec.yaml | 2 +- form_app/pubspec.yaml | 2 +- game_template/pubspec.yaml | 2 +- gemini_tasks/pubspec.yaml | 2 +- google_maps/pubspec.yaml | 2 +- infinite_list/.metadata | 30 ++-- infinite_list/android/.gitignore | 2 +- infinite_list/android/app/build.gradle | 53 ++---- .../android/app/src/main/AndroidManifest.xml | 14 +- .../dev/flutter/infinite_list/MainActivity.kt | 6 - .../dev/flutter/infinitelist/MainActivity.kt | 5 + infinite_list/android/build.gradle | 16 +- infinite_list/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- infinite_list/android/settings.gradle | 12 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 +- infinite_list/ios/Podfile | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 156 +++++++++--------- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- infinite_list/ios/Runner/AppDelegate.swift | 4 +- infinite_list/ios/Runner/Info.plist | 4 +- infinite_list/linux/CMakeLists.txt | 27 +-- infinite_list/linux/runner/CMakeLists.txt | 26 +++ infinite_list/linux/{ => runner}/main.cc | 0 .../linux/{ => runner}/my_application.cc | 30 +++- .../linux/{ => runner}/my_application.h | 0 .../macos/Runner.xcodeproj/project.pbxproj | 134 ++++++++------- .../xcshareddata/xcschemes/Runner.xcscheme | 10 +- infinite_list/macos/Runner/AppDelegate.swift | 6 +- .../macos/Runner/Configs/AppInfo.xcconfig | 6 +- .../macos/RunnerTests/RunnerTests.swift | 2 +- infinite_list/pubspec.yaml | 2 +- infinite_list/web/index.html | 6 +- infinite_list/web/manifest.json | 4 +- infinite_list/windows/CMakeLists.txt | 4 +- infinite_list/windows/runner/Runner.rc | 10 +- infinite_list/windows/runner/main.cpp | 2 +- .../windows/runner/runner.exe.manifest | 6 - infinite_list/windows/runner/utils.cpp | 4 +- ios_app_clip/pubspec.yaml | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 100 +++++------ .../macos/Runner.xcodeproj/project.pbxproj | 88 +++++----- isolate_example/pubspec.yaml | 2 +- material_3_demo/pubspec.yaml | 2 +- navigation_and_routing/pubspec.yaml | 2 +- place_tracker/pubspec.yaml | 2 +- platform_channels/.metadata | 14 +- platform_channels/android/.gitignore | 2 +- platform_channels/android/app/build.gradle | 55 ++---- .../android/app/build.gradle.orig | 44 +++++ .../android/app/build.gradle.rej | 8 + .../android/app/src/main/AndroidManifest.xml | 12 ++ .../app/src/main/assets/eat_new_orleans.jpg | Bin 71513 -> 0 bytes .../AccelerometerStreamHandler.kt | 39 ----- .../flutter/platform_channels/MainActivity.kt | 85 +--------- platform_channels/android/build.gradle | 16 +- platform_channels/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- platform_channels/android/settings.gradle | 12 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 18 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../Runner/AccelerometerStreamHandler.swift | 38 ----- .../ios/Runner/AppDelegate.swift | 94 +---------- .../ios/Runner/Assets.xcassets/Contents.json | 6 - .../eat_new_orleans.imageset/Contents.json | 21 --- .../eat_new_orleans.jpg | Bin 71513 -> 0 bytes platform_channels/pubspec.yaml | 2 +- platform_view_swift/pubspec.yaml | 2 +- provider_counter/pubspec.yaml | 2 +- simple_shader/pubspec.yaml | 2 +- simplistic_calculator/pubspec.yaml | 2 +- simplistic_editor/pubspec.yaml | 2 +- testing_app/pubspec.yaml | 2 +- veggieseasons/pubspec.yaml | 2 +- .../web_startup_analyzer/example/pubspec.yaml | 2 +- .../web_startup_analyzer/pubspec.yaml | 2 +- web/_tool/pubspec.yaml | 2 +- web/samples_index/pubspec.yaml | 2 +- .../element_embedding_demo/pubspec.yaml | 2 +- web_embedding/ng-flutter/flutter/pubspec.yaml | 2 +- 114 files changed, 574 insertions(+), 791 deletions(-) delete mode 100644 infinite_list/android/app/src/main/kotlin/dev/flutter/infinite_list/MainActivity.kt create mode 100644 infinite_list/android/app/src/main/kotlin/dev/flutter/infinitelist/MainActivity.kt create mode 100644 infinite_list/linux/runner/CMakeLists.txt rename infinite_list/linux/{ => runner}/main.cc (100%) rename infinite_list/linux/{ => runner}/my_application.cc (75%) rename infinite_list/linux/{ => runner}/my_application.h (100%) create mode 100644 platform_channels/android/app/build.gradle.orig create mode 100644 platform_channels/android/app/build.gradle.rej delete mode 100644 platform_channels/android/app/src/main/assets/eat_new_orleans.jpg delete mode 100644 platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/AccelerometerStreamHandler.kt delete mode 100644 platform_channels/ios/Runner/AccelerometerStreamHandler.swift delete mode 100644 platform_channels/ios/Runner/Assets.xcassets/Contents.json delete mode 100644 platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/Contents.json delete mode 100644 platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/eat_new_orleans.jpg diff --git a/add_to_app/android_view/flutter_module_using_plugin/pubspec.yaml b/add_to_app/android_view/flutter_module_using_plugin/pubspec.yaml index 4547346db..b0f49bb14 100644 --- a/add_to_app/android_view/flutter_module_using_plugin/pubspec.yaml +++ b/add_to_app/android_view/flutter_module_using_plugin/pubspec.yaml @@ -4,7 +4,7 @@ description: An example Flutter module that uses a plugin. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/add_to_app/books/flutter_module_books/pubspec.yaml b/add_to_app/books/flutter_module_books/pubspec.yaml index 0f2acfab0..f4d7db5cc 100644 --- a/add_to_app/books/flutter_module_books/pubspec.yaml +++ b/add_to_app/books/flutter_module_books/pubspec.yaml @@ -6,7 +6,7 @@ description: A Flutter module using the Pigeon package to demonstrate version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/add_to_app/fullscreen/flutter_module/pubspec.yaml b/add_to_app/fullscreen/flutter_module/pubspec.yaml index 9faf4fe6d..c5df3f00e 100644 --- a/add_to_app/fullscreen/flutter_module/pubspec.yaml +++ b/add_to_app/fullscreen/flutter_module/pubspec.yaml @@ -4,7 +4,7 @@ description: An example Flutter module. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/add_to_app/multiple_flutters/multiple_flutters_module/pubspec.yaml b/add_to_app/multiple_flutters/multiple_flutters_module/pubspec.yaml index 87545fac5..d01b026dd 100644 --- a/add_to_app/multiple_flutters/multiple_flutters_module/pubspec.yaml +++ b/add_to_app/multiple_flutters/multiple_flutters_module/pubspec.yaml @@ -4,7 +4,7 @@ description: A module that is embedded in the multiple_flutters_ios and multiple version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/add_to_app/plugin/flutter_module_using_plugin/pubspec.yaml b/add_to_app/plugin/flutter_module_using_plugin/pubspec.yaml index 4547346db..b0f49bb14 100644 --- a/add_to_app/plugin/flutter_module_using_plugin/pubspec.yaml +++ b/add_to_app/plugin/flutter_module_using_plugin/pubspec.yaml @@ -4,7 +4,7 @@ description: An example Flutter module that uses a plugin. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/add_to_app/prebuilt_module/flutter_module/pubspec.yaml b/add_to_app/prebuilt_module/flutter_module/pubspec.yaml index 9faf4fe6d..c5df3f00e 100644 --- a/add_to_app/prebuilt_module/flutter_module/pubspec.yaml +++ b/add_to_app/prebuilt_module/flutter_module/pubspec.yaml @@ -4,7 +4,7 @@ description: An example Flutter module. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/analysis_defaults/pubspec.yaml b/analysis_defaults/pubspec.yaml index 0ff95ea2e..5a820d054 100644 --- a/analysis_defaults/pubspec.yaml +++ b/analysis_defaults/pubspec.yaml @@ -3,7 +3,7 @@ description: Analysis defaults for flutter/samples publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 # NOTE: Code is not allowed in this package. Do not add more dependencies. # The `flutter_lints` dependency is required for `lib/flutter.yaml`. diff --git a/android_splash_screen/pubspec.yaml b/android_splash_screen/pubspec.yaml index 9acb8373a..0e9fc123b 100644 --- a/android_splash_screen/pubspec.yaml +++ b/android_splash_screen/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/animations/pubspec.yaml b/animations/pubspec.yaml index a86283df2..69131e944 100644 --- a/animations/pubspec.yaml +++ b/animations/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/asset_transformation/grayscale_transformer/pubspec.yaml b/asset_transformation/grayscale_transformer/pubspec.yaml index 5f2d4a6b7..1812abf86 100644 --- a/asset_transformation/grayscale_transformer/pubspec.yaml +++ b/asset_transformation/grayscale_transformer/pubspec.yaml @@ -3,7 +3,7 @@ description: A sample command-line application. version: 1.0.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: args: ^2.4.2 diff --git a/asset_transformation/pubspec.yaml b/asset_transformation/pubspec.yaml index 31e92e910..8e7968cf1 100644 --- a/asset_transformation/pubspec.yaml +++ b/asset_transformation/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 0.1.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/background_isolate_channels/pubspec.yaml b/background_isolate_channels/pubspec.yaml index 9b0d4c2e5..a515e0e34 100644 --- a/background_isolate_channels/pubspec.yaml +++ b/background_isolate_channels/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: cupertino_icons: ^1.0.2 diff --git a/code_sharing/client/pubspec.yaml b/code_sharing/client/pubspec.yaml index f8a7897fb..370878c9b 100644 --- a/code_sharing/client/pubspec.yaml +++ b/code_sharing/client/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: cupertino_icons: ^1.0.2 diff --git a/code_sharing/server/pubspec.yaml b/code_sharing/server/pubspec.yaml index dada36669..5af7b5e29 100644 --- a/code_sharing/server/pubspec.yaml +++ b/code_sharing/server/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 publish_to: "none" environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: args: ^2.0.0 diff --git a/code_sharing/shared/pubspec.yaml b/code_sharing/shared/pubspec.yaml index 61647f190..d13efe9e7 100644 --- a/code_sharing/shared/pubspec.yaml +++ b/code_sharing/shared/pubspec.yaml @@ -3,7 +3,7 @@ description: Common data models required by our client and server version: 1.0.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: freezed_annotation: ^2.1.0 diff --git a/compass_app/app/pubspec.yaml b/compass_app/app/pubspec.yaml index 27f1622b5..2cf6c4321 100644 --- a/compass_app/app/pubspec.yaml +++ b/compass_app/app/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 0.1.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: cached_network_image: ^3.3.1 diff --git a/compass_app/server/pubspec.yaml b/compass_app/server/pubspec.yaml index 2cb38cff4..f24c2190b 100644 --- a/compass_app/server/pubspec.yaml +++ b/compass_app/server/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: args: ^2.4.0 diff --git a/context_menus/pubspec.yaml b/context_menus/pubspec.yaml index 3705005d3..e14de5e34 100644 --- a/context_menus/pubspec.yaml +++ b/context_menus/pubspec.yaml @@ -20,7 +20,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/deeplink_store_example/pubspec.yaml b/deeplink_store_example/pubspec.yaml index cf28b8949..547ab2c0e 100644 --- a/deeplink_store_example/pubspec.yaml +++ b/deeplink_store_example/pubspec.yaml @@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/desktop_photo_search/fluent_ui/pubspec.yaml b/desktop_photo_search/fluent_ui/pubspec.yaml index c775746bf..aebb5fabc 100644 --- a/desktop_photo_search/fluent_ui/pubspec.yaml +++ b/desktop_photo_search/fluent_ui/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: built_collection: ^5.1.1 diff --git a/desktop_photo_search/material/pubspec.yaml b/desktop_photo_search/material/pubspec.yaml index 956e53ca1..38d34db7f 100644 --- a/desktop_photo_search/material/pubspec.yaml +++ b/desktop_photo_search/material/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: built_collection: ^5.1.1 diff --git a/dynamic_theme/pubspec.yaml b/dynamic_theme/pubspec.yaml index 779eb5aa9..04d780f9d 100644 --- a/dynamic_theme/pubspec.yaml +++ b/dynamic_theme/pubspec.yaml @@ -3,7 +3,7 @@ description: "Sample app for the google_generative_ai package" publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/date_planner/pubspec.yaml b/experimental/date_planner/pubspec.yaml index a5cb40798..a64838d7a 100644 --- a/experimental/date_planner/pubspec.yaml +++ b/experimental/date_planner/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 0.1.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin/example/pubspec.yaml b/experimental/federated_plugin/federated_plugin/example/pubspec.yaml index d325a3070..22a7739fb 100644 --- a/experimental/federated_plugin/federated_plugin/example/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin/example/pubspec.yaml @@ -4,7 +4,7 @@ description: Demonstrates how to use the federated_plugin plugin. publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin/pubspec.yaml b/experimental/federated_plugin/federated_plugin/pubspec.yaml index 07e00e21a..a9bc4b002 100644 --- a/experimental/federated_plugin/federated_plugin/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin/pubspec.yaml @@ -5,7 +5,7 @@ version: 0.0.1 publish_to: "none" environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin_macos/pubspec.yaml b/experimental/federated_plugin/federated_plugin_macos/pubspec.yaml index b20e7f764..79201546b 100644 --- a/experimental/federated_plugin/federated_plugin_macos/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin_macos/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 homepage: environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin_platform_interface/pubspec.yaml b/experimental/federated_plugin/federated_plugin_platform_interface/pubspec.yaml index 769f96593..da904c1f4 100644 --- a/experimental/federated_plugin/federated_plugin_platform_interface/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 homepage: environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin_web/pubspec.yaml b/experimental/federated_plugin/federated_plugin_web/pubspec.yaml index 7ae6b311f..5004a08f7 100644 --- a/experimental/federated_plugin/federated_plugin_web/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin_web/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/federated_plugin/federated_plugin_windows/pubspec.yaml b/experimental/federated_plugin/federated_plugin_windows/pubspec.yaml index 2eb890f35..962228799 100644 --- a/experimental/federated_plugin/federated_plugin_windows/pubspec.yaml +++ b/experimental/federated_plugin/federated_plugin_windows/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 homepage: environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/pedometer/example/pubspec.yaml b/experimental/pedometer/example/pubspec.yaml index a13852bd9..704d1bf4d 100644 --- a/experimental/pedometer/example/pubspec.yaml +++ b/experimental/pedometer/example/pubspec.yaml @@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/experimental/pedometer/pubspec.yaml b/experimental/pedometer/pubspec.yaml index ef17df0a9..a43dab289 100644 --- a/experimental/pedometer/pubspec.yaml +++ b/experimental/pedometer/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/varfont_shader_puzzle/pubspec.yaml b/experimental/varfont_shader_puzzle/pubspec.yaml index 1088eaf63..03acb562c 100644 --- a/experimental/varfont_shader_puzzle/pubspec.yaml +++ b/experimental/varfont_shader_puzzle/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/experimental/web_dashboard/pubspec.yaml b/experimental/web_dashboard/pubspec.yaml index 3a6df6f48..d8c30f473 100644 --- a/experimental/web_dashboard/pubspec.yaml +++ b/experimental/web_dashboard/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: cloud_firestore: ^5.0.1 diff --git a/flutter_maps_firestore/pubspec.yaml b/flutter_maps_firestore/pubspec.yaml index 42cbdec64..7633169f5 100644 --- a/flutter_maps_firestore/pubspec.yaml +++ b/flutter_maps_firestore/pubspec.yaml @@ -3,7 +3,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/form_app/pubspec.yaml b/form_app/pubspec.yaml index 29fd73b0e..58cc59ea4 100644 --- a/form_app/pubspec.yaml +++ b/form_app/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/game_template/pubspec.yaml b/game_template/pubspec.yaml index 6d4317c16..26c2e9a92 100644 --- a/game_template/pubspec.yaml +++ b/game_template/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: 'none' version: 0.0.1+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/gemini_tasks/pubspec.yaml b/gemini_tasks/pubspec.yaml index 649f8c9d0..66d998399 100644 --- a/gemini_tasks/pubspec.yaml +++ b/gemini_tasks/pubspec.yaml @@ -3,7 +3,7 @@ description: "Sample app for the google_generative_ai package" publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/google_maps/pubspec.yaml b/google_maps/pubspec.yaml index 23420100f..92c2a44fb 100644 --- a/google_maps/pubspec.yaml +++ b/google_maps/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/infinite_list/.metadata b/infinite_list/.metadata index d22992edb..0edb585db 100644 --- a/infinite_list/.metadata +++ b/infinite_list/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "db7ef5bf9f59442b0e200a90587e8fa5e0c6336a" + revision: "8495dee1fd4aacbe9de707e7581203232f591b2f" channel: "stable" project_type: app @@ -13,26 +13,26 @@ project_type: app migration: platforms: - platform: root - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: android - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: ios - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: linux - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: macos - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: web - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: windows - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f # User provided section diff --git a/infinite_list/android/.gitignore b/infinite_list/android/.gitignore index 6f568019d..55afd919c 100644 --- a/infinite_list/android/.gitignore +++ b/infinite_list/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/infinite_list/android/app/build.gradle b/infinite_list/android/app/build.gradle index 2bc213d1e..c22e9e60e 100644 --- a/infinite_list/android/app/build.gradle +++ b/infinite_list/android/app/build.gradle @@ -1,67 +1,44 @@ 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" } -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - android { - namespace "dev.flutter.infinite_list" - compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + namespace = "dev.flutter.infinitelist" + 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 { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "dev.flutter.infinite_list" + applicationId = "dev.flutter.infinitelist" // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + // 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 '../..' + source = "../.." } - -dependencies {} diff --git a/infinite_list/android/app/src/main/AndroidManifest.xml b/infinite_list/android/app/src/main/AndroidManifest.xml index f7a37446b..118613fd5 100644 --- a/infinite_list/android/app/src/main/AndroidManifest.xml +++ b/infinite_list/android/app/src/main/AndroidManifest.xml @@ -1,12 +1,13 @@ + + + + + + + diff --git a/infinite_list/android/app/src/main/kotlin/dev/flutter/infinite_list/MainActivity.kt b/infinite_list/android/app/src/main/kotlin/dev/flutter/infinite_list/MainActivity.kt deleted file mode 100644 index 6b2486135..000000000 --- a/infinite_list/android/app/src/main/kotlin/dev/flutter/infinite_list/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package dev.flutter.infinite_list - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/infinite_list/android/app/src/main/kotlin/dev/flutter/infinitelist/MainActivity.kt b/infinite_list/android/app/src/main/kotlin/dev/flutter/infinitelist/MainActivity.kt new file mode 100644 index 000000000..518edb304 --- /dev/null +++ b/infinite_list/android/app/src/main/kotlin/dev/flutter/infinitelist/MainActivity.kt @@ -0,0 +1,5 @@ +package dev.flutter.infinitelist + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/infinite_list/android/build.gradle b/infinite_list/android/build.gradle index e83fb5dac..d2ffbffa4 100644 --- a/infinite_list/android/build.gradle +++ b/infinite_list/android/build.gradle @@ -1,15 +1,3 @@ -buildscript { - ext.kotlin_version = '1.7.10' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() @@ -17,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/infinite_list/android/gradle.properties b/infinite_list/android/gradle.properties index 598d13fee..259717082 100644 --- a/infinite_list/android/gradle.properties +++ b/infinite_list/android/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx4G +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true diff --git a/infinite_list/android/gradle/wrapper/gradle-wrapper.properties b/infinite_list/android/gradle/wrapper/gradle-wrapper.properties index 3c472b99c..7bb2df6ba 100644 --- a/infinite_list/android/gradle/wrapper/gradle-wrapper.properties +++ b/infinite_list/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/infinite_list/android/settings.gradle b/infinite_list/android/settings.gradle index 7cd712855..b9e43bd37 100644 --- a/infinite_list/android/settings.gradle +++ b/infinite_list/android/settings.gradle @@ -5,25 +5,21 @@ pluginManagement { def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() + }() - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } - - plugins { - id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false - } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + 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/infinite_list/ios/Flutter/AppFrameworkInfo.plist b/infinite_list/ios/Flutter/AppFrameworkInfo.plist index 9625e105d..7c5696400 100644 --- a/infinite_list/ios/Flutter/AppFrameworkInfo.plist +++ b/infinite_list/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/infinite_list/ios/Podfile b/infinite_list/ios/Podfile index fdcc671eb..d97f17e22 100644 --- a/infinite_list/ios/Podfile +++ b/infinite_list/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/infinite_list/ios/Runner.xcodeproj/project.pbxproj b/infinite_list/ios/Runner.xcodeproj/project.pbxproj index 07d712f0a..45d073b16 100644 --- a/infinite_list/ios/Runner.xcodeproj/project.pbxproj +++ b/infinite_list/ios/Runner.xcodeproj/project.pbxproj @@ -8,14 +8,14 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 1809D175211D573A49A5C78F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03D3B6EE4FC115CAE9CD5C8 /* Pods_Runner.framework */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 8EBCB0CE644FDEBCE42353BE /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 914678C010168CDC44EBEC4E /* Pods_RunnerTests.framework */; }; + 842B6175E6D744BF9FF8363E /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1AD04580D85A1695AABB3DD /* Pods_RunnerTests.framework */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 9BA84AE185F33F6AD98CA9CA /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F5796A99D084DF24312E31D /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -46,16 +46,15 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3816A01337F13969EF7E0752 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 34262BB46F6E8DB5F686A4F0 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 44DAE13FCED91E901D793850 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 66F900F76BE048FAA75B6343 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5B04604CC2DD23B6C673450C /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 647D9317E7230FA1D88C9738 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 70731E44233F617A3614B80D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 914678C010168CDC44EBEC4E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 92CEA7A42D92696658C6B5A2 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 939225A62E58146FA75A9D11 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 8F5796A99D084DF24312E31D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -63,24 +62,25 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D03D3B6EE4FC115CAE9CD5C8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E7161952A630E141BF474BD0 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + AB30D4B47943C3ED47B2D8AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + EE12D62D4A29206D7186DE22 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + F1AD04580D85A1695AABB3DD /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 38797E1469F02A77765EF5D9 /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8EBCB0CE644FDEBCE42353BE /* Pods_RunnerTests.framework in Frameworks */, + 9BA84AE185F33F6AD98CA9CA /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 97C146EB1CF9000F007C117D /* Frameworks */ = { + E5F986579BEF218F1C886C7D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1809D175211D573A49A5C78F /* Pods_Runner.framework in Frameworks */, + 842B6175E6D744BF9FF8363E /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,29 +95,6 @@ path = RunnerTests; sourceTree = ""; }; - 3A275A72B6598485F04C3ED7 /* Pods */ = { - isa = PBXGroup; - children = ( - 66F900F76BE048FAA75B6343 /* Pods-Runner.debug.xcconfig */, - 92CEA7A42D92696658C6B5A2 /* Pods-Runner.release.xcconfig */, - E7161952A630E141BF474BD0 /* Pods-Runner.profile.xcconfig */, - 3816A01337F13969EF7E0752 /* Pods-RunnerTests.debug.xcconfig */, - 939225A62E58146FA75A9D11 /* Pods-RunnerTests.release.xcconfig */, - 44DAE13FCED91E901D793850 /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - 59381ED048995119616452E5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D03D3B6EE4FC115CAE9CD5C8 /* Pods_Runner.framework */, - 914678C010168CDC44EBEC4E /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -136,8 +113,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - 3A275A72B6598485F04C3ED7 /* Pods */, - 59381ED048995119616452E5 /* Frameworks */, + DAC0C5B18EBECB1278EFA100 /* Pods */, + E746B47BD27158026F96030A /* Frameworks */, ); sourceTree = ""; }; @@ -165,6 +142,29 @@ path = Runner; sourceTree = ""; }; + DAC0C5B18EBECB1278EFA100 /* Pods */ = { + isa = PBXGroup; + children = ( + AB30D4B47943C3ED47B2D8AA /* Pods-Runner.debug.xcconfig */, + 647D9317E7230FA1D88C9738 /* Pods-Runner.release.xcconfig */, + EE12D62D4A29206D7186DE22 /* Pods-Runner.profile.xcconfig */, + 34262BB46F6E8DB5F686A4F0 /* Pods-RunnerTests.debug.xcconfig */, + 5B04604CC2DD23B6C673450C /* Pods-RunnerTests.release.xcconfig */, + 70731E44233F617A3614B80D /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + E746B47BD27158026F96030A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8F5796A99D084DF24312E31D /* Pods_Runner.framework */, + F1AD04580D85A1695AABB3DD /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - F620242B88CAC6F8CE592EAA /* [CP] Check Pods Manifest.lock */, + 330E398ED218630AB20D831D /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - 38797E1469F02A77765EF5D9 /* Frameworks */, + E5F986579BEF218F1C886C7D /* Frameworks */, ); buildRules = ( ); @@ -191,7 +191,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 041C729370D01DEF06209B02 /* [CP] Check Pods Manifest.lock */, + 2C606ADEB96A89B03CCFCE20 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -215,7 +215,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C8080294A63A400263BE5 = { @@ -269,7 +269,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 041C729370D01DEF06209B02 /* [CP] Check Pods Manifest.lock */ = { + 2C606ADEB96A89B03CCFCE20 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -291,58 +291,58 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 330E398ED218630AB20D831D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - F620242B88CAC6F8CE592EAA /* [CP] Check Pods Manifest.lock */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Run Script"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; /* End PBXShellScriptBuildPhase section */ @@ -398,6 +398,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -427,6 +428,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -435,7 +437,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; @@ -457,7 +459,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -467,14 +469,14 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3816A01337F13969EF7E0752 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 34262BB46F6E8DB5F686A4F0 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -485,14 +487,14 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 939225A62E58146FA75A9D11 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 5B04604CC2DD23B6C673450C /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -501,14 +503,14 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 44DAE13FCED91E901D793850 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 70731E44233F617A3614B80D /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -519,6 +521,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -548,6 +551,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -562,7 +566,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; @@ -574,6 +578,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -603,6 +608,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -611,7 +617,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; @@ -635,7 +641,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -657,7 +663,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/infinite_list/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/infinite_list/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 87131a09b..8e3ca5dfe 100644 --- a/infinite_list/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/infinite_list/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Infinite List + Infinitelist CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - infinite_list + infinitelist CFBundlePackageType APPL CFBundleShortVersionString diff --git a/infinite_list/linux/CMakeLists.txt b/infinite_list/linux/CMakeLists.txt index fe8d45da2..4f797d029 100644 --- a/infinite_list/linux/CMakeLists.txt +++ b/infinite_list/linux/CMakeLists.txt @@ -1,13 +1,13 @@ # Project-level configuration. -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.13) project(runner LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "infinite_list") +set(BINARY_NAME "infinitelist") # The unique GTK application identifier for this application. See: # https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "dev.flutter.infinite_list") +set(APPLICATION_ID "dev.flutter.infinitelist") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. @@ -54,25 +54,8 @@ add_subdirectory(${FLUTTER_MANAGED_DIR}) find_package(PkgConfig REQUIRED) pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") # Run the Flutter tool portions of the build. This must not be removed. add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/infinite_list/linux/runner/CMakeLists.txt b/infinite_list/linux/runner/CMakeLists.txt new file mode 100644 index 000000000..e97dabc70 --- /dev/null +++ b/infinite_list/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/infinite_list/linux/main.cc b/infinite_list/linux/runner/main.cc similarity index 100% rename from infinite_list/linux/main.cc rename to infinite_list/linux/runner/main.cc diff --git a/infinite_list/linux/my_application.cc b/infinite_list/linux/runner/my_application.cc similarity index 75% rename from infinite_list/linux/my_application.cc rename to infinite_list/linux/runner/my_application.cc index 61d7edf36..0b94cc4b3 100644 --- a/infinite_list/linux/my_application.cc +++ b/infinite_list/linux/runner/my_application.cc @@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) { if (use_header_bar) { GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "infinite_list"); + gtk_header_bar_set_title(header_bar, "infinitelist"); gtk_header_bar_set_show_close_button(header_bar, TRUE); gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); } else { - gtk_window_set_title(window, "infinite_list"); + gtk_window_set_title(window, "infinitelist"); } gtk_window_set_default_size(window, 1280, 720); @@ -81,6 +81,24 @@ static gboolean my_application_local_command_line(GApplication* application, gch return TRUE; } +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + // Implements GObject::dispose. static void my_application_dispose(GObject* object) { MyApplication* self = MY_APPLICATION(object); @@ -91,12 +109,20 @@ static void my_application_dispose(GObject* object) { static void my_application_class_init(MyApplicationClass* klass) { G_APPLICATION_CLASS(klass)->activate = my_application_activate; G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; G_OBJECT_CLASS(klass)->dispose = my_application_dispose; } static void my_application_init(MyApplication* self) {} MyApplication* my_application_new() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + return MY_APPLICATION(g_object_new(my_application_get_type(), "application-id", APPLICATION_ID, "flags", G_APPLICATION_NON_UNIQUE, diff --git a/infinite_list/linux/my_application.h b/infinite_list/linux/runner/my_application.h similarity index 100% rename from infinite_list/linux/my_application.h rename to infinite_list/linux/runner/my_application.h diff --git a/infinite_list/macos/Runner.xcodeproj/project.pbxproj b/infinite_list/macos/Runner.xcodeproj/project.pbxproj index a039c5fec..3f61847e1 100644 --- a/infinite_list/macos/Runner.xcodeproj/project.pbxproj +++ b/infinite_list/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - DF5BF36F9582FAD9ACC8A28E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD775D13DC7E797DF2E3517 /* Pods_Runner.framework */; }; - F24B8E4C9D9C22DB9E1316F9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BCC75B0729A2192AC4B7D5 /* Pods_RunnerTests.framework */; }; + 592F3495F8D15CA05417B817 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5C44FF0A3A6729DD5E2D4 /* Pods_RunnerTests.framework */; }; + C595EA56080B23E096290788 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25852BE3FAD8E8FFFADF8E74 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,11 +62,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 25852BE3FAD8E8FFFADF8E74 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* infinite_list.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = infinite_list.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* infinitelist.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = infinitelist.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -78,16 +79,15 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 42BCC75B0729A2192AC4B7D5 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 568E621B63B199733173338A /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 605874CB557D7DBA33170DD0 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 6618D2CBB527B24F01B11971 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 49F0D052BA380D236780C3E0 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 64AFFB639187AB121497BA30 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 6A1D8742568C101ECC3038AC /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 7FA7EFFCBDC738B9E6BDE75F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - 9DD775D13DC7E797DF2E3517 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C9BC5C77FE30E538CD6A5EFC /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - D48970D7F3EB3B4695A32124 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - EF9A39209E62B63F0639F10A /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 9CB1C886EA76EEB1BB02544B /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + C0D5C44FF0A3A6729DD5E2D4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F854654E3C5F4CD20AACEE10 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F24B8E4C9D9C22DB9E1316F9 /* Pods_RunnerTests.framework in Frameworks */, + 592F3495F8D15CA05417B817 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,27 +103,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DF5BF36F9582FAD9ACC8A28E /* Pods_Runner.framework in Frameworks */, + C595EA56080B23E096290788 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 311C535850CC9E31C340BF76 /* Pods */ = { - isa = PBXGroup; - children = ( - D48970D7F3EB3B4695A32124 /* Pods-Runner.debug.xcconfig */, - C9BC5C77FE30E538CD6A5EFC /* Pods-Runner.release.xcconfig */, - 605874CB557D7DBA33170DD0 /* Pods-Runner.profile.xcconfig */, - EF9A39209E62B63F0639F10A /* Pods-RunnerTests.debug.xcconfig */, - 6618D2CBB527B24F01B11971 /* Pods-RunnerTests.release.xcconfig */, - 568E621B63B199733173338A /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; 331C80D6294CF71000263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -151,14 +137,14 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 311C535850CC9E31C340BF76 /* Pods */, + C6C00D062D9BDBB3EE22E22E /* Pods */, ); sourceTree = ""; }; 33CC10EE2044A3C60003C045 /* Products */ = { isa = PBXGroup; children = ( - 33CC10ED2044A3C60003C045 /* infinite_list.app */, + 33CC10ED2044A3C60003C045 /* infinitelist.app */, 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, ); name = Products; @@ -199,11 +185,25 @@ path = Runner; sourceTree = ""; }; + C6C00D062D9BDBB3EE22E22E /* Pods */ = { + isa = PBXGroup; + children = ( + 6A1D8742568C101ECC3038AC /* Pods-Runner.debug.xcconfig */, + F854654E3C5F4CD20AACEE10 /* Pods-Runner.release.xcconfig */, + 49F0D052BA380D236780C3E0 /* Pods-Runner.profile.xcconfig */, + 7FA7EFFCBDC738B9E6BDE75F /* Pods-RunnerTests.debug.xcconfig */, + 64AFFB639187AB121497BA30 /* Pods-RunnerTests.release.xcconfig */, + 9CB1C886EA76EEB1BB02544B /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 9DD775D13DC7E797DF2E3517 /* Pods_Runner.framework */, - 42BCC75B0729A2192AC4B7D5 /* Pods_RunnerTests.framework */, + 25852BE3FAD8E8FFFADF8E74 /* Pods_Runner.framework */, + C0D5C44FF0A3A6729DD5E2D4 /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 1A713D887A85B196D8A87402 /* [CP] Check Pods Manifest.lock */, + 6F7E84C4C6D1CB07411BA323 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 62EA05B6B03A16AA91CB653A /* [CP] Check Pods Manifest.lock */, + 7E77CD20CFD447FA03784486 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 7F083AD12197FC2CAAD0916E /* [CP] Embed Pods Frameworks */, + 19335820B4A2FD0B3D9ECE6B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -249,7 +249,7 @@ ); name = Runner; productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* infinite_list.app */; + productReference = 33CC10ED2044A3C60003C045 /* infinitelist.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -258,8 +258,9 @@ 33CC10E52044A3C60003C045 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C80D4294CF70F00263BE5 = { @@ -322,26 +323,21 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1A713D887A85B196D8A87402 /* [CP] Check Pods Manifest.lock */ = { + 19335820B4A2FD0B3D9ECE6B /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 3399D490228B24CF009A79C7 /* ShellScript */ = { @@ -382,7 +378,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 62EA05B6B03A16AA91CB653A /* [CP] Check Pods Manifest.lock */ = { + 6F7E84C4C6D1CB07411BA323 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -397,28 +393,33 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 7F083AD12197FC2CAAD0916E /* [CP] Embed Pods Frameworks */ = { + 7E77CD20CFD447FA03784486 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -472,46 +473,46 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF9A39209E62B63F0639F10A /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 7FA7EFFCBDC738B9E6BDE75F /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinite_list.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinite_list"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinitelist.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinitelist"; }; name = Debug; }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6618D2CBB527B24F01B11971 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 64AFFB639187AB121497BA30 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinite_list.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinite_list"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinitelist.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinitelist"; }; name = Release; }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 568E621B63B199733173338A /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 9CB1C886EA76EEB1BB02544B /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinite_list.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinite_list"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/infinitelist.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/infinitelist"; }; name = Profile; }; @@ -520,6 +521,7 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -543,9 +545,11 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -593,6 +597,7 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -616,9 +621,11 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -646,6 +653,7 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -669,9 +677,11 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/infinite_list/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/infinite_list/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 969f86c83..f4b159e70 100644 --- a/infinite_list/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/infinite_list/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ @@ -31,7 +31,7 @@ @@ -65,7 +65,7 @@ @@ -82,7 +82,7 @@ diff --git a/infinite_list/macos/Runner/AppDelegate.swift b/infinite_list/macos/Runner/AppDelegate.swift index d53ef6437..b3c176141 100644 --- a/infinite_list/macos/Runner/AppDelegate.swift +++ b/infinite_list/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/infinite_list/macos/Runner/Configs/AppInfo.xcconfig b/infinite_list/macos/Runner/Configs/AppInfo.xcconfig index aa9000b89..dbf02ee77 100644 --- a/infinite_list/macos/Runner/Configs/AppInfo.xcconfig +++ b/infinite_list/macos/Runner/Configs/AppInfo.xcconfig @@ -5,10 +5,10 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = infinite_list +PRODUCT_NAME = infinitelist // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infiniteList +PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.infinitelist // The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2023 dev.flutter. All rights reserved. +PRODUCT_COPYRIGHT = Copyright © 2024 dev.flutter. All rights reserved. diff --git a/infinite_list/macos/RunnerTests/RunnerTests.swift b/infinite_list/macos/RunnerTests/RunnerTests.swift index 5418c9f53..61f3bd1fc 100644 --- a/infinite_list/macos/RunnerTests/RunnerTests.swift +++ b/infinite_list/macos/RunnerTests/RunnerTests.swift @@ -1,5 +1,5 @@ -import FlutterMacOS import Cocoa +import FlutterMacOS import XCTest class RunnerTests: XCTestCase { diff --git a/infinite_list/pubspec.yaml b/infinite_list/pubspec.yaml index 64d1f82ee..562df4cc3 100644 --- a/infinite_list/pubspec.yaml +++ b/infinite_list/pubspec.yaml @@ -5,7 +5,7 @@ publish_to: none version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/infinite_list/web/index.html b/infinite_list/web/index.html index 3c751b17c..c903b6ce7 100644 --- a/infinite_list/web/index.html +++ b/infinite_list/web/index.html @@ -21,15 +21,15 @@ - + - + - infinite_list + infinitelist diff --git a/infinite_list/web/manifest.json b/infinite_list/web/manifest.json index 0325f640b..8a1f28dec 100644 --- a/infinite_list/web/manifest.json +++ b/infinite_list/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "infinite_list", - "short_name": "infinite_list", + "name": "infinitelist", + "short_name": "infinitelist", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/infinite_list/windows/CMakeLists.txt b/infinite_list/windows/CMakeLists.txt index dee9b2ae8..abcad6177 100644 --- a/infinite_list/windows/CMakeLists.txt +++ b/infinite_list/windows/CMakeLists.txt @@ -1,10 +1,10 @@ # Project-level configuration. cmake_minimum_required(VERSION 3.14) -project(infinite_list LANGUAGES CXX) +project(infinitelist LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "infinite_list") +set(BINARY_NAME "infinitelist") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/infinite_list/windows/runner/Runner.rc b/infinite_list/windows/runner/Runner.rc index a33db81f9..c147b1186 100644 --- a/infinite_list/windows/runner/Runner.rc +++ b/infinite_list/windows/runner/Runner.rc @@ -90,12 +90,12 @@ BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "dev.flutter" "\0" - VALUE "FileDescription", "infinite_list" "\0" + VALUE "FileDescription", "infinitelist" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "infinite_list" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 dev.flutter. All rights reserved." "\0" - VALUE "OriginalFilename", "infinite_list.exe" "\0" - VALUE "ProductName", "infinite_list" "\0" + VALUE "InternalName", "infinitelist" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 dev.flutter. All rights reserved." "\0" + VALUE "OriginalFilename", "infinitelist.exe" "\0" + VALUE "ProductName", "infinitelist" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/infinite_list/windows/runner/main.cpp b/infinite_list/windows/runner/main.cpp index 89671825b..9041335cb 100644 --- a/infinite_list/windows/runner/main.cpp +++ b/infinite_list/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.Create(L"infinite_list", origin, size)) { + if (!window.Create(L"infinitelist", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/infinite_list/windows/runner/runner.exe.manifest b/infinite_list/windows/runner/runner.exe.manifest index a42ea7687..153653e8d 100644 --- a/infinite_list/windows/runner/runner.exe.manifest +++ b/infinite_list/windows/runner/runner.exe.manifest @@ -9,12 +9,6 @@ - - - - - - diff --git a/infinite_list/windows/runner/utils.cpp b/infinite_list/windows/runner/utils.cpp index b2b08734d..3a0b46511 100644 --- a/infinite_list/windows/runner/utils.cpp +++ b/infinite_list/windows/runner/utils.cpp @@ -45,13 +45,13 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, -1, nullptr, 0, nullptr, nullptr) -1; // remove the trailing null character int input_length = (int)wcslen(utf16_string); std::string utf8_string; - if (target_length <= 0 || target_length > utf8_string.max_size()) { + if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; } utf8_string.resize(target_length); diff --git a/ios_app_clip/pubspec.yaml b/ios_app_clip/pubspec.yaml index f3d820991..6f9a2c513 100644 --- a/ios_app_clip/pubspec.yaml +++ b/ios_app_clip/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/isolate_example/ios/Runner.xcodeproj/project.pbxproj b/isolate_example/ios/Runner.xcodeproj/project.pbxproj index 7491d6897..35e17d1bc 100644 --- a/isolate_example/ios/Runner.xcodeproj/project.pbxproj +++ b/isolate_example/ios/Runner.xcodeproj/project.pbxproj @@ -8,14 +8,14 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 1CC28D7ADBE9715F59F19EA3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF22DAC8E8A845C300E7375E /* Pods_Runner.framework */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 38A54B421B8471042F18B878 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEBDE3488C856DD348A6C068 /* Pods_RunnerTests.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 93A30E397B154BF9E4C83B15 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E3B9FB91427841ED9EB8469 /* Pods_Runner.framework */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 98A800A98ADDDD85BFDD56B9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C3275D234B210A784D83650 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -42,21 +42,16 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 142546D53F13EB80B6495148 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1C3275D234B210A784D83650 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 17E0B2BAAAC76CB9DCFBD04D /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3E3B9FB91427841ED9EB8469 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 49E93829B3FBB85E4E618267 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 4BB1A86038B785B78D8A2E28 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79F4E12E29ECB627BB71AD99 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 7F4DF0926C8D8969FD520B80 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 8519B1C7B05BD2D6A16865B3 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -64,15 +59,20 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 983E08F5F5228CC3D163B8F9 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 9A5F7B9E2E1A4C02EB6704BF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + AF22DAC8E8A845C300E7375E /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBA43FAE96156362BA8EF48D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + C4EFA26D7158A047B110FCF6 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + CC0A75F385ACBCAC43BFEBE7 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + CEBDE3488C856DD348A6C068 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 3E14B7DFDF5DE28D3A41817D /* Frameworks */ = { + 93F1B1032879B60B47FCBA7A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 98A800A98ADDDD85BFDD56B9 /* Pods_RunnerTests.framework in Frameworks */, + 38A54B421B8471042F18B878 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -80,7 +80,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 93A30E397B154BF9E4C83B15 /* Pods_Runner.framework in Frameworks */, + 1CC28D7ADBE9715F59F19EA3 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,18 +95,13 @@ path = RunnerTests; sourceTree = ""; }; - 52170E302237384F3F9E165D /* Pods */ = { + 68647F196E7271756D60F850 /* Frameworks */ = { isa = PBXGroup; children = ( - 142546D53F13EB80B6495148 /* Pods-Runner.debug.xcconfig */, - 8519B1C7B05BD2D6A16865B3 /* Pods-Runner.release.xcconfig */, - 49E93829B3FBB85E4E618267 /* Pods-Runner.profile.xcconfig */, - 79F4E12E29ECB627BB71AD99 /* Pods-RunnerTests.debug.xcconfig */, - 983E08F5F5228CC3D163B8F9 /* Pods-RunnerTests.release.xcconfig */, - 7F4DF0926C8D8969FD520B80 /* Pods-RunnerTests.profile.xcconfig */, + AF22DAC8E8A845C300E7375E /* Pods_Runner.framework */, + CEBDE3488C856DD348A6C068 /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; 9740EEB11CF90186004384FC /* Flutter */ = { @@ -127,8 +122,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - 52170E302237384F3F9E165D /* Pods */, - E2AEFEFC45922EA55E0CBF9A /* Frameworks */, + 9C7BA9C2994299B2C032C1F2 /* Pods */, + 68647F196E7271756D60F850 /* Frameworks */, ); sourceTree = ""; }; @@ -156,13 +151,18 @@ path = Runner; sourceTree = ""; }; - E2AEFEFC45922EA55E0CBF9A /* Frameworks */ = { + 9C7BA9C2994299B2C032C1F2 /* Pods */ = { isa = PBXGroup; children = ( - 3E3B9FB91427841ED9EB8469 /* Pods_Runner.framework */, - 1C3275D234B210A784D83650 /* Pods_RunnerTests.framework */, + 9A5F7B9E2E1A4C02EB6704BF /* Pods-Runner.debug.xcconfig */, + 17E0B2BAAAC76CB9DCFBD04D /* Pods-Runner.release.xcconfig */, + BBA43FAE96156362BA8EF48D /* Pods-Runner.profile.xcconfig */, + C4EFA26D7158A047B110FCF6 /* Pods-RunnerTests.debug.xcconfig */, + CC0A75F385ACBCAC43BFEBE7 /* Pods-RunnerTests.release.xcconfig */, + 4BB1A86038B785B78D8A2E28 /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AD98D1066354009D1A906FEF /* [CP] Check Pods Manifest.lock */, + 58E743C57F402FC77D9B3BC4 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - 3E14B7DFDF5DE28D3A41817D /* Frameworks */, + 93F1B1032879B60B47FCBA7A /* Frameworks */, ); buildRules = ( ); @@ -191,7 +191,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - D21E99F056C0C75D262C54AB /* [CP] Check Pods Manifest.lock */, + D53AF560E19570B0E2388C55 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -285,44 +285,44 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 58E743C57F402FC77D9B3BC4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Run Script"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - AD98D1066354009D1A906FEF /* [CP] Check Pods Manifest.lock */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Run Script"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - D21E99F056C0C75D262C54AB /* [CP] Check Pods Manifest.lock */ = { + D53AF560E19570B0E2388C55 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -469,7 +469,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 79F4E12E29ECB627BB71AD99 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = C4EFA26D7158A047B110FCF6 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -487,7 +487,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 983E08F5F5228CC3D163B8F9 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = CC0A75F385ACBCAC43BFEBE7 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -503,7 +503,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7F4DF0926C8D8969FD520B80 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 4BB1A86038B785B78D8A2E28 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/isolate_example/macos/Runner.xcodeproj/project.pbxproj b/isolate_example/macos/Runner.xcodeproj/project.pbxproj index 2a76df995..31deb2301 100644 --- a/isolate_example/macos/Runner.xcodeproj/project.pbxproj +++ b/isolate_example/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 5E4FC27415C9505CF52B6809 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4046929A65AB43BC8F419CBA /* Pods_RunnerTests.framework */; }; - EAF6BFD3DECC4CB2DB10FB44 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A5D8E2FBEE969088E1EB247 /* Pods_Runner.framework */; }; + 5E584A4083101E195547546B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA15D41A21805884E4FB14C4 /* Pods_Runner.framework */; }; + 80C06E973A644A69E4D8810B /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 949F8D22A8B9120B77D0D19F /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26785A41D4474102ED7B6BDA /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 0023D0163E6A5561FEB12B19 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +79,15 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 4046929A65AB43BC8F419CBA /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 43FA8C7CD513B63BC4F921B0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 5AD52B2F1FF51E683CE26027 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 5CCAC4CB199CBB63E856D0CF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 7A5D8E2FBEE969088E1EB247 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 84F76D54244060001FBB65EA /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 949F8D22A8B9120B77D0D19F /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - B500AA7CD58E50590A05E5C2 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - ED4BB0A8B66C3951B56CB25F /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + C1D0AB77B276BB1DE86CC163 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + DA15D41A21805884E4FB14C4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DAE2DAD2AED04FD38412B342 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + F5AE258D5D17CCC9A34B7A5B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + FC39742B2D733131D4DAB400 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5E4FC27415C9505CF52B6809 /* Pods_RunnerTests.framework in Frameworks */, + 80C06E973A644A69E4D8810B /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EAF6BFD3DECC4CB2DB10FB44 /* Pods_Runner.framework in Frameworks */, + 5E584A4083101E195547546B /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 6B4D9E47AA3313F3A448AF50 /* Pods */, + D2B1E443A5C4D33EA420935D /* Pods */, ); sourceTree = ""; }; @@ -185,15 +185,15 @@ path = Runner; sourceTree = ""; }; - 6B4D9E47AA3313F3A448AF50 /* Pods */ = { + D2B1E443A5C4D33EA420935D /* Pods */ = { isa = PBXGroup; children = ( - 5CCAC4CB199CBB63E856D0CF /* Pods-Runner.debug.xcconfig */, - 43FA8C7CD513B63BC4F921B0 /* Pods-Runner.release.xcconfig */, - 5AD52B2F1FF51E683CE26027 /* Pods-Runner.profile.xcconfig */, - 26785A41D4474102ED7B6BDA /* Pods-RunnerTests.debug.xcconfig */, - B500AA7CD58E50590A05E5C2 /* Pods-RunnerTests.release.xcconfig */, - ED4BB0A8B66C3951B56CB25F /* Pods-RunnerTests.profile.xcconfig */, + 0023D0163E6A5561FEB12B19 /* Pods-Runner.debug.xcconfig */, + F5AE258D5D17CCC9A34B7A5B /* Pods-Runner.release.xcconfig */, + C1D0AB77B276BB1DE86CC163 /* Pods-Runner.profile.xcconfig */, + 84F76D54244060001FBB65EA /* Pods-RunnerTests.debug.xcconfig */, + FC39742B2D733131D4DAB400 /* Pods-RunnerTests.release.xcconfig */, + DAE2DAD2AED04FD38412B342 /* Pods-RunnerTests.profile.xcconfig */, ); name = Pods; path = Pods; @@ -202,8 +202,8 @@ D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 7A5D8E2FBEE969088E1EB247 /* Pods_Runner.framework */, - 4046929A65AB43BC8F419CBA /* Pods_RunnerTests.framework */, + DA15D41A21805884E4FB14C4 /* Pods_Runner.framework */, + 949F8D22A8B9120B77D0D19F /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 28A1B67FABCE20084880E91C /* [CP] Check Pods Manifest.lock */, + 5CD63E52FF1E636E88BFC641 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - C82366FB860FD88530AEC497 /* [CP] Check Pods Manifest.lock */, + F1E664908B1D4ABD69651066 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 3E9351B1126825E160A861B5 /* [CP] Embed Pods Frameworks */, + 22F5DEFF83F2113688078F55 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -323,26 +323,21 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 28A1B67FABCE20084880E91C /* [CP] Check Pods Manifest.lock */ = { + 22F5DEFF83F2113688078F55 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 3399D490228B24CF009A79C7 /* ShellScript */ = { @@ -383,24 +378,29 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 3E9351B1126825E160A861B5 /* [CP] Embed Pods Frameworks */ = { + 5CD63E52FF1E636E88BFC641 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - C82366FB860FD88530AEC497 /* [CP] Check Pods Manifest.lock */ = { + F1E664908B1D4ABD69651066 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26785A41D4474102ED7B6BDA /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 84F76D54244060001FBB65EA /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B500AA7CD58E50590A05E5C2 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = FC39742B2D733131D4DAB400 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ED4BB0A8B66C3951B56CB25F /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = DAE2DAD2AED04FD38412B342 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/isolate_example/pubspec.yaml b/isolate_example/pubspec.yaml index f7a2e1a59..b42e5befe 100644 --- a/isolate_example/pubspec.yaml +++ b/isolate_example/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/material_3_demo/pubspec.yaml b/material_3_demo/pubspec.yaml index 45cce5d68..98c24a401 100644 --- a/material_3_demo/pubspec.yaml +++ b/material_3_demo/pubspec.yaml @@ -8,7 +8,7 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/navigation_and_routing/pubspec.yaml b/navigation_and_routing/pubspec.yaml index dfc3ccef8..01ca05a4d 100644 --- a/navigation_and_routing/pubspec.yaml +++ b/navigation_and_routing/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: adaptive_navigation: ^0.0.3 diff --git a/place_tracker/pubspec.yaml b/place_tracker/pubspec.yaml index 1d2148f8a..a87ee915f 100644 --- a/place_tracker/pubspec.yaml +++ b/place_tracker/pubspec.yaml @@ -4,7 +4,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/platform_channels/.metadata b/platform_channels/.metadata index 6c1bf2fff..4e481af35 100644 --- a/platform_channels/.metadata +++ b/platform_channels/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "db7ef5bf9f59442b0e200a90587e8fa5e0c6336a" + revision: "8495dee1fd4aacbe9de707e7581203232f591b2f" channel: "stable" project_type: app @@ -13,14 +13,14 @@ project_type: app migration: platforms: - platform: root - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: android - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f - platform: ios - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f + base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f # User provided section diff --git a/platform_channels/android/.gitignore b/platform_channels/android/.gitignore index 6f568019d..55afd919c 100644 --- a/platform_channels/android/.gitignore +++ b/platform_channels/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/platform_channels/android/app/build.gradle b/platform_channels/android/app/build.gradle index bebc96d32..03c7ee88e 100644 --- a/platform_channels/android/app/build.gradle +++ b/platform_channels/android/app/build.gradle @@ -1,69 +1,44 @@ 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" } -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - android { - namespace "dev.flutter.platform_channels" - compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + namespace = "dev.flutter.platform_channels" + 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 { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "dev.flutter.platform_channels" + applicationId = "dev.flutter.platform_channels" // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + // 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 'com.google.code.gson:gson:2.8.6' + source = "../.." } diff --git a/platform_channels/android/app/build.gradle.orig b/platform_channels/android/app/build.gradle.orig new file mode 100644 index 000000000..03c7ee88e --- /dev/null +++ b/platform_channels/android/app/build.gradle.orig @@ -0,0 +1,44 @@ +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" +} + +android { + namespace = "dev.flutter.platform_channels" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "dev.flutter.platform_channels" + // 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 + } + } +} + +flutter { + source = "../.." +} diff --git a/platform_channels/android/app/build.gradle.rej b/platform_channels/android/app/build.gradle.rej new file mode 100644 index 000000000..5ac289a93 --- /dev/null +++ b/platform_channels/android/app/build.gradle.rej @@ -0,0 +1,8 @@ +@@ -64,4 +64,6 @@ + source '../..' + } + +-dependencies {} ++dependencies { ++ implementation 'com.google.code.gson:gson:2.8.6' ++} diff --git a/platform_channels/android/app/src/main/AndroidManifest.xml b/platform_channels/android/app/src/main/AndroidManifest.xml index 97c704075..45558a8e2 100644 --- a/platform_channels/android/app/src/main/AndroidManifest.xml +++ b/platform_channels/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/platform_channels/android/app/src/main/assets/eat_new_orleans.jpg b/platform_channels/android/app/src/main/assets/eat_new_orleans.jpg deleted file mode 100644 index 517759ee1870ce9e7b0b98e42489195bfe5e5470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71513 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 ka{mC?ns@y1ADRCE8tuGa{{SJD{{VD(?z@&Et; diff --git a/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/AccelerometerStreamHandler.kt b/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/AccelerometerStreamHandler.kt deleted file mode 100644 index 845c7ad0d..000000000 --- a/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/AccelerometerStreamHandler.kt +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2020 The Flutter team. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package dev.flutter.platform_channels - -import android.hardware.Sensor -import android.hardware.SensorEvent -import android.hardware.SensorEventListener -import android.hardware.SensorManager -import io.flutter.plugin.common.EventChannel - -class AccelerometerStreamHandler(sManager: SensorManager, s: Sensor) : EventChannel.StreamHandler, SensorEventListener { - private val sensorManager: SensorManager = sManager - private val accelerometerSensor: Sensor = s - private lateinit var eventSink: EventChannel.EventSink - - override fun onListen(arguments: Any?, events: EventChannel.EventSink?) { - if (events != null) { - eventSink = events - sensorManager.registerListener(this, accelerometerSensor, SensorManager.SENSOR_DELAY_UI) - } - } - - override fun onCancel(arguments: Any?) { - sensorManager.unregisterListener(this) - } - - override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {} - - override fun onSensorChanged(sensorEvent: SensorEvent?) { - if (sensorEvent != null) { - val axisValues = listOf(sensorEvent.values[0], sensorEvent.values[1], sensorEvent.values[2]) - eventSink.success(axisValues) - } else { - eventSink.error("DATA_UNAVAILABLE", "Cannot get accelerometer data", null) - } - } -} diff --git a/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/MainActivity.kt b/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/MainActivity.kt index 50ba80527..478d80dcb 100644 --- a/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/MainActivity.kt +++ b/platform_channels/android/app/src/main/kotlin/dev/flutter/platform_channels/MainActivity.kt @@ -1,88 +1,5 @@ -// Copyright 2020 The Flutter team. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - package dev.flutter.platform_channels -import android.content.Context -import android.hardware.Sensor -import android.hardware.SensorManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import io.flutter.embedding.android.FlutterActivity -import io.flutter.embedding.engine.FlutterEngine -import io.flutter.plugin.common.* -import java.io.InputStream -import java.nio.ByteBuffer - -class MainActivity : FlutterActivity() { - override fun configureFlutterEngine(flutterEngine: FlutterEngine) { - // Creates a MethodChannel as soon as the FlutterEngine is attached to - // the Activity, and registers a MethodCallHandler. The Method.setMethodCallHandler - // is responsible to register a MethodCallHandler to handle the incoming calls. - - // The call parameter of MethodCallHandler has information about the incoming call, - // like method name, and arguments. The result parameter of MethodCallHandler is - // responsible to send the results of the call. - MethodChannel(flutterEngine.dartExecutor, "methodChannelDemo") - .setMethodCallHandler { call, result -> - val count: Int? = call.argument("count") - - if (count == null) { - result.error("INVALID ARGUMENT", "Value of count cannot be null", null) - } else { - when (call.method) { - "increment" -> result.success(count + 1) - "decrement" -> result.success(count - 1) - else -> result.notImplemented() - } - } - } - - val sensorManger: SensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager - val accelerometerSensor: Sensor = sensorManger.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) - EventChannel(flutterEngine.dartExecutor, "eventChannelDemo") - .setStreamHandler(AccelerometerStreamHandler(sensorManger, accelerometerSensor)) - - // Registers a MessageHandler for BasicMessageChannel to receive a message from Dart and send - // image data in reply. - BasicMessageChannel(flutterEngine.dartExecutor, "platformImageDemo", StandardMessageCodec()) - .setMessageHandler { message, reply -> - if (message == "getImage") { - val inputStream: InputStream = assets.open("eat_new_orleans.jpg") - reply.reply(inputStream.readBytes()) - } - } - - val petList = mutableListOf>() - val gson = Gson() - - // A BasicMessageChannel for sending petList to Dart. - val stringCodecChannel = BasicMessageChannel(flutterEngine.dartExecutor, "stringCodecDemo", StringCodec.INSTANCE) - - // Registers a MessageHandler for BasicMessageChannel to receive pet details to be - // added in petList and send the it back to Dart using stringCodecChannel. - BasicMessageChannel(flutterEngine.dartExecutor, "jsonMessageCodecDemo", JSONMessageCodec.INSTANCE) - .setMessageHandler { message, reply -> - petList.add(0, gson.fromJson(message.toString(), object : TypeToken>() {}.type)) - stringCodecChannel.send(gson.toJson(mapOf("petList" to petList))) - } - // Registers a MessageHandler for BasicMessageChannel to receive the index of pet - // details to be removed from the petList and send the petList back to Dart using - // stringCodecChannel. If the index is not in the range of petList, we send null - // back to Dart. - BasicMessageChannel(flutterEngine.dartExecutor, "binaryCodecDemo", BinaryCodec.INSTANCE) - .setMessageHandler { message, reply -> - val index = String(message!!.array()).toInt() - if (index >= 0 && index < petList.size) { - petList.removeAt(index) - val replyMessage = "Removed Successfully" - reply.reply(ByteBuffer.allocateDirect(replyMessage.toByteArray().size).put(replyMessage.toByteArray())) - stringCodecChannel.send(gson.toJson(mapOf("petList" to petList))) - } else { - reply.reply(null) - } - } - } -} +class MainActivity: FlutterActivity() diff --git a/platform_channels/android/build.gradle b/platform_channels/android/build.gradle index e83fb5dac..d2ffbffa4 100644 --- a/platform_channels/android/build.gradle +++ b/platform_channels/android/build.gradle @@ -1,15 +1,3 @@ -buildscript { - ext.kotlin_version = '1.7.10' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() @@ -17,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/platform_channels/android/gradle.properties b/platform_channels/android/gradle.properties index 598d13fee..259717082 100644 --- a/platform_channels/android/gradle.properties +++ b/platform_channels/android/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx4G +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true diff --git a/platform_channels/android/gradle/wrapper/gradle-wrapper.properties b/platform_channels/android/gradle/wrapper/gradle-wrapper.properties index 3c472b99c..7bb2df6ba 100644 --- a/platform_channels/android/gradle/wrapper/gradle-wrapper.properties +++ b/platform_channels/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/platform_channels/android/settings.gradle b/platform_channels/android/settings.gradle index 7cd712855..b9e43bd37 100644 --- a/platform_channels/android/settings.gradle +++ b/platform_channels/android/settings.gradle @@ -5,25 +5,21 @@ pluginManagement { def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() + }() - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } - - plugins { - id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false - } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + 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/platform_channels/ios/Flutter/AppFrameworkInfo.plist b/platform_channels/ios/Flutter/AppFrameworkInfo.plist index 9625e105d..7c5696400 100644 --- a/platform_channels/ios/Flutter/AppFrameworkInfo.plist +++ b/platform_channels/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/platform_channels/ios/Runner.xcodeproj/project.pbxproj b/platform_channels/ios/Runner.xcodeproj/project.pbxproj index 3de48db09..9e5ce414f 100644 --- a/platform_channels/ios/Runner.xcodeproj/project.pbxproj +++ b/platform_channels/ios/Runner.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - F1246E9A9D19DC437CB1F19C /* AccelerometerStreamHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 875C3ADF5E4877B6D6ECA77F /* AccelerometerStreamHandler.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -49,7 +48,6 @@ 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 875C3ADF5E4877B6D6ECA77F /* AccelerometerStreamHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccelerometerStreamHandler.swift; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -119,7 +117,6 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - 875C3ADF5E4877B6D6ECA77F /* AccelerometerStreamHandler.swift */, ); path = Runner; sourceTree = ""; @@ -171,7 +168,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C8080294A63A400263BE5 = { @@ -273,7 +270,6 @@ files = ( 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - F1246E9A9D19DC437CB1F19C /* AccelerometerStreamHandler.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -311,6 +307,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -340,6 +337,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -348,7 +346,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; @@ -429,6 +427,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -458,6 +457,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -472,7 +472,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; @@ -484,6 +484,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -513,6 +514,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -521,7 +523,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/platform_channels/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/platform_channels/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 87131a09b..8e3ca5dfe 100644 --- a/platform_channels/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/platform_channels/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ FlutterError? { - - if !motionManager.isAccelerometerAvailable { - events(FlutterError(code: "SENSOR_UNAVAILABLE", message: "Accelerometer is not available", details: nil)) - } - - motionManager.accelerometerUpdateInterval = 0.1 - - motionManager.startAccelerometerUpdates(to: OperationQueue.main) {(data, error) in - guard let accelerationData = data?.acceleration else { - events(FlutterError(code: "DATA_UNAVAILABLE", message: "Cannot get accelerometer data", details: nil )) - return - } - - events([accelerationData.x, accelerationData.y, accelerationData.z]) - } - - return nil - } - - func onCancel(withArguments arguments: Any?) -> FlutterError? { - return nil - } -} diff --git a/platform_channels/ios/Runner/AppDelegate.swift b/platform_channels/ios/Runner/AppDelegate.swift index 131fd18b7..626664468 100644 --- a/platform_channels/ios/Runner/AppDelegate.swift +++ b/platform_channels/ios/Runner/AppDelegate.swift @@ -1,89 +1,13 @@ -// Copyright 2020 The Flutter team. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import UIKit import Flutter +import UIKit -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - let flutterViewController = window.rootViewController as! FlutterViewController - FlutterMethodChannel(name: "methodChannelDemo", binaryMessenger: flutterViewController.binaryMessenger).setMethodCallHandler({ - (call: FlutterMethodCall, result: FlutterResult) -> Void in - - guard let count = (call.arguments as? NSDictionary)?["count"] as? Int else { - result(FlutterError(code: "INVALID_ARGUMENT", message: "Value of count cannot be null", details: nil)) - return - } - - switch call.method { - case "increment": - result(count + 1) - case "decrement": - result(count - 1) - default: - result(FlutterMethodNotImplemented) - } - }) - - FlutterBasicMessageChannel(name: "platformImageDemo", binaryMessenger: flutterViewController.binaryMessenger, codec: FlutterStandardMessageCodec.sharedInstance()).setMessageHandler{ - (message: Any?, reply: FlutterReply) -> Void in - - if(message as! String == "getImage") { - guard let image = UIImage(named: "eat_new_orleans.jpg") else { - reply(nil) - return - } - - reply(FlutterStandardTypedData(bytes: image.jpegData(compressionQuality: 1)!)) - } - } - - FlutterEventChannel(name: "eventChannelDemo", binaryMessenger: flutterViewController.binaryMessenger).setStreamHandler(AccelerometerStreamHandler()) - - var petList : [[String:String]] = [] - - // A FlutterBasicMessageChannel for sending petList to Dart. - let stringCodecChannel = FlutterBasicMessageChannel(name: "stringCodecDemo", binaryMessenger: flutterViewController.binaryMessenger, codec: FlutterStringCodec.sharedInstance()) - - // Registers a MessageHandler for FlutterBasicMessageChannel to receive pet details. - FlutterBasicMessageChannel(name: "jsonMessageCodecDemo", binaryMessenger: flutterViewController.binaryMessenger, codec: FlutterJSONMessageCodec.sharedInstance()) - .setMessageHandler{(message: Any?, reply: FlutterReply) -> Void in - petList.insert(message! as! [String: String], at: 0) - stringCodecChannel.sendMessage(self.convertPetListToJson(petList: petList)) - } - - // Registers a MessageHandler for FlutterBasicMessageHandler to receive indices of detail records to remove from the petList. - FlutterBasicMessageChannel(name: "binaryCodecDemo", binaryMessenger: flutterViewController.binaryMessenger, codec: FlutterBinaryCodec.sharedInstance()).setMessageHandler{ - (message: Any?, reply: FlutterReply) -> Void in - - guard let index = Int.init(String.init(data: message! as! Data, encoding: String.Encoding.utf8)!) else { - reply(nil) - return - } - - if (index >= 0 && index < petList.count) { - petList.remove(at: index) - reply("Removed Successfully".data(using: .utf8)!) - stringCodecChannel.sendMessage(self.convertPetListToJson(petList: petList)) - } else { - reply(nil) - } - } - - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } - - // Function to convert petList to json string. - func convertPetListToJson(petList: [[String: String]]) -> String? { - guard let data = try? JSONSerialization.data(withJSONObject: ["petList": petList], options: .prettyPrinted) else { - return nil - } - return String(data: data, encoding: String.Encoding.utf8) - } + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } } diff --git a/platform_channels/ios/Runner/Assets.xcassets/Contents.json b/platform_channels/ios/Runner/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/platform_channels/ios/Runner/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/Contents.json b/platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/Contents.json deleted file mode 100644 index a20550499..000000000 --- a/platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "eat_new_orleans.jpg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/eat_new_orleans.jpg b/platform_channels/ios/Runner/Assets.xcassets/eat_new_orleans.imageset/eat_new_orleans.jpg deleted file mode 100644 index 517759ee1870ce9e7b0b98e42489195bfe5e5470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71513 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 ka{mC?ns@y1ADRCE8tuGa{{SJD{{VD(?z@&Et; diff --git a/platform_channels/pubspec.yaml b/platform_channels/pubspec.yaml index bd4dcb625..d15d0fc91 100644 --- a/platform_channels/pubspec.yaml +++ b/platform_channels/pubspec.yaml @@ -4,7 +4,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/platform_view_swift/pubspec.yaml b/platform_view_swift/pubspec.yaml index ddded240e..9fc8afb7f 100644 --- a/platform_view_swift/pubspec.yaml +++ b/platform_view_swift/pubspec.yaml @@ -4,7 +4,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/provider_counter/pubspec.yaml b/provider_counter/pubspec.yaml index d641cab8f..808292e6b 100644 --- a/provider_counter/pubspec.yaml +++ b/provider_counter/pubspec.yaml @@ -5,7 +5,7 @@ publish_to: none version: 1.0.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/simple_shader/pubspec.yaml b/simple_shader/pubspec.yaml index bc37ede56..b50bdf068 100644 --- a/simple_shader/pubspec.yaml +++ b/simple_shader/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/simplistic_calculator/pubspec.yaml b/simplistic_calculator/pubspec.yaml index 7c1889f6d..7b359204d 100644 --- a/simplistic_calculator/pubspec.yaml +++ b/simplistic_calculator/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: auto_size_text: ^3.0.0 diff --git a/simplistic_editor/pubspec.yaml b/simplistic_editor/pubspec.yaml index 2e255021c..652a04d53 100644 --- a/simplistic_editor/pubspec.yaml +++ b/simplistic_editor/pubspec.yaml @@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/testing_app/pubspec.yaml b/testing_app/pubspec.yaml index ecfb505c8..5b4e57fbe 100644 --- a/testing_app/pubspec.yaml +++ b/testing_app/pubspec.yaml @@ -4,7 +4,7 @@ description: A sample that shows testing in Flutter. version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/veggieseasons/pubspec.yaml b/veggieseasons/pubspec.yaml index 05e546d29..006ccea98 100644 --- a/veggieseasons/pubspec.yaml +++ b/veggieseasons/pubspec.yaml @@ -5,7 +5,7 @@ publish_to: none version: 1.2.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/web/_packages/web_startup_analyzer/example/pubspec.yaml b/web/_packages/web_startup_analyzer/example/pubspec.yaml index 049c8d561..c68d91ba3 100644 --- a/web/_packages/web_startup_analyzer/example/pubspec.yaml +++ b/web/_packages/web_startup_analyzer/example/pubspec.yaml @@ -3,7 +3,7 @@ description: "flutter_web_startup_analyzer example" publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 flutter: ^3.16.0 dependencies: flutter: diff --git a/web/_packages/web_startup_analyzer/pubspec.yaml b/web/_packages/web_startup_analyzer/pubspec.yaml index 4e00789d9..982e111ab 100644 --- a/web/_packages/web_startup_analyzer/pubspec.yaml +++ b/web/_packages/web_startup_analyzer/pubspec.yaml @@ -3,7 +3,7 @@ description: "Captures web startup timing data in a Flutter web app" version: 0.1.0-wip environment: - sdk: ^3.5.0 + sdk: ^3.6.0 flutter: ^3.16.0 dependencies: diff --git a/web/_tool/pubspec.yaml b/web/_tool/pubspec.yaml index eaf56590e..c03864d6c 100644 --- a/web/_tool/pubspec.yaml +++ b/web/_tool/pubspec.yaml @@ -2,7 +2,7 @@ name: tool publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: markdown: ^7.0.0 diff --git a/web/samples_index/pubspec.yaml b/web/samples_index/pubspec.yaml index f80252203..fc8e744ab 100644 --- a/web/samples_index/pubspec.yaml +++ b/web/samples_index/pubspec.yaml @@ -5,7 +5,7 @@ version: 0.0.1 publish_to: none environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: checked_yaml: ^2.0.3 diff --git a/web_embedding/element_embedding_demo/pubspec.yaml b/web_embedding/element_embedding_demo/pubspec.yaml index df2b65325..46f877763 100644 --- a/web_embedding/element_embedding_demo/pubspec.yaml +++ b/web_embedding/element_embedding_demo/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 dependencies: flutter: diff --git a/web_embedding/ng-flutter/flutter/pubspec.yaml b/web_embedding/ng-flutter/flutter/pubspec.yaml index 4ac7d725c..bac225a61 100644 --- a/web_embedding/ng-flutter/flutter/pubspec.yaml +++ b/web_embedding/ng-flutter/flutter/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: none version: 1.0.0 environment: - sdk: ^3.5.0 + sdk: ^3.6.0 flutter: ">=3.22.0" dependencies: