From c240dd67819837f22d3ef7eb0917766ca3798733 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 09:14:58 +0200 Subject: [PATCH 01/10] chore(apple): remove CocoaPods from the example and smoke test apps Every example except firebase_auth and firebase_crashlytics, and the tests/ smoke app, now builds with Swift Package Manager only: - run `pod deintegrate`, delete the Podfile and drop the Pods workspace ref, xcconfig includes and stale Pods header search paths - let `flutter build --config-only` add the Swift Package Manager integration (and Flutter's other Xcode project migrations), so local builds no longer rewrite the projects - pin `enable-swift-package-manager: true` in each pubspec - drop the CocoaPods-only Crashlytics upload-symbols phase from tests/ - firebase_data_connect: drop the SPM opt-out and the unused google_sign_in dependency that could not resolve under SPM firebase_auth (google_sign_in) and firebase_crashlytics (PODS_ROOT build scripts) stay on CocoaPods until they can resolve under SPM. --- .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../cloud_firestore/example/ios/Podfile | 73 --------- .../ios/Runner.xcodeproj/project.pbxproj | 109 ++----------- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../cloud_firestore/example/macos/Podfile | 69 --------- .../macos/Runner.xcodeproj/project.pbxproj | 109 ++----------- .../contents.xcworkspacedata | 3 - .../cloud_firestore/example/pubspec.yaml | 3 + .../ios/Flutter/Debug.xcconfig | 1 - .../ios/Flutter/Release.xcconfig | 1 - .../pipeline_example/ios/Podfile | 52 ------- .../ios/Runner.xcodeproj/project.pbxproj | 32 ++-- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../pipeline_example/macos/Podfile | 51 ------- .../macos/Runner.xcodeproj/project.pbxproj | 130 ++++------------ .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - .../pipeline_example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../cloud_functions/example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 111 ++++---------- .../xcshareddata/xcschemes/Runner.xcscheme | 23 ++- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../cloud_functions/example/macos/Podfile | 52 ------- .../macos/Runner.xcodeproj/project.pbxproj | 96 ++++-------- .../xcshareddata/xcschemes/Runner.xcscheme | 21 ++- .../contents.xcworkspacedata | 3 - .../example/macos/Runner/AppDelegate.swift | 6 +- .../cloud_functions/example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_ai/example/ios/Podfile | 52 ------- .../ios/Runner.xcodeproj/project.pbxproj | 8 - .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_ai/example/macos/Podfile | 51 ------- .../macos/Runner.xcodeproj/project.pbxproj | 8 - .../contents.xcworkspacedata | 3 - .../firebase_ai/example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_analytics/example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 49 +----- .../xcshareddata/xcschemes/Runner.xcscheme | 3 + .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_analytics/example/macos/Podfile | 49 ------ .../macos/Runner.xcodeproj/project.pbxproj | 55 +------ .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../contents.xcworkspacedata | 3 - .../firebase_analytics/example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_app_check/example/ios/Podfile | 54 ------- .../ios/Runner.xcodeproj/project.pbxproj | 12 +- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_app_check/example/macos/Podfile | 53 ------- .../macos/Runner.xcodeproj/project.pbxproj | 14 +- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../contents.xcworkspacedata | 3 - .../firebase_app_check/example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../example/ios/Podfile | 50 ------ .../ios/Runner.xcodeproj/project.pbxproj | 55 +------ .../xcshareddata/xcschemes/Runner.xcscheme | 3 + .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../example/macos/Podfile | 49 ------ .../macos/Runner.xcodeproj/project.pbxproj | 98 ++++-------- .../xcshareddata/xcschemes/Runner.xcscheme | 21 ++- .../contents.xcworkspacedata | 3 - .../example/macos/Runner/AppDelegate.swift | 6 +- .../example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_core/example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 78 +--------- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_core/example/macos/Podfile | 94 ------------ .../macos/Runner.xcodeproj/project.pbxproj | 85 +---------- .../contents.xcworkspacedata | 3 - .../firebase_core/example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_data_connect/example/ios/Podfile | 53 ------- .../ios/Runner.xcodeproj/project.pbxproj | 143 +++-------------- .../xcshareddata/xcschemes/Runner.xcscheme | 21 +++ .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../example/macos/Podfile | 52 ------- .../macos/Runner.xcodeproj/project.pbxproj | 144 +++--------------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - .../example/pubspec.yaml | 4 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_database/example/ios/Podfile | 62 -------- .../ios/Runner.xcodeproj/project.pbxproj | 110 +------------ .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_database/example/macos/Podfile | 127 --------------- .../macos/Runner.xcodeproj/project.pbxproj | 91 ++++------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - .../firebase_database/example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../example/ios/Podfile | 49 ------ .../ios/Runner.xcodeproj/project.pbxproj | 130 ++++++---------- .../xcshareddata/xcschemes/Runner.xcscheme | 23 ++- .../contents.xcworkspacedata | 3 - .../example/ios/Runner/Info.plist | 2 + .../example/macos/Podfile | 49 ------ .../example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_messaging/example/ios/Podfile | 49 ------ .../ios/Runner.xcodeproj/project.pbxproj | 97 +++--------- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_messaging/example/macos/Podfile | 49 ------ .../macos/Runner.xcodeproj/project.pbxproj | 78 +--------- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../contents.xcworkspacedata | 3 - .../firebase_messaging/example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_performance/example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 29 +++- .../firebase_performance/example/pubspec.yaml | 3 + .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 72 ++------- .../xcshareddata/xcschemes/Runner.xcscheme | 3 + .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../example/macos/Podfile | 52 ------- .../macos/Runner.xcodeproj/project.pbxproj | 18 +-- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../contents.xcworkspacedata | 3 - .../example/pubspec.yaml | 3 + .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_storage/example/ios/Podfile | 48 ------ .../ios/Runner.xcodeproj/project.pbxproj | 71 +-------- .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_storage/example/macos/Podfile | 52 ------- .../macos/Runner.xcodeproj/project.pbxproj | 72 +-------- .../contents.xcworkspacedata | 3 - .../firebase_storage/example/pubspec.yaml | 3 + tests/ios/Flutter/AppFrameworkInfo.plist | 2 - tests/ios/Flutter/Debug.xcconfig | 1 - tests/ios/Flutter/Release.xcconfig | 1 - tests/ios/Podfile | 71 --------- tests/ios/Runner.xcodeproj/project.pbxproj | 128 +++------------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - tests/macos/Flutter/Flutter-Debug.xcconfig | 1 - tests/macos/Flutter/Flutter-Release.xcconfig | 1 - tests/macos/Podfile | 70 --------- tests/macos/Runner.xcodeproj/project.pbxproj | 112 +++----------- .../xcshareddata/xcschemes/Runner.xcscheme | 21 ++- .../contents.xcworkspacedata | 3 - tests/macos/Runner/AppDelegate.swift | 6 +- tests/pubspec.yaml | 3 + 195 files changed, 721 insertions(+), 3842 deletions(-) delete mode 100644 packages/cloud_firestore/cloud_firestore/example/ios/Podfile delete mode 100644 packages/cloud_firestore/cloud_firestore/example/macos/Podfile delete mode 100644 packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Podfile delete mode 100644 packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Podfile delete mode 100644 packages/cloud_functions/cloud_functions/example/ios/Podfile delete mode 100644 packages/cloud_functions/cloud_functions/example/macos/Podfile delete mode 100644 packages/firebase_ai/firebase_ai/example/ios/Podfile delete mode 100644 packages/firebase_ai/firebase_ai/example/macos/Podfile delete mode 100644 packages/firebase_analytics/firebase_analytics/example/ios/Podfile delete mode 100644 packages/firebase_analytics/firebase_analytics/example/macos/Podfile delete mode 100644 packages/firebase_app_check/firebase_app_check/example/ios/Podfile delete mode 100644 packages/firebase_app_check/firebase_app_check/example/macos/Podfile delete mode 100644 packages/firebase_app_installations/firebase_app_installations/example/ios/Podfile delete mode 100644 packages/firebase_app_installations/firebase_app_installations/example/macos/Podfile delete mode 100644 packages/firebase_core/firebase_core/example/ios/Podfile delete mode 100644 packages/firebase_core/firebase_core/example/macos/Podfile delete mode 100644 packages/firebase_data_connect/firebase_data_connect/example/ios/Podfile delete mode 100644 packages/firebase_data_connect/firebase_data_connect/example/macos/Podfile delete mode 100644 packages/firebase_database/firebase_database/example/ios/Podfile delete mode 100644 packages/firebase_database/firebase_database/example/macos/Podfile delete mode 100644 packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Podfile delete mode 100644 packages/firebase_in_app_messaging/firebase_in_app_messaging/example/macos/Podfile delete mode 100644 packages/firebase_messaging/firebase_messaging/example/ios/Podfile delete mode 100644 packages/firebase_messaging/firebase_messaging/example/macos/Podfile delete mode 100644 packages/firebase_performance/firebase_performance/example/ios/Podfile delete mode 100644 packages/firebase_remote_config/firebase_remote_config/example/ios/Podfile delete mode 100644 packages/firebase_remote_config/firebase_remote_config/example/macos/Podfile delete mode 100644 packages/firebase_storage/firebase_storage/example/ios/Podfile delete mode 100644 packages/firebase_storage/firebase_storage/example/macos/Podfile delete mode 100644 tests/ios/Podfile delete mode 100644 tests/macos/Podfile diff --git a/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Debug.xcconfig b/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Debug.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Release.xcconfig b/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Release.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_firestore/cloud_firestore/example/ios/Podfile b/packages/cloud_firestore/cloud_firestore/example/ios/Podfile deleted file mode 100644 index 1f2cd8a14d3f..000000000000 --- a/packages/cloud_firestore/cloud_firestore/example/ios/Podfile +++ /dev/null @@ -1,73 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.0' - -require 'yaml' - -pubspec = YAML.load_file(File.join('..', File.join('..', 'pubspec.yaml'))) - -# 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__)) - - if defined?($FirebaseSDKVersion) - Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version for FirebaseFirestore framework: '#{$FirebaseSDKVersion}'" - firebase_sdk_version = $FirebaseSDKVersion - else - firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))))), 'firebase_core/firebase_core/ios/firebase_sdk_version.rb') - if File.exist?(firebase_core_script) - require firebase_core_script - firebase_sdk_version = firebase_sdk_version! - Pod::UI.puts "#{pubspec['name']}: Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core for FirebaseFirestore framework'" - else - raise "Error - unable to locate firebase_ios_sdk.rb script in firebase_core, and no FirebaseSDKVersion specified" - end - end - - pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => "#{firebase_sdk_version}" -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' - end - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcodeproj/project.pbxproj b/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcodeproj/project.pbxproj index 9ded141d1e15..17d159d2237b 100644 --- a/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcodeproj/project.pbxproj @@ -11,11 +11,10 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 697953CD5D47B316E75ECD82 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = A2D71CA981BE46B8B7F14013 /* GoogleService-Info.plist */; }; 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 */; }; - A83F699FC746D5736A6B5780 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E8EC7192C60686BF1D599360 /* Pods_Runner.framework */; }; - 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,15 +31,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00AB97D99E5ECF11DF47B0E1 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; 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 = ""; }; - 80F1DA47CF78E61FED2F1DC2 /* 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 = ""; }; - 82EEF9818494FDE3E5DA52EA /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -49,8 +46,8 @@ 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 = ""; }; A2D71CA981BE46B8B7F14013 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - E8EC7192C60686BF1D599360 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_firestore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_firestore; path = ../../ios/cloud_firestore; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -59,7 +56,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - A83F699FC746D5736A6B5780 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -69,6 +65,8 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_firestore */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, @@ -84,8 +82,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - CAD6F5F5D2CB16B87B6F4AE4 /* Pods */, - D113A4D5E6EE00522247FBF7 /* Frameworks */, A2D71CA981BE46B8B7F14013 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -113,49 +109,28 @@ path = Runner; sourceTree = ""; }; - CAD6F5F5D2CB16B87B6F4AE4 /* Pods */ = { - isa = PBXGroup; - children = ( - 00AB97D99E5ECF11DF47B0E1 /* Pods-Runner.debug.xcconfig */, - 80F1DA47CF78E61FED2F1DC2 /* Pods-Runner.release.xcconfig */, - 82EEF9818494FDE3E5DA52EA /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D113A4D5E6EE00522247FBF7 /* Frameworks */ = { - isa = PBXGroup; - children = ( - E8EC7192C60686BF1D599360 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - C2BA042A3BD6EB9AE6CA3D9C /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 279EA8199A12C4F77765546D /* [CP] Embed Pods Frameworks */, - 11D71EC060D78E89744DA92E /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -164,9 +139,6 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -187,6 +159,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -212,40 +187,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 11D71EC060D78E89744DA92E /* [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; - }; - 279EA8199A12C4F77765546D /* [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; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -277,28 +218,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - C2BA042A3BD6EB9AE6CA3D9C /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -581,12 +500,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/cloud_firestore/cloud_firestore/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/example/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/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Release.xcconfig b/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/cloud_firestore/cloud_firestore/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/example/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/packages/cloud_firestore/cloud_firestore/example/macos/Podfile b/packages/cloud_firestore/cloud_firestore/example/macos/Podfile deleted file mode 100644 index afdfb073a5fa..000000000000 --- a/packages/cloud_firestore/cloud_firestore/example/macos/Podfile +++ /dev/null @@ -1,69 +0,0 @@ -platform :osx, '12.0' - -require 'yaml' - -pubspec = YAML.load_file(File.join('..', File.join('..', 'pubspec.yaml'))) - -# 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__)) - - if defined?($FirebaseSDKVersion) - Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version for FirebaseFirestore framework: '#{$FirebaseSDKVersion}'" - firebase_sdk_version = $FirebaseSDKVersion - else - firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))))), 'firebase_core/firebase_core/ios/firebase_sdk_version.rb') - if File.exist?(firebase_core_script) - require firebase_core_script - firebase_sdk_version = firebase_sdk_version! - Pod::UI.puts "#{pubspec['name']}: Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core for FirebaseFirestore framework'" - else - raise "Error - unable to locate firebase_ios_sdk.rb script in firebase_core, and no FirebaseSDKVersion specified" - end - end - - pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => "#{firebase_sdk_version}" -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcodeproj/project.pbxproj b/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcodeproj/project.pbxproj index d39d5b011e6c..c5b516572605 100644 --- a/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcodeproj/project.pbxproj @@ -27,9 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 7C6B704452E88DBDC96F005F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1127055D8A6FA8F8B81D64A8 /* Pods_Runner.framework */; }; - F086503D2C16E7BB001AC8E8 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F086503C2C16E7BB001AC8E8 /* GoogleService-Info.plist */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; + F086503D2C16E7BB001AC8E8 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F086503C2C16E7BB001AC8E8 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -63,8 +62,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B1675F19BEDCB57EF352D12 /* 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 = ""; }; - 1127055D8A6FA8F8B81D64A8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -81,12 +78,12 @@ 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 = ""; }; - 79B2FD443BCB750157D58765 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 8075C6E6575C8FD1BB2ACCEE /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; F086503C2C16E7BB001AC8E8 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_firestore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_firestore; path = ../../../macos/cloud_firestore; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -102,7 +99,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 7C6B704452E88DBDC96F005F /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -135,8 +131,6 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 8D40FAC6F545BA833E311714 /* Pods */, ); sourceTree = ""; }; @@ -163,6 +157,8 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_firestore */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, @@ -186,24 +182,6 @@ path = Runner; sourceTree = ""; }; - 8D40FAC6F545BA833E311714 /* Pods */ = { - isa = PBXGroup; - children = ( - 79B2FD443BCB750157D58765 /* Pods-Runner.debug.xcconfig */, - 0B1675F19BEDCB57EF352D12 /* Pods-Runner.release.xcconfig */, - 8075C6E6575C8FD1BB2ACCEE /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1127055D8A6FA8F8B81D64A8 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -226,20 +204,14 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 33CC10EC2044A3C60003C045 /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 26840CA6D7EE4D777089E7DC /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 2EF7CB7C80601312BBC015DF /* [CP] Embed Pods Frameworks */, - 43EA27CA4B0A80152846AE21 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -247,6 +219,9 @@ 33CC11202044C79F0003C045 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* example.app */; productType = "com.apple.product-type.application"; @@ -255,9 +230,6 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -294,6 +266,9 @@ Base, ); mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -326,45 +301,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 26840CA6D7EE4D777089E7DC /* [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; - }; - 2EF7CB7C80601312BBC015DF /* [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; @@ -403,23 +339,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 43EA27CA4B0A80152846AE21 /* [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 */ @@ -794,12 +713,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/cloud_firestore/cloud_firestore/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/cloud_firestore/cloud_firestore/example/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/example/pubspec.yaml index e3b692b959c2..5b904ca317b8 100755 --- a/packages/cloud_firestore/cloud_firestore/example/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/example/pubspec.yaml @@ -24,3 +24,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Debug.xcconfig b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Debug.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Release.xcconfig b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Release.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Podfile b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Podfile deleted file mode 100644 index 64bf99371597..000000000000 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - - 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) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcodeproj/project.pbxproj b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcodeproj/project.pbxproj index 8e85cbe85ed1..ec64c6383cc8 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcodeproj/project.pbxproj @@ -11,11 +11,11 @@ 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 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 */; }; D3B189D93111F21B593E07CE /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = FC9AF0E7C3463CF0E820724D /* GoogleService-Info.plist */; }; - 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -58,6 +58,9 @@ 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 = ""; }; FC9AF0E7C3463CF0E820724D /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_firestore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_firestore; path = ../../ios/cloud_firestore; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -87,16 +90,12 @@ path = RunnerTests; sourceTree = ""; }; - 726BAFFB79E9610C171E5B05 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_firestore */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -113,7 +112,6 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, FC9AF0E7C3463CF0E820724D /* GoogleService-Info.plist */, - 726BAFFB79E9610C171E5B05 /* Pods */, ); sourceTree = ""; }; @@ -163,9 +161,6 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 97C146ED1CF9000F007C117D /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( @@ -181,6 +176,9 @@ dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -189,9 +187,6 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -217,6 +212,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -645,12 +643,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Debug.xcconfig b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/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/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Release.xcconfig b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/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/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Podfile b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Podfile deleted file mode 100644 index fc20f6734ab6..000000000000 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Podfile +++ /dev/null @@ -1,51 +0,0 @@ -platform :osx, '12.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', '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! - - 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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/project.pbxproj b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/project.pbxproj index c60dba391e50..f7937b660cec 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/project.pbxproj @@ -27,9 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 4D21D57616F29244D9E0BEDC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92A5244FE5D2154A5DCF67B1 /* Pods_Runner.framework */; }; - 64BEAD2D383FBE055A9293F9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD0A02E97A5F21BBF52ECDE7 /* Pods_RunnerTests.framework */; }; C00753EECC149CA245836275 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 68F38BAC755C5AD9D75FABDC /* GoogleService-Info.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -79,17 +78,12 @@ 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 = ""; }; - 450310D9B717CF9798DF9983 /* 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 = ""; }; - 4C6E70E606BD35A2DDE28810 /* 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 = ""; }; 68F38BAC755C5AD9D75FABDC /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 80B3CDA44BB01B7665B13AC4 /* 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 = ""; }; - 80C48A48FDB72942482DF20F /* 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 = ""; }; - 92A5244FE5D2154A5DCF67B1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - BD0A02E97A5F21BBF52ECDE7 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C6DA53DEF649E7FAF765B034 /* 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 = ""; }; - EAA74D9E6B471BF39D05E2D5 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_firestore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_firestore; path = ../../../macos/cloud_firestore; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -97,7 +91,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 64BEAD2D383FBE055A9293F9 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -105,27 +98,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4D21D57616F29244D9E0BEDC /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 2ACCD496E1849E7F631515BA /* Pods */ = { - isa = PBXGroup; - children = ( - 80B3CDA44BB01B7665B13AC4 /* Pods-Runner.debug.xcconfig */, - EAA74D9E6B471BF39D05E2D5 /* Pods-Runner.release.xcconfig */, - 4C6E70E606BD35A2DDE28810 /* Pods-Runner.profile.xcconfig */, - 80C48A48FDB72942482DF20F /* Pods-RunnerTests.debug.xcconfig */, - C6DA53DEF649E7FAF765B034 /* Pods-RunnerTests.release.xcconfig */, - 450310D9B717CF9798DF9983 /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; 331C80D6294CF71000263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -152,9 +131,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, 68F38BAC755C5AD9D75FABDC /* GoogleService-Info.plist */, - 2ACCD496E1849E7F631515BA /* Pods */, ); sourceTree = ""; }; @@ -181,6 +158,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_firestore */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -202,15 +182,6 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92A5244FE5D2154A5DCF67B1 /* Pods_Runner.framework */, - BD0A02E97A5F21BBF52ECDE7 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -218,7 +189,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 99A85E0C4CFD12F263C48149 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,16 +204,17 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 8E689660D67B59A471E12131 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - AFC4EC65143ED624B99B07E7 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -259,6 +230,9 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -365,67 +339,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 8E689660D67B59A471E12131 /* [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; - }; - 99A85E0C4CFD12F263C48149 /* [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; - }; - AFC4EC65143ED624B99B07E7 /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -477,7 +390,6 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 80C48A48FDB72942482DF20F /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -492,7 +404,6 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C6DA53DEF649E7FAF765B034 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -507,7 +418,6 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 450310D9B717CF9798DF9983 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -800,6 +710,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 75fc171f713c..53424dc49b5b 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/packages/cloud_firestore/cloud_firestore/pipeline_example/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/pipeline_example/pubspec.yaml index b5ad6c908b2e..b8b52a42b4a6 100644 --- a/packages/cloud_firestore/cloud_firestore/pipeline_example/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/pipeline_example/pubspec.yaml @@ -97,3 +97,6 @@ flutter: # # For details regarding fonts from package dependencies, # see https://flutter.dev/to/font-from-package + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/cloud_functions/cloud_functions/example/ios/Flutter/AppFrameworkInfo.plist b/packages/cloud_functions/cloud_functions/example/ios/Flutter/AppFrameworkInfo.plist index 9625e105df39..391a902b2beb 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/cloud_functions/cloud_functions/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 11.0 diff --git a/packages/cloud_functions/cloud_functions/example/ios/Flutter/Debug.xcconfig b/packages/cloud_functions/cloud_functions/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Flutter/Debug.xcconfig +++ b/packages/cloud_functions/cloud_functions/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_functions/cloud_functions/example/ios/Flutter/Release.xcconfig b/packages/cloud_functions/cloud_functions/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Flutter/Release.xcconfig +++ b/packages/cloud_functions/cloud_functions/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/cloud_functions/cloud_functions/example/ios/Podfile b/packages/cloud_functions/cloud_functions/example/ios/Podfile deleted file mode 100644 index 1050739f2d1d..000000000000 --- a/packages/cloud_functions/cloud_functions/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/project.pbxproj b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/project.pbxproj index b0ea3bfe2820..3f4fe86179ae 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ 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 */; }; - EA69EF05FD1601F977F5AB58 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1AB46A677A033A0F8CED970 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -36,7 +36,6 @@ /* 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 = ""; }; - 1B9BCE1A3DAB0266AECC8836 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -50,8 +49,9 @@ 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 = ""; }; AD44A36DFF3962E9D2B8F554 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - B1AB46A677A033A0F8CED970 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F910769483C9C340F875FE89 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_functions */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_functions; path = ../../ios/cloud_functions; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -59,33 +59,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EA69EF05FD1601F977F5AB58 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3DF8FE6703033F0BCE4B5295 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B1AB46A677A033A0F8CED970 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8AF80AEEDE5B4CF194812581 /* Pods */ = { - isa = PBXGroup; - children = ( - 1B9BCE1A3DAB0266AECC8836 /* Pods-Runner.debug.xcconfig */, - F910769483C9C340F875FE89 /* Pods-Runner.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_functions */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -100,8 +86,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 8AF80AEEDE5B4CF194812581 /* Pods */, - 3DF8FE6703033F0BCE4B5295 /* Frameworks */, AD44A36DFF3962E9D2B8F554 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -142,17 +126,18 @@ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E8BAE8C0F3076226C64B5EF1 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 70F8FE3E9FCB1DECBF8E567D /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -167,9 +152,12 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -221,6 +209,7 @@ files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -229,44 +218,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 70F8FE3E9FCB1DECBF8E567D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FirebaseAppCheckInterop/FirebaseAppCheckInterop.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseAuthInterop/FirebaseAuthInterop.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreExtension/FirebaseCoreExtension.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseFunctions/FirebaseFunctions.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseMessagingInterop/FirebaseMessagingInterop.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework", - "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseAppCheckInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseAuthInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseFunctions.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessagingInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSharedSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -282,24 +233,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E8BAE8C0F3076226C64B5EF1 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - 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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -509,6 +442,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/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/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 1c19f4b86e14..1eb76be2b7ad 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + @@ -46,12 +65,14 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/cloud_functions/cloud_functions/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/cloud_functions/cloud_functions/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/cloud_functions/cloud_functions/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/cloud_functions/cloud_functions/example/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/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Release.xcconfig b/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/cloud_functions/cloud_functions/example/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/packages/cloud_functions/cloud_functions/example/macos/Podfile b/packages/cloud_functions/cloud_functions/example/macos/Podfile deleted file mode 100644 index 4e2f6718d226..000000000000 --- a/packages/cloud_functions/cloud_functions/example/macos/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -platform :osx, '12.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', '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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/project.pbxproj b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/project.pbxproj index 3c5e550a7f2d..7fc70b267e7e 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -28,7 +28,7 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; B550B1FE23F53792007DADD5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B550B1FD23F53792007DADD5 /* GoogleService-Info.plist */; }; - E1A3C0FEB219DE3059F49DD9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,7 +55,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* macOS example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "macOS example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -73,10 +72,10 @@ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 936D6D8FD0BD9CD163D1EF83 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - 9BC7A999E9028F67221E5E4C /* 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 = ""; }; - B51643519054BD100F273F38 /* 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 = ""; }; B550B1FD23F53792007DADD5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - D71BFD332DFDD49FEC2851C7 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* cloud_functions */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = cloud_functions; path = ../../../macos/cloud_functions; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -84,23 +83,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1A3C0FEB219DE3059F49DD9 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 20D0F4B2FDA2F55D0E4D3C97 /* Pods */ = { - isa = PBXGroup; - children = ( - D71BFD332DFDD49FEC2851C7 /* Pods-Runner.debug.xcconfig */, - B51643519054BD100F273F38 /* Pods-Runner.release.xcconfig */, - 9BC7A999E9028F67221E5E4C /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -118,8 +107,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 20D0F4B2FDA2F55D0E4D3C97 /* Pods */, 936D6D8FD0BD9CD163D1EF83 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -146,6 +133,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* cloud_functions */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -168,28 +158,21 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - EAC7B8DAC277B926B74FC7DF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - CBEB00393727ABD0F646D64D /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -205,10 +188,13 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Flutter Authors"; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -263,6 +249,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -298,43 +285,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - CBEB00393727ABD0F646D64D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EAC7B8DAC277B926B74FC7DF /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -650,6 +600,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 57bae2867691..7858867a4997 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + diff --git a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/cloud_functions/cloud_functions/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/cloud_functions/cloud_functions/example/macos/Runner/AppDelegate.swift b/packages/cloud_functions/cloud_functions/example/macos/Runner/AppDelegate.swift index d53ef6437726..b3c176141221 100644 --- a/packages/cloud_functions/cloud_functions/example/macos/Runner/AppDelegate.swift +++ b/packages/cloud_functions/cloud_functions/example/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/packages/cloud_functions/cloud_functions/example/pubspec.yaml b/packages/cloud_functions/cloud_functions/example/pubspec.yaml index 27363007eb3f..691dbe6794e7 100644 --- a/packages/cloud_functions/cloud_functions/example/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions/example/pubspec.yaml @@ -23,3 +23,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_ai/firebase_ai/example/ios/Flutter/Debug.xcconfig b/packages/firebase_ai/firebase_ai/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_ai/firebase_ai/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_ai/firebase_ai/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_ai/firebase_ai/example/ios/Flutter/Release.xcconfig b/packages/firebase_ai/firebase_ai/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_ai/firebase_ai/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_ai/firebase_ai/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_ai/firebase_ai/example/ios/Podfile b/packages/firebase_ai/firebase_ai/example/ios/Podfile deleted file mode 100644 index 84e2caa4abcc..000000000000 --- a/packages/firebase_ai/firebase_ai/example/ios/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '13.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! - - 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) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_ai/firebase_ai/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_ai/firebase_ai/example/ios/Runner.xcodeproj/project.pbxproj index 9af1459650ab..e63c8a69feac 100644 --- a/packages/firebase_ai/firebase_ai/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_ai/firebase_ai/example/ios/Runner.xcodeproj/project.pbxproj @@ -90,13 +90,6 @@ path = RunnerTests; sourceTree = ""; }; - 3C3B3E8596675CC144D1BD5B /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -119,7 +112,6 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, 5F1FA05866A2D0FCA3287B20 /* GoogleService-Info.plist */, - 3C3B3E8596675CC144D1BD5B /* Pods */, ); sourceTree = ""; }; diff --git a/packages/firebase_ai/firebase_ai/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_ai/firebase_ai/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_ai/firebase_ai/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_ai/firebase_ai/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_ai/firebase_ai/example/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/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_ai/firebase_ai/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_ai/firebase_ai/example/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/packages/firebase_ai/firebase_ai/example/macos/Podfile b/packages/firebase_ai/firebase_ai/example/macos/Podfile deleted file mode 100644 index fc20f6734ab6..000000000000 --- a/packages/firebase_ai/firebase_ai/example/macos/Podfile +++ /dev/null @@ -1,51 +0,0 @@ -platform :osx, '12.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', '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! - - 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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_ai/firebase_ai/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_ai/firebase_ai/example/macos/Runner.xcodeproj/project.pbxproj index 3cc452d99e03..bd3ed64b11fe 100644 --- a/packages/firebase_ai/firebase_ai/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_ai/firebase_ai/example/macos/Runner.xcodeproj/project.pbxproj @@ -132,7 +132,6 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, 08B0491E23641E5BA5DD096C /* GoogleService-Info.plist */, - BE277C424FC00920BE07E371 /* Pods */, ); sourceTree = ""; }; @@ -183,13 +182,6 @@ path = Runner; sourceTree = ""; }; - BE277C424FC00920BE07E371 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ diff --git a/packages/firebase_ai/firebase_ai/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_ai/firebase_ai/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_ai/firebase_ai/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_ai/firebase_ai/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_ai/firebase_ai/example/pubspec.yaml b/packages/firebase_ai/firebase_ai/example/pubspec.yaml index df4d65947d30..17bd351712e4 100644 --- a/packages/firebase_ai/firebase_ai/example/pubspec.yaml +++ b/packages/firebase_ai/firebase_ai/example/pubspec.yaml @@ -66,3 +66,6 @@ flutter: - assets/images/ - assets/documents/ - assets/videos/ + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/AppFrameworkInfo.plist index b3aaa733dfbb..6fe4034356ac 100755 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/AppFrameworkInfo.plist @@ -24,7 +24,5 @@ arm64 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Debug.xcconfig b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100755 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Release.xcconfig b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100755 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Podfile b/packages/firebase_analytics/firebase_analytics/example/ios/Podfile deleted file mode 100644 index 1050739f2d1d..000000000000 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/project.pbxproj index 9d1137a85655..b3a2527c4380 100644 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 366C1E85719C1EBACF2B5A3A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68E5CB5E06702596AF56A313 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 5C6F5A711EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C6F5A701EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; @@ -38,11 +37,9 @@ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 5C6F5A6F1EC3CCCC008D64B5 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 5C6F5A701EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 68E5CB5E06702596AF56A313 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8C1F6CC46E03E777F54F1239 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -52,7 +49,9 @@ 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 = ""; }; 982A23A68A97522ECCDC0270 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - A12F9DA458F6E6E8483C89AF /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_analytics */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_analytics; path = ../../ios/firebase_analytics; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,25 +60,18 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 366C1E85719C1EBACF2B5A3A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 840012C8B5EDBCF56B0E4AC1 /* Pods */ = { - isa = PBXGroup; - children = ( - 8C1F6CC46E03E777F54F1239 /* Pods-Runner.debug.xcconfig */, - A12F9DA458F6E6E8483C89AF /* Pods-Runner.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_analytics */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -94,8 +86,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 840012C8B5EDBCF56B0E4AC1 /* Pods */, - CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, 982A23A68A97522ECCDC0270 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -132,14 +122,6 @@ name = "Supporting Files"; sourceTree = ""; }; - CF3B75C9A7D2FA2A4C99F110 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 68E5CB5E06702596AF56A313 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -147,7 +129,6 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - AB1344B0443C71CD721E1BB7 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -252,24 +233,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - AB1344B0443C71CD721E1BB7 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - 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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index f66dfbe5d67e..851adedd1fb0 100755 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -44,6 +44,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> diff --git a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100755 --- a/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_analytics/firebase_analytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_analytics/firebase_analytics/example/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/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_analytics/firebase_analytics/example/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/packages/firebase_analytics/firebase_analytics/example/macos/Podfile b/packages/firebase_analytics/firebase_analytics/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/project.pbxproj index a2adec70a2da..5076f1dfaa58 100644 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/project.pbxproj @@ -26,7 +26,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 */; }; - 393AE0D417143873B301BE4E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BDC92B280E548E48C1BAEF0 /* Pods_Runner.framework */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; F4D477A7A27F80484D10D2DA /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4EB26CDB377F0D97C726081D /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ @@ -55,7 +54,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1B12144B7F9F2E0BF6C52342 /* 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 = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -72,10 +70,10 @@ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 4EB26CDB377F0D97C726081D /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 8BDC92B280E548E48C1BAEF0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9523DC389DCCE5A5670E8579 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - D18103B85FCF1A81D42AD890 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_analytics */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_analytics; path = ../../../macos/firebase_analytics; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -84,7 +82,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 393AE0D417143873B301BE4E /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -108,8 +105,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 46AECD2890B909AC822DC02C /* Pods */, 4EB26CDB377F0D97C726081D /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -136,6 +131,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_analytics */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -157,24 +155,6 @@ path = Runner; sourceTree = ""; }; - 46AECD2890B909AC822DC02C /* Pods */ = { - isa = PBXGroup; - children = ( - D18103B85FCF1A81D42AD890 /* Pods-Runner.debug.xcconfig */, - 9523DC389DCCE5A5670E8579 /* Pods-Runner.release.xcconfig */, - 1B12144B7F9F2E0BF6C52342 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 8BDC92B280E548E48C1BAEF0 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -182,7 +162,6 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - EFF85DBBDDDC68CD22533FDD /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, @@ -302,28 +281,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - EFF85DBBDDDC68CD22533FDD /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 6172342eec3a..c24a0b440188 100644 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -66,6 +66,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_analytics/firebase_analytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_analytics/firebase_analytics/example/pubspec.yaml b/packages/firebase_analytics/firebase_analytics/example/pubspec.yaml index eccaa0bbe5c5..d15ba1a61b07 100755 --- a/packages/firebase_analytics/firebase_analytics/example/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics/example/pubspec.yaml @@ -24,3 +24,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Debug.xcconfig b/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Release.xcconfig b/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_app_check/firebase_app_check/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_app_check/firebase_app_check/example/ios/Podfile b/packages/firebase_app_check/firebase_app_check/example/ios/Podfile deleted file mode 100644 index 6c441cc35f11..000000000000 --- a/packages/firebase_app_check/firebase_app_check/example/ios/Podfile +++ /dev/null @@ -1,54 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '13.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! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - # There is no RunnerTests target in Runner.xcodeproj for this example, so no - # test target is declared here. Uncomment if one is ever added. - # 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) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcodeproj/project.pbxproj index adb30451296f..36c8a7e1b70f 100644 --- a/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcodeproj/project.pbxproj @@ -50,6 +50,8 @@ 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 = ""; }; BBE2A093D0D5DFBA7CE858E4 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_app_check */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_app_check; path = ../../ios/firebase_app_check; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -67,6 +69,8 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_app_check */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, @@ -82,7 +86,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - F919868105D7CB93D33CAD83 /* Pods */, BBE2A093D0D5DFBA7CE858E4 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -121,13 +124,6 @@ name = "Supporting Files"; sourceTree = ""; }; - F919868105D7CB93D33CAD83 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ diff --git a/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_app_check/firebase_app_check/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_app_check/firebase_app_check/example/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/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_app_check/firebase_app_check/example/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/packages/firebase_app_check/firebase_app_check/example/macos/Podfile b/packages/firebase_app_check/firebase_app_check/example/macos/Podfile deleted file mode 100644 index dc8edfbe88b6..000000000000 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Podfile +++ /dev/null @@ -1,53 +0,0 @@ -platform :osx, '12.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', '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! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) - # There is no RunnerTests target in Runner.xcodeproj for this example, so no - # test target is declared here. Uncomment if one is ever added. - # 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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/project.pbxproj index 995d192c39a6..27d18d703c69 100644 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/project.pbxproj @@ -72,6 +72,9 @@ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_app_check */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_app_check; path = ../../../macos/firebase_app_check; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -103,7 +106,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - 74CB5F55BD11E25520F6FF45 /* Pods */, 0DC934EE60634F0D37DD0EC3 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -130,6 +132,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_app_check */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -152,13 +157,6 @@ path = Runner; sourceTree = ""; }; - 74CB5F55BD11E25520F6FF45 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ diff --git a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 92a5c6f961f3..0b52b918e3a9 100644 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -66,6 +66,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_app_check/firebase_app_check/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_app_check/firebase_app_check/example/pubspec.yaml b/packages/firebase_app_check/firebase_app_check/example/pubspec.yaml index 8e8e03077e0d..6fc9dc43384b 100644 --- a/packages/firebase_app_check/firebase_app_check/example/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check/example/pubspec.yaml @@ -28,3 +28,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist index 7c5696400627..391a902b2beb 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Debug.xcconfig b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Release.xcconfig b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Podfile b/packages/firebase_app_installations/firebase_app_installations/example/ios/Podfile deleted file mode 100644 index 02646278dab9..000000000000 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Podfile +++ /dev/null @@ -1,50 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj index 79deade9d41d..54057a0a9e06 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj @@ -16,7 +16,6 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - D31746244E2F2FE1872744CA /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69B8F88D9874F0301253207A /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -33,14 +32,10 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0047649AA80D5E08710B83FC /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 25D8824E2757C5A40032AD7D /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 46C9450C09DECE161F8D2B0E /* 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 = ""; }; - 69B8F88D9874F0301253207A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 70BA4B84FBF4F8F98882ECE8 /* 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 = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -52,6 +47,9 @@ 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 = ""; }; FA49080A66BCD405EE1DF534 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_app_installations */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_app_installations; path = ../../ios/firebase_app_installations; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -60,7 +58,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - D31746244E2F2FE1872744CA /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -70,6 +67,9 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_app_installations */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -84,8 +84,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - B73D1DC58D055FB68C9A8078 /* Pods */, - C9AFE18D56A992DC82EEDD72 /* Frameworks */, FA49080A66BCD405EE1DF534 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -114,24 +112,6 @@ path = Runner; sourceTree = ""; }; - B73D1DC58D055FB68C9A8078 /* Pods */ = { - isa = PBXGroup; - children = ( - 0047649AA80D5E08710B83FC /* Pods-Runner.debug.xcconfig */, - 70BA4B84FBF4F8F98882ECE8 /* Pods-Runner.release.xcconfig */, - 46C9450C09DECE161F8D2B0E /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - C9AFE18D56A992DC82EEDD72 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 69B8F88D9874F0301253207A /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -139,7 +119,6 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 86AB341DFEACCFD6CBE9739D /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -228,28 +207,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 86AB341DFEACCFD6CBE9739D /* [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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index e598ba7945d8..5db441f58ab9 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -44,6 +44,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_app_installations/firebase_app_installations/example/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/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_app_installations/firebase_app_installations/example/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/packages/firebase_app_installations/firebase_app_installations/example/macos/Podfile b/packages/firebase_app_installations/firebase_app_installations/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/project.pbxproj index 775132c2ea0f..3415fe987c4a 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -27,7 +27,7 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 7D8D6BF718D1C91C7448AB97 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 285081EBB2A5A2B48A82CC93 /* GoogleService-Info.plist */; }; - CECC36D088977FEA6F4C1003 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE8B6589603437F8EF35345E /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -54,7 +54,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1779DABB40E431F6140D7937 /* 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 = ""; }; 285081EBB2A5A2B48A82CC93 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; @@ -70,11 +69,11 @@ 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 = ""; }; - 6D913916A8D84C1FDC8F7B4C /* 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 = ""; }; - 7234BB708D5460BA64D90E26 /* 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 = ""; }; 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 = ""; }; - BE8B6589603437F8EF35345E /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_app_installations */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_app_installations; path = ../../../macos/firebase_app_installations; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -82,23 +81,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CECC36D088977FEA6F4C1003 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1C79AB84644B94FC4355DDDB /* Pods */ = { - isa = PBXGroup; - children = ( - 6D913916A8D84C1FDC8F7B4C /* Pods-Runner.debug.xcconfig */, - 7234BB708D5460BA64D90E26 /* Pods-Runner.release.xcconfig */, - 1779DABB40E431F6140D7937 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -116,8 +105,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 1C79AB84644B94FC4355DDDB /* Pods */, 285081EBB2A5A2B48A82CC93 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -144,6 +131,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_app_installations */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -165,28 +155,21 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - BE8B6589603437F8EF35345E /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - A2B5BA26A8ECD333A76C446C /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 9B0D0C0196D50B117C72597B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -202,10 +185,13 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -259,6 +245,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -294,45 +281,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 9B0D0C0196D50B117C72597B /* [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; - }; - A2B5BA26A8ECD333A76C446C /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -633,6 +581,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index ae8ff59d97b3..c24a0b440188 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + diff --git a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner/AppDelegate.swift b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner/AppDelegate.swift index d53ef6437726..b3c176141221 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner/AppDelegate.swift +++ b/packages/firebase_app_installations/firebase_app_installations/example/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/packages/firebase_app_installations/firebase_app_installations/example/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations/example/pubspec.yaml index 3cfb9503861f..ccf81fbad83f 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations/example/pubspec.yaml @@ -28,3 +28,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_core/firebase_core/example/ios/Flutter/Debug.xcconfig b/packages/firebase_core/firebase_core/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_core/firebase_core/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_core/firebase_core/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_core/firebase_core/example/ios/Flutter/Release.xcconfig b/packages/firebase_core/firebase_core/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_core/firebase_core/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_core/firebase_core/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_core/firebase_core/example/ios/Podfile b/packages/firebase_core/firebase_core/example/ios/Podfile deleted file mode 100644 index 1050739f2d1d..000000000000 --- a/packages/firebase_core/firebase_core/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj index 1fe80e3255a8..3fb1db2cb4d9 100644 --- a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj @@ -15,7 +15,6 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - E766DA7F3F0A9F9BE32353CF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6052F8751F55A7BF8B2BF51 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,11 +31,9 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0F72582C036F53C7EA355605 /* 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 = ""; }; 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 720AED231F4B8D9744E84B25 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -48,8 +45,9 @@ 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 = ""; }; - B6052F8751F55A7BF8B2BF51 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E9CB62AF78D6D61CD2D1E629 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_core */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_core; path = ../../ios/firebase_core; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -58,34 +56,18 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - E766DA7F3F0A9F9BE32353CF /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 482D7FAB0417043D5F05ECBE /* Frameworks */ = { - isa = PBXGroup; - children = ( - B6052F8751F55A7BF8B2BF51 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 71DA98800DC8DF4E3AF74BFA /* Pods */ = { - isa = PBXGroup; - children = ( - 720AED231F4B8D9744E84B25 /* Pods-Runner.debug.xcconfig */, - E9CB62AF78D6D61CD2D1E629 /* Pods-Runner.release.xcconfig */, - 0F72582C036F53C7EA355605 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_core */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -100,8 +82,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 71DA98800DC8DF4E3AF74BFA /* Pods */, - 482D7FAB0417043D5F05ECBE /* Frameworks */, ); sourceTree = ""; }; @@ -144,14 +124,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 9980DA9AFE8C30A0C57BB824 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - B82A435E873C87752FE571FD /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -247,50 +225,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - 9980DA9AFE8C30A0C57BB824 /* [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; - }; - B82A435E873C87752FE571FD /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_core/firebase_core/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_core/firebase_core/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_core/firebase_core/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_core/firebase_core/example/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/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_core/firebase_core/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_core/firebase_core/example/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/packages/firebase_core/firebase_core/example/macos/Podfile b/packages/firebase_core/firebase_core/example/macos/Podfile deleted file mode 100644 index f2e30efd4ff7..000000000000 --- a/packages/firebase_core/firebase_core/example/macos/Podfile +++ /dev/null @@ -1,94 +0,0 @@ -platform :osx, '12.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 parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exist? file_abs_path - return []; - end - pods_ary = [] - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) { |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - pods_ary.push({:name => podname, :path => podpath}); - else - puts "Invalid plugin specification: #{line}" - end - } - return pods_ary -end - -def pubspec_supports_macos(file) - file_abs_path = File.expand_path(file) - if !File.exist? file_abs_path - return false; - end - File.foreach(file_abs_path) { |line| - return true if line =~ /^\s*macos:/ - } - return false -end - -target 'Runner' do - use_frameworks! - use_modular_headers! - - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - ephemeral_dir = File.join('Flutter', 'ephemeral') - symlink_dir = File.join(ephemeral_dir, '.symlinks') - symlink_plugins_dir = File.join(symlink_dir, 'plugins') - system("rm -rf #{symlink_dir}") - system("mkdir -p #{symlink_plugins_dir}") - - # Flutter Pods - generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig')) - if generated_xcconfig.empty? - puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first." - end - generated_xcconfig.map { |p| - if p[:name] == 'FLUTTER_FRAMEWORK_DIR' - symlink = File.join(symlink_dir, 'flutter') - File.symlink(File.dirname(p[:path]), symlink) - pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path])) - end - } - - # Plugin Pods - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.map { |p| - symlink = File.join(symlink_plugins_dir, p[:name]) - File.symlink(p[:path], symlink) - if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml')) - pod p[:name], :path => File.join(symlink, 'macos') - end - } -end - -# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. -install! 'cocoapods', :disable_input_output_paths => true - -post_install do |installer| - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_core/firebase_core/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_core/firebase_core/example/macos/Runner.xcodeproj/project.pbxproj index 106d2418aeee..95527e8024a4 100644 --- a/packages/firebase_core/firebase_core/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_core/firebase_core/example/macos/Runner.xcodeproj/project.pbxproj @@ -27,7 +27,6 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; - A6BEC901C97C5D268CB5DA71 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0256E1080A906E600899C50E /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -54,9 +53,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0256E1080A906E600899C50E /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 15E78527A21259530BA5B418 /* 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 = ""; }; - 1D1F8085E866CE5BD2348F8F /* 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 = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -73,7 +69,9 @@ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 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 = ""; }; - B890D5B43548D97A0B333DED /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_core */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_core; path = ../../../macos/firebase_core; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -82,7 +80,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - A6BEC901C97C5D268CB5DA71 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -106,8 +103,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - 35D08D7B7EE4EDD9A2F936ED /* Pods */, - AD05860587DFFC8A26AD7D4C /* Frameworks */, ); sourceTree = ""; }; @@ -133,6 +128,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_core */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -154,24 +152,6 @@ path = Runner; sourceTree = ""; }; - 35D08D7B7EE4EDD9A2F936ED /* Pods */ = { - isa = PBXGroup; - children = ( - 15E78527A21259530BA5B418 /* Pods-Runner.debug.xcconfig */, - B890D5B43548D97A0B333DED /* Pods-Runner.release.xcconfig */, - 1D1F8085E866CE5BD2348F8F /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - AD05860587DFFC8A26AD7D4C /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0256E1080A906E600899C50E /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -179,13 +159,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - ECF128B98423E962D5C3BC75 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 56E8DCF4B65C1A5B7C75C685 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -299,43 +277,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - 56E8DCF4B65C1A5B7C75C685 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - ECF128B98423E962D5C3BC75 /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -562,20 +503,6 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter/ephemeral", ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/firebase_core/firebase_core.framework/Headers\"", - "\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"", - "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/Firebase\"", - "$(inherited)", - "${PODS_ROOT}/Firebase/CoreOnly/Sources", - ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/packages/firebase_core/firebase_core/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_core/firebase_core/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_core/firebase_core/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_core/firebase_core/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_core/firebase_core/example/pubspec.yaml b/packages/firebase_core/firebase_core/example/pubspec.yaml index 1c1bcafa6e89..6e27317757b2 100644 --- a/packages/firebase_core/firebase_core/example/pubspec.yaml +++ b/packages/firebase_core/firebase_core/example/pubspec.yaml @@ -13,3 +13,6 @@ dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/AppFrameworkInfo.plist index 7c5696400627..391a902b2beb 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Debug.xcconfig b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Release.xcconfig b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Podfile b/packages/firebase_data_connect/firebase_data_connect/example/ios/Podfile deleted file mode 100644 index 8b9147b4f780..000000000000 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Podfile +++ /dev/null @@ -1,53 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/project.pbxproj index bcf036245158..483b4f8c6328 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/project.pbxproj @@ -14,8 +14,7 @@ 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 */; }; - B5F9716836A88E3577494FC0 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA1C958D561F10EF905ECE34 /* Pods_Runner.framework */; }; - D1F8DC9D90F1D5D2C3B3DB37 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B36940891A4846D9D3EB356F /* Pods_RunnerTests.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -42,19 +41,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0D0A947B6A3F0BBD444EBA70 /* 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 = ""; }; 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 = ""; }; 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 = ""; }; - 467C8E0E18669B1A171B55D8 /* 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 = ""; }; - 5363A146E4B954495368B56D /* 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 = ""; }; - 779CFABD8818448B3B887A9C /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 84542CEC9A0FBFF9A0A1DB37 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -62,9 +56,7 @@ 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 = ""; }; - B36940891A4846D9D3EB356F /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CA1C958D561F10EF905ECE34 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EF7D1184723DAE45AE37C68F /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -72,7 +64,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D1F8DC9D90F1D5D2C3B3DB37 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -80,7 +71,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B5F9716836A88E3577494FC0 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -98,6 +89,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -113,8 +105,6 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - EE2E4CC9AAC39360CE2CCED5 /* Pods */, - BDBC9B622C75229E8F7832D1 /* Frameworks */, ); sourceTree = ""; }; @@ -142,28 +132,6 @@ path = Runner; sourceTree = ""; }; - BDBC9B622C75229E8F7832D1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - CA1C958D561F10EF905ECE34 /* Pods_Runner.framework */, - B36940891A4846D9D3EB356F /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - EE2E4CC9AAC39360CE2CCED5 /* Pods */ = { - isa = PBXGroup; - children = ( - 5363A146E4B954495368B56D /* Pods-Runner.debug.xcconfig */, - 0D0A947B6A3F0BBD444EBA70 /* Pods-Runner.release.xcconfig */, - 84542CEC9A0FBFF9A0A1DB37 /* Pods-Runner.profile.xcconfig */, - 779CFABD8818448B3B887A9C /* Pods-RunnerTests.debug.xcconfig */, - EF7D1184723DAE45AE37C68F /* Pods-RunnerTests.release.xcconfig */, - 467C8E0E18669B1A171B55D8 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -171,7 +139,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 0CB7FA20986D825D585CDAFF /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, 87AC0902B538640350365D1E /* Frameworks */, @@ -187,18 +154,18 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 3BA940C983F4E64846EDB4DB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 07279BCD11CB9067B11BE810 /* [CP] Embed Pods Frameworks */, - 322723C62D13E9C2D8F6F2DC /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -213,6 +180,9 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -270,62 +240,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 07279BCD11CB9067B11BE810 /* [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; - }; - 0CB7FA20986D825D585CDAFF /* [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; - }; - 322723C62D13E9C2D8F6F2DC /* [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; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -342,28 +256,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 3BA940C983F4E64846EDB4DB /* [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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -504,7 +396,6 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 779CFABD8818448B3B887A9C /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -522,7 +413,6 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF7D1184723DAE45AE37C68F /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -538,7 +428,6 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 467C8E0E18669B1A171B55D8 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -740,6 +629,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/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/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8e3ca5dfe193..c3fedb29c990 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + diff --git a/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_data_connect/firebase_data_connect/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_data_connect/firebase_data_connect/example/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/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_data_connect/firebase_data_connect/example/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/packages/firebase_data_connect/firebase_data_connect/example/macos/Podfile b/packages/firebase_data_connect/firebase_data_connect/example/macos/Podfile deleted file mode 100644 index 74329eb8c0a0..000000000000 --- a/packages/firebase_data_connect/firebase_data_connect/example/macos/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -platform :osx, '12.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', '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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/project.pbxproj index e434a7ff841c..daa3cb0bd28c 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,7 @@ 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 */; }; - 5A0EBAC5CA5020E53D9F5FB9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68259C80087E2CE600CA9E3E /* Pods_RunnerTests.framework */; }; - CDE09EBC5F87EFADA38F8F59 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F81E46173A5FB7C231B32AE1 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -78,16 +77,9 @@ 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 = ""; }; - 367BE93E3B25556D72E19BE6 /* 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 = ""; }; - 57638D81F785C506C897EA30 /* 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 = ""; }; - 58F3E215A6EE6C70A757F8D4 /* 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 = ""; }; - 603D07CF30CE7F11FFBF6764 /* 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 = ""; }; - 68259C80087E2CE600CA9E3E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 704B294FA8C9834EEDCCF961 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - D093DBBD5E141E58AB2CE079 /* 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 = ""; }; - F81E46173A5FB7C231B32AE1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +87,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5A0EBAC5CA5020E53D9F5FB9 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +94,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CDE09EBC5F87EFADA38F8F59 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,8 +127,6 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - FB0AE6DB54A0C7F6C5B5F8B5 /* Pods */, ); sourceTree = ""; }; @@ -164,6 +153,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -185,29 +175,6 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - F81E46173A5FB7C231B32AE1 /* Pods_Runner.framework */, - 68259C80087E2CE600CA9E3E /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - FB0AE6DB54A0C7F6C5B5F8B5 /* Pods */ = { - isa = PBXGroup; - children = ( - 704B294FA8C9834EEDCCF961 /* Pods-Runner.debug.xcconfig */, - 367BE93E3B25556D72E19BE6 /* Pods-Runner.release.xcconfig */, - 603D07CF30CE7F11FFBF6764 /* Pods-Runner.profile.xcconfig */, - D093DBBD5E141E58AB2CE079 /* Pods-RunnerTests.debug.xcconfig */, - 57638D81F785C506C897EA30 /* Pods-RunnerTests.release.xcconfig */, - 58F3E215A6EE6C70A757F8D4 /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -215,7 +182,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 30E7763C8BF85951A4034B2F /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -231,17 +197,17 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 92B2B246524EF31F3D357243 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 9D22A98DF478583AFE4C87D0 /* [CP] Embed Pods Frameworks */, - 7D0A7AE5F7B788418083225F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -257,6 +223,9 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -324,28 +293,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 30E7763C8BF85951A4034B2F /* [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; - }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -384,62 +331,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 7D0A7AE5F7B788418083225F /* [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; - }; - 92B2B246524EF31F3D357243 /* [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; - }; - 9D22A98DF478583AFE4C87D0 /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -491,7 +382,6 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D093DBBD5E141E58AB2CE079 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -506,7 +396,6 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 57638D81F785C506C897EA30 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -521,7 +410,6 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 58F3E215A6EE6C70A757F8D4 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -814,6 +702,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index ac78810cdd2c..ee5d00fc0aa9 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_data_connect/firebase_data_connect/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/packages/firebase_data_connect/firebase_data_connect/example/pubspec.yaml b/packages/firebase_data_connect/firebase_data_connect/example/pubspec.yaml index 23ce915f53d4..579257eb816a 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/pubspec.yaml +++ b/packages/firebase_data_connect/firebase_data_connect/example/pubspec.yaml @@ -14,7 +14,6 @@ dependencies: flutter: sdk: flutter firebase_core: ^5.0.0 - google_sign_in: ^6.1.0 firebase_auth: ^7.0.0 firebase_data_connect: path: ../ @@ -40,4 +39,5 @@ dev_dependencies: flutter: uses-material-design: true config: - enable-swift-package-manager: false + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_database/firebase_database/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_database/firebase_database/example/ios/Flutter/AppFrameworkInfo.plist index 1dc6cf7652ba..391a902b2beb 100644 --- a/packages/firebase_database/firebase_database/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_database/firebase_database/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 13.0 diff --git a/packages/firebase_database/firebase_database/example/ios/Flutter/Debug.xcconfig b/packages/firebase_database/firebase_database/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_database/firebase_database/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_database/firebase_database/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_database/firebase_database/example/ios/Flutter/Release.xcconfig b/packages/firebase_database/firebase_database/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_database/firebase_database/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_database/firebase_database/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_database/firebase_database/example/ios/Podfile b/packages/firebase_database/firebase_database/example/ios/Podfile deleted file mode 100644 index ed8ea7fb144c..000000000000 --- a/packages/firebase_database/firebase_database/example/ios/Podfile +++ /dev/null @@ -1,62 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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) - - # Ensure Swift modules are properly configured - if target.name == 'firebase_database' - target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '5.0' - config.build_settings['DEFINES_MODULE'] = 'YES' - config.build_settings['SWIFT_INCLUDE_PATHS'] = '$(PODS_TARGET_SRCROOT)/Sources' - end - end - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_database/firebase_database/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_database/firebase_database/example/ios/Runner.xcodeproj/project.pbxproj index 19cb4eae837f..4e1d18ccaea3 100644 --- a/packages/firebase_database/firebase_database/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_database/firebase_database/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,9 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 04FEB374061F47093345F003 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AC3533D54104AE72FF0D02C /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 240A208B8D2B8ED569DBA631 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA2F8D734619046223E1DA5B /* Pods_RunnerTests.framework */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; @@ -45,12 +43,9 @@ /* 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 = ""; }; - 1D7DB1BDFF44198266653C4B /* 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 = ""; }; - 2259EDD3656C0B63A3780DE7 /* 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 = ""; }; 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 = ""; }; - 5AC3533D54104AE72FF0D02C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -61,11 +56,9 @@ 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 = ""; }; - A489E84FEBAB1CBD8F3723A0 /* 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 = ""; }; - AC415A10A8354025C4BEEB0C /* 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 = ""; }; - DB3A9534DBA3075089929E55 /* 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 = ""; }; - ED147C3D26BCC63082C86CBE /* 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 = ""; }; - FA2F8D734619046223E1DA5B /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_database */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_database; path = ../../ios/firebase_database; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -73,7 +66,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 240A208B8D2B8ED569DBA631 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -82,22 +74,12 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 04FEB374061F47093345F003 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0709086D5FB0251425E2ED32 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5AC3533D54104AE72FF0D02C /* Pods_Runner.framework */, - FA2F8D734619046223E1DA5B /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 331C8082294A63A400263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -109,6 +91,9 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_database */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -124,8 +109,6 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - CD999C9DDD0C753849DEB518 /* Pods */, - 0709086D5FB0251425E2ED32 /* Frameworks */, ); sourceTree = ""; }; @@ -153,20 +136,6 @@ path = Runner; sourceTree = ""; }; - CD999C9DDD0C753849DEB518 /* Pods */ = { - isa = PBXGroup; - children = ( - AC415A10A8354025C4BEEB0C /* Pods-Runner.debug.xcconfig */, - ED147C3D26BCC63082C86CBE /* Pods-Runner.release.xcconfig */, - 1D7DB1BDFF44198266653C4B /* Pods-Runner.profile.xcconfig */, - DB3A9534DBA3075089929E55 /* Pods-RunnerTests.debug.xcconfig */, - 2259EDD3656C0B63A3780DE7 /* Pods-RunnerTests.release.xcconfig */, - A489E84FEBAB1CBD8F3723A0 /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -174,7 +143,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 6FE3F0B182216E71219DED43 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, 3A1CC5C1C175EAC210B3D882 /* Frameworks */, @@ -193,14 +161,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 61877008DC004C5A664C05D8 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 2D686905A03E1710D16D5F5F /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -278,23 +244,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 2D686905A03E1710D16D5F5F /* [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; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -311,50 +260,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 61877008DC004C5A664C05D8 /* [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; - }; - 6FE3F0B182216E71219DED43 /* [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; @@ -497,7 +402,6 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DB3A9534DBA3075089929E55 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -515,7 +419,6 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2259EDD3656C0B63A3780DE7 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -531,7 +434,6 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A489E84FEBAB1CBD8F3723A0 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/packages/firebase_database/firebase_database/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_database/firebase_database/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_database/firebase_database/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_database/firebase_database/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_database/firebase_database/example/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/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_database/firebase_database/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_database/firebase_database/example/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/packages/firebase_database/firebase_database/example/macos/Podfile b/packages/firebase_database/firebase_database/example/macos/Podfile deleted file mode 100644 index 71f522e341df..000000000000 --- a/packages/firebase_database/firebase_database/example/macos/Podfile +++ /dev/null @@ -1,127 +0,0 @@ -platform :osx, '12.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 parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exist? file_abs_path - return []; - end - pods_ary = [] - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) { |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - pods_ary.push({:name => podname, :path => podpath}); - else - puts "Invalid plugin specification: #{line}" - end - } - return pods_ary -end - -def pubspec_supports_macos(file) - file_abs_path = File.expand_path(file) - if !File.exist? file_abs_path - return false; - end - File.foreach(file_abs_path) { |line| - return true if line =~ /^\s*macos:/ - } - return false -end - -target 'Runner' do - use_frameworks! - use_modular_headers! - - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - ephemeral_dir = File.join('Flutter', 'ephemeral') - symlink_dir = File.join(ephemeral_dir, '.symlinks') - symlink_plugins_dir = File.join(symlink_dir, 'plugins') - system("rm -rf #{symlink_dir}") - system("mkdir -p #{symlink_plugins_dir}") - - # Flutter Pods - generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig')) - if generated_xcconfig.empty? - puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first." - end - generated_xcconfig.map { |p| - if p[:name] == 'FLUTTER_FRAMEWORK_DIR' - symlink = File.join(symlink_dir, 'flutter') - File.symlink(File.dirname(p[:path]), symlink) - pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path])) - end - } - - # Plugin Pods - require 'json' - plugin_dependencies_file = File.join('..', '.flutter-plugins-dependencies') - if File.exist?(plugin_dependencies_file) - plugin_dependencies = JSON.parse(File.read(plugin_dependencies_file)) - if plugin_dependencies['plugins'] && plugin_dependencies['plugins']['macos'] - plugin_dependencies['plugins']['macos'].each do |plugin| - plugin_name = plugin['name'] - plugin_path = plugin['path'] - symlink = File.join(symlink_plugins_dir, plugin_name) - File.symlink(plugin_path, symlink) - if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml')) - pod plugin_name, :path => File.join(symlink, 'macos') - end - end - end - end -end - -# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. -install! 'cocoapods', :disable_input_output_paths => true - -post_install do |installer| - installer.pods_project.targets.each do |target| - # Ensure Swift modules are properly configured - if target.name == 'firebase_database' - target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '5.0' - config.build_settings['DEFINES_MODULE'] = 'YES' - config.build_settings['SWIFT_INCLUDE_PATHS'] = '$(PODS_TARGET_SRCROOT)/Sources' - end - end - - # Ensure firebase_core is properly configured for Swift import - if target.name == 'firebase_core' - target.build_configurations.each do |config| - config.build_settings['DEFINES_MODULE'] = 'YES' - config.build_settings['CLANG_ENABLE_MODULES'] = 'YES' - config.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES' - end - end - - # Ensure all targets have proper module configuration - target.build_configurations.each do |config| - config.build_settings['CLANG_ENABLE_MODULES'] = 'YES' - config.build_settings['DEFINES_MODULE'] = 'YES' - end - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/project.pbxproj index 4603ded83cc4..70b24b6389f9 100644 --- a/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; B550B1FE23F53792007DADD5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B550B1FD23F53792007DADD5 /* GoogleService-Info.plist */; }; - E1A3C0FEB219DE3059F49DD9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */; }; EF4EBE83B78681F96489BCAB /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 91BA76097B82D81CDBFECCB2 /* GoogleService-Info.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,7 +55,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -73,10 +72,10 @@ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 91BA76097B82D81CDBFECCB2 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - 9BC7A999E9028F67221E5E4C /* 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 = ""; }; - B51643519054BD100F273F38 /* 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 = ""; }; B550B1FD23F53792007DADD5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - D71BFD332DFDD49FEC2851C7 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_database */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_database; path = ../../../macos/firebase_database; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -84,23 +83,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E1A3C0FEB219DE3059F49DD9 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 20D0F4B2FDA2F55D0E4D3C97 /* Pods */ = { - isa = PBXGroup; - children = ( - D71BFD332DFDD49FEC2851C7 /* Pods-Runner.debug.xcconfig */, - B51643519054BD100F273F38 /* Pods-Runner.release.xcconfig */, - 9BC7A999E9028F67221E5E4C /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -118,8 +107,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 20D0F4B2FDA2F55D0E4D3C97 /* Pods */, 91BA76097B82D81CDBFECCB2 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -146,6 +133,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_database */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -168,28 +158,21 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2EDA759B4F18DE63DF0790FB /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - EAC7B8DAC277B926B74FC7DF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - FC16EEED9C2F3A9994D0E928 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -205,6 +188,9 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; @@ -299,43 +285,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - EAC7B8DAC277B926B74FC7DF /* [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; - }; - FC16EEED9C2F3A9994D0E928 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -648,6 +597,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index d543eabce5f7..126b4eb8ea7d 100644 --- a/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_database/firebase_database/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/packages/firebase_database/firebase_database/example/pubspec.yaml b/packages/firebase_database/firebase_database/example/pubspec.yaml index 31603b00d1d9..f27cd1f48701 100755 --- a/packages/firebase_database/firebase_database/example/pubspec.yaml +++ b/packages/firebase_database/firebase_database/example/pubspec.yaml @@ -31,3 +31,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d2456f3..ab8e063fe872 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 11.0 diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Debug.xcconfig b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Release.xcconfig b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Podfile b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Podfile deleted file mode 100644 index a100447ea5d6..000000000000 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/project.pbxproj index cfa173971112..eabdaca5ba23 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -16,8 +16,8 @@ 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 */; }; - B85B36431760BBB71A300C73 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D20BFDD74202727355ACF495 /* Pods_Runner.framework */; }; DDA1370C8A1463432DDE329C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BAAF6AFF5237F41558CC5981 /* GoogleService-Info.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -37,13 +37,10 @@ 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 = ""; }; 25DF74162745949400497988 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - 2D51D38D6F347D924BF73402 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 4DBCB98EE08F0263FFB39A45 /* 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 = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 9697814F64329B9DFDDD2D22 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -53,7 +50,9 @@ 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 = ""; }; BAAF6AFF5237F41558CC5981 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - D20BFDD74202727355ACF495 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_in_app_messaging */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_in_app_messaging; path = ../../ios/firebase_in_app_messaging; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,34 +60,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B85B36431760BBB71A300C73 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3273157BD1F69AB58A8F6978 /* Pods */ = { - isa = PBXGroup; - children = ( - 2D51D38D6F347D924BF73402 /* Pods-Runner.debug.xcconfig */, - 4DBCB98EE08F0263FFB39A45 /* Pods-Runner.release.xcconfig */, - 9697814F64329B9DFDDD2D22 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - 9308F32363B77379BD52E16A /* Frameworks */ = { - isa = PBXGroup; - children = ( - D20BFDD74202727355ACF495 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_in_app_messaging */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -103,8 +87,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 3273157BD1F69AB58A8F6978 /* Pods */, - 9308F32363B77379BD52E16A /* Frameworks */, BAAF6AFF5237F41558CC5981 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -146,17 +128,18 @@ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 9FEE87118A15F39DB7049483 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - FEC61AA3C553D78F9711244C /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -171,9 +154,12 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -220,10 +206,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -234,6 +222,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -246,60 +235,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - 9FEE87118A15F39DB7049483 /* [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; - }; - FEC61AA3C553D78F9711244C /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FirebaseABTesting/FirebaseABTesting.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseInAppMessaging/FirebaseInAppMessaging.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", - "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseABTesting.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInAppMessaging.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -397,7 +332,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -525,7 +463,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -549,7 +490,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -584,6 +528,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/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/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 795421036de2..92d502f0ca52 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + @@ -45,11 +64,13 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner/Info.plist b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner/Info.plist index c6ae23d68982..dc08c775349b 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner/Info.plist +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/ios/Runner/Info.plist @@ -66,5 +66,7 @@ + UIApplicationSupportsIndirectInputEvents + diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/macos/Podfile b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/pubspec.yaml b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/pubspec.yaml index 5fe1b173801e..17cd20f479fc 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/pubspec.yaml +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/pubspec.yaml @@ -17,3 +17,6 @@ dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Debug.xcconfig b/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Release.xcconfig b/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_messaging/firebase_messaging/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_messaging/firebase_messaging/example/ios/Podfile b/packages/firebase_messaging/firebase_messaging/example/ios/Podfile deleted file mode 100644 index a100447ea5d6..000000000000 --- a/packages/firebase_messaging/firebase_messaging/example/ios/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcodeproj/project.pbxproj index eea564d5ee7f..f791d43c43f1 100644 --- a/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,16 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 00E92990C987F9E25B63A112 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45E51992A527D76267EB20C4 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - F091B1FD01EEB458758808F7 /* RemoteNotificationTestChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A13EA793224BCB838D4F327 /* RemoteNotificationTestChannel.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 */; }; + F091B1FD01EEB458758808F7 /* RemoteNotificationTestChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A13EA793224BCB838D4F327 /* RemoteNotificationTestChannel.swift */; }; F2D5D8600D3E9C26CB50CF29 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4033173012D0F59DEEBA9825 /* GoogleService-Info.plist */; }; - 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -38,12 +37,10 @@ 27715A442538A1AE00757C2A /* Firebase Cloud Messaging Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Firebase Cloud Messaging Example.entitlements"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 4033173012D0F59DEEBA9825 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - 45E51992A527D76267EB20C4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5213D4DB21693B7FDB92C6A0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 6A13EA793224BCB838D4F327 /* RemoteNotificationTestChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteNotificationTestChannel.swift; 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 = ""; }; - 6A13EA793224BCB838D4F327 /* RemoteNotificationTestChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteNotificationTestChannel.swift; 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 = ""; }; 97C146EE1CF9000F007C117D /* Firebase Cloud Messaging Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Firebase Cloud Messaging Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -51,8 +48,9 @@ 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 = ""; }; - 9E2B97414E4FE1879B08F585 /* 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 = ""; }; - D9E24403570AB85E2ED73605 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_messaging */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_messaging; path = ../../ios/firebase_messaging; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,26 +59,18 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 00E92990C987F9E25B63A112 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 8C972AC0F42819024E4367EC /* Pods */ = { - isa = PBXGroup; - children = ( - 5213D4DB21693B7FDB92C6A0 /* Pods-Runner.debug.xcconfig */, - 9E2B97414E4FE1879B08F585 /* Pods-Runner.release.xcconfig */, - D9E24403570AB85E2ED73605 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_messaging */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -95,8 +85,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 8C972AC0F42819024E4367EC /* Pods */, - C6DFB291D4DE268ECF1E3926 /* Frameworks */, 4033173012D0F59DEEBA9825 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -126,38 +114,28 @@ path = Runner; sourceTree = ""; }; - C6DFB291D4DE268ECF1E3926 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 45E51992A527D76267EB20C4 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 095EEB27D2A4AE080033180A /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 03DD25D3A2B7EE1A2C7F7CC0 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Firebase Cloud Messaging Example.app */; productType = "com.apple.product-type.application"; @@ -166,9 +144,6 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -189,6 +164,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -214,45 +192,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 03DD25D3A2B7EE1A2C7F7CC0 /* [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; - }; - 095EEB27D2A4AE080033180A /* [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; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -607,12 +546,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_messaging/firebase_messaging/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Debug.xcconfig index 785633d3a86b..c2efd0b608ba 100644 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_messaging/firebase_messaging/example/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/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Release.xcconfig index 5fba960c3af2..c2efd0b608ba 100644 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_messaging/firebase_messaging/example/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/packages/firebase_messaging/firebase_messaging/example/macos/Podfile b/packages/firebase_messaging/firebase_messaging/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/project.pbxproj index fd751104537e..c6651b24a9c0 100644 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/project.pbxproj @@ -28,7 +28,6 @@ 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; B550B1FC23F53648007DADD5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B550B1FB23F53648007DADD5 /* GoogleService-Info.plist */; }; - B6036D992F5B77F0D48D7883 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1026236A547BC5196614E954 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,9 +54,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B4CF9B1CA3F6E07FE2F953C /* 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 = ""; }; - 1026236A547BC5196614E954 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E5E064344044E24673A33BD /* 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 = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* Firebase Cloud Messaging Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Firebase Cloud Messaging Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -72,11 +68,13 @@ 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 = ""; }; - 3D7BD4B06D0869EA1407E048 /* 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 = ""; }; 6BDD63DB43C6689603A39034 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 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 = ""; }; B550B1FB23F53648007DADD5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_messaging */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_messaging; path = ../../../macos/firebase_messaging; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,23 +83,12 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - B6036D992F5B77F0D48D7883 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 286E7513A68DD39907D77423 /* Pods */ = { - isa = PBXGroup; - children = ( - 3D7BD4B06D0869EA1407E048 /* Pods-Runner.debug.xcconfig */, - 1E5E064344044E24673A33BD /* Pods-Runner.release.xcconfig */, - 0B4CF9B1CA3F6E07FE2F953C /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -119,8 +106,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 286E7513A68DD39907D77423 /* Pods */, 6BDD63DB43C6689603A39034 /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -147,6 +132,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_messaging */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -169,14 +157,6 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1026236A547BC5196614E954 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -184,13 +164,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 9C4FABD4FD7B8936CFFEAF31 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - E033F9E34514FF7F419D8FF5 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -241,7 +219,7 @@ ); mainGroup = 33CC10E42044A3C60003C045; packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; @@ -305,46 +283,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - 9C4FABD4FD7B8936CFFEAF31 /* [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; - }; - E033F9E34514FF7F419D8FF5 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/flutter_local_notifications/flutter_local_notifications.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_local_notifications.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -662,7 +600,7 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; diff --git a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 253f3c9857bd..d857d3a1c40d 100644 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -76,6 +76,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_messaging/firebase_messaging/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_messaging/firebase_messaging/example/pubspec.yaml b/packages/firebase_messaging/firebase_messaging/example/pubspec.yaml index e41b500179fe..681eca21133b 100644 --- a/packages/firebase_messaging/firebase_messaging/example/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging/example/pubspec.yaml @@ -26,3 +26,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_performance/firebase_performance/example/ios/Flutter/Debug.xcconfig b/packages/firebase_performance/firebase_performance/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_performance/firebase_performance/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_performance/firebase_performance/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_performance/firebase_performance/example/ios/Flutter/Release.xcconfig b/packages/firebase_performance/firebase_performance/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_performance/firebase_performance/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_performance/firebase_performance/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_performance/firebase_performance/example/ios/Podfile b/packages/firebase_performance/firebase_performance/example/ios/Podfile deleted file mode 100644 index 1050739f2d1d..000000000000 --- a/packages/firebase_performance/firebase_performance/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_performance/firebase_performance/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_performance/firebase_performance/example/ios/Runner.xcodeproj/project.pbxproj index 32e6443b8bea..2f0751171046 100644 --- a/packages/firebase_performance/firebase_performance/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_performance/firebase_performance/example/ios/Runner.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 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 */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -57,6 +58,9 @@ 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_performance */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_performance; path = ../../ios/firebase_performance; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -64,6 +68,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -81,6 +86,9 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_performance */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -145,6 +153,9 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( @@ -160,8 +171,6 @@ dependencies = ( ); name = Runner; - packageProductDependencies = ( - ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -170,6 +179,9 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -620,7 +632,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ - +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/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/packages/firebase_performance/firebase_performance/example/pubspec.yaml b/packages/firebase_performance/firebase_performance/example/pubspec.yaml index b81ae9b4eb17..2ce5772a2ec6 100644 --- a/packages/firebase_performance/firebase_performance/example/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance/example/pubspec.yaml @@ -26,3 +26,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/AppFrameworkInfo.plist index b3aaa733dfbb..6fe4034356ac 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/AppFrameworkInfo.plist @@ -24,7 +24,5 @@ arm64 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Podfile b/packages/firebase_remote_config/firebase_remote_config/example/ios/Podfile deleted file mode 100644 index ca724824f057..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project - platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj index de6b21ededee..bf1b928df0bd 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj @@ -8,9 +8,9 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 3727B1F241E6C1CC3918268E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 7633732D245146D3E8D89BAC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 96648553A35D8487B2A4CA10 /* GoogleService-Info.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; @@ -18,7 +18,6 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -38,8 +37,6 @@ 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5877CA425A3244F1F5D2A97A /* 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 = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -52,7 +49,9 @@ 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 = ""; }; - BDB0B468AA7D8CAD6C211602 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_remote_config */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_remote_config; path = ../../ios/firebase_remote_config; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,34 +60,18 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 3727B1F241E6C1CC3918268E /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 18A23727156B71DF2EBC4BBF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 657DD3F2D5A59EA96D647065 /* Pods */ = { - isa = PBXGroup; - children = ( - BDB0B468AA7D8CAD6C211602 /* Pods-Runner.debug.xcconfig */, - 5877CA425A3244F1F5D2A97A /* Pods-Runner.release.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_remote_config */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -104,8 +87,6 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 96648553A35D8487B2A4CA10 /* GoogleService-Info.plist */, - 657DD3F2D5A59EA96D647065 /* Pods */, - 18A23727156B71DF2EBC4BBF /* Frameworks */, ); sourceTree = ""; }; @@ -145,13 +126,9 @@ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 77F626D5D401DBC3550E44D8 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, @@ -164,6 +141,9 @@ dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -172,9 +152,6 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -195,6 +172,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -238,28 +218,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 77F626D5D401DBC3550E44D8 /* [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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -482,12 +440,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 31ab5b7605e9..1eb76be2b7ad 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -44,6 +44,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" language = "" shouldUseLaunchSchemeArgsEnv = "YES"> @@ -64,12 +65,14 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/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/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/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/packages/firebase_remote_config/firebase_remote_config/example/macos/Podfile b/packages/firebase_remote_config/firebase_remote_config/example/macos/Podfile deleted file mode 100644 index 74329eb8c0a0..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -platform :osx, '12.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', '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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/project.pbxproj index ba153e004612..8aba4aa3ff83 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/project.pbxproj @@ -81,6 +81,9 @@ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_remote_config */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_remote_config; path = ../../../macos/firebase_remote_config; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -102,13 +105,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0E36ACC1196E8D8E9FC2123E /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; 331C80D6294CF71000263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -136,7 +132,6 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, - 0E36ACC1196E8D8E9FC2123E /* Pods */, ); sourceTree = ""; }; @@ -163,6 +158,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_remote_config */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -268,7 +266,7 @@ ); mainGroup = 33CC10E42044A3C60003C045; packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; @@ -707,7 +705,7 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; diff --git a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 9963aa3613b4..ee5d00fc0aa9 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -77,6 +77,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_remote_config/firebase_remote_config/example/pubspec.yaml b/packages/firebase_remote_config/firebase_remote_config/example/pubspec.yaml index be93e234a520..9e625d2d87a6 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/pubspec.yaml +++ b/packages/firebase_remote_config/firebase_remote_config/example/pubspec.yaml @@ -25,3 +25,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/packages/firebase_storage/firebase_storage/example/ios/Flutter/Debug.xcconfig b/packages/firebase_storage/firebase_storage/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100755 --- a/packages/firebase_storage/firebase_storage/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_storage/firebase_storage/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_storage/firebase_storage/example/ios/Flutter/Release.xcconfig b/packages/firebase_storage/firebase_storage/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100755 --- a/packages/firebase_storage/firebase_storage/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_storage/firebase_storage/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_storage/firebase_storage/example/ios/Podfile b/packages/firebase_storage/firebase_storage/example/ios/Podfile deleted file mode 100644 index 1050739f2d1d..000000000000 --- a/packages/firebase_storage/firebase_storage/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_storage/firebase_storage/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_storage/firebase_storage/example/ios/Runner.xcodeproj/project.pbxproj index 3fffed27f781..621a83ca3583 100644 --- a/packages/firebase_storage/firebase_storage/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_storage/firebase_storage/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 3844E91937B60ECC8231C3C9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B87F8A9D34F2EDB6C0C3EC13 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 5C6F5A711EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C6F5A701EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; @@ -35,7 +34,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 02CA5B04FD87E7B77B3477E2 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 5C6F5A6F1EC3CCCC008D64B5 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 5C6F5A701EC3CCCC008D64B5 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; @@ -44,7 +42,6 @@ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 7D3FF503ADD31142011A1271 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -53,8 +50,9 @@ 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 = ""; }; - B87F8A9D34F2EDB6C0C3EC13 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FFBFFC26A733835824F4674E /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_storage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_storage; path = ../../ios/firebase_storage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,7 +61,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 3844E91937B60ECC8231C3C9 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -73,6 +70,8 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_storage */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, @@ -89,8 +88,6 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, FFBFFC26A733835824F4674E /* GoogleService-Info.plist */, - E6FBE2EBD3E88C317FEF8092 /* Pods */, - E437F81FDC10E2D0A1D19577 /* Frameworks */, ); sourceTree = ""; }; @@ -127,24 +124,6 @@ name = "Supporting Files"; sourceTree = ""; }; - E437F81FDC10E2D0A1D19577 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B87F8A9D34F2EDB6C0C3EC13 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - E6FBE2EBD3E88C317FEF8092 /* Pods */ = { - isa = PBXGroup; - children = ( - 02CA5B04FD87E7B77B3477E2 /* Pods-Runner.debug.xcconfig */, - 7D3FF503ADD31142011A1271 /* Pods-Runner.release.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -152,14 +131,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - D8B88DC4DEDF810D55026CB6 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 545E69528F1478FA4BB537F8 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -243,24 +220,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 545E69528F1478FA4BB537F8 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/image_picker_ios/image_picker_ios.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker_ios.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -276,28 +235,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - D8B88DC4DEDF810D55026CB6 /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_storage/firebase_storage/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_storage/firebase_storage/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100755 --- a/packages/firebase_storage/firebase_storage/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_storage/firebase_storage/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_storage/firebase_storage/example/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/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/packages/firebase_storage/firebase_storage/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_storage/firebase_storage/example/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/packages/firebase_storage/firebase_storage/example/macos/Podfile b/packages/firebase_storage/firebase_storage/example/macos/Podfile deleted file mode 100644 index 4e2f6718d226..000000000000 --- a/packages/firebase_storage/firebase_storage/example/macos/Podfile +++ /dev/null @@ -1,52 +0,0 @@ -platform :osx, '12.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', '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 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_storage/firebase_storage/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_storage/firebase_storage/example/macos/Runner.xcodeproj/project.pbxproj index 148cef25d5a3..28693d9dcf4f 100644 --- a/packages/firebase_storage/firebase_storage/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_storage/firebase_storage/example/macos/Runner.xcodeproj/project.pbxproj @@ -26,7 +26,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 */; }; - 63403F6A428DA60E10A2595D /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE605D25EFFDD602C9F761F8 /* Pods_Runner.framework */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; B567FAAF240D1F2E0031F210 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B567FAAE240D1F2E0031F210 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ @@ -69,14 +68,12 @@ 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 = ""; }; - 623F4E175EF0069D1AA8A1AE /* 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 = ""; }; 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 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 = ""; }; B567FAAE240D1F2E0031F210 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - C3646871CA51D698A507597B /* 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 = ""; }; - D9D2C6DBE5825E9F4666F7FB /* 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 = ""; }; - DE605D25EFFDD602C9F761F8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_storage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_storage; path = ../../../macos/firebase_storage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,7 +82,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 63403F6A428DA60E10A2595D /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -109,8 +105,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - AD15C4C49EC9F95C69182D56 /* Pods */, - A4B69BA4BE5E9A5F09E6B5FF /* Frameworks */, ); sourceTree = ""; }; @@ -136,6 +130,8 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_storage */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, @@ -159,24 +155,6 @@ path = Runner; sourceTree = ""; }; - A4B69BA4BE5E9A5F09E6B5FF /* Frameworks */ = { - isa = PBXGroup; - children = ( - DE605D25EFFDD602C9F761F8 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - AD15C4C49EC9F95C69182D56 /* Pods */ = { - isa = PBXGroup; - children = ( - 623F4E175EF0069D1AA8A1AE /* Pods-Runner.debug.xcconfig */, - C3646871CA51D698A507597B /* Pods-Runner.release.xcconfig */, - D9D2C6DBE5825E9F4666F7FB /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -184,13 +162,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - B1E1BD247C18DFABBA7F433A /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 0E2E82C8DA2AA4C782E46D76 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -267,24 +243,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0E2E82C8DA2AA4C782E46D76 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/file_selector_macos/file_selector_macos.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_selector_macos.framework", - ); - 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; @@ -323,28 +281,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - B1E1BD247C18DFABBA7F433A /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_storage/firebase_storage/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_storage/firebase_storage/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_storage/firebase_storage/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_storage/firebase_storage/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_storage/firebase_storage/example/pubspec.yaml b/packages/firebase_storage/firebase_storage/example/pubspec.yaml index be1f3cfe212e..9f2827b79fd9 100755 --- a/packages/firebase_storage/firebase_storage/example/pubspec.yaml +++ b/packages/firebase_storage/firebase_storage/example/pubspec.yaml @@ -31,3 +31,6 @@ flutter: uses-material-design: true assets: - assets/hello.txt + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true diff --git a/tests/ios/Flutter/AppFrameworkInfo.plist b/tests/ios/Flutter/AppFrameworkInfo.plist index 1dc6cf7652ba..391a902b2beb 100644 --- a/tests/ios/Flutter/AppFrameworkInfo.plist +++ b/tests/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 13.0 diff --git a/tests/ios/Flutter/Debug.xcconfig b/tests/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/tests/ios/Flutter/Debug.xcconfig +++ b/tests/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/tests/ios/Flutter/Release.xcconfig b/tests/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/tests/ios/Flutter/Release.xcconfig +++ b/tests/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/tests/ios/Podfile b/tests/ios/Podfile deleted file mode 100644 index 803dbf424c11..000000000000 --- a/tests/ios/Podfile +++ /dev/null @@ -1,71 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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__)) - - if defined?($FirebaseSDKVersion) - Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version for FirebaseFirestore framework: '#{$FirebaseSDKVersion}'" - firebase_sdk_version = $FirebaseSDKVersion - else - firebase_core_script = File.expand_path('../../packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') - if File.exist?(firebase_core_script) - require firebase_core_script - firebase_sdk_version = firebase_sdk_version! - Pod::UI.puts "Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core for FirebaseFirestore framework'" - else - raise "Error - unable to locate firebase_ios_sdk.rb script in firebase_core, and no FirebaseSDKVersion specified" - end - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - target.build_configurations.each do |config| - # Optionally use "relative" compiler paths. This allows use of ccache if it is in your PATH. - config.build_settings["CC"] = "clang" - config.build_settings["LD"] = "clang" - config.build_settings["CXX"] = "clang++" - config.build_settings["LDPLUSPLUS"] = "clang++" - end - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/tests/ios/Runner.xcodeproj/project.pbxproj b/tests/ios/Runner.xcodeproj/project.pbxproj index 9d34335f3029..c64de5781f7a 100644 --- a/tests/ios/Runner.xcodeproj/project.pbxproj +++ b/tests/ios/Runner.xcodeproj/project.pbxproj @@ -13,7 +13,7 @@ 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 */; }; - B8600B587CDDC4BA51994195 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6DE5C6F8B4D16F2BF597732 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,10 +32,8 @@ /* 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 = ""; }; - 29DCF5BB48C5B80F2EE02483 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 46682439286310F7005ADD39 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - 56B65A6814148F63F80E1BCD /* 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 = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -46,8 +44,7 @@ 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 = ""; }; - A3CCB64392E4AE128B41755D /* 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 = ""; }; - B6DE5C6F8B4D16F2BF597732 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -55,34 +52,17 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B8600B587CDDC4BA51994195 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1BEC576FD554261C73996AD8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B6DE5C6F8B4D16F2BF597732 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 50CAA2C9E1BF48102CE7C86D /* Pods */ = { - isa = PBXGroup; - children = ( - 29DCF5BB48C5B80F2EE02483 /* Pods-Runner.debug.xcconfig */, - 56B65A6814148F63F80E1BCD /* Pods-Runner.release.xcconfig */, - A3CCB64392E4AE128B41755D /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -97,8 +77,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 50CAA2C9E1BF48102CE7C86D /* Pods */, - 1BEC576FD554261C73996AD8 /* Frameworks */, ); sourceTree = ""; }; @@ -130,19 +108,18 @@ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 73AF29AE49A9551E6E30720C /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - AC660AAB7696B4DD121B84D0 /* [CP] Embed Pods Frameworks */, - 5F39B4E393588B005ADEE74A /* [firebase_crashlytics] Crashlytics Upload Symbols */, - F1015417B5D9820E415008CA /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -157,6 +134,9 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -217,48 +197,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 5F39B4E393588B005ADEE74A /* [firebase_crashlytics] Crashlytics Upload Symbols */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}\"", - "\"$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)\"", - ); - name = "[firebase_crashlytics] Crashlytics Upload Symbols"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$PODS_ROOT/FirebaseCrashlytics/upload-symbols\" --flutter-project \"$PROJECT_DIR/firebase_app_id_file.json\" "; - }; - 73AF29AE49A9551E6E30720C /* [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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -274,40 +212,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - AC660AAB7696B4DD121B84D0 /* [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; - }; - F1015417B5D9820E415008CA /* [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 */ @@ -593,6 +497,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/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/tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 9c12df59c622..5db441f58ab9 100644 --- a/tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/tests/macos/Flutter/Flutter-Debug.xcconfig b/tests/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d200..c2efd0b608ba 100644 --- a/tests/macos/Flutter/Flutter-Debug.xcconfig +++ b/tests/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/tests/macos/Flutter/Flutter-Release.xcconfig b/tests/macos/Flutter/Flutter-Release.xcconfig index 5caa9d1579e4..c2efd0b608ba 100644 --- a/tests/macos/Flutter/Flutter-Release.xcconfig +++ b/tests/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/tests/macos/Podfile b/tests/macos/Podfile deleted file mode 100644 index f4a6d416b91f..000000000000 --- a/tests/macos/Podfile +++ /dev/null @@ -1,70 +0,0 @@ -platform :osx, '12.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', '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__)) - - if defined?($FirebaseSDKVersion) - Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version for FirebaseFirestore framework: '#{$FirebaseSDKVersion}'" - firebase_sdk_version = $FirebaseSDKVersion - else - firebase_core_script = File.expand_path('../../packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') - if File.exist?(firebase_core_script) - require firebase_core_script - firebase_sdk_version = firebase_sdk_version! - Pod::UI.puts "Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core for FirebaseFirestore framework'" - else - raise "Error - unable to locate firebase_ios_sdk.rb script in firebase_core, and no FirebaseSDKVersion specified" - end - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - target.build_configurations.each do |config| - # Optionally use "relative" compiler paths. This allows use of ccache if it is in your PATH. - config.build_settings["CC"] = "clang" - config.build_settings["LD"] = "clang" - config.build_settings["CXX"] = "clang++" - config.build_settings["LDPLUSPLUS"] = "clang++" - end - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/tests/macos/Runner.xcodeproj/project.pbxproj b/tests/macos/Runner.xcodeproj/project.pbxproj index e711bc1c4549..1bafe188e6c6 100644 --- a/tests/macos/Runner.xcodeproj/project.pbxproj +++ b/tests/macos/Runner.xcodeproj/project.pbxproj @@ -26,7 +26,7 @@ 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 */; }; - 95C472F1928A9C133E40D090 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0110999884E2A6FD68144B8A /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -53,8 +53,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0110999884E2A6FD68144B8A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 16E3DE49D099A914502EAEAC /* 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 = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* tests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tests.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -69,10 +67,9 @@ 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 = ""; }; - 6385605C4EC2F1BA90686527 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - F2588DFC05D5B5F41376BEBC /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -80,23 +77,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 95C472F1928A9C133E40D090 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 19C1DE03407E2397ABBD426E /* Pods */ = { - isa = PBXGroup; - children = ( - 6385605C4EC2F1BA90686527 /* Pods-Runner.debug.xcconfig */, - 16E3DE49D099A914502EAEAC /* Pods-Runner.release.xcconfig */, - F2588DFC05D5B5F41376BEBC /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -114,8 +101,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 19C1DE03407E2397ABBD426E /* Pods */, ); sourceTree = ""; }; @@ -141,6 +126,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -162,29 +148,21 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0110999884E2A6FD68144B8A /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 2BD3FA45B733BFA63623C680 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - B6FDA406E9A0EB363B9CC88C /* [CP] Embed Pods Frameworks */, - 76D37D3A2A5275D5E0B8B1B9 /* [firebase_crashlytics] Crashlytics Upload Symbols */, ); buildRules = ( ); @@ -200,10 +178,13 @@ /* Begin PBXProject section */ 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -254,28 +235,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 2BD3FA45B733BFA63623C680 /* [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; - }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -314,43 +273,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 76D37D3A2A5275D5E0B8B1B9 /* [firebase_crashlytics] Crashlytics Upload Symbols */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}\"", - "\"$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)\"", - ); - name = "[firebase_crashlytics] Crashlytics Upload Symbols"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$PODS_ROOT/FirebaseCrashlytics/upload-symbols\" --flutter-project \"$PROJECT_DIR/firebase_app_id_file.json\" "; - }; - B6FDA406E9A0EB363B9CC88C /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -658,6 +580,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/tests/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/tests/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 33e15ac158a6..9f0ad14f1fe8 100644 --- a/tests/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/tests/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + diff --git a/tests/macos/Runner.xcworkspace/contents.xcworkspacedata b/tests/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/tests/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/tests/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/tests/macos/Runner/AppDelegate.swift b/tests/macos/Runner/AppDelegate.swift index d53ef6437726..b3c176141221 100644 --- a/tests/macos/Runner/AppDelegate.swift +++ b/tests/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/tests/pubspec.yaml b/tests/pubspec.yaml index 5c6715320fe0..4b184409105d 100644 --- a/tests/pubspec.yaml +++ b/tests/pubspec.yaml @@ -60,3 +60,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true From 6a677b57a97b980ac3a204d528331730907df456 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 09:15:13 +0200 Subject: [PATCH 02/10] ci: build Apple e2e and smoke jobs with Swift Package Manager - reusable macOS e2e: SPM by default, with a `macos-spm` opt-out like the iOS job's `ios-spm`; firebase_auth and firebase_crashlytics keep CocoaPods on both platforms - cloud_functions and firebase_performance iOS rejoin SPM: the Xcode 26.2 pin their opt-out blamed is gone - firebase_data_connect iOS and the smoke app's iOS/macOS jobs switch from CocoaPods to SPM and drop their Pods caches - drop the CI-time `pod deintegrate` steps now that the examples commit no Podfile - fail every SPM build that still runs `pod install`, so a silent CocoaPods fallback can't pass - document the SPM-only setup in CONTRIBUTING.md --- .github/workflows/e2e_tests_auth.yaml | 2 + .github/workflows/e2e_tests_crashlytics.yaml | 1 + .github/workflows/e2e_tests_fdc.yaml | 33 +++------ .github/workflows/e2e_tests_functions.yaml | 8 -- .github/workflows/e2e_tests_performance.yaml | 8 -- .github/workflows/e2e_tests_pipeline.yaml | 17 ++--- .github/workflows/e2e_tests_smoke.yaml | 74 ++++++------------- .github/workflows/reusable_e2e_ios.yaml | 49 +++++------- .github/workflows/reusable_e2e_macos.yaml | 55 ++++++++++++-- .../workflows/scripts/swift-integration.dart | 3 - CONTRIBUTING.md | 5 ++ 11 files changed, 116 insertions(+), 139 deletions(-) diff --git a/.github/workflows/e2e_tests_auth.yaml b/.github/workflows/e2e_tests_auth.yaml index 976dcc275766..6cecd17feef2 100644 --- a/.github/workflows/e2e_tests_auth.yaml +++ b/.github/workflows/e2e_tests_auth.yaml @@ -105,6 +105,8 @@ jobs: package-path: 'packages/firebase_auth/firebase_auth' package-scope: 'firebase_auth*' cache-key-suffix: 'auth' + # Same google_sign_in blocker as the iOS job above. + macos-spm: false # Same plist derivation as the iOS job above. native-config-args: '--live-tier-plist=auth' inject-config-secrets: true diff --git a/.github/workflows/e2e_tests_crashlytics.yaml b/.github/workflows/e2e_tests_crashlytics.yaml index 8212b63f28c4..e04f37e8aed7 100644 --- a/.github/workflows/e2e_tests_crashlytics.yaml +++ b/.github/workflows/e2e_tests_crashlytics.yaml @@ -94,6 +94,7 @@ jobs: package-path: 'packages/firebase_crashlytics/firebase_crashlytics' package-scope: 'firebase_crashlytics*' cache-key-suffix: 'crashlytics' + macos-spm: false native-config-args: '--live-tier-plist=crashlytics' inject-config-secrets: true use-firebase-emulators: false diff --git a/.github/workflows/e2e_tests_fdc.yaml b/.github/workflows/e2e_tests_fdc.yaml index 0615c85fa9cc..5cfbaf4a39bd 100644 --- a/.github/workflows/e2e_tests_fdc.yaml +++ b/.github/workflows/e2e_tests_fdc.yaml @@ -135,6 +135,9 @@ jobs: npm-cache: 'false' firebase-tools-version: '15.25.1' bootstrap-scope: 'firebase_data_connect*' + - name: Enable Swift Package Manager + # The example's pubspec also pins this; there is no Podfile. + run: flutter config --enable-swift-package-manager - name: Setup PostgreSQL for Linux/macOS/Windows uses: ikalnytskyi/action-setup-postgres@c4dda34aae1c821e3a771b68b73b13af3198a7ee - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d @@ -143,18 +146,6 @@ jobs: key: xcode-cache-${{ runner.os }}-xcode27 save: "${{ github.ref == 'refs/heads/main' }}" max-size: 700M - - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - continue-on-error: true - name: Pods Cache - id: pods-cache - with: - # Must match the save path exactly - path: packages/firebase_data_connect/firebase_data_connect/example/ios/Pods - # tests/pubspec.lock is gitignored, so the old key hashed nothing and - # the cache never invalidated. Key on the files that actually pin the - # native SDK version instead. - key: ${{ runner.os }}-fdc-pods-v3-${{ hashFiles('packages/firebase_data_connect/firebase_data_connect/example/ios/Podfile', 'packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') }} - restore-keys: ${{ runner.os }}-fdc-pods-v3- - name: Firebase Emulator Cache id: firebase-emulator-cache uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 @@ -174,8 +165,15 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - flutter build ios --no-codesign --simulator --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true + set -o pipefail + flutter build ios --no-codesign --simulator --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true 2>&1 | tee build_output.log ccache -s + # Flutter silently falls back to CocoaPods when the example has a + # Podfile or a plugin has no Package.swift. + if grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." + exit 1 + fi - name: Start Firebase Emulator run: | sudo chown -R 501:20 "/Users/runner/.npm" @@ -217,15 +215,6 @@ jobs: key: ${{ steps.firebase-emulator-cache.outputs.cache-primary-key }} # Must match the restore path exactly path: ~/.cache/firebase/emulators - - name: Save Pods Cache - # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: github.ref == 'refs/heads/main' - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - continue-on-error: true - with: - key: ${{ steps.pods-cache.outputs.cache-primary-key }} - # Must match the restore path exactly - path: packages/firebase_data_connect/firebase_data_connect/example/ios/Pods web: runs-on: macos-latest diff --git a/.github/workflows/e2e_tests_functions.yaml b/.github/workflows/e2e_tests_functions.yaml index d205e3f0f696..b979d19c69c6 100644 --- a/.github/workflows/e2e_tests_functions.yaml +++ b/.github/workflows/e2e_tests_functions.yaml @@ -66,14 +66,6 @@ jobs: package-path: 'packages/cloud_functions/cloud_functions' package-scope: 'cloud_functions*' cache-key-suffix: 'functions' - # CocoaPods for now: Flutter's experimental SPM integration kept failing - # to resolve this example's plugin siblings ("Could not resolve package - # dependencies ... ios/firebase_core does not exist"). Dropping the Xcode - # 26.2 pin (see `reusable_e2e_ios.yaml`) is the likely fix, but one - # variable at a time - these two rejoin SPM once the default-Xcode runs - # prove clean. iOS SPM coverage is unaffected meanwhile: storage, - # database and firestore still build under it. - ios-spm: false native-config-args: '--functions-native' nightly_test_mode: ${{ inputs.nightly_test_mode == true }} diff --git a/.github/workflows/e2e_tests_performance.yaml b/.github/workflows/e2e_tests_performance.yaml index 6b9c5eaba1d0..25daeeaa420a 100644 --- a/.github/workflows/e2e_tests_performance.yaml +++ b/.github/workflows/e2e_tests_performance.yaml @@ -79,14 +79,6 @@ jobs: package-path: 'packages/firebase_performance/firebase_performance' package-scope: 'firebase_performance*' cache-key-suffix: 'performance' - # CocoaPods for now: Flutter's experimental SPM integration kept failing - # to resolve this example's plugin siblings ("Could not resolve package - # dependencies ... ios/firebase_core does not exist"). Dropping the Xcode - # 26.2 pin (see `reusable_e2e_ios.yaml`) is the likely fix, but one - # variable at a time - these two rejoin SPM once the default-Xcode runs - # prove clean. iOS SPM coverage is unaffected meanwhile: storage, - # database and firestore still build under it. - ios-spm: false native-config-args: '--live-tier-plist=performance' inject-config-secrets: true use-firebase-emulators: false diff --git a/.github/workflows/e2e_tests_pipeline.yaml b/.github/workflows/e2e_tests_pipeline.yaml index 4acb49e16acc..6a81a3b71b47 100644 --- a/.github/workflows/e2e_tests_pipeline.yaml +++ b/.github/workflows/e2e_tests_pipeline.yaml @@ -195,14 +195,6 @@ jobs: # symlink farm; the image-default Xcode resolves it fine, as the # e2e-firestore SPM job proves every run. run: flutter config --enable-swift-package-manager - - name: Prepare iOS project for Swift Package Manager - # The committed Podfile is what CocoaPods users of the example rely - # on, and `flutter build` prefers CocoaPods whenever one is present. - working-directory: packages/cloud_firestore/cloud_firestore/pipeline_example/ios - run: | - if [ -f Podfile ]; then pod deintegrate; fi - rm -f Podfile Podfile.lock - rm -rf Pods - uses: futureware-tech/simulator-action@e89aa8f93d3aec35083ff49d2854d07f7186f7f5 id: simulator with: @@ -225,8 +217,15 @@ jobs: cat build_output.log if [ $BUILD_EXIT -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then echo "SPM package resolution race detected; retrying the build once." - flutter build ios --no-codesign --simulator --debug --target=./integration_test/pipeline/pipeline_live_test.dart --dart-define=CI=true + flutter build ios --no-codesign --simulator --debug --target=./integration_test/pipeline/pipeline_live_test.dart --dart-define=CI=true > build_output.log 2>&1 BUILD_EXIT=$? + cat build_output.log + fi + # Flutter silently falls back to CocoaPods when the example has a + # Podfile or a plugin has no Package.swift. + if grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." + exit 1 fi exit $BUILD_EXIT - name: Ensure Simulator Ready diff --git a/.github/workflows/e2e_tests_smoke.yaml b/.github/workflows/e2e_tests_smoke.yaml index 4907d81551d0..3099cf3222d7 100644 --- a/.github/workflows/e2e_tests_smoke.yaml +++ b/.github/workflows/e2e_tests_smoke.yaml @@ -211,10 +211,9 @@ jobs: with: firebase-tools-version: '15.25.1' bootstrap-scope: tests - - name: Disable Swift Package Manager - # Recent stable Flutter enables SPM by default; the smoke app's Apple - # builds are CocoaPods by design (tests/ios, tests/macos Podfiles). - run: flutter config --no-enable-swift-package-manager + - name: Enable Swift Package Manager + # tests/pubspec.yaml also pins this; there is no Podfile. + run: flutter config --enable-swift-package-manager - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d name: Xcode Compile Cache with: @@ -223,18 +222,6 @@ jobs: key: xcode-ccache-ios-xcode27 save: "${{ github.ref == 'refs/heads/main' }}" max-size: 700M - - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - continue-on-error: true - name: Pods Cache - id: pods-cache - with: - # Must match the save path exactly - path: tests/ios/Pods - # Keyed on the Podfile and the pinned Firebase SDK version, not tests/pubspec.lock: - # that file is gitignored, so hashFiles() returned an empty string and the key - # never changed - the cache could never be invalidated. - key: pods-v5-${{ runner.os }}-ios-${{ hashFiles('tests/ios/Podfile', 'packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') }} - restore-keys: pods-v5-${{ runner.os }}-ios- - name: Firebase Emulator Cache id: firebase-emulator-cache uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 @@ -259,8 +246,15 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - flutter build ios --no-codesign --simulator --debug --target=./integration_test/core_shard_test.dart --dart-define=CI=true + set -o pipefail + flutter build ios --no-codesign --simulator --debug --target=./integration_test/core_shard_test.dart --dart-define=CI=true 2>&1 | tee build_output.log ccache -s + # Flutter silently falls back to CocoaPods when the app has a Podfile + # or a plugin has no Package.swift. + if grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: the smoke app must build with Swift Package Manager only." + exit 1 + fi - name: Install Cloud Functions dependencies # `firebase emulators:exec` does not install these itself (the old # start-firebase-emulator.sh wrapper did); without them the functions @@ -308,15 +302,6 @@ jobs: key: ${{ steps.firebase-emulator-cache.outputs.cache-primary-key }} # Must match the restore paths exactly path: ~/.cache/firebase/emulators - - name: Save Pods Cache - # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: github.ref == 'refs/heads/main' - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - continue-on-error: true - with: - key: ${{ steps.pods-cache.outputs.cache-primary-key }} - # Must match the restore paths exactly - path: tests/ios/Pods macos: needs: changes @@ -331,10 +316,9 @@ jobs: with: firebase-tools-version: '15.25.1' bootstrap-scope: tests - - name: Disable Swift Package Manager - # Recent stable Flutter enables SPM by default; the smoke app's Apple - # builds are CocoaPods by design (tests/ios, tests/macos Podfiles). - run: flutter config --no-enable-swift-package-manager + - name: Enable Swift Package Manager + # tests/pubspec.yaml also pins this; there is no Podfile. + run: flutter config --enable-swift-package-manager - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d name: Xcode Compile Cache with: @@ -343,18 +327,6 @@ jobs: key: xcode-ccache-macos-xcode27 save: "${{ github.ref == 'refs/heads/main' }}" max-size: 700M - - name: Pods Cache - continue-on-error: true - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - id: pods-cache - with: - # Must match the save path exactly - path: tests/macos/Pods - # Keyed on the Podfile and the pinned Firebase SDK version, not tests/pubspec.lock: - # that file is gitignored, so hashFiles() returned an empty string and the key - # never changed - the cache could never be invalidated. - key: pods-v5-${{ runner.os }}-macos-${{ hashFiles('tests/macos/Podfile', 'packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') }} - restore-keys: pods-v5-${{ runner.os }}-macos- - name: Firebase Emulator Cache id: firebase-emulator-cache uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 @@ -379,8 +351,15 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - flutter build macos --debug --target=./integration_test/core_shard_test.dart --device-id=macos --dart-define=CI=true + set -o pipefail + flutter build macos --debug --target=./integration_test/core_shard_test.dart --device-id=macos --dart-define=CI=true 2>&1 | tee build_output.log ccache -s + # Flutter silently falls back to CocoaPods when the app has a Podfile + # or a plugin has no Package.swift. + if grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: the smoke app must build with Swift Package Manager only." + exit 1 + fi - name: Install Cloud Functions dependencies # `firebase emulators:exec` does not install these itself (the old # start-firebase-emulator.sh wrapper did); without them the functions @@ -440,15 +419,6 @@ jobs: key: ${{ steps.firebase-emulator-cache.outputs.cache-primary-key }} # Must match the restore path exactly path: ~/.cache/firebase/emulators - - name: Save Pods Cache - continue-on-error: true - # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: github.ref == 'refs/heads/main' - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - with: - key: ${{ steps.pods-cache.outputs.cache-primary-key }} - # Must match the restore paths exactly - path: tests/macos/Pods web: needs: changes diff --git a/.github/workflows/reusable_e2e_ios.yaml b/.github/workflows/reusable_e2e_ios.yaml index 83ab4212c59e..57faeed4a8e8 100644 --- a/.github/workflows/reusable_e2e_ios.yaml +++ b/.github/workflows/reusable_e2e_ios.yaml @@ -4,9 +4,9 @@ name: reusable-e2e-ios # simulator and run the integration tests on it. Called by every # `e2e_tests_.yaml` - every product supports iOS. # -# This job is the repository's Swift Package Manager coverage (`ios-spm`, -# default true); the macOS job is always CocoaPods, so both dependency managers -# stay exercised. +# Builds with Swift Package Manager (`ios-spm`, default true), like the macOS +# job. `ios-spm: false` is only for the examples that cannot resolve under SPM +# yet and still commit a Podfile. on: workflow_call: @@ -75,16 +75,13 @@ on: required: true ios-spm: description: >- - true = iOS builds under Swift Package Manager (the Podfile is removed - first, so `flutter build` does not prefer CocoaPods). + true = iOS builds under Swift Package Manager. The example must not + commit a Podfile, and the build fails if Flutter falls back + to `pod install` anyway. false = iOS stays on CocoaPods and gets a Pods cache, as firebase_crashlytics must (its Xcode project runs - "${PODS_ROOT}/FirebaseCrashlytics/run") and as cloud_functions - and firebase_performance currently must (Flutter's - experimental SPM integration cannot resolve their examples on - the CI Xcode). - The macOS job is always CocoaPods, so both dependency managers stay - covered either way. + "${PODS_ROOT}/FirebaseCrashlytics/run") and as firebase_auth + must (google_sign_in cannot resolve under SPM). type: boolean default: true info-plist-overrides: @@ -130,15 +127,14 @@ jobs: TEST_TARGET: ${{ inputs.test-target }} NATIVE_CONFIG_ARGS: ${{ inputs.native-config-args }} INFO_PLIST_OVERRIDES: ${{ inputs.info-plist-overrides }} + IOS_SPM: ${{ inputs.ios-spm }} timeout-minutes: ${{ inputs.nightly_test_mode && 5 || 60 }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # Use the xcode-27 image default (Xcode 27 / iOS 27). Do not pin an older # Xcode: pinning 26.2 on macos-15 made SPM fail by canonicalizing Flutter's # ephemeral plugin symlink farm ("Could not resolve package dependencies - # ... ios/firebase_core does not exist"). cloud_functions and - # firebase_performance stay on CocoaPods until default-Xcode SPM runs prove - # clean. + # ... ios/firebase_core does not exist"). - uses: ./.github/actions/setup-flutterfire with: node: ${{ inputs.use-firebase-emulators && 'true' || 'false' }} @@ -147,10 +143,8 @@ jobs: firebase-tools-version: ${{ inputs.use-firebase-emulators && inputs.firebase-tools-version || '' }} bootstrap-scope: ${{ inputs.package-scope }} - name: Enable Swift Package Manager for iOS - # This job is the repository's iOS Swift Package Manager coverage for the - # product: every plugin the example depends on ships a Package.swift, so - # the whole app resolves under SPM. The macOS job stays on CocoaPods, so - # both dependency managers are exercised. + # Every plugin the example depends on ships a Package.swift, so the + # whole app resolves under SPM. The example's pubspec also pins this. if: inputs.ios-spm run: flutter config --enable-swift-package-manager - name: Disable Swift Package Manager for iOS @@ -206,16 +200,6 @@ jobs: run: | # shellcheck disable=SC2086 # an argument list: word-splitting is the point dart ./.github/workflows/scripts/generate-dummy-firebase-configs.dart $NATIVE_CONFIG_ARGS - - name: Prepare iOS project for Swift Package Manager - # Done here rather than in the repository: the committed Podfile is what - # CocoaPods users of the example rely on, and `flutter build` prefers - # CocoaPods whenever a Podfile is present. - if: inputs.ios-spm - working-directory: ${{ inputs.package-path }}/example/ios - run: | - if [ -f Podfile ]; then pod deintegrate; fi - rm -f Podfile Podfile.lock - rm -rf Pods - name: Apply Info.plist overrides if: inputs.info-plist-overrides != '' working-directory: ${{ inputs.package-path }}/example/ios/Runner @@ -266,11 +250,18 @@ jobs: if [ $BUILD_EXIT -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then echo "SPM package resolution race detected; retrying the build once." flutter clean > /dev/null - flutter build ios --no-codesign --simulator --debug --target="./$TEST_TARGET" --dart-define=CI=true + flutter build ios --no-codesign --simulator --debug --target="./$TEST_TARGET" --dart-define=CI=true > build_output.log 2>&1 BUILD_EXIT=$? + cat build_output.log fi set -e ccache -s + # Flutter silently falls back to CocoaPods when the example has a + # Podfile or a plugin has no Package.swift. + if [ "$IOS_SPM" = "true" ] && grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." + exit 1 + fi # Fail rather than silently test the default configuration. if [ $BUILD_EXIT -eq 0 ]; then for override in $INFO_PLIST_OVERRIDES; do diff --git a/.github/workflows/reusable_e2e_macos.yaml b/.github/workflows/reusable_e2e_macos.yaml index 70409708e6f1..ad002376068f 100644 --- a/.github/workflows/reusable_e2e_macos.yaml +++ b/.github/workflows/reusable_e2e_macos.yaml @@ -5,7 +5,9 @@ name: reusable-e2e-macos # `e2e_tests_.yaml` whose product ships a macOS implementation # (everything except firebase_performance). # -# Always CocoaPods - the other half of the SPM/CocoaPods split with the iOS job. +# Builds with Swift Package Manager (`macos-spm`, default true), like the iOS +# job. `macos-spm: false` is only for the examples that cannot resolve under SPM +# yet and still commit a Podfile. on: workflow_call: @@ -72,6 +74,17 @@ on: caches, so this is required rather than defaulted. type: string required: true + macos-spm: + description: >- + true = macOS builds under Swift Package Manager. The example must not + commit a Podfile, and the build fails if Flutter falls back + to `pod install` anyway. + false = macOS stays on CocoaPods and gets a Pods cache, as + firebase_crashlytics must (its Xcode project runs + "$PODS_ROOT/FirebaseCrashlytics/upload-symbols") and as + firebase_auth must (google_sign_in cannot resolve under SPM). + type: boolean + default: true nightly_test_mode: description: >- Passed down from nightly.yaml. Shortens the job timeout to 5 minutes. @@ -107,6 +120,7 @@ jobs: PACKAGE_PATH: ${{ inputs.package-path }} TEST_TARGET: ${{ inputs.test-target }} NATIVE_CONFIG_ARGS: ${{ inputs.native-config-args }} + MACOS_SPM: ${{ inputs.macos-spm }} timeout-minutes: ${{ inputs.nightly_test_mode && 5 || 60 }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 @@ -119,10 +133,16 @@ jobs: flutter-version: ${{ inputs.flutter-version }} firebase-tools-version: ${{ inputs.use-firebase-emulators && inputs.firebase-tools-version || '' }} bootstrap-scope: ${{ inputs.package-scope }} - - name: Disable Swift Package Manager + - name: Enable Swift Package Manager for macOS + # Every plugin the example depends on ships a Package.swift, so the + # whole app resolves under SPM. The example's pubspec also pins this. + if: inputs.macos-spm + run: flutter config --enable-swift-package-manager + - name: Disable Swift Package Manager for macOS # Recent stable Flutter enables SPM by default, which turns intended - # CocoaPods builds into hybrid ones. macOS is this workflow's CocoaPods - # coverage by design, so opt out explicitly. + # CocoaPods builds into hybrid ones. This job's CocoaPods coverage is + # deliberate (macos-spm: false), so opt out explicitly. + if: ${{ !inputs.macos-spm }} run: flutter config --no-enable-swift-package-manager - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d name: Xcode Compile Cache @@ -133,8 +153,7 @@ jobs: save: "${{ github.ref == 'refs/heads/main' }}" max-size: 700M - name: Pods Cache - # macOS is always CocoaPods - that is the other half of the SPM/CocoaPods - # split with the iOS job. + if: ${{ !inputs.macos-spm }} continue-on-error: true uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 id: pods-cache @@ -191,8 +210,28 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true + # Same one-shot retry for the SPM package resolution race as the iOS + # job - anything else fails immediately. + set +e + flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true > build_output.log 2>&1 + BUILD_EXIT=$? + cat build_output.log + if [ $BUILD_EXIT -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then + echo "SPM package resolution race detected; retrying the build once." + flutter clean > /dev/null + flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true > build_output.log 2>&1 + BUILD_EXIT=$? + cat build_output.log + fi + set -e ccache -s + # Flutter silently falls back to CocoaPods when the example has a + # Podfile or a plugin has no Package.swift. + if [ "$MACOS_SPM" = "true" ] && grep -q "Running pod install" build_output.log; then + echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." + exit 1 + fi + exit $BUILD_EXIT - name: Install Cloud Functions dependencies if: inputs.use-firebase-emulators # `firebase emulators:exec` does not install these itself (the old @@ -331,7 +370,7 @@ jobs: - name: Save Pods Cache continue-on-error: true # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: github.ref == 'refs/heads/main' + if: ${{ !inputs.macos-spm && github.ref == 'refs/heads/main' }} uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 with: key: ${{ steps.pods-cache.outputs.cache-primary-key }} diff --git a/.github/workflows/scripts/swift-integration.dart b/.github/workflows/scripts/swift-integration.dart index 7a097cd452ed..e3235f903d8b 100644 --- a/.github/workflows/scripts/swift-integration.dart +++ b/.github/workflows/scripts/swift-integration.dart @@ -340,9 +340,6 @@ Future buildSwiftExampleApp(String platform, String plugins) async { } } - await _runCommand('rm', ['Podfile']); - await _runCommand('pod', ['deintegrate']); - // Check what SPM packages are being resolved before build if (debugMode) { print('[DEBUG] Checking for existing SPM packages directory...'); diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 625ea20e24c1..c4dc926a4b75 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -92,6 +92,11 @@ flutter run Using Melos (installed in step 3), any changes made to the plugins locally will also be reflected within all example applications code automatically. +iOS and macOS examples build with [Swift Package Manager](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers) +only: they commit no Podfile, and each example's `pubspec.yaml` sets `enable-swift-package-manager: true`, so you don't +need CocoaPods or `pod install`. The exceptions are the `firebase_auth` and `firebase_crashlytics` examples, which +still build with CocoaPods until they can resolve under Swift Package Manager. + ## 6. Running tests FlutterFire comprises of a number of tests for each plugin, either end-to-end (e2e) or unit tests. From 33e91fe97ee4f083329f1201b4a5e27ac8e0601e Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 09:28:31 +0200 Subject: [PATCH 03/10] fix(messaging, macos): ship a real PrivacyInfo.xcprivacy for Swift Package Manager The macOS package's privacy manifest was a relative symlink into the iOS sources. Under SPM, Xcode reads a path-dependency plugin through Flutter's ephemeral package symlink, where that relative target no longer resolves, so any app depending on firebase_messaging from this repository (the tests/ smoke app, swift-integration's macOS build) failed with "PrivacyInfo.xcprivacy couldn't be opened". Copy the file instead, and drop swift-integration's workaround that removed firebase_messaging from its macOS build. --- .github/workflows/all_plugins.yaml | 3 --- .../workflows/scripts/swift-integration.dart | 7 ----- .../Resources/PrivacyInfo.xcprivacy | 26 ++++++++++++++++++- 3 files changed, 25 insertions(+), 11 deletions(-) mode change 120000 => 100644 packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 854aa06ddc3d..7e3ae9ea2bf1 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -238,9 +238,6 @@ jobs: - name: 'Swift Integration Setup' run: flutter config --enable-swift-package-manager - name: 'Build macOS App with Swift Package Manager' - # The script drops firebase_messaging from the example app before the - # macOS build; with iOS in its own job that no longer has to happen - # after a successful iOS build in the same checkout. run: | dart ./.github/workflows/scripts/generate-dummy-firebase-configs.dart dart ./.github/workflows/scripts/swift-integration.dart --platform=macos $FLUTTER_DEPENDENCIES diff --git a/.github/workflows/scripts/swift-integration.dart b/.github/workflows/scripts/swift-integration.dart index e3235f903d8b..4885e2297378 100644 --- a/.github/workflows/scripts/swift-integration.dart +++ b/.github/workflows/scripts/swift-integration.dart @@ -371,13 +371,6 @@ Future buildSwiftExampleApp(String platform, String plugins) async { print('[DEBUG] Flutter command args: ${flutterArgs.join(' ')}'); } - if (platform == 'macos') { - // TODO: temp solution to macos to remove firebase_messaging from build - // See: https://github.com/firebase/flutterfire/actions/runs/17042278122/job/48308815666?pr=17634#step:8:787 - await _runCommand('flutter', ['pub', 'remove', 'firebase_messaging']); - await _runCommand('flutter', ['clean']); - } - // Run the flutter build command final flutterResult = await _runCommand('flutter', flutterArgs); diff --git a/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy b/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy deleted file mode 120000 index 2575be627d13..000000000000 --- a/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy +++ /dev/null @@ -1 +0,0 @@ -../../../../../ios/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy \ No newline at end of file diff --git a/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy b/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy new file mode 100644 index 000000000000..4c51e8f420a2 --- /dev/null +++ b/packages/firebase_messaging/firebase_messaging/macos/firebase_messaging/Sources/firebase_messaging/Resources/PrivacyInfo.xcprivacy @@ -0,0 +1,25 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + + NSPrivacyCollectedDataTypes + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + From 9d4236f897a1c1a4d09cf41a65d07a85c7b6f5ef Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 09:28:32 +0200 Subject: [PATCH 04/10] ci: harden the new Swift Package Manager jobs - pin enable-swift-package-manager: false in the firebase_auth and firebase_crashlytics examples, so a local build is plain CocoaPods rather than a broken hybrid - retry the smoke and firebase_data_connect builds once on the SPM package resolution race, like the reusable jobs - stream the macOS build log instead of printing it afterwards --- .github/workflows/e2e_tests_fdc.yaml | 13 +++++++++- .github/workflows/e2e_tests_smoke.yaml | 26 +++++++++++++++++-- .github/workflows/reusable_e2e_macos.yaml | 14 +++++----- .../firebase_auth/example/pubspec.yaml | 3 +++ .../firebase_crashlytics/example/pubspec.yaml | 3 +++ 5 files changed, 48 insertions(+), 11 deletions(-) diff --git a/.github/workflows/e2e_tests_fdc.yaml b/.github/workflows/e2e_tests_fdc.yaml index 5cfbaf4a39bd..e5ae681a1d15 100644 --- a/.github/workflows/e2e_tests_fdc.yaml +++ b/.github/workflows/e2e_tests_fdc.yaml @@ -165,8 +165,18 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - set -o pipefail + set +e flutter build ios --no-codesign --simulator --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + # Same one-shot retry for the SPM package resolution race as + # reusable_e2e_ios.yaml - anything else fails immediately. + if [ "$BUILD_EXIT" -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then + echo "SPM package resolution race detected; retrying the build once." + flutter clean > /dev/null + flutter build ios --no-codesign --simulator --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + fi + set -e ccache -s # Flutter silently falls back to CocoaPods when the example has a # Podfile or a plugin has no Package.swift. @@ -174,6 +184,7 @@ jobs: echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." exit 1 fi + exit "$BUILD_EXIT" - name: Start Firebase Emulator run: | sudo chown -R 501:20 "/Users/runner/.npm" diff --git a/.github/workflows/e2e_tests_smoke.yaml b/.github/workflows/e2e_tests_smoke.yaml index 3099cf3222d7..5718d81cbb1b 100644 --- a/.github/workflows/e2e_tests_smoke.yaml +++ b/.github/workflows/e2e_tests_smoke.yaml @@ -246,8 +246,18 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - set -o pipefail + set +e flutter build ios --no-codesign --simulator --debug --target=./integration_test/core_shard_test.dart --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + # Same one-shot retry for the SPM package resolution race as + # reusable_e2e_ios.yaml - anything else fails immediately. + if [ "$BUILD_EXIT" -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then + echo "SPM package resolution race detected; retrying the build once." + flutter clean > /dev/null + flutter build ios --no-codesign --simulator --debug --target=./integration_test/core_shard_test.dart --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + fi + set -e ccache -s # Flutter silently falls back to CocoaPods when the app has a Podfile # or a plugin has no Package.swift. @@ -255,6 +265,7 @@ jobs: echo "::error::flutter build ran pod install: the smoke app must build with Swift Package Manager only." exit 1 fi + exit "$BUILD_EXIT" - name: Install Cloud Functions dependencies # `firebase emulators:exec` does not install these itself (the old # start-firebase-emulator.sh wrapper did); without them the functions @@ -351,8 +362,18 @@ jobs: export CCACHE_DEPEND=true export CCACHE_INODECACHE=true ccache -s - set -o pipefail + set +e flutter build macos --debug --target=./integration_test/core_shard_test.dart --device-id=macos --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + # Same one-shot retry for the SPM package resolution race as + # reusable_e2e_ios.yaml - anything else fails immediately. + if [ "$BUILD_EXIT" -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then + echo "SPM package resolution race detected; retrying the build once." + flutter clean > /dev/null + flutter build macos --debug --target=./integration_test/core_shard_test.dart --device-id=macos --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + fi + set -e ccache -s # Flutter silently falls back to CocoaPods when the app has a Podfile # or a plugin has no Package.swift. @@ -360,6 +381,7 @@ jobs: echo "::error::flutter build ran pod install: the smoke app must build with Swift Package Manager only." exit 1 fi + exit "$BUILD_EXIT" - name: Install Cloud Functions dependencies # `firebase emulators:exec` does not install these itself (the old # start-firebase-emulator.sh wrapper did); without them the functions diff --git a/.github/workflows/reusable_e2e_macos.yaml b/.github/workflows/reusable_e2e_macos.yaml index ad002376068f..f8f1b72b4c66 100644 --- a/.github/workflows/reusable_e2e_macos.yaml +++ b/.github/workflows/reusable_e2e_macos.yaml @@ -213,15 +213,13 @@ jobs: # Same one-shot retry for the SPM package resolution race as the iOS # job - anything else fails immediately. set +e - flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true > build_output.log 2>&1 - BUILD_EXIT=$? - cat build_output.log - if [ $BUILD_EXIT -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then + flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} + if [ "$BUILD_EXIT" -ne 0 ] && grep -q "Could not resolve package dependencies" build_output.log; then echo "SPM package resolution race detected; retrying the build once." flutter clean > /dev/null - flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true > build_output.log 2>&1 - BUILD_EXIT=$? - cat build_output.log + flutter build macos --debug --target="./$TEST_TARGET" --device-id=macos --dart-define=CI=true 2>&1 | tee build_output.log + BUILD_EXIT=${PIPESTATUS[0]} fi set -e ccache -s @@ -231,7 +229,7 @@ jobs: echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." exit 1 fi - exit $BUILD_EXIT + exit "$BUILD_EXIT" - name: Install Cloud Functions dependencies if: inputs.use-firebase-emulators # `firebase emulators:exec` does not install these itself (the old diff --git a/packages/firebase_auth/firebase_auth/example/pubspec.yaml b/packages/firebase_auth/firebase_auth/example/pubspec.yaml index 2d8067d3b304..1785fdb258a1 100644 --- a/packages/firebase_auth/firebase_auth/example/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth/example/pubspec.yaml @@ -37,3 +37,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # CocoaPods until this example can use Swift Package Manager: google_sign_in cannot resolve under Swift Package Manager yet. + enable-swift-package-manager: false diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml index df5ff157fdbb..1cc6d4d9d65a 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml @@ -24,3 +24,6 @@ dev_dependencies: flutter: uses-material-design: true + config: + # CocoaPods until this example can use Swift Package Manager: the Xcode projects run Crashlytics scripts from $PODS_ROOT. + enable-swift-package-manager: false From aaba247bed5deb495e2742adf933db896bc6cf29 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 11:00:19 +0200 Subject: [PATCH 05/10] chore(auth): build the example with Swift Package Manager only google_sign_in could not resolve under SPM (every GoogleSignIn-iOS release needs App Check 11, Firebase Apple SDK 13 needs 12), and flutter_facebook_auth's macOS implementation ships no Package.swift. Sign in through FirebaseAuth itself instead and drop google_sign_in, google_sign_in_dartio and flutter_facebook_auth: - Google: signInWithProvider on Android and iOS, signInWithPopup on web; hidden on Windows, which has no provider flow (macOS already shows only Apple) - Facebook: web only, as Firebase rejects it through the generic provider flow on Apple and Android - remove the Facebook keys and URL scheme from the iOS Info.plist Then remove CocoaPods from the iOS and macOS projects like the other examples and pin enable-swift-package-manager: true. --- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_auth/example/ios/Podfile | 57 ------- .../ios/Runner.xcodeproj/project.pbxproj | 152 +----------------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - .../example/ios/Runner/Info.plist | 6 - .../firebase_auth/example/lib/auth.dart | 56 ++----- .../firebase_auth/example/lib/main.dart | 11 -- .../firebase_auth/example/lib/profile.dart | 2 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../firebase_auth/example/macos/Podfile | 49 ------ .../macos/Runner.xcodeproj/project.pbxproj | 101 +----------- .../contents.xcworkspacedata | 3 - .../firebase_auth/example/pubspec.yaml | 9 +- 17 files changed, 49 insertions(+), 424 deletions(-) delete mode 100644 packages/firebase_auth/firebase_auth/example/ios/Podfile delete mode 100644 packages/firebase_auth/firebase_auth/example/macos/Podfile diff --git a/packages/firebase_auth/firebase_auth/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_auth/firebase_auth/example/ios/Flutter/AppFrameworkInfo.plist index b3c50a89f036..cfb81b972848 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_auth/firebase_auth/example/ios/Flutter/AppFrameworkInfo.plist @@ -24,7 +24,5 @@ arm64 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_auth/firebase_auth/example/ios/Flutter/Debug.xcconfig b/packages/firebase_auth/firebase_auth/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_auth/firebase_auth/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_auth/firebase_auth/example/ios/Flutter/Release.xcconfig b/packages/firebase_auth/firebase_auth/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_auth/firebase_auth/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_auth/firebase_auth/example/ios/Podfile b/packages/firebase_auth/firebase_auth/example/ios/Podfile deleted file mode 100644 index 7c3d309eb839..000000000000 --- a/packages/firebase_auth/firebase_auth/example/ios/Podfile +++ /dev/null @@ -1,57 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '15.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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - - installer.generated_projects.each do |project| - project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/project.pbxproj index 9da003ecf5d6..a21baff76927 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 25A01FAE278D905100D1E790 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 25A01FAD278D905100D1E790 /* GoogleService-Info.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3DBDE9876E1D48FC8ED096A3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E010D242A20C21968D02B7C9 /* Pods_Runner.framework */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; @@ -38,7 +37,6 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 253804AE278DB662003BA2E2 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; 25A01FAD278D905100D1E790 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - 2FB2202774601424C6393E3D /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -52,9 +50,9 @@ 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 = ""; }; - E010D242A20C21968D02B7C9 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - ED172FD60C3CC14CD005C328 /* 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 = ""; }; - FD585EE39F3F8D58CFCE5419 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_auth */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_auth; path = ../../ios/firebase_auth; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,7 +61,6 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - 3DBDE9876E1D48FC8ED096A3 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -73,6 +70,9 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_auth */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -87,9 +87,7 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 9C7F99B73919EAB4FA657D9E /* Pods */, 7B49E087B951778510D20936 /* GoogleService-Info.plist */, - DE500BC6E74EB524103D00CE /* Frameworks */, ); sourceTree = ""; }; @@ -127,24 +125,6 @@ name = "Supporting Files"; sourceTree = ""; }; - 9C7F99B73919EAB4FA657D9E /* Pods */ = { - isa = PBXGroup; - children = ( - 2FB2202774601424C6393E3D /* Pods-Runner.debug.xcconfig */, - ED172FD60C3CC14CD005C328 /* Pods-Runner.release.xcconfig */, - FD585EE39F3F8D58CFCE5419 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - DE500BC6E74EB524103D00CE /* Frameworks */ = { - isa = PBXGroup; - children = ( - E010D242A20C21968D02B7C9 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -152,15 +132,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - AC2BD8C60F3AA720CEA78FA3 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 3E42446041C78F434168F902 /* [CP] Embed Pods Frameworks */, - 7A855ADEADAAB6F658B535DB /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -199,7 +176,7 @@ ); mainGroup = 97C146E51CF9000F007C117D; packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; @@ -243,94 +220,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 3E42446041C78F434168F902 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseAppCheckInterop/FirebaseAppCheckInterop.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseAuth/FirebaseAuth.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseAuthInterop/FirebaseAuthInterop.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreExtension/FirebaseCoreExtension.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseMessaging/FirebaseMessaging.framework", - "${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework", - "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", - "${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework", - "${BUILT_PRODUCTS_DIR}/GoogleSignIn/GoogleSignIn.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", - "${BUILT_PRODUCTS_DIR}/RecaptchaInterop/RecaptchaInterop.framework", - "${BUILT_PRODUCTS_DIR}/flutter_facebook_auth/flutter_facebook_auth.framework", - "${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework", - "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", - "${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework", - "${BUILT_PRODUCTS_DIR}/shared_preferences_foundation/shared_preferences_foundation.framework", - "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FBAEMKit/FBAEMKit.framework/FBAEMKit", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKCoreKit/FBSDKCoreKit.framework/FBSDKCoreKit", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKCoreKit_Basics/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FBSDKLoginKit/FBSDKLoginKit.framework/FBSDKLoginKit", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseAppCheckInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseAuth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseAuthInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessaging.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleSignIn.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RecaptchaInterop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_facebook_auth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_foundation.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBAEMKit.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKCoreKit_Basics.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSDKLoginKit.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 7A855ADEADAAB6F658B535DB /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/firebase_messaging/firebase_messaging_Privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/google_sign_in_ios/google_sign_in_ios_privacy.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/firebase_messaging_Privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/google_sign_in_ios_privacy.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -346,28 +235,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - AC2BD8C60F3AA720CEA78FA3 /* [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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -444,7 +311,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "\\\"${PODS_ROOT}/Headers\\\""; IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; @@ -533,7 +399,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "\\\"${PODS_ROOT}/Headers\\\""; IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -583,7 +448,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "\\\"${PODS_ROOT}/Headers\\\""; IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; @@ -683,7 +547,7 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; diff --git a/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index fc5ae0316042..0bd6d42276c9 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_auth/firebase_auth/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/packages/firebase_auth/firebase_auth/example/ios/Runner/Info.plist b/packages/firebase_auth/firebase_auth/example/ios/Runner/Info.plist index e1ffa4fee645..5394e6a2ac26 100644 --- a/packages/firebase_auth/firebase_auth/example/ios/Runner/Info.plist +++ b/packages/firebase_auth/firebase_auth/example/ios/Runner/Info.plist @@ -22,11 +22,6 @@ $(FLUTTER_BUILD_NAME) CFBundleSignature ???? - FacebookAppID - 128693022464535 - - FacebookClientToken - 16dbbdf0cfb309034a6ad98ac2a21688 CFBundleURLTypes @@ -35,7 +30,6 @@ CFBundleURLSchemes com.googleusercontent.apps.406099696497-134k3722m01rtrsklhf3b7k8sqa5r7in - fb128693022464535 diff --git a/packages/firebase_auth/firebase_auth/example/lib/auth.dart b/packages/firebase_auth/firebase_auth/example/lib/auth.dart index 7e273b89874d..8b3f4d2641ed 100644 --- a/packages/firebase_auth/firebase_auth/example/lib/auth.dart +++ b/packages/firebase_auth/firebase_auth/example/lib/auth.dart @@ -12,8 +12,6 @@ import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_facebook_auth/flutter_facebook_auth.dart'; -import 'package:google_sign_in/google_sign_in.dart'; typedef OAuthSignIn = void Function(); @@ -122,9 +120,11 @@ class _AuthGateState extends State { OAuthButton.apple: () => _handleMultiFactorException( _signInWithApple, ), - OAuthButton.google: () => _handleMultiFactorException( - _signInWithGoogle, - ), + // signInWithProvider has no Google flow on Windows. + if (kIsWeb || !Platform.isWindows) + OAuthButton.google: () => _handleMultiFactorException( + _signInWithGoogle, + ), OAuthButton.github: () => _handleMultiFactorException( _signInWithGitHub, ), @@ -137,9 +137,12 @@ class _AuthGateState extends State { OAuthButton.yahoo: () => _handleMultiFactorException( _signInWithYahoo, ), - OAuthButton.facebook: () => _handleMultiFactorException( - _signInWithFacebook, - ), + // Firebase signs in with Facebook through the web SDK only; Android + // and iOS would need the Facebook SDK. + if (kIsWeb) + OAuthButton.facebook: () => _handleMultiFactorException( + _signInWithFacebook, + ), }; } } @@ -559,42 +562,17 @@ class _AuthGateState extends State { } Future _signInWithGoogle() async { - // Trigger the authentication flow - final googleUser = await GoogleSignIn().signIn(); - - // Obtain the auth details from the request - final googleAuth = await googleUser?.authentication; - - if (googleAuth != null) { - // Create a new credential - final credential = GoogleAuthProvider.credential( - accessToken: googleAuth.accessToken, - idToken: googleAuth.idToken, - ); + final googleProvider = GoogleAuthProvider(); - // Once signed in, return the UserCredential - await auth.signInWithCredential(credential); + if (kIsWeb) { + await auth.signInWithPopup(googleProvider); + } else { + await auth.signInWithProvider(googleProvider); } } Future _signInWithFacebook() async { - // Trigger the authentication flow - // by default we request the email and the public profile - final LoginResult result = await FacebookAuth.instance.login(); - - if (result.status == LoginStatus.success) { - // Get access token - final AccessToken accessToken = result.accessToken!; - - // Login with token - await auth.signInWithCredential( - FacebookAuthProvider.credential(accessToken.tokenString), - ); - } else { - print('Facebook login did not succeed'); - print(result.status); - print(result.message); - } + await auth.signInWithPopup(FacebookAuthProvider()); } } diff --git a/packages/firebase_auth/firebase_auth/example/lib/main.dart b/packages/firebase_auth/firebase_auth/example/lib/main.dart index 630c282dfdee..1e97201bdf8b 100755 --- a/packages/firebase_auth/firebase_auth/example/lib/main.dart +++ b/packages/firebase_auth/firebase_auth/example/lib/main.dart @@ -2,13 +2,9 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'dart:io'; - import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_core/firebase_core.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:google_sign_in_dartio/google_sign_in_dartio.dart'; import 'auth.dart'; import 'firebase_options.dart'; @@ -38,13 +34,6 @@ Future main() async { await auth.useAuthEmulator('localhost', 9099); } - if (!kIsWeb && Platform.isWindows) { - await GoogleSignInDart.register( - clientId: - '406099696497-g5o9l0blii9970bgmfcfv14pioj90djd.apps.googleusercontent.com', - ); - } - runApp(const AuthExampleApp()); } diff --git a/packages/firebase_auth/firebase_auth/example/lib/profile.dart b/packages/firebase_auth/firebase_auth/example/lib/profile.dart index 3ccbf5dbbaa3..589cbd36eac3 100644 --- a/packages/firebase_auth/firebase_auth/example/lib/profile.dart +++ b/packages/firebase_auth/firebase_auth/example/lib/profile.dart @@ -8,7 +8,6 @@ import 'package:collection/collection.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth_example/main.dart'; import 'package:flutter/material.dart'; -import 'package:google_sign_in/google_sign_in.dart'; import 'auth.dart'; @@ -386,6 +385,5 @@ class _ProfilePageState extends State { /// Example code for sign out. Future _signOut() async { await auth.signOut(); - await GoogleSignIn().signOut(); } } diff --git a/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Debug.xcconfig index 785633d3a86b..c2efd0b608ba 100644 --- a/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_auth/firebase_auth/example/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/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Release.xcconfig index 5fba960c3af2..c2efd0b608ba 100644 --- a/packages/firebase_auth/firebase_auth/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_auth/firebase_auth/example/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/packages/firebase_auth/firebase_auth/example/macos/Podfile b/packages/firebase_auth/firebase_auth/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_auth/firebase_auth/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_auth/firebase_auth/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_auth/firebase_auth/example/macos/Runner.xcodeproj/project.pbxproj index fe9fbefa490f..84a031bf9b4e 100644 --- a/packages/firebase_auth/firebase_auth/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_auth/firebase_auth/example/macos/Runner.xcodeproj/project.pbxproj @@ -28,7 +28,6 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; - B6036D992F5B77F0D48D7883 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1026236A547BC5196614E954 /* Pods_Runner.framework */; }; C0151CEAF69E3751D6A8FA78 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2F30ED8EF0A1349EA81AEE1A /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ @@ -56,9 +55,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B4CF9B1CA3F6E07FE2F953C /* 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 = ""; }; - 1026236A547BC5196614E954 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E5E064344044E24673A33BD /* 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 = ""; }; 25A01FAF278D938300D1E790 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 2F30ED8EF0A1349EA81AEE1A /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -75,10 +71,11 @@ 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 = ""; }; - 3D7BD4B06D0869EA1407E048 /* 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 = ""; }; 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 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 = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_auth */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_auth; path = ../../../macos/firebase_auth; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -87,23 +84,12 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, - B6036D992F5B77F0D48D7883 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 286E7513A68DD39907D77423 /* Pods */ = { - isa = PBXGroup; - children = ( - 3D7BD4B06D0869EA1407E048 /* Pods-Runner.debug.xcconfig */, - 1E5E064344044E24673A33BD /* Pods-Runner.release.xcconfig */, - 0B4CF9B1CA3F6E07FE2F953C /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -121,8 +107,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 286E7513A68DD39907D77423 /* Pods */, 2F30ED8EF0A1349EA81AEE1A /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -149,6 +133,8 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_auth */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, @@ -172,14 +158,6 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1026236A547BC5196614E954 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -187,14 +165,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 9C4FABD4FD7B8936CFFEAF31 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - E033F9E34514FF7F419D8FF5 /* [CP] Embed Pods Frameworks */, - 91D69FDB92A2BAB6493D7E50 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -310,74 +285,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - 91D69FDB92A2BAB6493D7E50 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/google_sign_in_ios/google_sign_in_ios_privacy.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/google_sign_in_ios_privacy.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 9C4FABD4FD7B8936CFFEAF31 /* [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; - }; - E033F9E34514FF7F419D8FF5 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework", - "${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework", - "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", - "${BUILT_PRODUCTS_DIR}/GoogleSignIn/GoogleSignIn.framework", - "${BUILT_PRODUCTS_DIR}/facebook_auth_desktop/facebook_auth_desktop.framework", - "${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleSignIn.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/facebook_auth_desktop.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage_macos.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/packages/firebase_auth/firebase_auth/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_auth/firebase_auth/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_auth/firebase_auth/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_auth/firebase_auth/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_auth/firebase_auth/example/pubspec.yaml b/packages/firebase_auth/firebase_auth/example/pubspec.yaml index 1785fdb258a1..14916cfb6607 100644 --- a/packages/firebase_auth/firebase_auth/example/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth/example/pubspec.yaml @@ -13,11 +13,6 @@ dependencies: firebase_messaging: ^17.0.0 flutter: sdk: flutter - # 7.2.0 is the first release shipping Package.swift; the iOS e2e job builds - # this example with Swift Package Manager. - flutter_facebook_auth: ^7.2.0 - google_sign_in: ^6.1.0 - google_sign_in_dartio: ^0.3.0 dev_dependencies: # `test_utils.dart` reaches for IterableExtension when scanning the emulator's @@ -38,5 +33,5 @@ dev_dependencies: flutter: uses-material-design: true config: - # CocoaPods until this example can use Swift Package Manager: google_sign_in cannot resolve under Swift Package Manager yet. - enable-swift-package-manager: false + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true From 3f0eb4dc3a817a4437ee9462b58e6301357add69 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 11:00:20 +0200 Subject: [PATCH 06/10] chore(crashlytics): build the example with Swift Package Manager only The example's build phases ran Crashlytics' run and upload-symbols tools from $PODS_ROOT, which does not exist under SPM. Call them from the firebase-ios-sdk checkout SPM makes instead: next to the build products (${BUILD_DIR%/Build/*}/SourcePackages, as Firebase documents, which is also where `flutter build` clones it), falling back to build//SourcePackages for archives, where BUILD_DIR points into DerivedData. On macOS, keep the guard CocoaPods used to add at `pod install` time (crashlytics_add_upload_symbols): skip Debug builds and builds without a dSYM instead of uploading on every build. Then remove CocoaPods from both projects like the other examples and pin enable-swift-package-manager: true. --- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - .../firebase_crashlytics/example/ios/Podfile | 48 ------- .../ios/Runner.xcodeproj/project.pbxproj | 18 ++- .../xcshareddata/xcschemes/Runner.xcscheme | 3 + .../contents.xcworkspacedata | 3 - .../macos/Flutter/Flutter-Debug.xcconfig | 1 - .../macos/Flutter/Flutter-Release.xcconfig | 1 - .../example/macos/Podfile | 49 -------- .../macos/Runner.xcodeproj/project.pbxproj | 117 +++++------------- .../xcshareddata/xcschemes/Runner.xcscheme | 21 +++- .../contents.xcworkspacedata | 3 - .../example/macos/Runner/AppDelegate.swift | 6 +- .../firebase_crashlytics/example/pubspec.yaml | 4 +- 15 files changed, 70 insertions(+), 208 deletions(-) delete mode 100644 packages/firebase_crashlytics/firebase_crashlytics/example/ios/Podfile delete mode 100644 packages/firebase_crashlytics/firebase_crashlytics/example/macos/Podfile diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/AppFrameworkInfo.plist index 7c5696400627..391a902b2beb 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Debug.xcconfig b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Debug.xcconfig index ec97fc6f3021..592ceee85b89 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Release.xcconfig b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Release.xcconfig index c4855bfe2000..592ceee85b89 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Podfile b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Podfile deleted file mode 100644 index ca724824f057..000000000000 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment this line to define a global platform for your project - platform :ios, '15.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! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects iOS deployment targets below 15.0. - ios_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] - if ios_target.nil? || ios_target.empty? || Gem::Version.new(ios_target.to_s) < Gem::Version.new('15.0') - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' - end - end - end -end diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/project.pbxproj index 50c2c3a0176c..e7ec586926fa 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,9 +7,9 @@ objects = { /* Begin PBXBuildFile section */ - 4A1C7E2B2C90118400B7F3A1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 864CBEC4F3EDA362F4B5B76D /* GoogleService-Info.plist */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 4A1C7E2B2C90118400B7F3A1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 864CBEC4F3EDA362F4B5B76D /* GoogleService-Info.plist */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; @@ -36,6 +36,9 @@ 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_crashlytics */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_crashlytics; path = ../../ios/firebase_crashlytics; 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 = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -62,16 +65,12 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 578F13DB49C24452CA02A630 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_crashlytics */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -86,7 +85,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 578F13DB49C24452CA02A630 /* Pods */, 864CBEC4F3EDA362F4B5B76D /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -220,7 +218,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"${PODS_ROOT}/FirebaseCrashlytics/run\"\n"; + shellScript = "# Swift Package Manager checks firebase-ios-sdk out next to the build products\n# (Xcode) or under build/ios (flutter build ipa).\nfor packages in \"${BUILD_DIR%/Build/*}/SourcePackages\" \"${PROJECT_DIR}/../build/ios/SourcePackages\"; do\n run=\"$packages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n if [ -x \"$run\" ]; then\n exec \"$run\"\n fi\ndone\necho \"error: Crashlytics/run not found in the Swift Package Manager checkouts.\" >&2\nexit 1\n"; }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 6bca48fc9e71..92d502f0ca52 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -44,6 +44,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> @@ -63,11 +64,13 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Debug.xcconfig index 785633d3a86b..c2efd0b608ba 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Debug.xcconfig +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/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/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Release.xcconfig b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Release.xcconfig index 5fba960c3af2..c2efd0b608ba 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Flutter/Flutter-Release.xcconfig +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/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/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Podfile b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Podfile deleted file mode 100644 index 170aa8aa3a4d..000000000000 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Podfile +++ /dev/null @@ -1,49 +0,0 @@ -platform :osx, '12.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', '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__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Xcode 27 rejects macOS deployment targets below 12.0. - macos_target = config.build_settings['MACOSX_DEPLOYMENT_TARGET'] - if macos_target.nil? || macos_target.empty? || Gem::Version.new(macos_target.to_s) < Gem::Version.new('12.0') - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' - end - end - end -end diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/project.pbxproj b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/project.pbxproj index dadc1b5ffceb..c29e38de46b6 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -27,7 +27,7 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 492007BCB1A0ACAE35BFED17 /* GoogleService-Info.plist in Sources */ = {isa = PBXBuildFile; fileRef = F818CA0E0AA6AA728FD7888E /* GoogleService-Info.plist */; }; - A778181074198B5AB83282EB /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6342CA55BF53810F97AF20C /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -68,13 +68,12 @@ 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 = ""; }; - 569624C19DCFE29B888EF618 /* 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 = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78DABEA22ED26510000E7860 /* firebase_crashlytics */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = firebase_crashlytics; path = ../../../macos/firebase_crashlytics; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 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 = ""; }; - AD1C0B47B3CC4549F903FB8C /* 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 = ""; }; B5515A0623F6830A00F4A798 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - D6342CA55BF53810F97AF20C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F66FF69A43A7D1A9235BA2DA /* 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 = ""; }; F818CA0E0AA6AA728FD7888E /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -83,23 +82,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A778181074198B5AB83282EB /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1F66EACC943169C3E49C1DC4 /* Pods */ = { - isa = PBXGroup; - children = ( - F66FF69A43A7D1A9235BA2DA /* Pods-Runner.debug.xcconfig */, - AD1C0B47B3CC4549F903FB8C /* Pods-Runner.release.xcconfig */, - 569624C19DCFE29B888EF618 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -117,8 +106,6 @@ 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 1F66EACC943169C3E49C1DC4 /* Pods */, F818CA0E0AA6AA728FD7888E /* GoogleService-Info.plist */, ); sourceTree = ""; @@ -145,6 +132,9 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78DABEA22ED26510000E7860 /* firebase_crashlytics */, + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -167,14 +157,6 @@ path = Runner; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D6342CA55BF53810F97AF20C /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -182,13 +164,11 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 58870CAFEA2F85D5904D2D70 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - E43E3AA14F0414B739F88F6C /* [CP] Embed Pods Frameworks */, 6E196B9DFE2809379454E72F /* [firebase_crashlytics] Crashlytics Upload Symbols */, ); buildRules = ( @@ -197,6 +177,9 @@ 33CC11202044C79F0003C045 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* example.app */; productType = "com.apple.product-type.application"; @@ -208,7 +191,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Flutter Authors"; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -236,6 +219,9 @@ Base, ); mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -261,6 +247,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -296,28 +283,6 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; }; - 58870CAFEA2F85D5904D2D70 /* [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; - }; 6E196B9DFE2809379454E72F /* [firebase_crashlytics] Crashlytics Upload Symbols */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -336,39 +301,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"$PODS_ROOT/FirebaseCrashlytics/upload-symbols\" --flutter-project \"$PROJECT_DIR/firebase_app_id_file.json\" "; - }; - E43E3AA14F0414B739F88F6C /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCrashlytics/FirebaseCrashlytics.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework", - "${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", - "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCrashlytics.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "# Debug builds keep their dSYM local; only upload for other configurations.\ncase \"$CONFIGURATION\" in\n Debug*)\n exit 0\n ;;\nesac\nDSYM_PATH=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}\"\nif [ ! -d \"$DSYM_PATH\" ]; then\n echo \"warning: Skipping Crashlytics symbol upload. No dSYM at $DSYM_PATH.\"\n exit 0\nfi\n# Swift Package Manager checks firebase-ios-sdk out next to the build products\n# (Xcode) or under build/macos (flutter build).\nfor packages in \"${BUILD_DIR%/Build/*}/SourcePackages\" \"${PROJECT_DIR}/../build/macos/SourcePackages\"; do\n upload_symbols=\"$packages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols\"\n if [ -x \"$upload_symbols\" ]; then\n exec \"$upload_symbols\" --flutter-project \"$PROJECT_DIR/firebase_app_id_file.json\"\n fi\ndone\necho \"error: Crashlytics/upload-symbols not found in the Swift Package Manager checkouts.\" >&2\nexit 1\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -689,6 +622,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 = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index df12c333e68c..126b4eb8ea7d 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c74e..1d526a16ed0f 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,7 +4,4 @@ - - diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner/AppDelegate.swift b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner/AppDelegate.swift index d53ef6437726..b3c176141221 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner/AppDelegate.swift +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml index 1cc6d4d9d65a..615c657c4cd9 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/pubspec.yaml @@ -25,5 +25,5 @@ dev_dependencies: flutter: uses-material-design: true config: - # CocoaPods until this example can use Swift Package Manager: the Xcode projects run Crashlytics scripts from $PODS_ROOT. - enable-swift-package-manager: false + # iOS and macOS build with Swift Package Manager only (no Podfile). + enable-swift-package-manager: true From a03f38270a38b7b024d92b6855c4580d9f3afdc7 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 11:00:20 +0200 Subject: [PATCH 07/10] ci: drop the CocoaPods opt-outs from the Apple e2e jobs Every example now builds with Swift Package Manager, so remove the ios-spm/macos-spm inputs, the 'Disable Swift Package Manager' steps and the Pods caches, and always fail a build that runs pod install. --- .github/workflows/e2e_tests_auth.yaml | 8 ---- .github/workflows/e2e_tests_crashlytics.yaml | 6 --- .github/workflows/reusable_e2e_ios.yaml | 50 ++------------------ .github/workflows/reusable_e2e_macos.yaml | 50 ++------------------ CONTRIBUTING.md | 3 +- 5 files changed, 9 insertions(+), 108 deletions(-) diff --git a/.github/workflows/e2e_tests_auth.yaml b/.github/workflows/e2e_tests_auth.yaml index 6cecd17feef2..a0ce1ca07dcb 100644 --- a/.github/workflows/e2e_tests_auth.yaml +++ b/.github/workflows/e2e_tests_auth.yaml @@ -86,12 +86,6 @@ jobs: # FIRInstallations aborts on at launch. native-config-args: '--live-tier-plist=auth' inject-config-secrets: true - # Firebase Apple SDK 13 needs app-check 12, and every GoogleSignIn-iOS - # release (8.0.0 to 10.0.0) needs app-check 11, so the example's - # google_sign_in cannot resolve under SPM. CocoaPods is still on 12.19.0. - # Rejoin SPM once https://github.com/google/GoogleSignIn-iOS/pull/626 - # ships and google_sign_in_ios accepts that release. - ios-spm: false nightly_test_mode: ${{ inputs.nightly_test_mode == true }} secrets: TESTS_E2E_FIREBASE_OPTIONS_DART: ${{ secrets.TESTS_E2E_FIREBASE_OPTIONS_DART }} @@ -105,8 +99,6 @@ jobs: package-path: 'packages/firebase_auth/firebase_auth' package-scope: 'firebase_auth*' cache-key-suffix: 'auth' - # Same google_sign_in blocker as the iOS job above. - macos-spm: false # Same plist derivation as the iOS job above. native-config-args: '--live-tier-plist=auth' inject-config-secrets: true diff --git a/.github/workflows/e2e_tests_crashlytics.yaml b/.github/workflows/e2e_tests_crashlytics.yaml index e04f37e8aed7..d5991c733578 100644 --- a/.github/workflows/e2e_tests_crashlytics.yaml +++ b/.github/workflows/e2e_tests_crashlytics.yaml @@ -4,10 +4,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }}-crashlytics cancel-in-progress: true -# Deliberately CocoaPods on iOS as well as macOS: the example's Xcode project -# runs `"${PODS_ROOT}/FirebaseCrashlytics/run"` as a build phase, and PODS_ROOT -# does not exist under Swift Package Manager. -# # Thin caller: one job per platform this product supports, each delegating # to the matching `reusable_e2e_.yaml`. Platforms the product does # not support have no job here, so they render no check at all. @@ -77,7 +73,6 @@ jobs: package-path: 'packages/firebase_crashlytics/firebase_crashlytics' package-scope: 'firebase_crashlytics*' cache-key-suffix: 'crashlytics' - ios-spm: false native-config-args: '--live-tier-plist=crashlytics' inject-config-secrets: true use-firebase-emulators: false @@ -94,7 +89,6 @@ jobs: package-path: 'packages/firebase_crashlytics/firebase_crashlytics' package-scope: 'firebase_crashlytics*' cache-key-suffix: 'crashlytics' - macos-spm: false native-config-args: '--live-tier-plist=crashlytics' inject-config-secrets: true use-firebase-emulators: false diff --git a/.github/workflows/reusable_e2e_ios.yaml b/.github/workflows/reusable_e2e_ios.yaml index 57faeed4a8e8..a30b950f7b64 100644 --- a/.github/workflows/reusable_e2e_ios.yaml +++ b/.github/workflows/reusable_e2e_ios.yaml @@ -4,9 +4,8 @@ name: reusable-e2e-ios # simulator and run the integration tests on it. Called by every # `e2e_tests_.yaml` - every product supports iOS. # -# Builds with Swift Package Manager (`ios-spm`, default true), like the macOS -# job. `ios-spm: false` is only for the examples that cannot resolve under SPM -# yet and still commit a Podfile. +# Builds with Swift Package Manager only, like the macOS job: the examples +# commit no Podfile. on: workflow_call: @@ -68,22 +67,11 @@ on: default: '15.25.1' cache-key-suffix: description: >- - Short product token that makes the ccache/Pods cache keys unique, e.g. + Short product token that makes the ccache keys unique, e.g. 'storage'. Two products sharing a suffix would clobber each other's caches, so this is required rather than defaulted. type: string required: true - ios-spm: - description: >- - true = iOS builds under Swift Package Manager. The example must not - commit a Podfile, and the build fails if Flutter falls back - to `pod install` anyway. - false = iOS stays on CocoaPods and gets a Pods cache, as - firebase_crashlytics must (its Xcode project runs - "${PODS_ROOT}/FirebaseCrashlytics/run") and as firebase_auth - must (google_sign_in cannot resolve under SPM). - type: boolean - default: true info-plist-overrides: description: >- Space-separated `Key=true|false` booleans written to the example's @@ -127,7 +115,6 @@ jobs: TEST_TARGET: ${{ inputs.test-target }} NATIVE_CONFIG_ARGS: ${{ inputs.native-config-args }} INFO_PLIST_OVERRIDES: ${{ inputs.info-plist-overrides }} - IOS_SPM: ${{ inputs.ios-spm }} timeout-minutes: ${{ inputs.nightly_test_mode && 5 || 60 }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 @@ -145,14 +132,7 @@ jobs: - name: Enable Swift Package Manager for iOS # Every plugin the example depends on ships a Package.swift, so the # whole app resolves under SPM. The example's pubspec also pins this. - if: inputs.ios-spm run: flutter config --enable-swift-package-manager - - name: Disable Swift Package Manager for iOS - # Recent stable Flutter enables SPM by default, which turns intended - # CocoaPods builds into hybrid ones. This job's CocoaPods coverage is - # deliberate (ios-spm: false), so opt out explicitly. - if: ${{ !inputs.ios-spm }} - run: flutter config --no-enable-swift-package-manager - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d name: Xcode Compile Cache with: @@ -215,19 +195,6 @@ jobs: /usr/libexec/PlistBuddy -c "Add :$key bool $value" Info.plist echo "Info.plist: $key = $value" done - - name: Pods Cache - if: ${{ !inputs.ios-spm }} - continue-on-error: true - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - id: pods-cache - with: - # Must match the save path exactly - path: ${{ inputs.package-path }}/example/ios/Pods - # Keyed on the Podfile and the pinned Firebase SDK version, not on a - # pubspec.lock: those are gitignored, so hashFiles() returns an empty - # string and the key could never be invalidated. - key: pods-v2-${{ runner.os }}-${{ inputs.cache-key-suffix }}-ios-${{ hashFiles(format('{0}/example/ios/Podfile', inputs.package-path), 'packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') }} - restore-keys: pods-v2-${{ runner.os }}-${{ inputs.cache-key-suffix }}-ios- - name: 'Build Application' working-directory: ${{ inputs.package-path }}/example timeout-minutes: 25 @@ -258,7 +225,7 @@ jobs: ccache -s # Flutter silently falls back to CocoaPods when the example has a # Podfile or a plugin has no Package.swift. - if [ "$IOS_SPM" = "true" ] && grep -q "Running pod install" build_output.log; then + if grep -q "Running pod install" build_output.log; then echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." exit 1 fi @@ -466,12 +433,3 @@ jobs: key: ${{ steps.firebase-emulator-cache.outputs.cache-primary-key }} # Must match the restore path exactly path: ~/.cache/firebase/emulators - - name: Save Pods Cache - continue-on-error: true - # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: ${{ !inputs.ios-spm && github.ref == 'refs/heads/main' }} - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - with: - key: ${{ steps.pods-cache.outputs.cache-primary-key }} - # Must match the restore path exactly - path: ${{ inputs.package-path }}/example/ios/Pods diff --git a/.github/workflows/reusable_e2e_macos.yaml b/.github/workflows/reusable_e2e_macos.yaml index f8f1b72b4c66..f944a67b48ea 100644 --- a/.github/workflows/reusable_e2e_macos.yaml +++ b/.github/workflows/reusable_e2e_macos.yaml @@ -5,9 +5,8 @@ name: reusable-e2e-macos # `e2e_tests_.yaml` whose product ships a macOS implementation # (everything except firebase_performance). # -# Builds with Swift Package Manager (`macos-spm`, default true), like the iOS -# job. `macos-spm: false` is only for the examples that cannot resolve under SPM -# yet and still commit a Podfile. +# Builds with Swift Package Manager only, like the iOS job: the examples +# commit no Podfile. on: workflow_call: @@ -69,22 +68,11 @@ on: default: '15.25.1' cache-key-suffix: description: >- - Short product token that makes the ccache/Pods cache keys unique, e.g. + Short product token that makes the ccache keys unique, e.g. 'storage'. Two products sharing a suffix would clobber each other's caches, so this is required rather than defaulted. type: string required: true - macos-spm: - description: >- - true = macOS builds under Swift Package Manager. The example must not - commit a Podfile, and the build fails if Flutter falls back - to `pod install` anyway. - false = macOS stays on CocoaPods and gets a Pods cache, as - firebase_crashlytics must (its Xcode project runs - "$PODS_ROOT/FirebaseCrashlytics/upload-symbols") and as - firebase_auth must (google_sign_in cannot resolve under SPM). - type: boolean - default: true nightly_test_mode: description: >- Passed down from nightly.yaml. Shortens the job timeout to 5 minutes. @@ -120,7 +108,6 @@ jobs: PACKAGE_PATH: ${{ inputs.package-path }} TEST_TARGET: ${{ inputs.test-target }} NATIVE_CONFIG_ARGS: ${{ inputs.native-config-args }} - MACOS_SPM: ${{ inputs.macos-spm }} timeout-minutes: ${{ inputs.nightly_test_mode && 5 || 60 }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 @@ -136,14 +123,7 @@ jobs: - name: Enable Swift Package Manager for macOS # Every plugin the example depends on ships a Package.swift, so the # whole app resolves under SPM. The example's pubspec also pins this. - if: inputs.macos-spm run: flutter config --enable-swift-package-manager - - name: Disable Swift Package Manager for macOS - # Recent stable Flutter enables SPM by default, which turns intended - # CocoaPods builds into hybrid ones. This job's CocoaPods coverage is - # deliberate (macos-spm: false), so opt out explicitly. - if: ${{ !inputs.macos-spm }} - run: flutter config --no-enable-swift-package-manager - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d name: Xcode Compile Cache with: @@ -152,19 +132,6 @@ jobs: key: xcode-ccache-${{ inputs.cache-key-suffix }}-macos-xcode27 save: "${{ github.ref == 'refs/heads/main' }}" max-size: 700M - - name: Pods Cache - if: ${{ !inputs.macos-spm }} - continue-on-error: true - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - id: pods-cache - with: - # Must match the save path exactly - path: ${{ inputs.package-path }}/example/macos/Pods - # Keyed on the Podfile and the pinned Firebase SDK version, not on a - # pubspec.lock: those are gitignored, so hashFiles() returns an empty - # string and the key could never be invalidated. - key: pods-v2-${{ runner.os }}-${{ inputs.cache-key-suffix }}-macos-${{ hashFiles(format('{0}/example/macos/Podfile', inputs.package-path), 'packages/firebase_core/firebase_core/ios/firebase_sdk_version.rb') }} - restore-keys: pods-v2-${{ runner.os }}-${{ inputs.cache-key-suffix }}-macos- - name: Firebase Emulator Cache if: inputs.use-firebase-emulators id: firebase-emulator-cache @@ -225,7 +192,7 @@ jobs: ccache -s # Flutter silently falls back to CocoaPods when the example has a # Podfile or a plugin has no Package.swift. - if [ "$MACOS_SPM" = "true" ] && grep -q "Running pod install" build_output.log; then + if grep -q "Running pod install" build_output.log; then echo "::error::flutter build ran pod install: this example must build with Swift Package Manager only." exit 1 fi @@ -365,12 +332,3 @@ jobs: key: ${{ steps.firebase-emulator-cache.outputs.cache-primary-key }} # Must match the restore path exactly path: ~/.cache/firebase/emulators - - name: Save Pods Cache - continue-on-error: true - # Branches can read main cache but main cannot read branch cache. Avoid LRU eviction with main-only cache. - if: ${{ !inputs.macos-spm && github.ref == 'refs/heads/main' }} - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 - with: - key: ${{ steps.pods-cache.outputs.cache-primary-key }} - # Must match the restore path exactly - path: ${{ inputs.package-path }}/example/macos/Pods diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4dc926a4b75..d55f9bb51ed1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -94,8 +94,7 @@ example applications code automatically. iOS and macOS examples build with [Swift Package Manager](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers) only: they commit no Podfile, and each example's `pubspec.yaml` sets `enable-swift-package-manager: true`, so you don't -need CocoaPods or `pod install`. The exceptions are the `firebase_auth` and `firebase_crashlytics` examples, which -still build with CocoaPods until they can resolve under Swift Package Manager. +need CocoaPods or `pod install`. ## 6. Running tests From c7337eadf7d0071e4c3f73105f720018632153d3 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 11:48:04 +0200 Subject: [PATCH 08/10] ci: keep example plugins' local SPM overrides resolvable Flutter adds a plugin's own Swift package to its example app's Xcode project as a local override, at the plugin's real path. When Xcode resolves that override instead of the copy in Flutter's ephemeral package symlink farm, the plugin's path: "../firebase_core" and "../FlutterFramework" dependencies point next to the real package and resolution fails ("... doesn't exist in file system"). The CI's default Xcode 27.0 did this for 4 of 11 macOS examples and the Firestore pipeline example, twice in a row each. Link those sibling dependencies into the plugin's platform directory, pointing at the farm Flutter generates, before every example build. Locally, fresh resolutions of the storage macOS and pipeline iOS examples failed 7 of 10 times without the links and 0 of 12 with them. --- .github/workflows/all_plugins.yaml | 8 +++- .github/workflows/e2e_tests_pipeline.yaml | 3 ++ .github/workflows/reusable_e2e_ios.yaml | 3 ++ .github/workflows/reusable_e2e_macos.yaml | 3 ++ .../link-example-plugin-package-deps.sh | 37 +++++++++++++++++++ 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100755 .github/workflows/scripts/link-example-plugin-package-deps.sh diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 7e3ae9ea2bf1..67a663087851 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -207,7 +207,9 @@ jobs: flutter pub add $FLUTTER_DEPENDENCIES cd ../../../.. - name: 'Swift Integration Setup' - run: flutter config --enable-swift-package-manager + run: | + flutter config --enable-swift-package-manager + ./.github/workflows/scripts/link-example-plugin-package-deps.sh packages/firebase_core/firebase_core/example ios - name: 'Build iOS App with Swift Package Manager' run: | dart ./.github/workflows/scripts/generate-dummy-firebase-configs.dart @@ -236,7 +238,9 @@ jobs: flutter pub add $FLUTTER_DEPENDENCIES cd ../../../.. - name: 'Swift Integration Setup' - run: flutter config --enable-swift-package-manager + run: | + flutter config --enable-swift-package-manager + ./.github/workflows/scripts/link-example-plugin-package-deps.sh packages/firebase_core/firebase_core/example macos - name: 'Build macOS App with Swift Package Manager' run: | dart ./.github/workflows/scripts/generate-dummy-firebase-configs.dart diff --git a/.github/workflows/e2e_tests_pipeline.yaml b/.github/workflows/e2e_tests_pipeline.yaml index 6a81a3b71b47..0aa5d2dade69 100644 --- a/.github/workflows/e2e_tests_pipeline.yaml +++ b/.github/workflows/e2e_tests_pipeline.yaml @@ -200,6 +200,9 @@ jobs: with: # https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md#installed-simulators model: "iPhone 17" + - name: Link the example plugin's Swift package dependencies + # Keeps the plugin's local package override resolvable; see the script. + run: ./.github/workflows/scripts/link-example-plugin-package-deps.sh packages/cloud_firestore/cloud_firestore/pipeline_example ios - name: Build iOS (simulator) working-directory: packages/cloud_firestore/cloud_firestore/pipeline_example # A cold SwiftPM fetch (grpc/abseil binaries) plus the Xcode build has diff --git a/.github/workflows/reusable_e2e_ios.yaml b/.github/workflows/reusable_e2e_ios.yaml index a30b950f7b64..ab0a24329b65 100644 --- a/.github/workflows/reusable_e2e_ios.yaml +++ b/.github/workflows/reusable_e2e_ios.yaml @@ -195,6 +195,9 @@ jobs: /usr/libexec/PlistBuddy -c "Add :$key bool $value" Info.plist echo "Info.plist: $key = $value" done + - name: Link the example plugin's Swift package dependencies + # Keeps the plugin's local package override resolvable; see the script. + run: ./.github/workflows/scripts/link-example-plugin-package-deps.sh "$PACKAGE_PATH/example" ios - name: 'Build Application' working-directory: ${{ inputs.package-path }}/example timeout-minutes: 25 diff --git a/.github/workflows/reusable_e2e_macos.yaml b/.github/workflows/reusable_e2e_macos.yaml index f944a67b48ea..94ca9541e94a 100644 --- a/.github/workflows/reusable_e2e_macos.yaml +++ b/.github/workflows/reusable_e2e_macos.yaml @@ -167,6 +167,9 @@ jobs: run: | # shellcheck disable=SC2086 # an argument list: word-splitting is the point dart ./.github/workflows/scripts/generate-dummy-firebase-configs.dart $NATIVE_CONFIG_ARGS + - name: Link the example plugin's Swift package dependencies + # Keeps the plugin's local package override resolvable; see the script. + run: ./.github/workflows/scripts/link-example-plugin-package-deps.sh "$PACKAGE_PATH/example" macos - name: 'Build Application' working-directory: ${{ inputs.package-path }}/example timeout-minutes: 25 diff --git a/.github/workflows/scripts/link-example-plugin-package-deps.sh b/.github/workflows/scripts/link-example-plugin-package-deps.sh new file mode 100755 index 000000000000..fee28cc7d6e7 --- /dev/null +++ b/.github/workflows/scripts/link-example-plugin-package-deps.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Usage: link-example-plugin-package-deps.sh +# +# Flutter adds a plugin's own Swift package to its example app's Xcode project +# as a local package override, at the plugin's real path. Flutter's generated +# package reaches the same plugin through the ephemeral symlink farm +# (`/Flutter/ephemeral/Packages/.packages`), where its +# `path: "../firebase_core"` and `path: "../FlutterFramework"` dependencies +# exist. When Xcode resolves the override instead, those paths point next to +# the real package and resolution fails ("... doesn't exist in file system"). +# The CI Xcode picks the override often enough that a retry does not help, so +# link each sibling dependency into the plugin's platform directory, pointing +# at the farm Flutter generates before it runs xcodebuild. +set -euo pipefail + +app_dir=$(cd "$1" && pwd) +platform=$2 +plugin_root=$(dirname "$app_dir") + +[ -f "$plugin_root/pubspec.yaml" ] || exit 0 +plugin=$(sed -n 's/^name: *//p' "$plugin_root/pubspec.yaml" | head -n 1) +manifest="$plugin_root/$platform/$plugin/Package.swift" +[ -f "$manifest" ] || exit 0 + +packages="$app_dir/$platform/Flutter/ephemeral/Packages/.packages" +grep -oE 'path: "\.\./[A-Za-z0-9_]+"' "$manifest" | + sed -E 's/.*\.\.\/([A-Za-z0-9_]+)"/\1/' | + sort -u | + while read -r dependency; do + link="$plugin_root/$platform/$dependency" + # Never replace a real package that lives there. + if [ -e "$link" ] && [ ! -L "$link" ]; then + continue + fi + ln -sfn "$packages/$dependency" "$link" + echo "Linked $link -> $packages/$dependency" + done From 5f5208364380450314b7ba96afd1161a43ecde58 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 13:34:13 +0200 Subject: [PATCH 09/10] test(auth): skip the signed-in native stream test on macOS The test added in #18797 signs in anonymously, which persists the user to the keychain. The unsigned CI macOS app cannot write to it (errSecMissingEntitlement, -34018), so the e2e-auth macOS job has failed on main since. Skip it on macOS like the file's other sign-in tests; the signed-out variant still runs there. --- .../integration_test/firebase_auth_instance_e2e_test.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/firebase_auth/firebase_auth/example/integration_test/firebase_auth_instance_e2e_test.dart b/packages/firebase_auth/firebase_auth/example/integration_test/firebase_auth_instance_e2e_test.dart index 08357cacdc87..3cbd6d29f25b 100644 --- a/packages/firebase_auth/firebase_auth/example/integration_test/firebase_auth_instance_e2e_test.dart +++ b/packages/firebase_auth/firebase_auth/example/integration_test/firebase_auth_instance_e2e_test.dart @@ -164,8 +164,10 @@ void main() { } } }, - skip: kIsWeb || - (!Platform.isAndroid && !Platform.isIOS && !Platform.isMacOS), + // Signing in persists the user to the keychain, which the unsigned + // macOS test app cannot write to (errSecMissingEntitlement), like the + // other sign-in tests here. + skip: kIsWeb || (!Platform.isAndroid && !Platform.isIOS), ); group('idTokenChanges()', () { From 4a6bd4b64536dc3bcf75e4e9ff753d985df4812c Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 22 Oct 2026 15:05:02 +0200 Subject: [PATCH 10/10] chore(auth): drop taskAffinity from the example's Android manifest The example's Google button now uses signInWithProvider on Android, like the GitHub, Microsoft, Twitter and Yahoo ones. With android:taskAffinity="" the Chrome Custom Tab closes when the user switches apps and returning fails with web-context-already-presented, as docs/auth/federated-auth.md warns. --- .../example/android/app/src/main/AndroidManifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/firebase_auth/firebase_auth/example/android/app/src/main/AndroidManifest.xml b/packages/firebase_auth/firebase_auth/example/android/app/src/main/AndroidManifest.xml index 637f57c840d1..5afecdee67da 100644 --- a/packages/firebase_auth/firebase_auth/example/android/app/src/main/AndroidManifest.xml +++ b/packages/firebase_auth/firebase_auth/example/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,6 @@ android:name=".MainActivity" android:exported="true" android:launchMode="singleTop" - android:taskAffinity="" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true"