From 3b81fa13f5d410b1bb8b612ce8936ef0ec44e8c2 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 15 May 2024 16:48:12 +0100 Subject: [PATCH 01/45] feat(core): support for package swift --- .../firebase_core/ios/firebase_core.podspec | 4 +-- .../ios/firebase_core_ios/Package.swift | 32 +++++++++++++++++++ .../FLTFirebaseCorePlugin.m | 6 ++-- .../firebase_core_ios}/FLTFirebasePlugin.m | 2 +- .../FLTFirebasePluginRegistry.m | 2 +- .../firebase_core_ios/Resources}/.gitkeep | 0 .../include/firebase_core_ios/.gitkeep | 0 .../FLTFirebaseCorePlugin.h | 0 .../firebase_core_ios}/FLTFirebasePlugin.h | 0 .../FLTFirebasePluginRegistry.h | 0 .../include/firebase_core_ios}/messages.g.h | 0 .../Sources/firebase_core_ios}/messages.g.m | 2 +- .../pigeons/messages.dart | 9 ++++-- 13 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios}/FLTFirebaseCorePlugin.m (98%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios}/FLTFirebasePlugin.m (97%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios}/FLTFirebasePluginRegistry.m (97%) rename packages/firebase_core/firebase_core/ios/{Assets => firebase_core_ios/Sources/firebase_core_ios/Resources}/.gitkeep (100%) create mode 100644 packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/.gitkeep rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios}/FLTFirebaseCorePlugin.h (100%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios}/FLTFirebasePlugin.h (100%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios}/FLTFirebasePluginRegistry.h (100%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios}/messages.g.h (100%) rename packages/firebase_core/firebase_core/ios/{Classes => firebase_core_ios/Sources/firebase_core_ios}/messages.g.m (99%) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec index 77112253f2b0..fbbb3d2db317 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -24,8 +24,8 @@ Pod::Spec.new do |s| s.license = { :file => '../LICENSE' } s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'Classes/**/*' - s.public_header_files = 'Classes/**/*.h' + s.source_files = 'firebase_core_ios/Sources/firebase_core_ios/**/*.{h,m}' + s.public_header_files = 'firebase_core_ios/Sources/firebase_core_ios/include/**/*.h' s.ios.deployment_target = '11.0' diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift new file mode 100644 index 000000000000..969e1d2978ff --- /dev/null +++ b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift @@ -0,0 +1,32 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "firebase_core_ios", + platforms: [ + .iOS("12.0"), + .macOS("10.14") + ], + products: [ + // If the plugin name contains "_", replace with "-" for the library name + .library(name: "firebase-core-ios",type: .static, targets: ["firebase_core_ios"]) + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.25.0") + ], + targets: [ + .target( + name: "firebase_core_ios", + // Using FirebaseInstallations as FirebaseCore isn't a product and this is a small product + dependencies: [ .product(name: "FirebaseInstallations", package: "firebase-ios-sdk")], + resources: [ + .process("Resources") + ], + cSettings: [ + .headerSearchPath("include/firebase_core_ios") + ] + ) + ] +) diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m similarity index 98% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebaseCorePlugin.m rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m index a30185f4d6e1..2c48f4673067 100644 --- a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebaseCorePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTFirebaseCorePlugin.h" -#import "FLTFirebasePluginRegistry.h" -#import "messages.g.h" +#import "./include/firebase_core_ios/FLTFirebaseCorePlugin.h" +#import "./include/firebase_core_ios/FLTFirebasePluginRegistry.h" +#import "./include/firebase_core_ios/messages.g.h" @implementation FLTFirebaseCorePlugin { BOOL _coreInitialized; diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m similarity index 97% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePlugin.m rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m index aa5dda3af19b..a97ff4a5aa65 100644 --- a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTFirebasePlugin.h" +#import "./include/firebase_core_ios/FLTFirebasePlugin.h" // Firebase default app name. NSString *_Nonnull const kFIRDefaultAppNameIOS = @"__FIRAPP_DEFAULT"; diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePluginRegistry.m b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m similarity index 97% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePluginRegistry.m rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m index 234fb5e9d412..d3cdaee21282 100644 --- a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePluginRegistry.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTFirebasePluginRegistry.h" +#import "./include/firebase_core_ios/FLTFirebasePluginRegistry.h" #if __has_include() #import diff --git a/packages/firebase_core/firebase_core/ios/Assets/.gitkeep b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/Resources/.gitkeep similarity index 100% rename from packages/firebase_core/firebase_core/ios/Assets/.gitkeep rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/Resources/.gitkeep diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/.gitkeep b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebaseCorePlugin.h b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebaseCorePlugin.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebaseCorePlugin.h rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebaseCorePlugin.h diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePlugin.h b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePlugin.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePlugin.h rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePlugin.h diff --git a/packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePluginRegistry.h b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePluginRegistry.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/Classes/FLTFirebasePluginRegistry.h rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePluginRegistry.h diff --git a/packages/firebase_core/firebase_core/ios/Classes/messages.g.h b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/Classes/messages.g.h rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h diff --git a/packages/firebase_core/firebase_core/ios/Classes/messages.g.m b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m similarity index 99% rename from packages/firebase_core/firebase_core/ios/Classes/messages.g.m rename to packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m index 9d47c309ceab..48a97cb6f61c 100644 --- a/packages/firebase_core/firebase_core/ios/Classes/messages.g.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m @@ -4,7 +4,7 @@ // Autogenerated from Pigeon (v9.2.5), do not edit directly. // See also: https://pub.dev/packages/pigeon -#import "messages.g.h" +#import "./include/firebase_core_ios/messages.g.h" #if TARGET_OS_OSX #import #else diff --git a/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart b/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart index 00fa0d744802..377e905f5937 100644 --- a/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart +++ b/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart @@ -15,8 +15,13 @@ import 'package:pigeon/pigeon.dart'; package: 'io.flutter.plugins.firebase.core', className: 'GeneratedAndroidFirebaseCore', ), - objcHeaderOut: '../firebase_core/ios/Classes/messages.g.h', - objcSourceOut: '../firebase_core/ios/Classes/messages.g.m', + objcHeaderOut: + '../firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h', + objcOptions: ObjcOptions( + headerIncludePath: './include/firebase_core_ios/messages.g.h', + ), + objcSourceOut: + '../firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m', cppHeaderOut: '../firebase_core/windows/messages.g.h', cppSourceOut: '../firebase_core/windows/messages.g.cpp', cppOptions: CppOptions(namespace: 'firebase_core_windows'), From 09aa3615e76b53f5b4d37c15f3ad42f66f8782fb Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 15 May 2024 16:48:38 +0100 Subject: [PATCH 02/45] chore: core example app updates --- .../example/ios/Flutter/AppFrameworkInfo.plist | 2 +- packages/firebase_core/firebase_core/example/ios/Podfile | 2 +- .../example/ios/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../xcode/package.xcworkspace/contents.xcworkspacedata | 7 +++++++ 6 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/firebase_core/firebase_core/ios/firebase_core_ios/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/packages/firebase_core/firebase_core/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_core/firebase_core/example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d2456f3..8c6e56146e23 100644 --- a/packages/firebase_core/firebase_core/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/firebase_core/firebase_core/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/firebase_core/firebase_core/example/ios/Podfile b/packages/firebase_core/firebase_core/example/ios/Podfile index c55294dc3de9..5ea11c336859 100644 --- a/packages/firebase_core/firebase_core/example/ios/Podfile +++ b/packages/firebase_core/firebase_core/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '11.0' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.pbxproj index 323ac6e6e290..9aa2ea79bdb0 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 @@ -166,7 +166,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000000..18d981003d68 --- /dev/null +++ b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b52b2e698b7e..e67b2808af02 100644 --- a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ + + + + From 3ff39e5540885fc1735d5ecbb18d40ec49f1a2f6 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 16 May 2024 15:25:07 +0100 Subject: [PATCH 03/45] fix: package integration requires exact package name --- .../firebase_core/ios/firebase_core.podspec | 4 ++-- .../Package.swift | 12 ++++++++---- .../Sources/firebase_core}/FLTFirebaseCorePlugin.m | 10 +++++----- .../Sources/firebase_core}/FLTFirebasePlugin.m | 2 +- .../firebase_core}/FLTFirebasePluginRegistry.m | 2 +- .../Sources/firebase_core}/Resources/.gitkeep | 0 .../firebase_core/include/firebase_core}/.gitkeep | 0 .../include/firebase_core}/FLTFirebaseCorePlugin.h | 0 .../include/firebase_core}/FLTFirebasePlugin.h | 0 .../firebase_core}/FLTFirebasePluginRegistry.h | 0 .../include/firebase_core}/messages.g.h | 0 .../Sources/firebase_core}/messages.g.m | 2 +- .../package.xcworkspace/contents.xcworkspacedata | 7 ------- 13 files changed, 18 insertions(+), 21 deletions(-) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios => firebase_core}/Package.swift (67%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios => firebase_core/Sources/firebase_core}/FLTFirebaseCorePlugin.m (97%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios => firebase_core/Sources/firebase_core}/FLTFirebasePlugin.m (97%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios => firebase_core/Sources/firebase_core}/FLTFirebasePluginRegistry.m (97%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios => firebase_core/Sources/firebase_core}/Resources/.gitkeep (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios => firebase_core/Sources/firebase_core/include/firebase_core}/.gitkeep (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios => firebase_core/Sources/firebase_core/include/firebase_core}/FLTFirebaseCorePlugin.h (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios => firebase_core/Sources/firebase_core/include/firebase_core}/FLTFirebasePlugin.h (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios => firebase_core/Sources/firebase_core/include/firebase_core}/FLTFirebasePluginRegistry.h (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios => firebase_core/Sources/firebase_core/include/firebase_core}/messages.g.h (100%) rename packages/firebase_core/firebase_core/ios/{firebase_core_ios/Sources/firebase_core_ios => firebase_core/Sources/firebase_core}/messages.g.m (99%) delete mode 100644 packages/firebase_core/firebase_core/ios/firebase_core_ios/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec index fbbb3d2db317..cadb2b119fc6 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -24,8 +24,8 @@ Pod::Spec.new do |s| s.license = { :file => '../LICENSE' } s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'firebase_core_ios/Sources/firebase_core_ios/**/*.{h,m}' - s.public_header_files = 'firebase_core_ios/Sources/firebase_core_ios/include/**/*.h' + s.source_files = 'firebase_core/Sources/firebase_core/**/*.{h,m}' + s.public_header_files = 'firebase_core/Sources/firebase_core/include/**/*.h' s.ios.deployment_target = '11.0' diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift similarity index 67% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift rename to packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 969e1d2978ff..445d27393caf 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -4,29 +4,33 @@ import PackageDescription let package = Package( - name: "firebase_core_ios", + name: "firebase_core", platforms: [ .iOS("12.0"), .macOS("10.14") ], products: [ // If the plugin name contains "_", replace with "-" for the library name - .library(name: "firebase-core-ios",type: .static, targets: ["firebase_core_ios"]) + .library(name: "firebase-core", targets: ["firebase_core"]) ], dependencies: [ .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.25.0") ], targets: [ .target( - name: "firebase_core_ios", + name: "firebase_core", // Using FirebaseInstallations as FirebaseCore isn't a product and this is a small product dependencies: [ .product(name: "FirebaseInstallations", package: "firebase-ios-sdk")], resources: [ .process("Resources") ], cSettings: [ - .headerSearchPath("include/firebase_core_ios") + .headerSearchPath("include/firebase_core") ] +// swiftSettings: [ +// .define("LIBRARY_VERSION", to: "\"1.0.1\""), +// .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") +// ] ) ] ) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m similarity index 97% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m index 2c48f4673067..23a3d8ec8654 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebaseCorePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "./include/firebase_core_ios/FLTFirebaseCorePlugin.h" -#import "./include/firebase_core_ios/FLTFirebasePluginRegistry.h" -#import "./include/firebase_core_ios/messages.g.h" +#import "include/firebase_core/FLTFirebaseCorePlugin.h" +#import "include/firebase_core/FLTFirebasePluginRegistry.h" +#import "include/firebase_core/messages.g.h" @implementation FLTFirebaseCorePlugin { BOOL _coreInitialized; @@ -105,11 +105,11 @@ - (NSDictionary *_Nonnull)pluginConstantsForFIRApp:(FIRApp *)firebase_app { } - (NSString *_Nonnull)firebaseLibraryName { - return LIBRARY_NAME; + return @"LIBRARY_NAME"; } - (NSString *_Nonnull)firebaseLibraryVersion { - return LIBRARY_VERSION; + return @"LIBRARY_VERSION"; } - (NSString *_Nonnull)flutterChannelName { diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m similarity index 97% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m index a97ff4a5aa65..16433a2f26ea 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "./include/firebase_core_ios/FLTFirebasePlugin.h" +#import "include/firebase_core/FLTFirebasePlugin.h" // Firebase default app name. NSString *_Nonnull const kFIRDefaultAppNameIOS = @"__FIRAPP_DEFAULT"; diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m similarity index 97% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m index d3cdaee21282..5f5886274d5c 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/FLTFirebasePluginRegistry.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "./include/firebase_core_ios/FLTFirebasePluginRegistry.h" +#import "include/firebase_core/FLTFirebasePluginRegistry.h" #if __has_include() #import diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/Resources/.gitkeep b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/Resources/.gitkeep similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/Resources/.gitkeep rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/Resources/.gitkeep diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/.gitkeep b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/.gitkeep rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebaseCorePlugin.h b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebaseCorePlugin.h rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePlugin.h b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePlugin.h rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePluginRegistry.h b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/FLTFirebasePluginRegistry.h rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h similarity index 100% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/messages.g.m similarity index 99% rename from packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m rename to packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/messages.g.m index 48a97cb6f61c..a1bf4e0fbeb0 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/messages.g.m @@ -4,7 +4,7 @@ // Autogenerated from Pigeon (v9.2.5), do not edit directly. // See also: https://pub.dev/packages/pigeon -#import "./include/firebase_core_ios/messages.g.h" +#import "include/firebase_core/messages.g.h" #if TARGET_OS_OSX #import #else diff --git a/packages/firebase_core/firebase_core/ios/firebase_core_ios/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/packages/firebase_core/firebase_core/ios/firebase_core_ios/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6254f..000000000000 --- a/packages/firebase_core/firebase_core/ios/firebase_core_ios/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - From b9f7df93828c31933db7df453cbb6e8c10b18d40 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 08:23:29 +0100 Subject: [PATCH 04/45] ios updates --- .../ios/Runner.xcodeproj/project.pbxproj | 47 +++++++++---------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++++++ 2 files changed, 40 insertions(+), 25 deletions(-) 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 9aa2ea79bdb0..5ccce34f8c1e 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 @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 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 */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -56,6 +57,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, CC8B39E3ACF96AAA7558280C /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -149,13 +151,15 @@ 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - FE9FCD1596DCB6AB2B208201 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -184,6 +188,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -261,30 +268,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - FE9FCD1596DCB6AB2B208201 /* [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", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.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", - "${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; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -580,6 +563,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index e67b2808af02..7120d2eaf0f3 100644 --- a/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_core/firebase_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + Date: Fri, 17 May 2024 08:23:38 +0100 Subject: [PATCH 05/45] hide package.resolved --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0653a393e76e..00d6737efb50 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ flutter_export_environment.sh examples/all_plugins/pubspec.yaml +Package.resolved Podfile.lock Pods/ .symlinks/ From 01adfca7d24398b547b8e042579b2d41ced86dea Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 10:22:18 +0100 Subject: [PATCH 06/45] chore: remove ios config --- .../firebase_core/example/ios/Flutter/Debug.xcconfig | 2 +- .../firebase_core/example/ios/Flutter/Release.xcconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 e8efba114687..ec97fc6f3021 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,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#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 399e9340e6f6..c4855bfe2000 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,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" From f17a7193bbc856f75699182df140650693db1b13 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 10:25:09 +0100 Subject: [PATCH 07/45] format --- .../ios/firebase_core/Package.swift | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 445d27393caf..ce5ba87dc277 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -4,33 +4,33 @@ import PackageDescription let package = Package( - name: "firebase_core", - platforms: [ - .iOS("12.0"), - .macOS("10.14") - ], - products: [ - // If the plugin name contains "_", replace with "-" for the library name - .library(name: "firebase-core", targets: ["firebase_core"]) - ], - dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.25.0") - ], - targets: [ - .target( - name: "firebase_core", - // Using FirebaseInstallations as FirebaseCore isn't a product and this is a small product - dependencies: [ .product(name: "FirebaseInstallations", package: "firebase-ios-sdk")], - resources: [ - .process("Resources") - ], - cSettings: [ - .headerSearchPath("include/firebase_core") - ] + name: "firebase_core", + platforms: [ + .iOS("12.0"), + .macOS("10.14"), + ], + products: [ + // If the plugin name contains "_", replace with "-" for the library name + .library(name: "firebase-core", targets: ["firebase_core"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.25.0"), + ], + targets: [ + .target( + name: "firebase_core", + // Using FirebaseInstallations as FirebaseCore isn't a product and this is a small product + dependencies: [.product(name: "FirebaseInstallations", package: "firebase-ios-sdk")], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include/firebase_core"), + ] // swiftSettings: [ // .define("LIBRARY_VERSION", to: "\"1.0.1\""), // .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") // ] - ) - ] + ), + ] ) From 04a671fa6337a540ea48c8ca096c0f404b2a8082 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 10:36:03 +0100 Subject: [PATCH 08/45] fix up the pigeon setup --- .../firebase_core_platform_interface/pigeons/messages.dart | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart b/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart index 377e905f5937..02640d85c490 100644 --- a/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart +++ b/packages/firebase_core/firebase_core_platform_interface/pigeons/messages.dart @@ -16,12 +16,9 @@ import 'package:pigeon/pigeon.dart'; className: 'GeneratedAndroidFirebaseCore', ), objcHeaderOut: - '../firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/include/firebase_core_ios/messages.g.h', - objcOptions: ObjcOptions( - headerIncludePath: './include/firebase_core_ios/messages.g.h', - ), + '../firebase_core/ios/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h', objcSourceOut: - '../firebase_core/ios/firebase_core_ios/Sources/firebase_core_ios/messages.g.m', + '../firebase_core/ios/firebase_core/Sources/firebase_core/messages.g.m', cppHeaderOut: '../firebase_core/windows/messages.g.h', cppSourceOut: '../firebase_core/windows/messages.g.cpp', cppOptions: CppOptions(namespace: 'firebase_core_windows'), From 5250627649b0918d73e878ce624baa3641535b80 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 10:37:57 +0100 Subject: [PATCH 09/45] license for Package.swift --- .../firebase_core/ios/firebase_core/Package.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index ce5ba87dc277..08eef4e72c96 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -1,3 +1,7 @@ +// Copyright 2022, the Chromium project authors. Please see the AUTHORS file +// 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. + // swift-tools-version: 5.9 // The swift-tools-version declares the minimum version of Swift required to build this package. From e02ba2cffcb3db290ee4f50b88627ef76d64098f Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 13:43:15 +0100 Subject: [PATCH 10/45] update preprocessor definitions for podspec and package.swift --- .../firebase_core/ios/firebase_core.podspec | 2 +- .../ios/firebase_core/Package.swift | 70 +++++++++++++++---- .../firebase_core/FLTFirebaseCorePlugin.m | 4 +- 3 files changed, 61 insertions(+), 15 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec index cadb2b119fc6..aaf83e8fd6f8 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -37,7 +37,7 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-core\\\"", + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-core\\\"", 'DEFINES_MODULE' => 'YES' } end diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 08eef4e72c96..a9cb74ef97e1 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -1,40 +1,86 @@ -// Copyright 2022, the Chromium project authors. Please see the AUTHORS file +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright 2024, the Chromium project authors. Please see the AUTHORS file // 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. -// swift-tools-version: 5.9 -// The swift-tools-version declares the minimum version of Swift required to build this package. + import PackageDescription +import Foundation +// import Yams + +// func loadPubspecVersion() -> String { +// let pubspecPath = "../pubspec.yaml" +// do { +// let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) +// if let yaml = try Yams.load(yaml: yamlString) as? [String: Any], +// let version = yaml["version"] as? String { +// return version.replacingOccurrences(of: "+", with: "-") +// } +// } catch { +// print("Error loading or parsing pubspec.yaml: \(error)") +// } +// return "1.0.0" // Default version if parsing fails +// } + +// Function to load Firebase SDK version from a Ruby script file +func loadFirebaseSDKVersion() -> String { + let firebaseCoreScriptPath = "../firebase_core/ios/firebase_sdk_version.rb" + do { + let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) + let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# + if let regex = try? NSRegularExpression(pattern: pattern, options: []), + let match = regex.firstMatch(in: content, range: NSRange(content.startIndex..., in: content)) { + if let versionRange = Range(match.range(at: 1), in: content) { + return String(content[versionRange]) + } + } + } catch { + print("Error loading or parsing firebase_sdk_version.rb: \(error)") + } + return "10.25.0" // Default version if parsing fails +} + +let library_version = "2.30.1" +// let library_version = loadPubspecVersion() +let firebase_sdk_version_string: String = loadFirebaseSDKVersion() + +guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { + fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") +} let package = Package( name: "firebase_core", platforms: [ - .iOS("12.0"), + .iOS("11.0"), .macOS("10.14"), ], products: [ - // If the plugin name contains "_", replace with "-" for the library name .library(name: "firebase-core", targets: ["firebase_core"]), ], dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.25.0"), + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), + .package(url: "https://github.com/jpsim/Yams", from: "4.0.0") + ], targets: [ .target( name: "firebase_core", - // Using FirebaseInstallations as FirebaseCore isn't a product and this is a small product - dependencies: [.product(name: "FirebaseInstallations", package: "firebase-ios-sdk")], + // Using FirebaseInstallations as FirebaseCore isn't a product and this is really small + dependencies: [ + .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), + .product(name: "Yams", package: "Yams") + ], resources: [ .process("Resources"), ], cSettings: [ .headerSearchPath("include/firebase_core"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") ] -// swiftSettings: [ -// .define("LIBRARY_VERSION", to: "\"1.0.1\""), -// .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") -// ] ), ] ) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m index 23a3d8ec8654..6b7998bd1c18 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m @@ -105,11 +105,11 @@ - (NSDictionary *_Nonnull)pluginConstantsForFIRApp:(FIRApp *)firebase_app { } - (NSString *_Nonnull)firebaseLibraryName { - return @"LIBRARY_NAME"; + return LIBRARY_NAME; } - (NSString *_Nonnull)firebaseLibraryVersion { - return @"LIBRARY_VERSION"; + return LIBRARY_VERSION; } - (NSString *_Nonnull)flutterChannelName { From a56af80822f9b6e7f7b454ebd1f5f284109e051b Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 13:45:12 +0100 Subject: [PATCH 11/45] update code for LIBRARY_NAME & LIBRARY_VERSION --- .../Sources/firebase_core/FLTFirebaseCorePlugin.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m index 6b7998bd1c18..87cb647c0eba 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m @@ -105,11 +105,11 @@ - (NSDictionary *_Nonnull)pluginConstantsForFIRApp:(FIRApp *)firebase_app { } - (NSString *_Nonnull)firebaseLibraryName { - return LIBRARY_NAME; + return @LIBRARY_NAME; } - (NSString *_Nonnull)firebaseLibraryVersion { - return LIBRARY_VERSION; + return @LIBRARY_VERSION; } - (NSString *_Nonnull)flutterChannelName { From bd55dff2981c7daf14b4215b71548d76cfc60d5b Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 17 May 2024 15:04:49 +0100 Subject: [PATCH 12/45] working version --- .../ios/firebase_core/Package.swift | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index a9cb74ef97e1..7f7fea0e6705 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -9,21 +9,20 @@ import PackageDescription import Foundation -// import Yams -// func loadPubspecVersion() -> String { -// let pubspecPath = "../pubspec.yaml" -// do { -// let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) -// if let yaml = try Yams.load(yaml: yamlString) as? [String: Any], -// let version = yaml["version"] as? String { -// return version.replacingOccurrences(of: "+", with: "-") -// } -// } catch { -// print("Error loading or parsing pubspec.yaml: \(error)") -// } -// return "1.0.0" // Default version if parsing fails -// } +func loadPubspecVersion() -> String { + let pubspecPath = "../firebase_core/pubspec.yaml" + do { + let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) + if let versionLine = yamlString.split(separator: "\n").first(where: { $0.starts(with: "version:") }) { + let version = versionLine.split(separator: ":")[1].trimmingCharacters(in: .whitespaces) + return version.replacingOccurrences(of: "+", with: "-") + } + } catch { + print("Error loading or parsing pubspec.yaml: \(error)") + } + return "1.0.0" // Default version if parsing fails +} // Function to load Firebase SDK version from a Ruby script file func loadFirebaseSDKVersion() -> String { @@ -43,8 +42,7 @@ func loadFirebaseSDKVersion() -> String { return "10.25.0" // Default version if parsing fails } -let library_version = "2.30.1" -// let library_version = loadPubspecVersion() +let library_version: String = loadPubspecVersion() let firebase_sdk_version_string: String = loadFirebaseSDKVersion() guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { @@ -55,23 +53,20 @@ let package = Package( name: "firebase_core", platforms: [ .iOS("11.0"), - .macOS("10.14"), + .macOS("10.13"), ], products: [ .library(name: "firebase-core", targets: ["firebase_core"]), ], dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), - .package(url: "https://github.com/jpsim/Yams", from: "4.0.0") - + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version) ], targets: [ .target( name: "firebase_core", // Using FirebaseInstallations as FirebaseCore isn't a product and this is really small dependencies: [ - .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), - .product(name: "Yams", package: "Yams") + .product(name: "FirebaseInstallations", package: "firebase-ios-sdk") ], resources: [ .process("Resources"), From 5ae50bfb881fd240c109a3dd4541e4f1f4b4b439 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 23 May 2024 11:13:34 +0100 Subject: [PATCH 13/45] works on `flutter run` but not in Xcode --- .../ios/firebase_core/Package.swift | 98 +++++++++++-------- 1 file changed, 57 insertions(+), 41 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 7f7fea0e6705..f95aff3140e6 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -5,28 +5,32 @@ // 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 PackageDescription import Foundation -func loadPubspecVersion() -> String { - let pubspecPath = "../firebase_core/pubspec.yaml" +enum ConfigurationError: Error { + case fileNotFound(String) + case parsingError(String) + case invalidFormat(String) +} + +func loadPubspecVersion() throws -> String { + let pubspecPath = "../../../firebase_core/pubspec.yaml" do { let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) if let versionLine = yamlString.split(separator: "\n").first(where: { $0.starts(with: "version:") }) { let version = versionLine.split(separator: ":")[1].trimmingCharacters(in: .whitespaces) return version.replacingOccurrences(of: "+", with: "-") + } else { + throw ConfigurationError.invalidFormat("No version line found in pubspec.yaml") } } catch { - print("Error loading or parsing pubspec.yaml: \(error)") + throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") } - return "1.0.0" // Default version if parsing fails } -// Function to load Firebase SDK version from a Ruby script file -func loadFirebaseSDKVersion() -> String { - let firebaseCoreScriptPath = "../firebase_core/ios/firebase_sdk_version.rb" +func loadFirebaseSDKVersion() throws -> String { + let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" do { let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# @@ -34,48 +38,60 @@ func loadFirebaseSDKVersion() -> String { let match = regex.firstMatch(in: content, range: NSRange(content.startIndex..., in: content)) { if let versionRange = Range(match.range(at: 1), in: content) { return String(content[versionRange]) + } else { + throw ConfigurationError.invalidFormat("Invalid format in firebase_sdk_version.rb") } + } else { + throw ConfigurationError.parsingError("No match found in firebase_sdk_version.rb") } } catch { - print("Error loading or parsing firebase_sdk_version.rb: \(error)") + throw ConfigurationError.fileNotFound("Error loading or parsing firebase_sdk_version.rb: \(error)") } - return "10.25.0" // Default version if parsing fails } -let library_version: String = loadPubspecVersion() -let firebase_sdk_version_string: String = loadFirebaseSDKVersion() +let library_version: String +let firebase_sdk_version_string: String + +do { + library_version = try loadPubspecVersion() + firebase_sdk_version_string = try loadFirebaseSDKVersion() +} catch { + fatalError("Failed to load configuration: \(error)") +} guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") } +print("Library Version: \(library_version)") +print("Firebase SDK Version: \(firebase_sdk_version)") + let package = Package( - name: "firebase_core", - platforms: [ - .iOS("11.0"), - .macOS("10.13"), - ], - products: [ - .library(name: "firebase-core", targets: ["firebase_core"]), - ], - dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version) - ], - targets: [ - .target( - name: "firebase_core", - // Using FirebaseInstallations as FirebaseCore isn't a product and this is really small - dependencies: [ - .product(name: "FirebaseInstallations", package: "firebase-ios-sdk") - ], - resources: [ - .process("Resources"), - ], - cSettings: [ - .headerSearchPath("include/firebase_core"), - .define("LIBRARY_VERSION", to: "\"\(library_version)\""), - .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") - ] - ), - ] + name: "firebase_core", + platforms: [ + .iOS("11.0"), + .macOS("10.13"), + ], + products: [ + .library(name: "firebase-core", targets: ["firebase_core"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version) + ], + targets: [ + .target( + name: "firebase_core", + dependencies: [ + .product(name: "FirebaseInstallations", package: "firebase-ios-sdk") + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include/firebase_core"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") + ] + ), + ] ) From 5a2ede9d49745fa1a147bd50ced964f5a55fddc4 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 23 May 2024 12:02:30 +0100 Subject: [PATCH 14/45] hard code lib versions --- .../ios/firebase_core/Package.swift | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index f95aff3140e6..8335b3239a10 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -49,23 +49,22 @@ func loadFirebaseSDKVersion() throws -> String { } } -let library_version: String -let firebase_sdk_version_string: String +let library_version: String = "2.31.1" +let firebase_sdk_version_string: String = "10.25.0" -do { - library_version = try loadPubspecVersion() - firebase_sdk_version_string = try loadFirebaseSDKVersion() -} catch { - fatalError("Failed to load configuration: \(error)") -} +// TODO - this works fine when running via Flutter (i.e. "flutter run"), it does not work +// when running from Xcode as it cannot find the appropriate files to extract versions +//do { +// library_version = try loadPubspecVersion() +// firebase_sdk_version_string = try loadFirebaseSDKVersion() +//} catch { +// fatalError("Failed to load configuration: \(error)") +//} guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") } -print("Library Version: \(library_version)") -print("Firebase SDK Version: \(firebase_sdk_version)") - let package = Package( name: "firebase_core", platforms: [ From f55f0c63d9d9096f0e1422961a3cd054434149c7 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 23 May 2024 13:57:53 +0100 Subject: [PATCH 15/45] format --- .../ios/firebase_core/Package.swift | 131 +++++++++--------- 1 file changed, 68 insertions(+), 63 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 8335b3239a10..3cf4acd4f15f 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -5,92 +5,97 @@ // 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 PackageDescription import Foundation +import PackageDescription enum ConfigurationError: Error { - case fileNotFound(String) - case parsingError(String) - case invalidFormat(String) + case fileNotFound(String) + case parsingError(String) + case invalidFormat(String) } func loadPubspecVersion() throws -> String { - let pubspecPath = "../../../firebase_core/pubspec.yaml" - do { - let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) - if let versionLine = yamlString.split(separator: "\n").first(where: { $0.starts(with: "version:") }) { - let version = versionLine.split(separator: ":")[1].trimmingCharacters(in: .whitespaces) - return version.replacingOccurrences(of: "+", with: "-") - } else { - throw ConfigurationError.invalidFormat("No version line found in pubspec.yaml") - } - } catch { - throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") + let pubspecPath = "../../../firebase_core/pubspec.yaml" + do { + let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) + if let versionLine = yamlString.split(separator: "\n") + .first(where: { $0.starts(with: "version:") }) { + let version = versionLine.split(separator: ":")[1].trimmingCharacters(in: .whitespaces) + return version.replacingOccurrences(of: "+", with: "-") + } else { + throw ConfigurationError.invalidFormat("No version line found in pubspec.yaml") } + } catch { + throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") + } } func loadFirebaseSDKVersion() throws -> String { - let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" - do { - let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) - let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# - if let regex = try? NSRegularExpression(pattern: pattern, options: []), - let match = regex.firstMatch(in: content, range: NSRange(content.startIndex..., in: content)) { - if let versionRange = Range(match.range(at: 1), in: content) { - return String(content[versionRange]) - } else { - throw ConfigurationError.invalidFormat("Invalid format in firebase_sdk_version.rb") - } - } else { - throw ConfigurationError.parsingError("No match found in firebase_sdk_version.rb") - } - } catch { - throw ConfigurationError.fileNotFound("Error loading or parsing firebase_sdk_version.rb: \(error)") + let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" + do { + let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) + let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# + if let regex = try? NSRegularExpression(pattern: pattern, options: []), + let match = regex.firstMatch( + in: content, + range: NSRange(content.startIndex..., in: content) + ) { + if let versionRange = Range(match.range(at: 1), in: content) { + return String(content[versionRange]) + } else { + throw ConfigurationError.invalidFormat("Invalid format in firebase_sdk_version.rb") + } + } else { + throw ConfigurationError.parsingError("No match found in firebase_sdk_version.rb") } + } catch { + throw ConfigurationError + .fileNotFound("Error loading or parsing firebase_sdk_version.rb: \(error)") + } } let library_version: String = "2.31.1" let firebase_sdk_version_string: String = "10.25.0" -// TODO - this works fine when running via Flutter (i.e. "flutter run"), it does not work +// TODO: - this works fine when running via Flutter (i.e. "flutter run"), it does not work // when running from Xcode as it cannot find the appropriate files to extract versions -//do { +// do { // library_version = try loadPubspecVersion() // firebase_sdk_version_string = try loadFirebaseSDKVersion() -//} catch { +// } catch { // fatalError("Failed to load configuration: \(error)") -//} +// } guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { - fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") + fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") } let package = Package( - name: "firebase_core", - platforms: [ - .iOS("11.0"), - .macOS("10.13"), - ], - products: [ - .library(name: "firebase-core", targets: ["firebase_core"]), - ], - dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version) - ], - targets: [ - .target( - name: "firebase_core", - dependencies: [ - .product(name: "FirebaseInstallations", package: "firebase-ios-sdk") - ], - resources: [ - .process("Resources"), - ], - cSettings: [ - .headerSearchPath("include/firebase_core"), - .define("LIBRARY_VERSION", to: "\"\(library_version)\""), - .define("LIBRARY_NAME", to: "\"flutter-fire-core\"") - ] - ), - ] + name: "firebase_core", + platforms: [ + .iOS("11.0"), + .macOS("10.13"), + ], + products: [ + .library(name: "firebase-core", targets: ["firebase_core"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), + ], + targets: [ + .target( + name: "firebase_core", + dependencies: [ + .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include/firebase_core"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-core\""), + ] + ), + ] ) From c4ea595e08c4c1e01a59f7e094fbc0ab0f8c1ccf Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 23 May 2024 16:05:55 +0100 Subject: [PATCH 16/45] move macos --- .../firebase_core/ios/firebase_core.podspec | 43 -------- .../firebase_core/macos/Assets/.gitkeep | 0 .../macos/Classes/FLTFirebaseCorePlugin.h | 1 - .../macos/Classes/FLTFirebaseCorePlugin.m | 1 - .../macos/Classes/FLTFirebasePlugin.h | 1 - .../macos/Classes/FLTFirebasePlugin.m | 1 - .../macos/Classes/FLTFirebasePluginRegistry.h | 1 - .../macos/Classes/FLTFirebasePluginRegistry.m | 1 - .../firebase_core/macos/Classes/messages.g.h | 1 - .../firebase_core/macos/Classes/messages.g.m | 1 - .../macos/firebase_core/Package.swift | 101 ++++++++++++++++++ .../firebase_core/FLTFirebaseCorePlugin.m | 1 + .../Sources/firebase_core/FLTFirebasePlugin.m | 1 + .../firebase_core/FLTFirebasePluginRegistry.m | 1 + .../Sources/firebase_core/Resources/.gitkeep | 1 + .../include/firebase_core/.gitkeep | 1 + .../firebase_core/FLTFirebaseCorePlugin.h | 1 + .../include/firebase_core/FLTFirebasePlugin.h | 1 + .../firebase_core/FLTFirebasePluginRegistry.h | 1 + .../include/firebase_core/messages.g.h | 1 + .../Sources/firebase_core/messages.g.m | 1 + 21 files changed, 111 insertions(+), 51 deletions(-) delete mode 100644 packages/firebase_core/firebase_core/ios/firebase_core.podspec delete mode 100644 packages/firebase_core/firebase_core/macos/Assets/.gitkeep delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.h delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.m delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.h delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.m delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.h delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.m delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/messages.g.h delete mode 120000 packages/firebase_core/firebase_core/macos/Classes/messages.g.m create mode 100644 packages/firebase_core/firebase_core/macos/firebase_core/Package.swift create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/Resources/.gitkeep create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h create mode 120000 packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/messages.g.m diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec deleted file mode 100644 index aaf83e8fd6f8..000000000000 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ /dev/null @@ -1,43 +0,0 @@ -require 'yaml' - -pubspec = YAML.load_file(File.join('..', 'pubspec.yaml')) -library_version = pubspec['version'].gsub('+', '-') - -if defined?($FirebaseSDKVersion) - Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'" - firebase_sdk_version = $FirebaseSDKVersion -else - firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))), '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'" - end -end - -Pod::Spec.new do |s| - s.name = pubspec['name'] - s.version = library_version - s.summary = pubspec['description'] - s.description = pubspec['description'] - s.homepage = pubspec['homepage'] - s.license = { :file => '../LICENSE' } - s.authors = 'The Chromium Authors' - s.source = { :path => '.' } - s.source_files = 'firebase_core/Sources/firebase_core/**/*.{h,m}' - s.public_header_files = 'firebase_core/Sources/firebase_core/include/**/*.h' - - s.ios.deployment_target = '11.0' - - # Flutter dependencies - s.dependency 'Flutter' - - # Firebase dependencies - s.dependency 'Firebase/CoreOnly', firebase_sdk_version - - s.static_framework = true - s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-core\\\"", - 'DEFINES_MODULE' => 'YES' - } -end diff --git a/packages/firebase_core/firebase_core/macos/Assets/.gitkeep b/packages/firebase_core/firebase_core/macos/Assets/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.h b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.h deleted file mode 120000 index a4d92c64fafe..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseCorePlugin.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.m deleted file mode 120000 index 55954048bdf3..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebaseCorePlugin.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseCorePlugin.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.h b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.h deleted file mode 120000 index 606eda24a895..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebasePlugin.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.m b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.m deleted file mode 120000 index 74852b0672c2..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePlugin.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebasePlugin.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.h b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.h deleted file mode 120000 index eae678ac6d96..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebasePluginRegistry.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.m b/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.m deleted file mode 120000 index 1d008b541876..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/FLTFirebasePluginRegistry.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebasePluginRegistry.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/messages.g.h b/packages/firebase_core/firebase_core/macos/Classes/messages.g.h deleted file mode 120000 index 8c85826b010b..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/messages.g.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/messages.g.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/Classes/messages.g.m b/packages/firebase_core/firebase_core/macos/Classes/messages.g.m deleted file mode 120000 index 5c65810afc79..000000000000 --- a/packages/firebase_core/firebase_core/macos/Classes/messages.g.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/messages.g.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift new file mode 100644 index 000000000000..3cf4acd4f15f --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift @@ -0,0 +1,101 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright 2024, the Chromium project authors. Please see the AUTHORS file +// 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 Foundation +import PackageDescription + +enum ConfigurationError: Error { + case fileNotFound(String) + case parsingError(String) + case invalidFormat(String) +} + +func loadPubspecVersion() throws -> String { + let pubspecPath = "../../../firebase_core/pubspec.yaml" + do { + let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) + if let versionLine = yamlString.split(separator: "\n") + .first(where: { $0.starts(with: "version:") }) { + let version = versionLine.split(separator: ":")[1].trimmingCharacters(in: .whitespaces) + return version.replacingOccurrences(of: "+", with: "-") + } else { + throw ConfigurationError.invalidFormat("No version line found in pubspec.yaml") + } + } catch { + throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") + } +} + +func loadFirebaseSDKVersion() throws -> String { + let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" + do { + let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) + let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# + if let regex = try? NSRegularExpression(pattern: pattern, options: []), + let match = regex.firstMatch( + in: content, + range: NSRange(content.startIndex..., in: content) + ) { + if let versionRange = Range(match.range(at: 1), in: content) { + return String(content[versionRange]) + } else { + throw ConfigurationError.invalidFormat("Invalid format in firebase_sdk_version.rb") + } + } else { + throw ConfigurationError.parsingError("No match found in firebase_sdk_version.rb") + } + } catch { + throw ConfigurationError + .fileNotFound("Error loading or parsing firebase_sdk_version.rb: \(error)") + } +} + +let library_version: String = "2.31.1" +let firebase_sdk_version_string: String = "10.25.0" + +// TODO: - this works fine when running via Flutter (i.e. "flutter run"), it does not work +// when running from Xcode as it cannot find the appropriate files to extract versions +// do { +// library_version = try loadPubspecVersion() +// firebase_sdk_version_string = try loadFirebaseSDKVersion() +// } catch { +// fatalError("Failed to load configuration: \(error)") +// } + +guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { + fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") +} + +let package = Package( + name: "firebase_core", + platforms: [ + .iOS("11.0"), + .macOS("10.13"), + ], + products: [ + .library(name: "firebase-core", targets: ["firebase_core"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), + ], + targets: [ + .target( + name: "firebase_core", + dependencies: [ + .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include/firebase_core"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-core\""), + ] + ), + ] +) diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m new file mode 120000 index 000000000000..d014e98d510f --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m @@ -0,0 +1 @@ +../../../../ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m new file mode 120000 index 000000000000..da861e3d9a85 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m @@ -0,0 +1 @@ +../../../../ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m new file mode 120000 index 000000000000..9c70b9506434 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m @@ -0,0 +1 @@ +../../../../ios/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/Resources/.gitkeep b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/Resources/.gitkeep new file mode 120000 index 000000000000..7ecb7b294b8f --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/Resources/.gitkeep @@ -0,0 +1 @@ +../../../../../ios/firebase_core/Sources/firebase_core/Resources/.gitkeep \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep new file mode 120000 index 000000000000..96eefa258228 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep @@ -0,0 +1 @@ +../../../../../../ios/firebase_core/Sources/firebase_core/include/firebase_core/.gitkeep \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h new file mode 120000 index 000000000000..b8c28eb5bd36 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h @@ -0,0 +1 @@ +../../../../../../ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h new file mode 120000 index 000000000000..18a8349f94be --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h @@ -0,0 +1 @@ +../../../../../../ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h new file mode 120000 index 000000000000..17ebeb905b75 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h @@ -0,0 +1 @@ +../../../../../../ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h new file mode 120000 index 000000000000..77dd32416d53 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h @@ -0,0 +1 @@ +../../../../../../ios/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/messages.g.m b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/messages.g.m new file mode 120000 index 000000000000..8c67a9cfd102 --- /dev/null +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/messages.g.m @@ -0,0 +1 @@ +../../../../ios/firebase_core/Sources/firebase_core/messages.g.m \ No newline at end of file From 6a73e6af0587369057a358bbb043a9ae0793dfa6 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 23 May 2024 16:18:00 +0100 Subject: [PATCH 17/45] fix symlink --- .../firebase_core/Sources/firebase_core/FLTFirebasePlugin.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m index da861e3d9a85..e6ce8910e33c 120000 --- a/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m @@ -1 +1 @@ -../../../../ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.h \ No newline at end of file +../../../../ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m \ No newline at end of file From f503c2937d5f5e0f2426e30b58e43ebf47c9da91 Mon Sep 17 00:00:00 2001 From: Russell Wheatley Date: Thu, 23 May 2024 16:35:50 +0100 Subject: [PATCH 18/45] Discard changes to packages/firebase_core/firebase_core/ios/firebase_core.podspec --- .../firebase_core/ios/firebase_core.podspec | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/firebase_core/firebase_core/ios/firebase_core.podspec diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec new file mode 100644 index 000000000000..77112253f2b0 --- /dev/null +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -0,0 +1,43 @@ +require 'yaml' + +pubspec = YAML.load_file(File.join('..', 'pubspec.yaml')) +library_version = pubspec['version'].gsub('+', '-') + +if defined?($FirebaseSDKVersion) + Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'" + firebase_sdk_version = $FirebaseSDKVersion +else + firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))), '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'" + end +end + +Pod::Spec.new do |s| + s.name = pubspec['name'] + s.version = library_version + s.summary = pubspec['description'] + s.description = pubspec['description'] + s.homepage = pubspec['homepage'] + s.license = { :file => '../LICENSE' } + s.authors = 'The Chromium Authors' + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.public_header_files = 'Classes/**/*.h' + + s.ios.deployment_target = '11.0' + + # Flutter dependencies + s.dependency 'Flutter' + + # Firebase dependencies + s.dependency 'Firebase/CoreOnly', firebase_sdk_version + + s.static_framework = true + s.pod_target_xcconfig = { + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-core\\\"", + 'DEFINES_MODULE' => 'YES' + } +end From d2adbef760c1a759d2729033d88e0991399c5aa7 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 24 May 2024 12:07:02 +0100 Subject: [PATCH 19/45] update core ios podspec after mistakenly reverting changes --- .../firebase_core/firebase_core/ios/firebase_core.podspec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec index 77112253f2b0..9543119930b2 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -24,8 +24,8 @@ Pod::Spec.new do |s| s.license = { :file => '../LICENSE' } s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'Classes/**/*' - s.public_header_files = 'Classes/**/*.h' + s.source_files = 'firebase_core/Sources/firebase_core/**/*.{h,m}' + s.public_header_files = 'firebase_core/Sources/firebase_core/include/**/*.h' s.ios.deployment_target = '11.0' @@ -37,7 +37,7 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-core\\\"", + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-core\\\"", 'DEFINES_MODULE' => 'YES' } -end +end \ No newline at end of file From 41f23217c421571c2222f4580405dc298afbc554 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 24 May 2024 13:22:42 +0100 Subject: [PATCH 20/45] fix: macOS.podspec header/source files --- .../firebase_core/firebase_core/macos/firebase_core.podspec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/firebase_core/firebase_core/macos/firebase_core.podspec b/packages/firebase_core/firebase_core/macos/firebase_core.podspec index a97b59064a01..bb6990fea0b0 100644 --- a/packages/firebase_core/firebase_core/macos/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/macos/firebase_core.podspec @@ -42,7 +42,8 @@ Pod::Spec.new do |s| s.license = { :file => '../LICENSE' } s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'firebase_core/Sources/firebase_core/**/*.{h,m}' + s.public_header_files = 'firebase_core/Sources/firebase_core/include/**/*.h' s.platform = :osx, '10.13' @@ -54,7 +55,7 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-core\\\"", + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-core\\\"", 'DEFINES_MODULE' => 'YES' } end From 2b1ebe7df37c42400f5a2e5d724b329af1fdff85 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 24 May 2024 14:21:40 +0100 Subject: [PATCH 21/45] ci: integrationt test for SPM firebase_core --- .github/workflows/all_plugins.yaml | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 366e3a99105c..c300f711ab14 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -122,7 +122,33 @@ jobs: run: | melos exec -c 1 --scope="*example*" --dir-exists="web" -- \ "flutter build web" - + swift-integration: + runs-on: macos-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225 + with: + # TODO - enabling swift is on `master` channel at the moment. Update when it's on `stable` + channel: 'master' + - uses: bluefireteam/melos-action@5a8367ec4b9942d712528c398ff3f996e03bc230 + with: + melos-version: '5.3.0' + - name: 'Swift Integration Setup' + run: flutter config --enable-swift-package-manager + - name: 'Build Apps with Swift Package Manager' + # Just Core example has pure Swift capability at the moment + run: | + rm packages/firebase_core/firebase_core/example/ios/Podfile + melos exec -c 1 --scope="*firebase_core_example*" -- \ + "flutter build ios" | tee swift_output.log + output=$( Date: Fri, 24 May 2024 14:35:12 +0100 Subject: [PATCH 22/45] update integration test --- .github/workflows/all_plugins.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index c300f711ab14..6f94e55933aa 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -141,13 +141,13 @@ jobs: run: | rm packages/firebase_core/firebase_core/example/ios/Podfile melos exec -c 1 --scope="*firebase_core_example*" -- \ - "flutter build ios" | tee swift_output.log + "flutter build ios --debug" | tee swift_output.log output=$( Date: Fri, 24 May 2024 15:31:56 +0100 Subject: [PATCH 23/45] no-codesign --- .github/workflows/all_plugins.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 6f94e55933aa..9ebfb14fd9fe 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -141,7 +141,7 @@ jobs: run: | rm packages/firebase_core/firebase_core/example/ios/Podfile melos exec -c 1 --scope="*firebase_core_example*" -- \ - "flutter build ios --debug" | tee swift_output.log + "flutter build ios --no-codesign" | tee swift_output.log output=$( Date: Fri, 24 May 2024 15:44:49 +0100 Subject: [PATCH 24/45] pod deintegrate --- .github/workflows/all_plugins.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 9ebfb14fd9fe..5e0fcf685d3d 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -139,11 +139,12 @@ jobs: - name: 'Build Apps with Swift Package Manager' # Just Core example has pure Swift capability at the moment run: | - rm packages/firebase_core/firebase_core/example/ios/Podfile - melos exec -c 1 --scope="*firebase_core_example*" -- \ - "flutter build ios --no-codesign" | tee swift_output.log + cd packages/firebase_core/firebase_core/example/ios + rm Podfile + pod deintegrate + flutter build ios --no-codesign | tee swift_output.log output=$( Date: Fri, 24 May 2024 16:00:11 +0100 Subject: [PATCH 25/45] check build is successful as well --- .github/workflows/all_plugins.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 5e0fcf685d3d..7f83367a866e 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -142,14 +142,23 @@ jobs: cd packages/firebase_core/firebase_core/example/ios rm Podfile pod deintegrate - flutter build ios --no-codesign | tee swift_output.log - output=$( Date: Fri, 24 May 2024 16:24:17 +0100 Subject: [PATCH 26/45] update Package.swift with ability to get versions dynamically --- .../ios/firebase_core/Package.swift | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 3cf4acd4f15f..0409d7d4fbdf 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -14,8 +14,11 @@ enum ConfigurationError: Error { case invalidFormat(String) } +let iosRootDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString + .dropLast()) + func loadPubspecVersion() throws -> String { - let pubspecPath = "../../../firebase_core/pubspec.yaml" + let pubspecPath = NSString.path(withComponents: [iosRootDirectory, "..", "..", "pubspec.yaml"]) do { let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) if let versionLine = yamlString.split(separator: "\n") @@ -31,7 +34,15 @@ func loadPubspecVersion() throws -> String { } func loadFirebaseSDKVersion() throws -> String { - let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" + let firebaseCoreScriptPath = NSString.path(withComponents: [ + iosRootDirectory, + "..", + "..", + "..", + "firebase_core", + "ios", + "firebase_sdk_version.rb", + ]) do { let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# @@ -54,17 +65,15 @@ func loadFirebaseSDKVersion() throws -> String { } } -let library_version: String = "2.31.1" -let firebase_sdk_version_string: String = "10.25.0" +let library_version: String +let firebase_sdk_version_string: String -// TODO: - this works fine when running via Flutter (i.e. "flutter run"), it does not work -// when running from Xcode as it cannot find the appropriate files to extract versions -// do { -// library_version = try loadPubspecVersion() -// firebase_sdk_version_string = try loadFirebaseSDKVersion() -// } catch { -// fatalError("Failed to load configuration: \(error)") -// } +do { + library_version = try loadPubspecVersion() + firebase_sdk_version_string = try loadFirebaseSDKVersion() +} catch { + fatalError("Failed to load configuration: \(error)") +} guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") @@ -86,6 +95,7 @@ let package = Package( .target( name: "firebase_core", dependencies: [ + // No product for firebase-core so we pull in the smallest one .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), ], resources: [ From 4b78c0854d99687fb04be69e9aaedf6abdfa9fc1 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 24 May 2024 16:39:10 +0100 Subject: [PATCH 27/45] rm unused output --- .github/workflows/all_plugins.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 7f83367a866e..a5e86afe9078 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -143,7 +143,7 @@ jobs: rm Podfile pod deintegrate # Run the flutter build command and capture the output and exit status - flutter_output=$(flutter build ios --no-codesign | tee swift_output.log) + flutter_output=$(flutter build ios --no-codesign) flutter_exit_code=${PIPESTATUS[0]} # Check if the flutter build command was successful From 11d3ee65c1f8a853b6a9a971bb5e3be7a5fb628f Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 24 May 2024 16:41:04 +0100 Subject: [PATCH 28/45] get exitcode --- .github/workflows/all_plugins.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index a5e86afe9078..8fe2ce9c50e8 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -144,7 +144,7 @@ jobs: pod deintegrate # Run the flutter build command and capture the output and exit status flutter_output=$(flutter build ios --no-codesign) - flutter_exit_code=${PIPESTATUS[0]} + flutter_exit_code=$? # Check if the flutter build command was successful if [[ $flutter_exit_code -ne 0 ]]; then From e01ffdd67b3583cf1a9694cc97a51f4c2651a577 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 14:43:35 +0100 Subject: [PATCH 29/45] macos package swift --- .../macos/firebase_core/Package.swift | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift index 3cf4acd4f15f..a868ebdbffab 100644 --- a/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift @@ -14,8 +14,11 @@ enum ConfigurationError: Error { case invalidFormat(String) } +let macosRootDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString + .dropLast()) + func loadPubspecVersion() throws -> String { - let pubspecPath = "../../../firebase_core/pubspec.yaml" + let pubspecPath = NSString.path(withComponents: [macosRootDirectory, "..", "..", "pubspec.yaml"]) do { let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) if let versionLine = yamlString.split(separator: "\n") @@ -31,7 +34,15 @@ func loadPubspecVersion() throws -> String { } func loadFirebaseSDKVersion() throws -> String { - let firebaseCoreScriptPath = "../../../firebase_core/ios/firebase_sdk_version.rb" + let firebaseCoreScriptPath = NSString.path(withComponents: [ + macosRootDirectory, + "..", + "..", + "..", + "firebase_core", + "ios", + "firebase_sdk_version.rb", + ]) do { let content = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) let pattern = #"def firebase_sdk_version!\(\)\n\s+'([^']+)'\nend"# @@ -54,17 +65,15 @@ func loadFirebaseSDKVersion() throws -> String { } } -let library_version: String = "2.31.1" -let firebase_sdk_version_string: String = "10.25.0" +let library_version: String +let firebase_sdk_version_string: String -// TODO: - this works fine when running via Flutter (i.e. "flutter run"), it does not work -// when running from Xcode as it cannot find the appropriate files to extract versions -// do { -// library_version = try loadPubspecVersion() -// firebase_sdk_version_string = try loadFirebaseSDKVersion() -// } catch { -// fatalError("Failed to load configuration: \(error)") -// } +do { + library_version = try loadPubspecVersion() + firebase_sdk_version_string = try loadFirebaseSDKVersion() +} catch { + fatalError("Failed to load configuration: \(error)") +} guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") @@ -73,7 +82,6 @@ guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { let package = Package( name: "firebase_core", platforms: [ - .iOS("11.0"), .macOS("10.13"), ], products: [ @@ -86,6 +94,7 @@ let package = Package( .target( name: "firebase_core", dependencies: [ + // No product for firebase-core so we pull in the smallest one .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"), ], resources: [ From 7d3d2258175ca4c990b21b0335a776257e87df0d Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 14:44:05 +0100 Subject: [PATCH 30/45] rm macos from iOS package swift --- .../firebase_core/firebase_core/ios/firebase_core/Package.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 0409d7d4fbdf..1ee257419171 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -83,7 +83,6 @@ let package = Package( name: "firebase_core", platforms: [ .iOS("11.0"), - .macOS("10.13"), ], products: [ .library(name: "firebase-core", targets: ["firebase_core"]), From 5d95766dd4e63f34954bb650ac3faadf4e34895c Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 14:54:23 +0100 Subject: [PATCH 31/45] ci: swift integration into own shell script + macos build --- .github/workflows/all_plugins.yaml | 24 +------- .../workflows/scripts/swift-integration.sh | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+), 22 deletions(-) create mode 100755 .github/workflows/scripts/swift-integration.sh diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml index 8fe2ce9c50e8..2b2db919e7bb 100644 --- a/.github/workflows/all_plugins.yaml +++ b/.github/workflows/all_plugins.yaml @@ -137,28 +137,8 @@ jobs: - name: 'Swift Integration Setup' run: flutter config --enable-swift-package-manager - name: 'Build Apps with Swift Package Manager' - # Just Core example has pure Swift capability at the moment - run: | - cd packages/firebase_core/firebase_core/example/ios - rm Podfile - pod deintegrate - # Run the flutter build command and capture the output and exit status - flutter_output=$(flutter build ios --no-codesign) - flutter_exit_code=$? - - # Check if the flutter build command was successful - if [[ $flutter_exit_code -ne 0 ]]; then - echo "Flutter build failed with exit code $flutter_exit_code." - exit 1 - fi - - # Check the output for the specific string - if [[ "$flutter_output" =~ "Running pod install" ]]; then - exit 1 - else - echo "Successfully built iOS project using Swift Package Manager." - exit 0 - fi + run: ./.github/workflows/scripts/swift-integration.sh + test: runs-on: ubuntu-latest timeout-minutes: 30 diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh new file mode 100755 index 000000000000..2618af38f3a3 --- /dev/null +++ b/.github/workflows/scripts/swift-integration.sh @@ -0,0 +1,55 @@ +# Just Core example has pure Swift capability at the moment + + +# firebase_core iOS example + +# Setup for SPM integration +cd packages/firebase_core/firebase_core/example/ios +rm Podfile +pod deintegrate + +# Run the flutter build command and capture the output and exit status +flutter_output=$(flutter build ios --no-codesign) +flutter_exit_code=$? + +# Check if the flutter build command was successful +if [[ $flutter_exit_code -ne 0 ]]; then + echo "Flutter build failed with exit code $flutter_exit_code." + exit 1 +fi + +# Check the output for the specific string +if [[ "$flutter_output" =~ "Running pod install" ]]; then + exit 1 +else + echo "Successfully built iOS project using Swift Package Manager." + exit 0 +fi + +# Come back to root +cd ~ + +# firebase_core macOS example + +# Setup for SPM integration +cd packages/firebase_core/firebase_core/example/macos +rm Podfile +pod deintegrate + +# Run the flutter build command and capture the output and exit status +flutter_output=$(flutter build macos) +flutter_exit_code=$? + +# Check if the flutter build command was successful +if [[ $flutter_exit_code -ne 0 ]]; then + echo "Flutter build failed with exit code $flutter_exit_code." + exit 1 +fi + +# Check the output for the specific string +if [[ "$flutter_output" =~ "Running pod install" ]]; then + exit 1 +else + echo "Successfully built macOS project using Swift Package Manager." + exit 0 +fi From df77338ee20df43a9f9f7e99086843924eb1cfd6 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 14:59:21 +0100 Subject: [PATCH 32/45] optional include for macOS release --- .../example/macos/Flutter/Flutter-Release.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5fba960c3af2..5caa9d1579e4 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,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" From 76134440373ebb6fa2d291b79939861b0e60cdc4 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 15:15:27 +0100 Subject: [PATCH 33/45] update swift script --- .github/workflows/scripts/swift-integration.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh index 2618af38f3a3..199b376c2bc4 100755 --- a/.github/workflows/scripts/swift-integration.sh +++ b/.github/workflows/scripts/swift-integration.sh @@ -1,3 +1,7 @@ +#!/bin/bash + +set -e + # Just Core example has pure Swift capability at the moment @@ -26,9 +30,10 @@ else exit 0 fi +echo "1111111111" # Come back to root cd ~ - +echo "222222222" # firebase_core macOS example # Setup for SPM integration From 1329b2e760bf814762bd9b27ebfbfd24bf564373 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 15:27:29 +0100 Subject: [PATCH 34/45] debug script --- .../workflows/scripts/swift-integration.sh | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh index 199b376c2bc4..2685c29b5d30 100755 --- a/.github/workflows/scripts/swift-integration.sh +++ b/.github/workflows/scripts/swift-integration.sh @@ -37,24 +37,24 @@ echo "222222222" # firebase_core macOS example # Setup for SPM integration -cd packages/firebase_core/firebase_core/example/macos -rm Podfile -pod deintegrate - -# Run the flutter build command and capture the output and exit status -flutter_output=$(flutter build macos) -flutter_exit_code=$? - -# Check if the flutter build command was successful -if [[ $flutter_exit_code -ne 0 ]]; then - echo "Flutter build failed with exit code $flutter_exit_code." - exit 1 -fi - -# Check the output for the specific string -if [[ "$flutter_output" =~ "Running pod install" ]]; then - exit 1 -else - echo "Successfully built macOS project using Swift Package Manager." - exit 0 -fi +# cd packages/firebase_core/firebase_core/example/macos +# rm Podfile +# pod deintegrate + +# # Run the flutter build command and capture the output and exit status +# flutter_output=$(flutter build macos) +# flutter_exit_code=$? + +# # Check if the flutter build command was successful +# if [[ $flutter_exit_code -ne 0 ]]; then +# echo "Flutter build failed with exit code $flutter_exit_code." +# exit 1 +# fi + +# # Check the output for the specific string +# if [[ "$flutter_output" =~ "Running pod install" ]]; then +# exit 1 +# else +# echo "Successfully built macOS project using Swift Package Manager." +# exit 0 +# fi From a021747b304b811f5987e0f9e640d44dc67bfede Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 15:36:52 +0100 Subject: [PATCH 35/45] update macos test --- .../workflows/scripts/swift-integration.sh | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh index 2685c29b5d30..e3c30873f3ad 100755 --- a/.github/workflows/scripts/swift-integration.sh +++ b/.github/workflows/scripts/swift-integration.sh @@ -30,31 +30,30 @@ else exit 0 fi -echo "1111111111" -# Come back to root -cd ~ +cd ../macos echo "222222222" + # firebase_core macOS example # Setup for SPM integration -# cd packages/firebase_core/firebase_core/example/macos -# rm Podfile -# pod deintegrate - -# # Run the flutter build command and capture the output and exit status -# flutter_output=$(flutter build macos) -# flutter_exit_code=$? - -# # Check if the flutter build command was successful -# if [[ $flutter_exit_code -ne 0 ]]; then -# echo "Flutter build failed with exit code $flutter_exit_code." -# exit 1 -# fi - -# # Check the output for the specific string -# if [[ "$flutter_output" =~ "Running pod install" ]]; then -# exit 1 -# else -# echo "Successfully built macOS project using Swift Package Manager." -# exit 0 -# fi +cd packages/firebase_core/firebase_core/example/macos +rm Podfile +pod deintegrate + +# Run the flutter build command and capture the output and exit status +flutter_output=$(flutter build macos) +flutter_exit_code=$? + +# Check if the flutter build command was successful +if [[ $flutter_exit_code -ne 0 ]]; then + echo "Flutter build failed with exit code $flutter_exit_code." + exit 1 +fi + +# Check the output for the specific string +if [[ "$flutter_output" =~ "Running pod install" ]]; then + exit 1 +else + echo "Successfully built macOS project using Swift Package Manager." + exit 0 +fi From a3c7a66d8d82f5f54937dc011102295a55fc8111 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 15:47:12 +0100 Subject: [PATCH 36/45] incorrect mac path --- .github/workflows/scripts/swift-integration.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh index e3c30873f3ad..8d728dce4f4b 100755 --- a/.github/workflows/scripts/swift-integration.sh +++ b/.github/workflows/scripts/swift-integration.sh @@ -30,13 +30,10 @@ else exit 0 fi -cd ../macos -echo "222222222" - # firebase_core macOS example # Setup for SPM integration -cd packages/firebase_core/firebase_core/example/macos +cd ../macos rm Podfile pod deintegrate From b9379b42d680a2ad82f438996465385b8749ce68 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Tue, 28 May 2024 15:55:33 +0100 Subject: [PATCH 37/45] stop exiting script --- .github/workflows/scripts/swift-integration.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/scripts/swift-integration.sh b/.github/workflows/scripts/swift-integration.sh index 8d728dce4f4b..d15fb70bf1f2 100755 --- a/.github/workflows/scripts/swift-integration.sh +++ b/.github/workflows/scripts/swift-integration.sh @@ -27,7 +27,6 @@ if [[ "$flutter_output" =~ "Running pod install" ]]; then exit 1 else echo "Successfully built iOS project using Swift Package Manager." - exit 0 fi # firebase_core macOS example From 95ade96587c05be66f1c943b0af0092b286fbae4 Mon Sep 17 00:00:00 2001 From: Russell Wheatley Date: Wed, 4 Sep 2024 08:41:10 +0100 Subject: [PATCH 38/45] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com> --- packages/firebase_core/firebase_core/ios/firebase_core.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core.podspec b/packages/firebase_core/firebase_core/ios/firebase_core.podspec index 9543119930b2..aaf83e8fd6f8 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core.podspec +++ b/packages/firebase_core/firebase_core/ios/firebase_core.podspec @@ -40,4 +40,4 @@ Pod::Spec.new do |s| 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-core\\\"", 'DEFINES_MODULE' => 'YES' } -end \ No newline at end of file +end From 8100b137f097398114bdde3954e6a5f8c5669434 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 4 Sep 2024 08:42:48 +0100 Subject: [PATCH 39/45] chore(core): bump ios version for swift --- .../firebase_core/firebase_core/ios/firebase_core/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 1ee257419171..9b227274b60a 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -82,7 +82,7 @@ guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { let package = Package( name: "firebase_core", platforms: [ - .iOS("11.0"), + .iOS("12.0"), ], products: [ .library(name: "firebase-core", targets: ["firebase_core"]), From 1eaa3d144e79dae3b416818e7ee7865b242941bf Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 4 Sep 2024 09:01:27 +0100 Subject: [PATCH 40/45] chore(core): bump minimum macOS version --- .../firebase_core/macos/firebase_core/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift index a868ebdbffab..c4d04289386e 100644 --- a/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/macos/firebase_core/Package.swift @@ -82,7 +82,7 @@ guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { let package = Package( name: "firebase_core", platforms: [ - .macOS("10.13"), + .macOS("10.15"), ], products: [ .library(name: "firebase-core", targets: ["firebase_core"]), From 0107af0f88d6b1d98d411f0f97b4343830f97a6e Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 11 Sep 2024 14:40:20 +0100 Subject: [PATCH 41/45] test: clean up disk space on macOS runner --- .github/workflows/ios.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml index a34593ab0fb4..263d644147a7 100644 --- a/.github/workflows/ios.yaml +++ b/.github/workflows/ios.yaml @@ -74,6 +74,12 @@ jobs: - name: 'Install Tools' run: | sudo npm i -g firebase-tools + - name: 'Free up space' + run: | + sudo rm -rf /usr/local/share/.cache + sudo rm -rf /Users/runner/Library/Caches + sudo rm -rf /Users/runner/Library/Developer/Xcode/DerivedData + sudo rm -rf /Users/runner/Library/Developer/CoreSimulator/Caches - name: 'Build Application' working-directory: ${{ matrix.working_directory }} run: | From 0fb83132c00d7239f67eb440d44666e57ca6eb7e Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 11 Sep 2024 15:11:11 +0100 Subject: [PATCH 42/45] test: further clean up --- .github/workflows/ios.yaml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml index 263d644147a7..c9e33c313194 100644 --- a/.github/workflows/ios.yaml +++ b/.github/workflows/ios.yaml @@ -76,10 +76,24 @@ jobs: sudo npm i -g firebase-tools - name: 'Free up space' run: | - sudo rm -rf /usr/local/share/.cache - sudo rm -rf /Users/runner/Library/Caches - sudo rm -rf /Users/runner/Library/Developer/Xcode/DerivedData - sudo rm -rf /Users/runner/Library/Developer/CoreSimulator/Caches + sudo rm -rf \ + /usr/local/share/.cache \ + /Users/runner/Library/Caches \ + /Users/runner/Library/Developer/Xcode/DerivedData \ + /Users/runner/Library/Developer/CoreSimulator/Caches \ + "$AGENT_TOOLSDIRECTORY" \ + /opt/google/chrome \ + /opt/microsoft/msedge \ + /opt/microsoft/powershell \ + /opt/pipx \ + /usr/lib/mono \ + /usr/local/julia* \ + /usr/local/lib/android \ + /usr/local/share/chromium \ + /usr/local/share/powershell \ + /usr/share/dotnet \ + /usr/share/swift + df -h / - name: 'Build Application' working-directory: ${{ matrix.working_directory }} run: | From 3fcaeb170862179a6512efbdafe0fa4c87b3c49f Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 11 Sep 2024 15:17:05 +0100 Subject: [PATCH 43/45] test: remove swift clean up --- .github/workflows/ios.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml index c9e33c313194..019d65eb4149 100644 --- a/.github/workflows/ios.yaml +++ b/.github/workflows/ios.yaml @@ -91,8 +91,7 @@ jobs: /usr/local/lib/android \ /usr/local/share/chromium \ /usr/local/share/powershell \ - /usr/share/dotnet \ - /usr/share/swift + /usr/share/dotnet df -h / - name: 'Build Application' working-directory: ${{ matrix.working_directory }} From 4d81d07b1f875bb072c53cc90aa13e960207f328 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Wed, 11 Sep 2024 15:19:35 +0100 Subject: [PATCH 44/45] test: remove further clean up --- .github/workflows/ios.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml index 019d65eb4149..d2f970044b7b 100644 --- a/.github/workflows/ios.yaml +++ b/.github/workflows/ios.yaml @@ -81,8 +81,6 @@ jobs: /Users/runner/Library/Caches \ /Users/runner/Library/Developer/Xcode/DerivedData \ /Users/runner/Library/Developer/CoreSimulator/Caches \ - "$AGENT_TOOLSDIRECTORY" \ - /opt/google/chrome \ /opt/microsoft/msedge \ /opt/microsoft/powershell \ /opt/pipx \ From 758c3cbaa17885549f1b43cc0814f188a2b0c325 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 12 Sep 2024 10:47:26 +0100 Subject: [PATCH 45/45] chore(core): move to iOS 13 for core swift --- .../firebase_core/firebase_core/ios/firebase_core/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift index 9b227274b60a..5d4cd0f52b5f 100644 --- a/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift +++ b/packages/firebase_core/firebase_core/ios/firebase_core/Package.swift @@ -82,7 +82,7 @@ guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { let package = Package( name: "firebase_core", platforms: [ - .iOS("12.0"), + .iOS("13.0"), ], products: [ .library(name: "firebase-core", targets: ["firebase_core"]),