From bba22e5ceb9efdc0b4f04e9b8897fb338848f372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Mon, 29 Jun 2026 16:34:47 -0400 Subject: [PATCH 1/8] build: migrate from CocoaPods to SPM --- build/steps-build-ios.yml | 19 -- src/app/ios/.gitignore | 7 +- src/app/ios/Flutter/Debug.xcconfig | 1 - src/app/ios/Flutter/Release.xcconfig | 1 - src/app/ios/Podfile | 71 ----- src/app/ios/Podfile.lock | 248 ------------------ src/app/ios/Runner.xcodeproj/project.pbxproj | 145 ++-------- .../xcshareddata/swiftpm/Package.resolved | 140 ++++++++++ .../xcshareddata/xcschemes/Runner.xcscheme | 18 ++ .../contents.xcworkspacedata | 3 - .../xcshareddata/WorkspaceSettings.xcsettings | 2 + .../xcshareddata/swiftpm/Package.resolved | 140 ++++++++++ src/app/macos/.gitignore | 4 + src/app/macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - src/app/macos/Podfile | 43 --- src/app/macos/Podfile.lock | 193 -------------- .../macos/Runner.xcodeproj/project.pbxproj | 104 -------- .../contents.xcworkspacedata | 3 - 19 files changed, 333 insertions(+), 811 deletions(-) delete mode 100644 src/app/ios/Podfile delete mode 100644 src/app/ios/Podfile.lock create mode 100644 src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 src/app/macos/Podfile delete mode 100644 src/app/macos/Podfile.lock diff --git a/build/steps-build-ios.yml b/build/steps-build-ios.yml index f53a2439..514f7627 100644 --- a/build/steps-build-ios.yml +++ b/build/steps-build-ios.yml @@ -64,25 +64,6 @@ steps: parameters: projectDirectory: '${{ parameters.pathToSrc }}/app' -- task: CmdLine@2 - displayName: 'Clean CocoaPods Cache' - inputs: - script: | - cd '${{ parameters.pathToSrc }}/app/ios' - rm -rf Pods - rm -rf Podfile.lock - pod deintegrate - pod cache clean --all - workingDirectory: '${{ parameters.pathToSrc }}/app' - -- task: CmdLine@2 - displayName: 'Install CocoaPods Dependencies' - inputs: - script: | - cd '${{ parameters.pathToSrc }}/app/ios' - pod install --repo-update - workingDirectory: '${{ parameters.pathToSrc }}/app' - - task: PowerShell@2 displayName: 'Execute Package Rename' condition: eq(variables['ApplicationEnvironment'], 'Production') diff --git a/src/app/ios/.gitignore b/src/app/ios/.gitignore index 7a7f9873..9b83be0d 100644 --- a/src/app/ios/.gitignore +++ b/src/app/ios/.gitignore @@ -10,14 +10,12 @@ **/.vagrant/ **/DerivedData/ Icon? -**/Pods/ **/.symlinks/ profile xcuserdata **/.generated/ Flutter/App.framework Flutter/Flutter.framework -Flutter/Flutter.podspec Flutter/Generated.xcconfig Flutter/ephemeral/ Flutter/app.flx @@ -27,6 +25,11 @@ Flutter/flutter_export_environment.sh ServiceDefinitions.json Runner/GeneratedPluginRegistrant.* +# CocoaPods (generated at build time by Flutter for non-SPM plugins) +Podfile +Podfile.lock +**/Pods/ + # Exceptions to above rules. !default.mode1v3 !default.mode2v3 diff --git a/src/app/ios/Flutter/Debug.xcconfig b/src/app/ios/Flutter/Debug.xcconfig index ec97fc6f..592ceee8 100644 --- a/src/app/ios/Flutter/Debug.xcconfig +++ b/src/app/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/src/app/ios/Flutter/Release.xcconfig b/src/app/ios/Flutter/Release.xcconfig index c4855bfe..592ceee8 100644 --- a/src/app/ios/Flutter/Release.xcconfig +++ b/src/app/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/src/app/ios/Podfile b/src/app/ios/Podfile deleted file mode 100644 index 92e19543..00000000 --- a/src/app/ios/Podfile +++ /dev/null @@ -1,71 +0,0 @@ -platform :ios, '16.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - - # Workaround. - # See https://github.com/CocoaPods/CocoaPods/issues/11402 for more details. - target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_REQUIRED'] = "NO" - config.build_settings['CODE_SIGNING_ALLOWED'] = "NO" - end - - # Workaround: move .xcprivacy files from Sources to Resources build phase. - # Some pods (e.g. bugsee_flutter) incorrectly place PrivacyInfo.xcprivacy in - # the Sources phase, causing "no rule to process file ... of type 'text.xml'" - # during xcodebuild archive. - sources_phase = target.build_phases.find { |p| p.is_a?(Xcodeproj::Project::Object::PBXSourcesBuildPhase) } - next unless sources_phase - - xcprivacy_files = sources_phase.files.select { |f| f.file_ref&.path&.end_with?('.xcprivacy') } - next if xcprivacy_files.empty? - - resources_phase = target.build_phases.find { |p| p.is_a?(Xcodeproj::Project::Object::PBXResourcesBuildPhase) } - resources_phase ||= target.new_resources_build_phase - - xcprivacy_files.each do |build_file| - file_ref = build_file.file_ref - sources_phase.remove_file_reference(file_ref) - unless resources_phase.files.map(&:file_ref).include?(file_ref) - resources_phase.add_file_reference(file_ref) - end - end - end -end diff --git a/src/app/ios/Podfile.lock b/src/app/ios/Podfile.lock deleted file mode 100644 index 160d21e0..00000000 --- a/src/app/ios/Podfile.lock +++ /dev/null @@ -1,248 +0,0 @@ -PODS: - - Bugsee (5.5.9) - - bugsee_flutter (8.6.9): - - Bugsee (= 5.5.9) - - Flutter - - Firebase/CoreOnly (12.6.0): - - FirebaseCore (~> 12.6.0) - - Firebase/RemoteConfig (12.6.0): - - Firebase/CoreOnly - - FirebaseRemoteConfig (~> 12.6.0) - - firebase_analytics (12.1.0): - - firebase_core - - FirebaseAnalytics (= 12.6.0) - - Flutter - - firebase_core (4.3.0): - - Firebase/CoreOnly (= 12.6.0) - - Flutter - - firebase_remote_config (6.1.3): - - Firebase/RemoteConfig (= 12.6.0) - - firebase_core - - Flutter - - FirebaseABTesting (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseAnalytics (12.6.0): - - FirebaseAnalytics/Default (= 12.6.0) - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/MethodSwizzler (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - nanopb (~> 3.30910.0) - - FirebaseAnalytics/Default (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - GoogleAppMeasurement/Default (= 12.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/MethodSwizzler (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - nanopb (~> 3.30910.0) - - FirebaseCore (12.6.0): - - FirebaseCoreInternal (~> 12.6.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreInternal (12.6.0): - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseInstallations (12.6.0): - - FirebaseCore (~> 12.6.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/UserDefaults (~> 8.1) - - PromisesObjC (~> 2.4) - - FirebaseRemoteConfig (12.6.0): - - FirebaseABTesting (~> 12.6.0) - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - FirebaseRemoteConfigInterop (~> 12.6.0) - - FirebaseSharedSwift (~> 12.6.0) - - GoogleUtilities/Environment (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseRemoteConfigInterop (12.6.0) - - FirebaseSharedSwift (12.6.0) - - Flutter (1.0.0) - - flutter_local_notifications (0.0.1): - - Flutter - - GoogleAdsOnDeviceConversion (3.2.0): - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Logger (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/Core (12.6.0): - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/MethodSwizzler (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/Default (12.6.0): - - GoogleAdsOnDeviceConversion (~> 3.2.0) - - GoogleAppMeasurement/Core (= 12.6.0) - - GoogleAppMeasurement/IdentitySupport (= 12.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/MethodSwizzler (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/IdentitySupport (12.6.0): - - GoogleAppMeasurement/Core (= 12.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/MethodSwizzler (~> 8.1) - - GoogleUtilities/Network (~> 8.1) - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - nanopb (~> 3.30910.0) - - GoogleUtilities/AppDelegateSwizzler (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.1.0): - - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Privacy - - GoogleUtilities/MethodSwizzler (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/Network (8.1.0): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Privacy - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (8.1.0)": - - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (8.1.0) - - GoogleUtilities/Reachability (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - integration_test (0.0.1): - - Flutter - - nanopb (3.30910.0): - - nanopb/decode (= 3.30910.0) - - nanopb/encode (= 3.30910.0) - - nanopb/decode (3.30910.0) - - nanopb/encode (3.30910.0) - - open_filex (0.0.2): - - Flutter - - package_info_plus (0.4.5): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - permission_handler_apple (9.3.0): - - Flutter - - PromisesObjC (2.4.0) - - sensors_plus (0.0.1): - - Flutter - - share_plus (0.0.1): - - Flutter - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - - url_launcher_ios (0.0.1): - - Flutter - -DEPENDENCIES: - - bugsee_flutter (from `.symlinks/plugins/bugsee_flutter/ios`) - - firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) - - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - - firebase_remote_config (from `.symlinks/plugins/firebase_remote_config/ios`) - - Flutter (from `Flutter`) - - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - - integration_test (from `.symlinks/plugins/integration_test/ios`) - - open_filex (from `.symlinks/plugins/open_filex/ios`) - - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - - sensors_plus (from `.symlinks/plugins/sensors_plus/ios`) - - share_plus (from `.symlinks/plugins/share_plus/ios`) - - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - -SPEC REPOS: - trunk: - - Bugsee - - Firebase - - FirebaseABTesting - - FirebaseAnalytics - - FirebaseCore - - FirebaseCoreInternal - - FirebaseInstallations - - FirebaseRemoteConfig - - FirebaseRemoteConfigInterop - - FirebaseSharedSwift - - GoogleAdsOnDeviceConversion - - GoogleAppMeasurement - - GoogleUtilities - - nanopb - - PromisesObjC - -EXTERNAL SOURCES: - bugsee_flutter: - :path: ".symlinks/plugins/bugsee_flutter/ios" - firebase_analytics: - :path: ".symlinks/plugins/firebase_analytics/ios" - firebase_core: - :path: ".symlinks/plugins/firebase_core/ios" - firebase_remote_config: - :path: ".symlinks/plugins/firebase_remote_config/ios" - Flutter: - :path: Flutter - flutter_local_notifications: - :path: ".symlinks/plugins/flutter_local_notifications/ios" - integration_test: - :path: ".symlinks/plugins/integration_test/ios" - open_filex: - :path: ".symlinks/plugins/open_filex/ios" - package_info_plus: - :path: ".symlinks/plugins/package_info_plus/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - permission_handler_apple: - :path: ".symlinks/plugins/permission_handler_apple/ios" - sensors_plus: - :path: ".symlinks/plugins/sensors_plus/ios" - share_plus: - :path: ".symlinks/plugins/share_plus/ios" - shared_preferences_foundation: - :path: ".symlinks/plugins/shared_preferences_foundation/darwin" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" - -SPEC CHECKSUMS: - Bugsee: 308fd4cddc4f518c68b4aa6320099edef68fe2f7 - bugsee_flutter: 7700b787ad3e98dcae5c4666f2441da847d00277 - Firebase: a451a7b61536298fd5cbfe3a746fd40443a50679 - firebase_analytics: 4f9cca09e65f6c2944a862c6dc86f6bed9fb769c - firebase_core: ba00a168e719694f38960502ceb560285603d073 - firebase_remote_config: 4315c34bfba52eb501b69cfa84d519f340385a37 - FirebaseABTesting: 119f0a2b2e68b1ae05d248c5adb2455f148f20c1 - FirebaseAnalytics: d0a97a0db6425e5a5d966340b87f92ca7b13a557 - FirebaseCore: 0e38ad5d62d980a47a64b8e9301ffa311457be04 - FirebaseCoreInternal: 69bf1306a05b8ac43004f6cc1f804bb7b05b229e - FirebaseInstallations: 631b38da2e11a83daa4bfb482f79d286a5dfa7ad - FirebaseRemoteConfig: c5dfe22828a7ae7673d16224ea92743687e993df - FirebaseRemoteConfigInterop: 3443b8cb8fffd76bb3e03b2a84bfd3db952fcda4 - FirebaseSharedSwift: 79f27fff0addd15c3de19b87fba426f3cc2c964f - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 - flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb - GoogleAdsOnDeviceConversion: d68c69dd9581a0f5da02617b6f377e5be483970f - GoogleAppMeasurement: 3bf40aff49a601af5da1c3345702fcb4991d35ee - GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 - integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e - nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - open_filex: 432f3cd11432da3e39f47fcc0df2b1603854eff1 - package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 - permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d - PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - sensors_plus: 6a11ed0c2e1d0bd0b20b4029d3bad27d96e0c65b - share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb - url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b - -PODFILE CHECKSUM: 5e773f411663c695e26c43c3e3c6ff68e3f631da - -COCOAPODS: 1.16.2 diff --git a/src/app/ios/Runner.xcodeproj/project.pbxproj b/src/app/ios/Runner.xcodeproj/project.pbxproj index b9ae4408..2e71f8a9 100644 --- a/src/app/ios/Runner.xcodeproj/project.pbxproj +++ b/src/app/ios/Runner.xcodeproj/project.pbxproj @@ -8,11 +8,10 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 266B3B29EE18CF0EC62300DE /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEED18372B39D0349577201B /* 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 */; }; - 5C86280335244E49EC99EB7D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F05C6F5ACF09D78E04C40DD4 /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 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 */; }; @@ -44,15 +43,12 @@ /* Begin PBXFileReference section */ 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 = ""; }; - 22ADEBD35299960027E4D053 /* 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 = ""; }; - 40240CD8F7C11E3B19EB9220 /* 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 = ""; }; - 4DB7933D98E7F9465A191011 /* 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 = ""; }; - 72B55C8CB9E04AE7E8078C49 /* 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 = ""; }; 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/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 = ""; }; @@ -61,10 +57,6 @@ 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 = ""; }; - A45C8D3843ED28E60D2A4566 /* 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 = ""; }; - BACFF7182AAEA359DBB02FE6 /* 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 = ""; }; - F05C6F5ACF09D78E04C40DD4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FEED18372B39D0349577201B /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -72,7 +64,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 266B3B29EE18CF0EC62300DE /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -80,7 +72,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C86280335244E49EC99EB7D /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,22 +86,10 @@ path = RunnerTests; sourceTree = ""; }; - 7B7839DDCE1C0F4BD8ACF6A8 /* Pods */ = { - isa = PBXGroup; - children = ( - 72B55C8CB9E04AE7E8078C49 /* Pods-Runner.debug.xcconfig */, - 22ADEBD35299960027E4D053 /* Pods-Runner.release.xcconfig */, - 4DB7933D98E7F9465A191011 /* Pods-Runner.profile.xcconfig */, - A45C8D3843ED28E60D2A4566 /* Pods-RunnerTests.debug.xcconfig */, - 40240CD8F7C11E3B19EB9220 /* Pods-RunnerTests.release.xcconfig */, - BACFF7182AAEA359DBB02FE6 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -126,8 +105,6 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - 7B7839DDCE1C0F4BD8ACF6A8 /* Pods */, - AB0AF566E8E9E4429588F685 /* Frameworks */, ); sourceTree = ""; }; @@ -155,15 +132,6 @@ path = Runner; sourceTree = ""; }; - AB0AF566E8E9E4429588F685 /* Frameworks */ = { - isa = PBXGroup; - children = ( - FEED18372B39D0349577201B /* Pods_Runner.framework */, - F05C6F5ACF09D78E04C40DD4 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -171,7 +139,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8897E7EC5193AE22C69F92A8 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, FEEB652762D0FF3CCFF2039F /* Frameworks */, @@ -190,21 +157,21 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 7AF78CF71A1FBF1227250E00 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 55CB239F032BEDD82AD7A782 /* [CP] Embed Pods Frameworks */, - EDC61DD9C7944EA05AB084F7 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -238,6 +205,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -286,67 +256,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 55CB239F032BEDD82AD7A782 /* [CP] Embed Pods Frameworks */ = { - 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"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 7AF78CF71A1FBF1227250E00 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-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; - }; - 8897E7EC5193AE22C69F92A8 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - 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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -362,23 +271,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - EDC61DD9C7944EA05AB084F7 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -506,7 +398,6 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A45C8D3843ED28E60D2A4566 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -524,7 +415,6 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 40240CD8F7C11E3B19EB9220 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -540,7 +430,6 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BACFF7182AAEA359DBB02FE6 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -748,6 +637,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..20ce567b --- /dev/null +++ b/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,140 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5", + "version" : "1.2024072200.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "bb4002485ff867768dec13bf904a2ddb050bd1b1", + "version" : "11.3.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270", + "version" : "12.15.0" + } + }, + { + "identity" : "flutterfire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/flutterfire", + "state" : { + "revision" : "39bdb5b1ef392e8c31c60209e333b45e408099e8", + "version" : "4.3.0-firebase-core-swift" + } + }, + { + "identity" : "google-ads-on-device-conversion-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", + "state" : { + "revision" : "9bfcc6cf435b2e7c5562c1900b8680c594fa9a64", + "version" : "3.6.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b", + "version" : "12.15.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", + "version" : "10.1.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "c46e5f8b7c23265f17c24ca7f9fa1b13ded7a822", + "version" : "8.1.1" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", + "version" : "1.69.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "c0ac7575d70050c2973ba2318bd5af47f8e8153a", + "version" : "5.3.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe", + "version" : "101.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", + "version" : "2.30910.1" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", + "version" : "2.4.1" + } + }, + { + "identity" : "spm", + "kind" : "remoteSourceControl", + "location" : "https://github.com/bugsee/spm", + "state" : { + "revision" : "b528ecebdfdb6e44e60b937c267fd95eb60829dd", + "version" : "5.5.9" + } + } + ], + "version" : 2 +} diff --git a/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index e3773d42..c3fedb29 100644 --- a/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/src/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/src/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings index f9b0d7c5..ff23ebc8 100644 --- a/src/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ b/src/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -2,6 +2,8 @@ + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + PreviewsEnabled diff --git a/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..20ce567b --- /dev/null +++ b/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,140 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5", + "version" : "1.2024072200.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "bb4002485ff867768dec13bf904a2ddb050bd1b1", + "version" : "11.3.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270", + "version" : "12.15.0" + } + }, + { + "identity" : "flutterfire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/flutterfire", + "state" : { + "revision" : "39bdb5b1ef392e8c31c60209e333b45e408099e8", + "version" : "4.3.0-firebase-core-swift" + } + }, + { + "identity" : "google-ads-on-device-conversion-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", + "state" : { + "revision" : "9bfcc6cf435b2e7c5562c1900b8680c594fa9a64", + "version" : "3.6.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b", + "version" : "12.15.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", + "version" : "10.1.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "c46e5f8b7c23265f17c24ca7f9fa1b13ded7a822", + "version" : "8.1.1" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", + "version" : "1.69.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "c0ac7575d70050c2973ba2318bd5af47f8e8153a", + "version" : "5.3.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe", + "version" : "101.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", + "version" : "2.30910.1" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", + "version" : "2.4.1" + } + }, + { + "identity" : "spm", + "kind" : "remoteSourceControl", + "location" : "https://github.com/bugsee/spm", + "state" : { + "revision" : "b528ecebdfdb6e44e60b937c267fd95eb60829dd", + "version" : "5.5.9" + } + } + ], + "version" : 2 +} diff --git a/src/app/macos/.gitignore b/src/app/macos/.gitignore index 7b977e71..28ba535f 100644 --- a/src/app/macos/.gitignore +++ b/src/app/macos/.gitignore @@ -1,6 +1,10 @@ # Flutter-related **/Flutter/ephemeral/ **/Flutter/GeneratedPluginRegistrant.swift + +# CocoaPods (generated at build time by Flutter for non-SPM plugins) +Podfile +Podfile.lock **/Pods/ # Xcode-related diff --git a/src/app/macos/Flutter/Flutter-Debug.xcconfig b/src/app/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2..c2efd0b6 100644 --- a/src/app/macos/Flutter/Flutter-Debug.xcconfig +++ b/src/app/macos/Flutter/Flutter-Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/src/app/macos/Flutter/Flutter-Release.xcconfig b/src/app/macos/Flutter/Flutter-Release.xcconfig index 5caa9d15..c2efd0b6 100644 --- a/src/app/macos/Flutter/Flutter-Release.xcconfig +++ b/src/app/macos/Flutter/Flutter-Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/src/app/macos/Podfile b/src/app/macos/Podfile deleted file mode 100644 index b52666a1..00000000 --- a/src/app/macos/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -platform :osx, '10.15' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/src/app/macos/Podfile.lock b/src/app/macos/Podfile.lock deleted file mode 100644 index f106b385..00000000 --- a/src/app/macos/Podfile.lock +++ /dev/null @@ -1,193 +0,0 @@ -PODS: - - Firebase/Analytics (10.24.0): - - Firebase/Core - - Firebase/Core (10.24.0): - - Firebase/CoreOnly - - FirebaseAnalytics (~> 10.24.0) - - Firebase/CoreOnly (10.24.0): - - FirebaseCore (= 10.24.0) - - Firebase/RemoteConfig (10.24.0): - - Firebase/CoreOnly - - FirebaseRemoteConfig (~> 10.24.0) - - firebase_analytics (10.10.4): - - Firebase/Analytics (= 10.24.0) - - firebase_core - - FlutterMacOS - - firebase_core (2.30.1): - - Firebase/CoreOnly (~> 10.24.0) - - FlutterMacOS - - firebase_remote_config (4.4.4): - - Firebase/CoreOnly (~> 10.24.0) - - Firebase/RemoteConfig (~> 10.24.0) - - firebase_core - - FlutterMacOS - - FirebaseABTesting (10.25.0): - - FirebaseCore (~> 10.0) - - FirebaseAnalytics (10.24.0): - - FirebaseAnalytics/AdIdSupport (= 10.24.0) - - FirebaseCore (~> 10.0) - - FirebaseInstallations (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - - GoogleUtilities/MethodSwizzler (~> 7.11) - - GoogleUtilities/Network (~> 7.11) - - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30911.0, >= 2.30908.0) - - FirebaseAnalytics/AdIdSupport (10.24.0): - - FirebaseCore (~> 10.0) - - FirebaseInstallations (~> 10.0) - - GoogleAppMeasurement (= 10.24.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - - GoogleUtilities/MethodSwizzler (~> 7.11) - - GoogleUtilities/Network (~> 7.11) - - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30911.0, >= 2.30908.0) - - FirebaseCore (10.24.0): - - FirebaseCoreInternal (~> 10.0) - - GoogleUtilities/Environment (~> 7.12) - - GoogleUtilities/Logger (~> 7.12) - - FirebaseCoreInternal (10.25.0): - - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.25.0): - - FirebaseCore (~> 10.0) - - GoogleUtilities/Environment (~> 7.8) - - GoogleUtilities/UserDefaults (~> 7.8) - - PromisesObjC (~> 2.1) - - FirebaseRemoteConfig (10.24.0): - - FirebaseABTesting (~> 10.0) - - FirebaseCore (~> 10.0) - - FirebaseInstallations (~> 10.0) - - FirebaseRemoteConfigInterop (~> 10.23) - - FirebaseSharedSwift (~> 10.0) - - GoogleUtilities/Environment (~> 7.8) - - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseRemoteConfigInterop (10.25.0) - - FirebaseSharedSwift (10.25.0) - - FlutterMacOS (1.0.0) - - GoogleAppMeasurement (10.24.0): - - GoogleAppMeasurement/AdIdSupport (= 10.24.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - - GoogleUtilities/MethodSwizzler (~> 7.11) - - GoogleUtilities/Network (~> 7.11) - - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30911.0, >= 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (10.24.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 10.24.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - - GoogleUtilities/MethodSwizzler (~> 7.11) - - GoogleUtilities/Network (~> 7.11) - - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30911.0, >= 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (10.24.0): - - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - - GoogleUtilities/MethodSwizzler (~> 7.11) - - GoogleUtilities/Network (~> 7.11) - - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30911.0, >= 2.30908.0) - - GoogleUtilities/AppDelegateSwizzler (7.13.2): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Privacy - - GoogleUtilities/Environment (7.13.2): - - GoogleUtilities/Privacy - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.13.2): - - GoogleUtilities/Environment - - GoogleUtilities/Privacy - - GoogleUtilities/MethodSwizzler (7.13.2): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/Network (7.13.2): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Privacy - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.13.2)": - - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (7.13.2) - - GoogleUtilities/Reachability (7.13.2): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (7.13.2): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - nanopb (2.30910.0): - - nanopb/decode (= 2.30910.0) - - nanopb/encode (= 2.30910.0) - - nanopb/decode (2.30910.0) - - nanopb/encode (2.30910.0) - - package_info_plus (0.0.1): - - FlutterMacOS - - PromisesObjC (2.4.0) - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - - url_launcher_macos (0.0.1): - - FlutterMacOS - -DEPENDENCIES: - - firebase_analytics (from `Flutter/ephemeral/.symlinks/plugins/firebase_analytics/macos`) - - firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`) - - firebase_remote_config (from `Flutter/ephemeral/.symlinks/plugins/firebase_remote_config/macos`) - - FlutterMacOS (from `Flutter/ephemeral`) - - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - -SPEC REPOS: - trunk: - - Firebase - - FirebaseABTesting - - FirebaseAnalytics - - FirebaseCore - - FirebaseCoreInternal - - FirebaseInstallations - - FirebaseRemoteConfig - - FirebaseRemoteConfigInterop - - FirebaseSharedSwift - - GoogleAppMeasurement - - GoogleUtilities - - nanopb - - PromisesObjC - -EXTERNAL SOURCES: - firebase_analytics: - :path: Flutter/ephemeral/.symlinks/plugins/firebase_analytics/macos - firebase_core: - :path: Flutter/ephemeral/.symlinks/plugins/firebase_core/macos - firebase_remote_config: - :path: Flutter/ephemeral/.symlinks/plugins/firebase_remote_config/macos - FlutterMacOS: - :path: Flutter/ephemeral - package_info_plus: - :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos - shared_preferences_foundation: - :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin - url_launcher_macos: - :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos - -SPEC CHECKSUMS: - Firebase: 91fefd38712feb9186ea8996af6cbdef41473442 - firebase_analytics: 18a56165340c07beeebb1b8949efdf9fe185e902 - firebase_core: 59eec96207757ff60fa76232d0b0bb749f2c4b89 - firebase_remote_config: 9dfa92d625416fe6595545af2d99d4488cae6e79 - FirebaseABTesting: e6e3c3e0e35813874f571d1b7bdae2aab319dd38 - FirebaseAnalytics: b5efc493eb0f40ec560b04a472e3e1a15d39ca13 - FirebaseCore: 11dc8a16dfb7c5e3c3f45ba0e191a33ac4f50894 - FirebaseCoreInternal: 910a81992c33715fec9263ca7381d59ab3a750b7 - FirebaseInstallations: 91950fe859846fff0fbd296180909dd273103b09 - FirebaseRemoteConfig: 95dddc50496b37eef199dadce850d5652b534b43 - FirebaseRemoteConfigInterop: b25018791b204c0d78a90e394d6c62d9b1f22da8 - FirebaseSharedSwift: 0274086954b1b2d5fd7e829eccc587044d72a4ba - FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - GoogleAppMeasurement: f3abf08495ef2cba7829f15318c373b8d9226491 - GoogleUtilities: c56430aef51a1aa57b25da78c3f8397e522c67b7 - nanopb: 438bc412db1928dac798aa6fd75726007be04262 - package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c - PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 - url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 - -PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 - -COCOAPODS: 1.16.2 diff --git a/src/app/macos/Runner.xcodeproj/project.pbxproj b/src/app/macos/Runner.xcodeproj/project.pbxproj index 33304ad6..6681d3dc 100644 --- a/src/app/macos/Runner.xcodeproj/project.pbxproj +++ b/src/app/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,6 @@ 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 */; }; - CA835C4A2EE6F4B0955D8D08 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38195990C55CBEC2D4A2F1DD /* Pods_RunnerTests.framework */; }; - ED3768F09535A6FD03C8C0B4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01E1CD136375A62B72FAE1E6 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,10 +60,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 01E1CD136375A62B72FAE1E6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 10528C8F38380936C1EDF5FC /* 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 = ""; }; - 11804CC9C428BC7C983B41F8 /* 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 = ""; }; - 2E24BB2A1E3A0FE96FA1B764 /* 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 = ""; }; 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 = ""; }; @@ -82,12 +76,8 @@ 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 = ""; }; - 38195990C55CBEC2D4A2F1DD /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - 9FD3ED7D7ECBB54615687B91 /* 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 = ""; }; - C1CCBA7C9B501615042563B6 /* 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 = ""; }; - DA00586E1B1C8CFFA9661E40 /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +85,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CA835C4A2EE6F4B0955D8D08 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +92,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ED3768F09535A6FD03C8C0B4 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,8 +124,6 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - AAD3C1FC2D2A127B1149F7C6 /* Pods */, ); sourceTree = ""; }; @@ -185,29 +171,6 @@ path = Runner; sourceTree = ""; }; - AAD3C1FC2D2A127B1149F7C6 /* Pods */ = { - isa = PBXGroup; - children = ( - DA00586E1B1C8CFFA9661E40 /* Pods-Runner.debug.xcconfig */, - 10528C8F38380936C1EDF5FC /* Pods-Runner.release.xcconfig */, - 9FD3ED7D7ECBB54615687B91 /* Pods-Runner.profile.xcconfig */, - C1CCBA7C9B501615042563B6 /* Pods-RunnerTests.debug.xcconfig */, - 11804CC9C428BC7C983B41F8 /* Pods-RunnerTests.release.xcconfig */, - 2E24BB2A1E3A0FE96FA1B764 /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 01E1CD136375A62B72FAE1E6 /* Pods_Runner.framework */, - 38195990C55CBEC2D4A2F1DD /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -215,7 +178,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - A4FA99C3AB39149101943B49 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +196,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 823F40D52A5DD01D5F44CB76 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 123CFD3F272E28FECF566857 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -323,23 +283,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 123CFD3F272E28FECF566857 /* [CP] Embed Pods Frameworks */ = { - 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"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -378,50 +321,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 823F40D52A5DD01D5F44CB76 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-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; - }; - A4FA99C3AB39149101943B49 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - 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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -473,7 +372,6 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C1CCBA7C9B501615042563B6 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +386,6 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 11804CC9C428BC7C983B41F8 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +400,6 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2E24BB2A1E3A0FE96FA1B764 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/src/app/macos/Runner.xcworkspace/contents.xcworkspacedata b/src/app/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14..1d526a16 100644 --- a/src/app/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/src/app/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - From f16848a35e35c0f948375254a4f3c43470ce4201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Mon, 29 Jun 2026 17:02:44 -0400 Subject: [PATCH 2/8] refactor: replace alice with talker --- doc/Logging.md | 6 +- src/app/android/gradle.properties | 4 + src/app/lib/access/logger/alice_output.dart | 47 ++-- src/app/lib/access/logger/talker_output.dart | 34 +++ .../lib/business/logger/logger_manager.dart | 14 +- src/app/lib/main.dart | 19 +- .../diagnostic/logger_diagnostic_widget.dart | 10 +- src/app/pubspec.lock | 212 +++++------------- src/app/pubspec.yaml | 4 +- 9 files changed, 134 insertions(+), 216 deletions(-) create mode 100644 src/app/lib/access/logger/talker_output.dart diff --git a/doc/Logging.md b/doc/Logging.md index e3e72b90..a8dd63e5 100644 --- a/doc/Logging.md +++ b/doc/Logging.md @@ -43,10 +43,10 @@ Multiple logging features can be tested from the diagnostics screen. This is con - You can see if a log file exists. - You can share the logs / app summary by email, etc. -## Alice +## Talker -We use [alice](https://pub.dev/packages/alice) to track logs in-app without debugger console. -It is also configured to intercept HTTP requests made within the app. +We use [talker_flutter](https://pub.dev/packages/talker_flutter) to track logs in-app without debugger console. +It is also configured to intercept HTTP requests made within the app via [talker_dio_logger](https://pub.dev/packages/talker_dio_logger). It's accessible via the "OPEN CONSOLE" in the `LoggerDiagnosticWidget`. diff --git a/src/app/android/gradle.properties b/src/app/android/gradle.properties index 73c3168e..5cfd626a 100644 --- a/src/app/android/gradle.properties +++ b/src/app/android/gradle.properties @@ -4,3 +4,7 @@ android.enableJetifier=true android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false +# This builtInKotlin flag was added automatically by Flutter migrator +android.builtInKotlin=false +# This newDsl flag was added automatically by Flutter migrator +android.newDsl=false diff --git a/src/app/lib/access/logger/alice_output.dart b/src/app/lib/access/logger/alice_output.dart index a32e2963..5919d26d 100644 --- a/src/app/lib/access/logger/alice_output.dart +++ b/src/app/lib/access/logger/alice_output.dart @@ -1,43 +1,34 @@ -import 'package:alice/alice.dart'; -import 'package:flutter/foundation.dart'; import 'package:logger/logger.dart'; +import 'package:talker_flutter/talker_flutter.dart'; -/// Custom implementation of [LogOutput] to add [Alice] logs writting support. -final class AliceOutput extends LogOutput { - final Alice _alice; +/// Custom implementation of [LogOutput] to add [Talker] logs writing support. +final class TalkerOutput extends LogOutput { + final Talker _talker; - AliceOutput({required Alice alice}) - : _alice = alice, + TalkerOutput({required Talker talker}) + : _talker = talker, super(); - DiagnosticLevel _mapLogLevel(Level level) { - switch (level) { + @override + void output(OutputEvent event) { + final message = event.origin.message; + final error = event.origin.error; + final stackTrace = event.origin.stackTrace; + + switch (event.origin.level) { case Level.trace: - return DiagnosticLevel.debug; case Level.debug: - return DiagnosticLevel.debug; + _talker.debug(message, error, stackTrace); case Level.info: - return DiagnosticLevel.info; + _talker.info(message, error, stackTrace); case Level.warning: - return DiagnosticLevel.warning; + _talker.warning(message, error, stackTrace); case Level.error: - return DiagnosticLevel.error; + _talker.error(message, error, stackTrace); case Level.fatal: - return DiagnosticLevel.error; + _talker.critical(message, error, stackTrace); default: - return DiagnosticLevel.debug; + _talker.log(message, error: error, stackTrace: stackTrace); } } - - @override - void output(OutputEvent event) { - _alice.addLog( - AliceLog( - level: _mapLogLevel(event.origin.level), - message: event.origin.message, - error: event.origin.error, - stackTrace: event.origin.stackTrace, - ), - ); - } } diff --git a/src/app/lib/access/logger/talker_output.dart b/src/app/lib/access/logger/talker_output.dart new file mode 100644 index 00000000..ce5b46fa --- /dev/null +++ b/src/app/lib/access/logger/talker_output.dart @@ -0,0 +1,34 @@ +import 'package:logger/logger.dart'; +import 'package:talker_flutter/talker_flutter.dart'; + +/// Custom implementation of [LogOutput] to add [Talker] logs writing support. +final class TalkerOutput extends LogOutput { + final Talker _talker; + + TalkerOutput({required Talker talker}) + : _talker = talker, + super(); + + @override + void output(OutputEvent event) { + final message = event.origin.message; + final error = event.origin.error; + final stackTrace = event.origin.stackTrace; + + switch (event.origin.level) { + case Level.trace: + case Level.debug: + _talker.debug(message, error, stackTrace); + case Level.info: + _talker.info(message, error, stackTrace); + case Level.warning: + _talker.warning(message, error, stackTrace); + case Level.error: + _talker.error(message, error, stackTrace); + case Level.fatal: + _talker.critical(message, error, stackTrace); + default: + _talker.log(message, exception: error, stackTrace: stackTrace); + } + } +} diff --git a/src/app/lib/business/logger/logger_manager.dart b/src/app/lib/business/logger/logger_manager.dart index 7bdbebe1..254f703f 100644 --- a/src/app/lib/business/logger/logger_manager.dart +++ b/src/app/lib/business/logger/logger_manager.dart @@ -1,7 +1,6 @@ import 'dart:io'; -import 'package:alice/alice.dart'; -import 'package:app/access/logger/alice_output.dart'; +import 'package:app/access/logger/talker_output.dart'; import 'package:app/access/logger/logger_repository.dart'; import 'package:app/access/logger/custom_console_output.dart'; import 'package:app/access/logger/custom_file_output.dart'; @@ -10,12 +9,13 @@ import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:logger/logger.dart'; import 'package:path_provider/path_provider.dart'; import 'package:share_plus/share_plus.dart'; +import 'package:talker_flutter/talker_flutter.dart'; /// Service that manages everything related to logging. abstract interface class LoggerManager { factory LoggerManager({ required LoggerRepository loggerRepository, - required Alice alice, + required Talker talker, }) = _LoggerManager; /// Gets whether console logging is enabled. @@ -48,7 +48,7 @@ abstract interface class LoggerManager { /// Implementation of [LoggerManager]. final class _LoggerManager implements LoggerManager { final LoggerRepository _loggerRepository; - final Alice _alice; + final Talker _talker; late Logger _logger; @@ -70,9 +70,9 @@ final class _LoggerManager implements LoggerManager { _LoggerManager({ required LoggerRepository loggerRepository, - required Alice alice, + required Talker talker, }) : _loggerRepository = loggerRepository, - _alice = alice; + _talker = talker; @override Future createLogInstance() async { @@ -86,7 +86,7 @@ final class _LoggerManager implements LoggerManager { bool.parse(dotenv.env["IS_CONSOLE_LOGGING_ENABLED"] ?? 'false'); if (_initialIsConsoleLoggingEnabled) { loggerOutputs.add(CustomConsoleOutput()); - loggerOutputs.add(AliceOutput(alice: _alice)); + loggerOutputs.add(TalkerOutput(talker: _talker)); } isConsoleLoggingEnabled = _initialIsConsoleLoggingEnabled; diff --git a/src/app/lib/main.dart b/src/app/lib/main.dart index ec259f32..71a46e35 100644 --- a/src/app/lib/main.dart +++ b/src/app/lib/main.dart @@ -1,8 +1,5 @@ import 'dart:io'; -import 'package:alice/alice.dart'; -import 'package:alice/model/alice_configuration.dart'; -import 'package:alice_dio/alice_dio_adapter.dart'; import 'package:app/access/bugsee/bugsee_repository.dart'; import 'package:app/access/dad_jokes/dad_jokes_mocked_repository.dart'; import 'package:app/access/dad_jokes/dad_jokes_repository.dart'; @@ -34,6 +31,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:get_it/get_it.dart'; import 'package:logger/logger.dart'; +import 'package:talker_dio_logger/talker_dio_logger.dart'; +import 'package:talker_flutter/talker_flutter.dart'; late Logger _logger; @@ -104,15 +103,12 @@ Future _registerAndLoadLoggers() async { // Register logging services in the IoC. GetIt.I.registerSingleton(LoggerRepository()); GetIt.I.registerSingleton( - Alice(configuration: AliceConfiguration( - showNotification: false, - navigatorKey: rootNavigatorKey, - )), + Talker(), ); GetIt.I.registerSingleton( LoggerManager( loggerRepository: GetIt.I.get(), - alice: GetIt.I.get(), + talker: GetIt.I.get(), ), ); @@ -138,9 +134,10 @@ Future _registerBugseeManager() async { void _registerHttpClient() { final dio = Dio(); - final AliceDioAdapter aliceDioAdapter = AliceDioAdapter(); - GetIt.I.get().addAdapter(aliceDioAdapter); - dio.interceptors.add(aliceDioAdapter); + final talkerDioLogger = TalkerDioLogger( + talker: GetIt.I.get(), + ); + dio.interceptors.add(talkerDioLogger); GetIt.I.registerSingleton(dio); } diff --git a/src/app/lib/presentation/diagnostic/logger_diagnostic_widget.dart b/src/app/lib/presentation/diagnostic/logger_diagnostic_widget.dart index 6ebbd4cd..b70602fc 100644 --- a/src/app/lib/presentation/diagnostic/logger_diagnostic_widget.dart +++ b/src/app/lib/presentation/diagnostic/logger_diagnostic_widget.dart @@ -1,16 +1,16 @@ -import 'package:alice/alice.dart'; import 'package:app/business/logger/logger_manager.dart'; import 'package:app/presentation/diagnostic/diagnostic_button.dart'; import 'package:app/presentation/diagnostic/logging_configuration_widget.dart'; import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; import 'package:logger/logger.dart'; +import 'package:talker_flutter/talker_flutter.dart'; /// A widget that provides tools to devs to configure and test logging in the app. final class LoggerDiagnosticWidget extends StatelessWidget { final Logger _logger = GetIt.I.get(); final LoggerManager _loggerManager = GetIt.I.get(); - final Alice _alice = GetIt.I.get(); + final Talker _talker = GetIt.I.get(); LoggerDiagnosticWidget({super.key}); @@ -111,7 +111,11 @@ final class LoggerDiagnosticWidget extends StatelessWidget { ), DiagnosticButton( label: 'OPEN CONSOLE', - onPressed: () => _alice.showInspector(), + onPressed: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => TalkerScreen(talker: _talker), + ), + ), ), ], ); diff --git a/src/app/pubspec.lock b/src/app/pubspec.lock index 73590a24..70bdafa4 100644 --- a/src/app/pubspec.lock +++ b/src/app/pubspec.lock @@ -17,22 +17,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.65" - alice: - dependency: "direct main" - description: - name: alice - sha256: e396be8458b312edd0c7c8e726f2ded8afc9a10deb7fcddce1529757be72896e - url: "https://pub.dev" - source: hosted - version: "1.0.0" - alice_dio: - dependency: "direct main" - description: - name: alice_dio - sha256: "8ffae0dbf5a7b98e47597372dc5e7d8b9aa3de64576db4b7d2e108ff68cd0c83" - url: "https://pub.dev" - source: hosted - version: "1.0.7" analyzer: dependency: transitive description: @@ -141,10 +125,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" checked_yaml: dependency: transitive description: @@ -265,14 +249,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.3" - dbus: - dependency: transitive - description: - name: dbus - sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" - url: "https://pub.dev" - source: hosted - version: "0.7.11" dio: dependency: "direct main" description: @@ -427,38 +403,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.0" - flutter_local_notifications: - dependency: transitive - description: - name: flutter_local_notifications - sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875" - url: "https://pub.dev" - source: hosted - version: "19.5.0" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: e3c277b2daab8e36ac5a6820536668d07e83851aeeb79c446e525a70710770a5 - url: "https://pub.dev" - source: hosted - version: "6.0.0" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: "277d25d960c15674ce78ca97f57d0bae2ee401c844b6ac80fcd972a9c99d09fe" - url: "https://pub.dev" - source: hosted - version: "9.1.0" - flutter_local_notifications_windows: - dependency: transitive - description: - name: flutter_local_notifications_windows - sha256: "8d658f0d367c48bd420e7cf2d26655e2d1130147bca1eea917e576ca76668aaf" - url: "https://pub.dev" - source: hosted - version: "1.0.3" flutter_localizations: dependency: "direct main" description: flutter @@ -527,6 +471,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" + group_button: + dependency: transitive + description: + name: group_button + sha256: "0610fcf28ed122bfb4b410fce161a390f7f2531d55d1d65c5375982001415940" + url: "https://pub.dev" + source: hosted + version: "5.3.4" hotreloader: dependency: transitive description: @@ -664,26 +616,26 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.19" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.0" mime: dependency: transitive description: @@ -707,14 +659,6 @@ packages: relative: true source: path version: "1.0.0" - open_filex: - dependency: transitive - description: - name: open_filex - sha256: "9976da61b6a72302cf3b1efbce259200cd40232643a467aac7370addf94d6900" - url: "https://pub.dev" - source: hosted - version: "4.7.0" package_config: dependency: transitive description: @@ -803,62 +747,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" - permission_handler: - dependency: transitive - description: - name: permission_handler - sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 - url: "https://pub.dev" - source: hosted - version: "12.0.1" - permission_handler_android: - dependency: transitive - description: - name: permission_handler_android - sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" - url: "https://pub.dev" - source: hosted - version: "13.0.1" - permission_handler_apple: - dependency: transitive - description: - name: permission_handler_apple - sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 - url: "https://pub.dev" - source: hosted - version: "9.4.7" - permission_handler_html: - dependency: transitive - description: - name: permission_handler_html - sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" - url: "https://pub.dev" - source: hosted - version: "0.1.3+5" - permission_handler_platform_interface: - dependency: transitive - description: - name: permission_handler_platform_interface - sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 - url: "https://pub.dev" - source: hosted - version: "4.3.0" - permission_handler_windows: - dependency: transitive - description: - name: permission_handler_windows - sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" - url: "https://pub.dev" - source: hosted - version: "0.2.1" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" - url: "https://pub.dev" - source: hosted - version: "7.0.1" platform: dependency: transitive description: @@ -939,22 +827,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.28.0" - sensors_plus: - dependency: transitive - description: - name: sensors_plus - sha256: "89e2bfc3d883743539ce5774a2b93df61effde40ff958ecad78cd66b1a8b8d52" - url: "https://pub.dev" - source: hosted - version: "6.1.2" - sensors_plus_platform_interface: - dependency: transitive - description: - name: sensors_plus_platform_interface - sha256: "58815d2f5e46c0c41c40fb39375d3f127306f7742efe3b891c0b1c87e2b5cd5d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" share_plus: dependency: "direct main" description: @@ -1112,6 +984,38 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" + talker: + dependency: transitive + description: + name: talker + sha256: f1a14d623f1d1bec42bb3bb77674eb766ffe8d26e5f79af652d85cb097c3e757 + url: "https://pub.dev" + source: hosted + version: "5.1.17" + talker_dio_logger: + dependency: "direct main" + description: + name: talker_dio_logger + sha256: "6dba5c29afb566c6efe1a2c1b676488ea7c727b486bda0654d965a1cfad6ea9b" + url: "https://pub.dev" + source: hosted + version: "5.1.17" + talker_flutter: + dependency: "direct main" + description: + name: talker_flutter + sha256: d249fa16936a08fe5c4fb9e2b9b122fdcbaef6be9c4dcf61e448d0b76f3179f1 + url: "https://pub.dev" + source: hosted + version: "5.0.0" + talker_logger: + dependency: transitive + description: + name: talker_logger + sha256: "459205c3e571f97ecc6be6e1b1b7e6b97b853e78ea458894650be407596e3216" + url: "https://pub.dev" + source: hosted + version: "5.1.17" term_glyph: dependency: transitive description: @@ -1124,18 +1028,10 @@ packages: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" url: "https://pub.dev" source: hosted - version: "0.7.7" - timezone: - dependency: transitive - description: - name: timezone - sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1 - url: "https://pub.dev" - source: hosted - version: "0.10.1" + version: "0.7.11" typed_data: dependency: transitive description: @@ -1288,14 +1184,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - xml: - dependency: transitive - description: - name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" - url: "https://pub.dev" - source: hosted - version: "6.6.1" xxh3: dependency: transitive description: diff --git a/src/app/pubspec.yaml b/src/app/pubspec.yaml index 6c62de9e..25b5216e 100644 --- a/src/app/pubspec.yaml +++ b/src/app/pubspec.yaml @@ -26,12 +26,12 @@ dependencies: logger: ^2.2.0 path_provider: ^2.1.3 share_plus: ^11.1.0 - alice: ^1.0.0 - alice_dio: ^1.0.7 flutter_localizations: sdk: flutter intl: any bugsee_flutter: ^8.6.9 + talker_flutter: ^5.0.0 + talker_dio_logger: ^5.1.17 dev_dependencies: flutter_test: From cec48ab5bcdf04acf20738749834f653f1ab8268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Tue, 30 Jun 2026 10:57:38 -0400 Subject: [PATCH 3/8] fix: delete alice_output file --- src/app/lib/access/logger/alice_output.dart | 34 --------------------- 1 file changed, 34 deletions(-) delete mode 100644 src/app/lib/access/logger/alice_output.dart diff --git a/src/app/lib/access/logger/alice_output.dart b/src/app/lib/access/logger/alice_output.dart deleted file mode 100644 index 5919d26d..00000000 --- a/src/app/lib/access/logger/alice_output.dart +++ /dev/null @@ -1,34 +0,0 @@ -import 'package:logger/logger.dart'; -import 'package:talker_flutter/talker_flutter.dart'; - -/// Custom implementation of [LogOutput] to add [Talker] logs writing support. -final class TalkerOutput extends LogOutput { - final Talker _talker; - - TalkerOutput({required Talker talker}) - : _talker = talker, - super(); - - @override - void output(OutputEvent event) { - final message = event.origin.message; - final error = event.origin.error; - final stackTrace = event.origin.stackTrace; - - switch (event.origin.level) { - case Level.trace: - case Level.debug: - _talker.debug(message, error, stackTrace); - case Level.info: - _talker.info(message, error, stackTrace); - case Level.warning: - _talker.warning(message, error, stackTrace); - case Level.error: - _talker.error(message, error, stackTrace); - case Level.fatal: - _talker.critical(message, error, stackTrace); - default: - _talker.log(message, error: error, stackTrace: stackTrace); - } - } -} From 6bc04c25c49e4ad23243ac211032e36cc06cd1c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Tue, 30 Jun 2026 14:47:32 -0400 Subject: [PATCH 4/8] fix: change bugsee version --- src/app/pubspec.lock | 4 ++-- src/app/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/pubspec.lock b/src/app/pubspec.lock index 70bdafa4..dd46f1f6 100644 --- a/src/app/pubspec.lock +++ b/src/app/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: bugsee_flutter - sha256: f79c79be11bcfef5094e0ae7a949e5601dcf35cd43596604ee2b718a59f3569b + sha256: "2ebcc7108c3fd1bb50e498a7483aab48cb37e07b66b465a9a1737815d22f4aeb" url: "https://pub.dev" source: hosted - version: "8.6.9" + version: "9.0.3" build: dependency: transitive description: diff --git a/src/app/pubspec.yaml b/src/app/pubspec.yaml index 25b5216e..9e1a85a1 100644 --- a/src/app/pubspec.yaml +++ b/src/app/pubspec.yaml @@ -29,7 +29,7 @@ dependencies: flutter_localizations: sdk: flutter intl: any - bugsee_flutter: ^8.6.9 + bugsee_flutter: ^9.0.3 talker_flutter: ^5.0.0 talker_dio_logger: ^5.1.17 From 7b68c72487373731a3d1a18cc8d10fbc13c78b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Tue, 30 Jun 2026 14:48:09 -0400 Subject: [PATCH 5/8] fix: revert gradle and gitignore changes --- src/app/android/gradle.properties | 4 ---- src/app/ios/.gitignore | 1 + .../xcshareddata/swiftpm/Package.resolved | 4 ++-- src/app/lib/access/logger/talker_output.dart | 6 ++++++ 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/app/android/gradle.properties b/src/app/android/gradle.properties index 5cfd626a..73c3168e 100644 --- a/src/app/android/gradle.properties +++ b/src/app/android/gradle.properties @@ -4,7 +4,3 @@ android.enableJetifier=true android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false -# This builtInKotlin flag was added automatically by Flutter migrator -android.builtInKotlin=false -# This newDsl flag was added automatically by Flutter migrator -android.newDsl=false diff --git a/src/app/ios/.gitignore b/src/app/ios/.gitignore index 9b83be0d..cd05c8b9 100644 --- a/src/app/ios/.gitignore +++ b/src/app/ios/.gitignore @@ -16,6 +16,7 @@ xcuserdata **/.generated/ Flutter/App.framework Flutter/Flutter.framework +Flutter/Flutter.podspec Flutter/Generated.xcconfig Flutter/ephemeral/ Flutter/app.flx diff --git a/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index 20ce567b..70f20418 100644 --- a/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -131,8 +131,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/bugsee/spm", "state" : { - "revision" : "b528ecebdfdb6e44e60b937c267fd95eb60829dd", - "version" : "5.5.9" + "revision" : "12e11cd247bde697428f3b17e6473cb585628ea2", + "version" : "6.2.0" } } ], diff --git a/src/app/lib/access/logger/talker_output.dart b/src/app/lib/access/logger/talker_output.dart index ce5b46fa..3546200f 100644 --- a/src/app/lib/access/logger/talker_output.dart +++ b/src/app/lib/access/logger/talker_output.dart @@ -19,16 +19,22 @@ final class TalkerOutput extends LogOutput { case Level.trace: case Level.debug: _talker.debug(message, error, stackTrace); + return; case Level.info: _talker.info(message, error, stackTrace); + return; case Level.warning: _talker.warning(message, error, stackTrace); + return; case Level.error: _talker.error(message, error, stackTrace); + return; case Level.fatal: _talker.critical(message, error, stackTrace); + return; default: _talker.log(message, exception: error, stackTrace: stackTrace); + return; } } } From 2a545000066f05a4b80bc73475445ea75a84614e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Tue, 30 Jun 2026 15:59:07 -0400 Subject: [PATCH 6/8] fix: remove Package --- .../xcshareddata/swiftpm/Package.resolved | 140 ------------------ .../xcshareddata/xcschemes/Runner.xcscheme | 18 --- .../xcshareddata/swiftpm/Package.resolved | 140 ------------------ 3 files changed, 298 deletions(-) delete mode 100644 src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 src/app/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 20ce567b..00000000 --- a/src/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,140 +0,0 @@ -{ - "pins" : [ - { - "identity" : "abseil-cpp-binary", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/abseil-cpp-binary.git", - "state" : { - "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5", - "version" : "1.2024072200.0" - } - }, - { - "identity" : "app-check", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/app-check.git", - "state" : { - "revision" : "bb4002485ff867768dec13bf904a2ddb050bd1b1", - "version" : "11.3.0" - } - }, - { - "identity" : "firebase-ios-sdk", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/firebase-ios-sdk", - "state" : { - "revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270", - "version" : "12.15.0" - } - }, - { - "identity" : "flutterfire", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/flutterfire", - "state" : { - "revision" : "39bdb5b1ef392e8c31c60209e333b45e408099e8", - "version" : "4.3.0-firebase-core-swift" - } - }, - { - "identity" : "google-ads-on-device-conversion-ios-sdk", - "kind" : "remoteSourceControl", - "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", - "state" : { - "revision" : "9bfcc6cf435b2e7c5562c1900b8680c594fa9a64", - "version" : "3.6.0" - } - }, - { - "identity" : "googleappmeasurement", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleAppMeasurement.git", - "state" : { - "revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b", - "version" : "12.15.0" - } - }, - { - "identity" : "googledatatransport", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleDataTransport.git", - "state" : { - "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", - "version" : "10.1.0" - } - }, - { - "identity" : "googleutilities", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleUtilities.git", - "state" : { - "revision" : "c46e5f8b7c23265f17c24ca7f9fa1b13ded7a822", - "version" : "8.1.1" - } - }, - { - "identity" : "grpc-binary", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/grpc-binary.git", - "state" : { - "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", - "version" : "1.69.1" - } - }, - { - "identity" : "gtm-session-fetcher", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/gtm-session-fetcher.git", - "state" : { - "revision" : "c0ac7575d70050c2973ba2318bd5af47f8e8153a", - "version" : "5.3.0" - } - }, - { - "identity" : "interop-ios-for-google-sdks", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/interop-ios-for-google-sdks.git", - "state" : { - "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe", - "version" : "101.0.0" - } - }, - { - "identity" : "leveldb", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/leveldb.git", - "state" : { - "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", - "version" : "1.22.5" - } - }, - { - "identity" : "nanopb", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/nanopb.git", - "state" : { - "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", - "version" : "2.30910.1" - } - }, - { - "identity" : "promises", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/promises.git", - "state" : { - "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", - "version" : "2.4.1" - } - }, - { - "identity" : "spm", - "kind" : "remoteSourceControl", - "location" : "https://github.com/bugsee/spm", - "state" : { - "revision" : "b528ecebdfdb6e44e60b937c267fd95eb60829dd", - "version" : "5.5.9" - } - } - ], - "version" : 2 -} diff --git a/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c3fedb29..e3773d42 100644 --- a/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/src/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,24 +5,6 @@ - - - - - - - - - - Date: Tue, 30 Jun 2026 15:59:52 -0400 Subject: [PATCH 7/8] docs: add version 0.26.3 --- src/cli/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cli/CHANGELOG.md b/src/cli/CHANGELOG.md index 2691f3ad..f89a880d 100644 --- a/src/cli/CHANGELOG.md +++ b/src/cli/CHANGELOG.md @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) Prefix your items with `(Template)` if the change is about the template and not the resulting application. +## 0.26.3 +- (Template) Migrate iOS from CocoaPods to Swift Package Manager. +- (Template) Replace Alice with Talker for HTTP logging. +- Update Bugsee to 9.0.3. + ## 0.26.2 - Fix issue with dispose in VM. - Fix errors in documentation. From 930c49652ecaea8bcaf0b497b13e99fad321b915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mie=20H=C3=89LIAS?= Date: Mon, 6 Jul 2026 14:11:37 -0400 Subject: [PATCH 8/8] docs: remove (Template) prefixes from CHANGELOG --- src/cli/CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cli/CHANGELOG.md b/src/cli/CHANGELOG.md index f89a880d..21b93ca9 100644 --- a/src/cli/CHANGELOG.md +++ b/src/cli/CHANGELOG.md @@ -6,8 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) Prefix your items with `(Template)` if the change is about the template and not the resulting application. ## 0.26.3 -- (Template) Migrate iOS from CocoaPods to Swift Package Manager. -- (Template) Replace Alice with Talker for HTTP logging. +- Migrate iOS from CocoaPods to Swift Package Manager. +- Replace Alice with Talker for HTTP logging. - Update Bugsee to 9.0.3. ## 0.26.2