From 8a0bfe3f8386884fda04014e6acbf7f0e82bd237 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 1 May 2024 12:42:33 -0700 Subject: [PATCH] [firebase] Update sample and use one binding project (#16) The analytics and messaging native projects have been merged into a single MauiFirebase Xcode project. The sample has been updated to use bound APIs from both the analytics and messaging SDKs. --- README.md | 23 +- .../Firebase.MaciOS.Binding/ApiDefinitions.cs | 97 ++++ .../Firebase.MaciOS.Binding.csproj} | 9 +- firebase/macios/Firebase.sln | 8 +- .../ApiDefinitions.cs | 54 --- .../ApiDefinitions.cs | 38 -- .../FirebaseMessaging.Binding.csproj | 27 -- firebase/macios/README.md | 23 +- firebase/macios/native/.gitignore | 3 + .../project.pbxproj | 185 +++++--- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/swiftpm/Package.resolved | 37 +- .../MauiFIRAnalytics.swift} | 9 +- .../MauiFIRApp.swift} | 9 +- .../MauiFIRMessaging.swift} | 9 +- .../macios/native/MauiFirebase/MauiFirebase.h | 18 + .../project.pbxproj | 449 ------------------ .../contents.xcworkspacedata | 7 - .../MauiFirebaseAnalytics.h | 18 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 122 ----- .../MauiFirebaseMessaging.h | 11 - firebase/macios/sample/App.xaml.cs | 2 +- firebase/macios/sample/AppTabbedPage.xaml | 18 + firebase/macios/sample/AppTabbedPage.xaml.cs | 29 ++ firebase/macios/sample/FIRAnalyticsPage.xaml | 32 ++ .../macios/sample/FIRAnalyticsPage.xaml.cs | 26 + firebase/macios/sample/FIRMessagingPage.xaml | 40 ++ .../macios/sample/FIRMessagingPage.xaml.cs | 41 ++ firebase/macios/sample/MainPage.xaml | 27 -- firebase/macios/sample/MainPage.xaml.cs | 65 --- .../Platforms/iOS/GoogleService-Info.plist | 10 +- firebase/macios/sample/Sample.csproj | 3 +- 34 files changed, 491 insertions(+), 966 deletions(-) create mode 100644 firebase/macios/Firebase.MaciOS.Binding/ApiDefinitions.cs rename firebase/macios/{FirebaseAnalytics.Binding/FirebaseAnalytics.Binding.csproj => Firebase.MaciOS.Binding/Firebase.MaciOS.Binding.csproj} (68%) delete mode 100644 firebase/macios/FirebaseAnalytics.Binding/ApiDefinitions.cs delete mode 100644 firebase/macios/FirebaseMessaging.Binding/ApiDefinitions.cs delete mode 100644 firebase/macios/FirebaseMessaging.Binding/FirebaseMessaging.Binding.csproj create mode 100644 firebase/macios/native/.gitignore rename firebase/macios/native/{messaging/MauiFirebaseMessaging.xcodeproj => MauiFirebase.xcodeproj}/project.pbxproj (59%) rename firebase/macios/native/{messaging/MauiFirebaseMessaging.xcodeproj => MauiFirebase.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename firebase/macios/native/{analytics/MauiFirebaseAnalytics.xcodeproj => MauiFirebase.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename firebase/macios/native/{analytics/MauiFirebaseAnalytics.xcodeproj => MauiFirebase.xcodeproj}/project.xcworkspace/xcshareddata/swiftpm/Package.resolved (76%) rename firebase/macios/native/{analytics/MauiFirebaseAnalytics/FirebaseAnalytics.swift => MauiFirebase/MauiFIRAnalytics.swift} (88%) rename firebase/macios/native/{analytics/MauiFirebaseAnalytics/FirebaseApplication.swift => MauiFirebase/MauiFIRApp.swift} (79%) rename firebase/macios/native/{messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.swift => MauiFirebase/MauiFIRMessaging.swift} (93%) create mode 100644 firebase/macios/native/MauiFirebase/MauiFirebase.h delete mode 100644 firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.pbxproj delete mode 100644 firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 firebase/macios/native/analytics/MauiFirebaseAnalytics/MauiFirebaseAnalytics.h delete mode 100644 firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.h create mode 100644 firebase/macios/sample/AppTabbedPage.xaml create mode 100644 firebase/macios/sample/AppTabbedPage.xaml.cs create mode 100644 firebase/macios/sample/FIRAnalyticsPage.xaml create mode 100644 firebase/macios/sample/FIRAnalyticsPage.xaml.cs create mode 100644 firebase/macios/sample/FIRMessagingPage.xaml create mode 100644 firebase/macios/sample/FIRMessagingPage.xaml.cs delete mode 100644 firebase/macios/sample/MainPage.xaml delete mode 100644 firebase/macios/sample/MainPage.xaml.cs diff --git a/README.md b/README.md index 0223082..92a3156 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Get started with slim bindings using the Facebook, Firebase Analytics, Firebase 1. Submodule or clone this repo 2. Navigate to the appropriate folder for the binding you're interested in using or building from
-e.g. For Firebase Messaging, navigate to `firebase/macios/FirebaseMessaging.Binding` +e.g. For Firebase Messaging, navigate to `firebase/macios/Firebase.MaciOS.Binding` 3. Run `dotnet build` @@ -24,7 +24,7 @@ e.g. For Firebase Messaging, navigate to `firebase/macios/FirebaseMessaging.Bind 5. Add a project reference to your MAUI app pointing to the path where you have cloned the repo
e.g. For Firebase Messaging, add to your csproj: ```xaml - + ``` 6. Cross-reference the sample and add the necessary code into your own project.
@@ -131,8 +131,8 @@ If the existing API surface in a given sample doesn't expose the functionality y Inside the Xcode project you will find one or more .Swift files which define the public API surface for the Slim Binding. For example, the `register` method for Firebase Messaging is defined as below: ```Swift -@objc(FirebaseMessaging) -public class FirebaseMessaging : NSObject { +@objc(MauiFIRMessaging) +public class MauiFIRMessaging : NSObject { @objc(register:completion:) public static func register(apnsToken: NSData, completion: @escaping (String?, NSError?) -> Void) { @@ -153,7 +153,7 @@ public class FirebaseMessaging : NSObject { You can see in this method that the public API surface only uses types which iOS for .NET already is aware of: `NSData`, `String`, `NSError` and a callback. -In the `FirebaseMessaging.Binding` project, the `ApiDefinitions.cs` file contains the binding definition for this slim wrapper API: +In the `Firebase.MaciOS.Binding` project, the `ApiDefinitions.cs` file contains the binding definition for this slim wrapper API: ```csharp using System; @@ -161,17 +161,16 @@ using Foundation; namespace Firebase { - [BaseType(typeof(NSObject))] - interface FirebaseMessaging + // @interface MauiFIRMessaging : NSObject + [BaseType (typeof(NSObject))] + interface MauiFIRMessaging { [Static] - [Export("register:completion:")] + [Export ("register:completion:")] [Async] - void Register(NSData nativePush, Action completion); - + void Register (NSData apnsToken, Action completion); // ... } -} ``` #### Modifying Mac/iOS @@ -191,7 +190,7 @@ public static func unregister(completion: @escaping (NSError?) -> Void) { The other half will be to update the `ApiDefinitions.cs` file in the binding project to expose this new method. There are two ways you can go about this: 1. You can manually add the required code -2. When the binding project builds, objective sharpie is run and an `ApiDefinitions.cs` file is generated inside of the `native/macios/messaging/.build/Binding` folder (this path will vary based on the project you are working on of course). You can try to find the relevant changes from this file and copy them over manually, or try copying over the whole file and looking at the diff to find the part you need. +2. When the binding project builds, objective sharpie is run and an `ApiDefinitions.cs` file is generated inside of the `native/macios/.build/Binding` folder (this path will vary based on the project you are working on of course). You can try to find the relevant changes from this file and copy them over manually, or try copying over the whole file and looking at the diff to find the part you need. In this case, the changes to `ApiDefinitions.cs` would be: diff --git a/firebase/macios/Firebase.MaciOS.Binding/ApiDefinitions.cs b/firebase/macios/Firebase.MaciOS.Binding/ApiDefinitions.cs new file mode 100644 index 0000000..297fc4f --- /dev/null +++ b/firebase/macios/Firebase.MaciOS.Binding/ApiDefinitions.cs @@ -0,0 +1,97 @@ +#nullable enable +using System; +using Foundation; + +namespace Firebase +{ + // @interface MauiFIRAnalytics : NSObject + [BaseType (typeof(NSObject))] + interface MauiFIRAnalytics + { + // +(void)logEventWithEventName:(NSString * _Nonnull)eventName parameters:(NSDictionary * _Nonnull)parameters; + [Static] + [Export ("logEventWithEventName:parameters:")] + void LogEvent (string eventName, NSDictionary parameters); + + // +(void)getAppInstanceIdWithCompletion:(void (^ _Nonnull)(NSString * _Nullable))completion; + [Static] + [Export ("getAppInstanceIdWithCompletion:")] + [Async] + void GetAppInstanceId (Action completion); + + // +(void)setUserIdWithUserId:(NSString * _Nonnull)userId; + [Static] + [Export ("setUserIdWithUserId:")] + void SetUserId (string userId); + + // +(void)setUserPropertyWithPropertyName:(NSString * _Nonnull)propertyName value:(NSString * _Nonnull)value; + [Static] + [Export ("setUserPropertyWithPropertyName:value:")] + void SetUserProperty (string propertyName, string value); + + // +(void)setSessionTimeoutWithSeconds:(NSInteger)seconds; + [Static] + [Export ("setSessionTimeoutWithSeconds:")] + void SetSessionTimeout (nint seconds); + + // +(void)resetAnalyticsData; + [Static] + [Export ("resetAnalyticsData")] + void ResetAnalyticsData (); + } + + // @interface MauiFIRApp : NSObject + [BaseType (typeof(NSObject))] + interface MauiFIRApp + { + // +(void)autoConfigure; + [Static] + [Export ("autoConfigure")] + void AutoConfigure (); + + // +(void)configure:(NSString * _Nonnull)googleAppId gcmSenderId:(NSString * _Nonnull)gcmSenderId; + [Static] + [Export ("configure:gcmSenderId:")] + void Configure (string googleAppId, string gcmSenderId); + } + + // @interface MauiFIRMessaging : NSObject + [BaseType (typeof(NSObject))] + interface MauiFIRMessaging + { + // +(BOOL)getIsAutoInitEnabled __attribute__((warn_unused_result(""))); + // +(void)setIsAutoInitEnabled:(BOOL)enabled; + [Static] + [Export ("getIsAutoInitEnabled")] + bool IsAutoInitEnabled { get; [Bind("setIsAutoInitEnabled:")] set; } + + // +(NSString * _Nullable)getFcmToken __attribute__((warn_unused_result(""))); + [Static] + [NullAllowed, Export ("getFcmToken")] + string FcmToken { get; } + + // +(void)register:(NSData * _Nonnull)apnsToken completion:(void (^ _Nonnull)(NSString * _Nullable, NSError * _Nullable))completion; + [Static] + [Export ("register:completion:")] + [Async] + void Register (NSData apnsToken, Action completion); + + // +(void)unregister:(void (^ _Nonnull)(NSError * _Nullable))completion; + [Static] + [Export ("unregister:")] + [Async] + void Unregister (Action completion); + + // +(void)subscribe:(NSString * _Nonnull)topic completion:(void (^ _Nonnull)(NSError * _Nullable))completion; + [Static] + [Export ("subscribe:completion:")] + [Async] + void Subscribe (string topic, Action completion); + + // +(void)unsubscribe:(NSString * _Nonnull)topic completion:(void (^ _Nonnull)(NSError * _Nullable))completion; + [Static] + [Export ("unsubscribe:completion:")] + [Async] + void Unsubscribe (string topic, Action completion); + } +} diff --git a/firebase/macios/FirebaseAnalytics.Binding/FirebaseAnalytics.Binding.csproj b/firebase/macios/Firebase.MaciOS.Binding/Firebase.MaciOS.Binding.csproj similarity index 68% rename from firebase/macios/FirebaseAnalytics.Binding/FirebaseAnalytics.Binding.csproj rename to firebase/macios/Firebase.MaciOS.Binding/Firebase.MaciOS.Binding.csproj index 113bf78..3dd9f3c 100644 --- a/firebase/macios/FirebaseAnalytics.Binding/FirebaseAnalytics.Binding.csproj +++ b/firebase/macios/Firebase.MaciOS.Binding/Firebase.MaciOS.Binding.csproj @@ -4,18 +4,19 @@ enable true true + true - $(MSBuildThisFileDirectory)../native/analytics/MauiFirebaseAnalytics.xcodeproj + $(MSBuildThisFileDirectory)../native/MauiFirebase.xcodeproj true - False + true Firebase - + Framework - True + true diff --git a/firebase/macios/Firebase.sln b/firebase/macios/Firebase.sln index 456450a..bafc442 100644 --- a/firebase/macios/Firebase.sln +++ b/firebase/macios/Firebase.sln @@ -1,9 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirebaseAnalytics.Binding", "FirebaseAnalytics.Binding\FirebaseAnalytics.Binding.csproj", "{3ED9CE50-B781-4DDB-831E-36544D8F9C87}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirebaseMessaging.Binding", "FirebaseMessaging.Binding\FirebaseMessaging.Binding.csproj", "{53C8A442-72AB-4AD2-A188-B30E07160FEB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase.Macios.Binding", "Firebase.Macios.Binding\Firebase.Macios.Binding.csproj", "{3ED9CE50-B781-4DDB-831E-36544D8F9C87}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample", "sample\Sample.csproj", "{1FEADCF2-520E-4B2B-AFA6-4E5291034DEC}" EndProject @@ -23,10 +21,6 @@ Global {3ED9CE50-B781-4DDB-831E-36544D8F9C87}.Debug|Any CPU.Build.0 = Debug|Any CPU {3ED9CE50-B781-4DDB-831E-36544D8F9C87}.Release|Any CPU.ActiveCfg = Release|Any CPU {3ED9CE50-B781-4DDB-831E-36544D8F9C87}.Release|Any CPU.Build.0 = Release|Any CPU - {53C8A442-72AB-4AD2-A188-B30E07160FEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53C8A442-72AB-4AD2-A188-B30E07160FEB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53C8A442-72AB-4AD2-A188-B30E07160FEB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53C8A442-72AB-4AD2-A188-B30E07160FEB}.Release|Any CPU.Build.0 = Release|Any CPU {1FEADCF2-520E-4B2B-AFA6-4E5291034DEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1FEADCF2-520E-4B2B-AFA6-4E5291034DEC}.Debug|Any CPU.Build.0 = Debug|Any CPU {1FEADCF2-520E-4B2B-AFA6-4E5291034DEC}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/firebase/macios/FirebaseAnalytics.Binding/ApiDefinitions.cs b/firebase/macios/FirebaseAnalytics.Binding/ApiDefinitions.cs deleted file mode 100644 index adb3979..0000000 --- a/firebase/macios/FirebaseAnalytics.Binding/ApiDefinitions.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using Foundation; - -namespace Firebase -{ - [BaseType(typeof(NSObject))] - interface FirebaseApplication - { - [Static] - [Export("autoConfigure")] - void AutoConfigure(); - - [Static] - [Export("configure:gcmSenderId:")] - void Configure(string googleAppId, string gcmSenderId); - } - - - // @interface FirebaseAnalytics : NSObject - [BaseType (typeof(NSObject))] - interface FirebaseAnalytics - { - // -(void)logEventWithEventName:(NSString * _Nonnull)eventName parameters:(NSDictionary * _Nonnull)parameters; - [Static] - [Export ("logEventWithEventName:parameters:")] - void LogEvent (string eventName, NSDictionary parameters); - - // -(void)getAppInstanceIdWithCompletion:(void (^ _Nonnull)(NSString * _Nullable))completion; - [Static] - [Export ("getAppInstanceIdWithCompletion:")] - [Async] - void GetAppInstanceId (Action completion); - - // -(void)setUserIdWithUserId:(NSString * _Nonnull)userId; - [Static] - [Export ("setUserIdWithUserId:")] - void SetUserId (string userId); - - // -(void)setUserPropertyWithPropertyName:(NSString * _Nonnull)propertyName value:(NSString * _Nonnull)value; - [Static] - [Export ("setUserProperty:value:")] - void SetUserProperty (string propertyName, string value); - - // -(void)setSessionTimeoutWithSeconds:(NSInteger)seconds; - [Static] - [Export ("setSessionTimeoutWithSeconds:")] - void SetSessionTimeout (nint seconds); - - // -(void)resetAnalyticsData; - [Static] - [Export ("resetAnalyticsData")] - void ResetAnalyticsData (); - } -} diff --git a/firebase/macios/FirebaseMessaging.Binding/ApiDefinitions.cs b/firebase/macios/FirebaseMessaging.Binding/ApiDefinitions.cs deleted file mode 100644 index 5252be7..0000000 --- a/firebase/macios/FirebaseMessaging.Binding/ApiDefinitions.cs +++ /dev/null @@ -1,38 +0,0 @@ -#nullable enable -using System; -using Foundation; - -namespace Firebase -{ - [BaseType(typeof(NSObject))] - interface FirebaseMessaging - { - [Static] - [Export("getIsAutoInitEnabled:")] - bool IsAutoInitEnabled { get; [Bind("setIsAutoInitEnabled:")] set; } - - [Static] - [Export("getFcmToken")] - string FcmToken { get; } - - [Static] - [Export("register:completion:")] - [Async] - void Register(NSData nativePush, Action completion); - - [Static] - [Export("unregister:")] - [Async] - void UnRegister(Action completion); - - [Static] - [Export("subscribe:completion:")] - [Async] - void Subscribe(string topic, Action completion); - - [Static] - [Export("unsubscribe:completion:")] - [Async] - void UnSubscribe(string topic, Action completion); - } -} diff --git a/firebase/macios/FirebaseMessaging.Binding/FirebaseMessaging.Binding.csproj b/firebase/macios/FirebaseMessaging.Binding/FirebaseMessaging.Binding.csproj deleted file mode 100644 index 2172b58..0000000 --- a/firebase/macios/FirebaseMessaging.Binding/FirebaseMessaging.Binding.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - net8.0-ios;net8.0-maccatalyst - enable - true - true - true - - $(MSBuildThisFileDirectory)../native/messaging/MauiFirebaseMessaging.xcodeproj - False - - - - - - Framework - True - True - - - - - - - - - diff --git a/firebase/macios/README.md b/firebase/macios/README.md index 5b3e7de..9cf11f6 100644 --- a/firebase/macios/README.md +++ b/firebase/macios/README.md @@ -1,7 +1,20 @@ -# MAUI -A set of examples for slim binding native libraries for use with .NET MAUI apps +# Firebase Slim Binding +This folder contains a slim binding for the Firebase SDK which demonstrates simple [Analytics][0] and [Messaging][1] usage. +### Build and Run +```shell + dotnet build sample -t:Run -f net8.0-ios +``` -## Testing -Add your GoogleService-Info.plist to the sample project and change to your -iOS app identifier in the Sample.csproj \ No newline at end of file +### Configure +The included sample requires some modification to fully function. You will need to log in to +a Firebase developer account and configure an app to interface with this sample. +For more details, reference the [Get Started (iOS)][2] page. + +1. Download your `GoogleService-Info.plist` and replace `Platforms/iOS/GoogleService-Info.plist` with it. +2. Change the `` value in `Sample.csproj` to your Firebase iOS app identifier. + + +[0]: https://firebase.google.com/docs/analytics/get-started?platform=ios +[1]: https://firebase.google.com/docs/cloud-messaging/ios/client +[2]: https://firebase.google.com/docs/ios/setup diff --git a/firebase/macios/native/.gitignore b/firebase/macios/native/.gitignore new file mode 100644 index 0000000..22db5ee --- /dev/null +++ b/firebase/macios/native/.gitignore @@ -0,0 +1,3 @@ +.build/ +build/ +deps/ diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.pbxproj b/firebase/macios/native/MauiFirebase.xcodeproj/project.pbxproj similarity index 59% rename from firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.pbxproj rename to firebase/macios/native/MauiFirebase.xcodeproj/project.pbxproj index e21a72c..44b7578 100644 --- a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.pbxproj +++ b/firebase/macios/native/MauiFirebase.xcodeproj/project.pbxproj @@ -7,56 +7,66 @@ objects = { /* Begin PBXBuildFile section */ - 64B992DD2B966E8400BAFB55 /* MauiFirebaseMessaging.h in Headers */ = {isa = PBXBuildFile; fileRef = 64B992DC2B966E8400BAFB55 /* MauiFirebaseMessaging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64B992E42B966F2D00BAFB55 /* MauiFirebaseMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B992E32B966F2D00BAFB55 /* MauiFirebaseMessaging.swift */; }; - E5A6E48D2B9C04EF00B955ED /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = E5A6E48C2B9C04EF00B955ED /* FirebaseMessaging */; }; + D051A4BC2BD33D4600EC7F28 /* MauiFirebase.h in Headers */ = {isa = PBXBuildFile; fileRef = D051A4BB2BD33D4600EC7F28 /* MauiFirebase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D051A4C32BD33D9100EC7F28 /* MauiFIRApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051A4C22BD33D9100EC7F28 /* MauiFIRApp.swift */; }; + D051A4C52BD33DB100EC7F28 /* MauiFIRMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051A4C42BD33DB100EC7F28 /* MauiFIRMessaging.swift */; }; + D051A4C72BD33DBB00EC7F28 /* MauiFIRAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051A4C62BD33DBB00EC7F28 /* MauiFIRAnalytics.swift */; }; + D0BECB2A2BD833BA00CDDD0A /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = D0BECB292BD833BA00CDDD0A /* FirebaseAnalytics */; }; + D0BECB2C2BD833BA00CDDD0A /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = D0BECB2B2BD833BA00CDDD0A /* FirebaseMessaging */; }; + D0BECB2E2BD8381100CDDD0A /* FirebaseInstallations in Frameworks */ = {isa = PBXBuildFile; productRef = D0BECB2D2BD8381100CDDD0A /* FirebaseInstallations */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 64B992D92B966E8400BAFB55 /* MauiFirebaseMessaging.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MauiFirebaseMessaging.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 64B992DC2B966E8400BAFB55 /* MauiFirebaseMessaging.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MauiFirebaseMessaging.h; sourceTree = ""; }; - 64B992E32B966F2D00BAFB55 /* MauiFirebaseMessaging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MauiFirebaseMessaging.swift; sourceTree = ""; }; + D051A4B82BD33D4600EC7F28 /* MauiFirebase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MauiFirebase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D051A4BB2BD33D4600EC7F28 /* MauiFirebase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MauiFirebase.h; sourceTree = ""; }; + D051A4C22BD33D9100EC7F28 /* MauiFIRApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MauiFIRApp.swift; sourceTree = ""; }; + D051A4C42BD33DB100EC7F28 /* MauiFIRMessaging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MauiFIRMessaging.swift; sourceTree = ""; }; + D051A4C62BD33DBB00EC7F28 /* MauiFIRAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MauiFIRAnalytics.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 64B992D62B966E8400BAFB55 /* Frameworks */ = { + D051A4B52BD33D4600EC7F28 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E5A6E48D2B9C04EF00B955ED /* FirebaseMessaging in Frameworks */, + D0BECB2E2BD8381100CDDD0A /* FirebaseInstallations in Frameworks */, + D0BECB2C2BD833BA00CDDD0A /* FirebaseMessaging in Frameworks */, + D0BECB2A2BD833BA00CDDD0A /* FirebaseAnalytics in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 64B992CF2B966E8400BAFB55 = { + D051A4AE2BD33D4600EC7F28 = { isa = PBXGroup; children = ( - 64B992DB2B966E8400BAFB55 /* MauiFirebaseMessaging */, - 64B992DA2B966E8400BAFB55 /* Products */, - 64B993072B979E9C00BAFB55 /* Frameworks */, + D051A4BA2BD33D4600EC7F28 /* MauiFirebase */, + D051A4B92BD33D4600EC7F28 /* Products */, + D051A4C82BD33DED00EC7F28 /* Frameworks */, ); sourceTree = ""; }; - 64B992DA2B966E8400BAFB55 /* Products */ = { + D051A4B92BD33D4600EC7F28 /* Products */ = { isa = PBXGroup; children = ( - 64B992D92B966E8400BAFB55 /* MauiFirebaseMessaging.framework */, + D051A4B82BD33D4600EC7F28 /* MauiFirebase.framework */, ); name = Products; sourceTree = ""; }; - 64B992DB2B966E8400BAFB55 /* MauiFirebaseMessaging */ = { + D051A4BA2BD33D4600EC7F28 /* MauiFirebase */ = { isa = PBXGroup; children = ( - 64B992DC2B966E8400BAFB55 /* MauiFirebaseMessaging.h */, - 64B992E32B966F2D00BAFB55 /* MauiFirebaseMessaging.swift */, + D051A4BB2BD33D4600EC7F28 /* MauiFirebase.h */, + D051A4C22BD33D9100EC7F28 /* MauiFIRApp.swift */, + D051A4C42BD33DB100EC7F28 /* MauiFIRMessaging.swift */, + D051A4C62BD33DBB00EC7F28 /* MauiFIRAnalytics.swift */, ); - path = MauiFirebaseMessaging; + path = MauiFirebase; sourceTree = ""; }; - 64B993072B979E9C00BAFB55 /* Frameworks */ = { + D051A4C82BD33DED00EC7F28 /* Frameworks */ = { isa = PBXGroup; children = ( ); @@ -66,54 +76,56 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 64B992D42B966E8400BAFB55 /* Headers */ = { + D051A4B32BD33D4600EC7F28 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 64B992DD2B966E8400BAFB55 /* MauiFirebaseMessaging.h in Headers */, + D051A4BC2BD33D4600EC7F28 /* MauiFirebase.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 64B992D82B966E8400BAFB55 /* MauiFirebaseMessaging */ = { + D051A4B72BD33D4600EC7F28 /* MauiFirebase */ = { isa = PBXNativeTarget; - buildConfigurationList = 64B992E02B966E8400BAFB55 /* Build configuration list for PBXNativeTarget "MauiFirebaseMessaging" */; + buildConfigurationList = D051A4BF2BD33D4600EC7F28 /* Build configuration list for PBXNativeTarget "MauiFirebase" */; buildPhases = ( - 64B992D42B966E8400BAFB55 /* Headers */, - 64B992D52B966E8400BAFB55 /* Sources */, - 64B992D62B966E8400BAFB55 /* Frameworks */, - 64B992D72B966E8400BAFB55 /* Resources */, + D051A4B32BD33D4600EC7F28 /* Headers */, + D051A4B42BD33D4600EC7F28 /* Sources */, + D051A4B52BD33D4600EC7F28 /* Frameworks */, + D051A4B62BD33D4600EC7F28 /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = MauiFirebaseMessaging; + name = MauiFirebase; packageProductDependencies = ( - E5A6E48C2B9C04EF00B955ED /* FirebaseMessaging */, + D0BECB292BD833BA00CDDD0A /* FirebaseAnalytics */, + D0BECB2B2BD833BA00CDDD0A /* FirebaseMessaging */, + D0BECB2D2BD8381100CDDD0A /* FirebaseInstallations */, ); - productName = MauiFirebaseMessaging; - productReference = 64B992D92B966E8400BAFB55 /* MauiFirebaseMessaging.framework */; + productName = MauiFirebase; + productReference = D051A4B82BD33D4600EC7F28 /* MauiFirebase.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 64B992D02B966E8400BAFB55 /* Project object */ = { + D051A4AF2BD33D4600EC7F28 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastUpgradeCheck = 1520; + LastUpgradeCheck = 1530; TargetAttributes = { - 64B992D82B966E8400BAFB55 = { - CreatedOnToolsVersion = 15.2; - LastSwiftMigration = 1520; + D051A4B72BD33D4600EC7F28 = { + CreatedOnToolsVersion = 15.3; + LastSwiftMigration = 1530; }; }; }; - buildConfigurationList = 64B992D32B966E8400BAFB55 /* Build configuration list for PBXProject "MauiFirebaseMessaging" */; + buildConfigurationList = D051A4B22BD33D4600EC7F28 /* Build configuration list for PBXProject "MauiFirebase" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -121,21 +133,21 @@ en, Base, ); - mainGroup = 64B992CF2B966E8400BAFB55; + mainGroup = D051A4AE2BD33D4600EC7F28; packageReferences = ( - E5A6E47F2B9C04EF00B955ED /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, + D0BECB282BD833BA00CDDD0A /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, ); - productRefGroup = 64B992DA2B966E8400BAFB55 /* Products */; + productRefGroup = D051A4B92BD33D4600EC7F28 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 64B992D82B966E8400BAFB55 /* MauiFirebaseMessaging */, + D051A4B72BD33D4600EC7F28 /* MauiFirebase */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 64B992D72B966E8400BAFB55 /* Resources */ = { + D051A4B62BD33D4600EC7F28 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -145,18 +157,20 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 64B992D52B966E8400BAFB55 /* Sources */ = { + D051A4B42BD33D4600EC7F28 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 64B992E42B966F2D00BAFB55 /* MauiFirebaseMessaging.swift in Sources */, + D051A4C72BD33DBB00EC7F28 /* MauiFIRAnalytics.swift in Sources */, + D051A4C52BD33DB100EC7F28 /* MauiFIRMessaging.swift in Sources */, + D051A4C32BD33D9100EC7F28 /* MauiFIRApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 64B992DE2B966E8400BAFB55 /* Debug */ = { + D051A4BD2BD33D4600EC7F28 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -209,10 +223,13 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.2; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = "-ObjC"; + SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; VERSIONING_SYSTEM = "apple-generic"; @@ -220,7 +237,7 @@ }; name = Debug; }; - 64B992DF2B966E8400BAFB55 /* Release */ = { + D051A4BE2BD33D4600EC7F28 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -267,18 +284,23 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.2; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; + OTHER_LDFLAGS = "-ObjC"; + SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 64B992E12B966E8400BAFB55 /* Debug */ = { + D051A4C02BD33D4600EC7F28 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -290,35 +312,34 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.2; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.MauiFirebaseMessaging; + PRODUCT_BUNDLE_IDENTIFIER = com.companyname.MauiFirebase; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; + SKIP_INSTALL = NO; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - 64B992E22B966E8400BAFB55 /* Release */ = { + D051A4C12BD33D4600EC7F28 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -330,26 +351,24 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.2; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.MauiFirebaseMessaging; + PRODUCT_BUNDLE_IDENTIFIER = com.companyname.MauiFirebase; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; + SKIP_INSTALL = NO; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -358,20 +377,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 64B992D32B966E8400BAFB55 /* Build configuration list for PBXProject "MauiFirebaseMessaging" */ = { + D051A4B22BD33D4600EC7F28 /* Build configuration list for PBXProject "MauiFirebase" */ = { isa = XCConfigurationList; buildConfigurations = ( - 64B992DE2B966E8400BAFB55 /* Debug */, - 64B992DF2B966E8400BAFB55 /* Release */, + D051A4BD2BD33D4600EC7F28 /* Debug */, + D051A4BE2BD33D4600EC7F28 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 64B992E02B966E8400BAFB55 /* Build configuration list for PBXNativeTarget "MauiFirebaseMessaging" */ = { + D051A4BF2BD33D4600EC7F28 /* Build configuration list for PBXNativeTarget "MauiFirebase" */ = { isa = XCConfigurationList; buildConfigurations = ( - 64B992E12B966E8400BAFB55 /* Debug */, - 64B992E22B966E8400BAFB55 /* Release */, + D051A4C02BD33D4600EC7F28 /* Debug */, + D051A4C12BD33D4600EC7F28 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -379,23 +398,33 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - E5A6E47F2B9C04EF00B955ED /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { + D0BECB282BD833BA00CDDD0A /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; + repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 10.22.1; + minimumVersion = 10.24.0; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - E5A6E48C2B9C04EF00B955ED /* FirebaseMessaging */ = { + D0BECB292BD833BA00CDDD0A /* FirebaseAnalytics */ = { + isa = XCSwiftPackageProductDependency; + package = D0BECB282BD833BA00CDDD0A /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseAnalytics; + }; + D0BECB2B2BD833BA00CDDD0A /* FirebaseMessaging */ = { isa = XCSwiftPackageProductDependency; - package = E5A6E47F2B9C04EF00B955ED /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + package = D0BECB282BD833BA00CDDD0A /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; productName = FirebaseMessaging; }; + D0BECB2D2BD8381100CDDD0A /* FirebaseInstallations */ = { + isa = XCSwiftPackageProductDependency; + package = D0BECB282BD833BA00CDDD0A /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseInstallations; + }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = 64B992D02B966E8400BAFB55 /* Project object */; + rootObject = D051A4AF2BD33D4600EC7F28 /* Project object */; } diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 76% rename from firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3475522..b2d7290 100644 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/firebase/macios/native/MauiFirebase.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,12 +1,13 @@ { + "originHash" : "c63c63846d9c539229e96de38d6af51417e28c0ee9a0bc48bd0f0f19d923c329", "pins" : [ { "identity" : "abseil-cpp-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/abseil-cpp-binary.git", "state" : { - "revision" : "df308b8b46607675f2b9ec8e569109008f9155ce", - "version" : "1.2022062300.1" + "revision" : "748c7837511d0e6a507737353af268484e1745e2", + "version" : "1.2024011601.1" } }, { @@ -14,17 +15,17 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/app-check.git", "state" : { - "revision" : "3e464dad87dad2d29bb29a97836789bf0f8f67d2", - "version" : "10.18.1" + "revision" : "7d2688de038d5484866d835acb47b379722d610e", + "version" : "10.19.0" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/firebase-ios-sdk.git", + "location" : "https://github.com/firebase/firebase-ios-sdk", "state" : { - "revision" : "be49849dcba96f2b5ee550d4eceb2c0fa27dade4", - "version" : "10.22.1" + "revision" : "42eae77a0af79e9c3f41df04a23c76f05cfdda77", + "version" : "10.24.0" } }, { @@ -32,8 +33,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { - "revision" : "482cfa4e5880f0a29f66ecfd60c5a62af28bd1f0", - "version" : "10.22.1" + "revision" : "51ba746a9d51a4bd0774b68499b0c73ef6e8570d", + "version" : "10.24.0" } }, { @@ -59,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { - "revision" : "ea4cb5cc0c39c732b85386263116d2e2fdbbdc61", - "version" : "1.49.2" + "revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359", + "version" : "1.62.2" } }, { @@ -68,8 +69,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { - "revision" : "76135c9f4e1ac85459d5fec61b6f76ac47ab3a4c", - "version" : "3.3.1" + "revision" : "0382ca27f22fb3494cf657d8dc356dc282cd1193", + "version" : "3.4.1" } }, { @@ -86,8 +87,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { - "revision" : "43aaef65e0c665daadf848761d560e446d350d3d", - "version" : "1.22.4" + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" } }, { @@ -113,10 +114,10 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { - "revision" : "65e8f29b2d63c4e38e736b25c27b83e012159be8", - "version" : "1.25.2" + "revision" : "9f0c76544701845ad98716f3f6a774a892152bcb", + "version" : "1.26.0" } } ], - "version" : 2 + "version" : 3 } diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseAnalytics.swift b/firebase/macios/native/MauiFirebase/MauiFIRAnalytics.swift similarity index 88% rename from firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseAnalytics.swift rename to firebase/macios/native/MauiFirebase/MauiFIRAnalytics.swift index 10a4f87..c6a97b8 100644 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseAnalytics.swift +++ b/firebase/macios/native/MauiFirebase/MauiFIRAnalytics.swift @@ -1,8 +1,13 @@ +// +// MauiFIRAnalytics.swift +// MauiFirebase +// + import Foundation import FirebaseAnalytics -@objc(FirebaseAnalytics) -public class FirebaseAnalytics : NSObject { +@objc(MauiFIRAnalytics) +public class MauiFIRAnalytics : NSObject { @objc public static func logEvent(eventName: String, parameters: Dictionary) { diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseApplication.swift b/firebase/macios/native/MauiFirebase/MauiFIRApp.swift similarity index 79% rename from firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseApplication.swift rename to firebase/macios/native/MauiFirebase/MauiFIRApp.swift index 0451815..233f107 100644 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics/FirebaseApplication.swift +++ b/firebase/macios/native/MauiFirebase/MauiFIRApp.swift @@ -1,8 +1,13 @@ +// +// MauiFIRApp.swift +// MauiFirebase +// + import Foundation import FirebaseCore -@objc(FirebaseApplication) -public class FirebaseApplication : NSObject { +@objc(MauiFIRApp) +public class MauiFIRApp : NSObject { @objc public static func autoConfigure() { diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.swift b/firebase/macios/native/MauiFirebase/MauiFIRMessaging.swift similarity index 93% rename from firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.swift rename to firebase/macios/native/MauiFirebase/MauiFIRMessaging.swift index fe3ed88..e86829b 100644 --- a/firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.swift +++ b/firebase/macios/native/MauiFirebase/MauiFIRMessaging.swift @@ -1,11 +1,16 @@ +// +// MauiFIRMessaging.swift +// MauiFirebase +// + import Foundation import Combine import FirebaseMessaging import FirebaseInstallations import UIKit -@objc(FirebaseMessaging) -public class FirebaseMessaging : NSObject { +@objc(MauiFIRMessaging) +public class MauiFIRMessaging : NSObject { @objc(setIsAutoInitEnabled:) public static func setIsAutoInitEnabled(enabled: Bool) { diff --git a/firebase/macios/native/MauiFirebase/MauiFirebase.h b/firebase/macios/native/MauiFirebase/MauiFirebase.h new file mode 100644 index 0000000..71dab50 --- /dev/null +++ b/firebase/macios/native/MauiFirebase/MauiFirebase.h @@ -0,0 +1,18 @@ +// +// MauiFirebase.h +// MauiFirebase +// +// Created by Peter Collins on 4/19/24. +// + +#import + +//! Project version number for MauiFirebase. +FOUNDATION_EXPORT double MauiFirebaseVersionNumber; + +//! Project version string for MauiFirebase. +FOUNDATION_EXPORT const unsigned char MauiFirebaseVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.pbxproj b/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.pbxproj deleted file mode 100644 index b5d219d..0000000 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.pbxproj +++ /dev/null @@ -1,449 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 56; - objects = { - -/* Begin PBXBuildFile section */ - 64EDE08D2B9618AE00661736 /* MauiFirebaseAnalytics.h in Headers */ = {isa = PBXBuildFile; fileRef = 64EDE08C2B9618AE00661736 /* MauiFirebaseAnalytics.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64EDE09F2B96221400661736 /* FirebaseAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64EDE09E2B96221400661736 /* FirebaseAnalytics.swift */; }; - E5C8F6152B9F58EA00722F1E /* FirebaseApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C8F6142B9F58EA00722F1E /* FirebaseApplication.swift */; }; - E5C8F6222B9F59F300722F1E /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = E5C8F6212B9F59F300722F1E /* FirebaseAnalytics */; }; - E5C8F6242B9F59F300722F1E /* FirebaseInstallations in Frameworks */ = {isa = PBXBuildFile; productRef = E5C8F6232B9F59F300722F1E /* FirebaseInstallations */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 64B992EC2B97997E00BAFB55 /* GoogleAppMeasurementIdentitySupport.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurementIdentitySupport.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleAppMeasurementIdentitySupport.xcframework; sourceTree = ""; }; - 64B992ED2B97997E00BAFB55 /* GoogleAppMeasurement.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurement.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleAppMeasurement.xcframework; sourceTree = ""; }; - 64B992EE2B97997E00BAFB55 /* FirebaseAnalytics.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseAnalytics.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseAnalytics.xcframework; sourceTree = ""; }; - 64B992EF2B97997E00BAFB55 /* FBLPromises.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FBLPromises.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/FBLPromises.xcframework; sourceTree = ""; }; - 64B992F02B97997E00BAFB55 /* FirebaseInstallations.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseInstallations.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseInstallations.xcframework; sourceTree = ""; }; - 64B992F12B97997E00BAFB55 /* FirebaseCoreInternal.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCoreInternal.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseCoreInternal.xcframework; sourceTree = ""; }; - 64B992F22B97997E00BAFB55 /* GoogleUtilities.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleUtilities.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleUtilities.xcframework; sourceTree = ""; }; - 64B992F32B97997E00BAFB55 /* nanopb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = nanopb.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/nanopb.xcframework; sourceTree = ""; }; - 64B992F42B97997E00BAFB55 /* FirebaseCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCore.xcframework; path = .build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseCore.xcframework; sourceTree = ""; }; - 64B9930F2B979ED500BAFB55 /* FirebaseInstallations.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseInstallations.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseInstallations.xcframework; sourceTree = ""; }; - 64B993102B979ED500BAFB55 /* GoogleUtilities.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleUtilities.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleUtilities.xcframework; sourceTree = ""; }; - 64B993112B979ED500BAFB55 /* GoogleAppMeasurementIdentitySupport.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurementIdentitySupport.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleAppMeasurementIdentitySupport.xcframework; sourceTree = ""; }; - 64B993122B979ED500BAFB55 /* FirebaseAnalytics.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseAnalytics.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseAnalytics.xcframework; sourceTree = ""; }; - 64B993132B979ED500BAFB55 /* FirebaseCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCore.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseCore.xcframework; sourceTree = ""; }; - 64B993142B979ED500BAFB55 /* FBLPromises.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FBLPromises.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/FBLPromises.xcframework; sourceTree = ""; }; - 64B993152B979ED500BAFB55 /* FirebaseCoreInternal.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCoreInternal.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/FirebaseCoreInternal.xcframework; sourceTree = ""; }; - 64B993162B979ED500BAFB55 /* GoogleAppMeasurement.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurement.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/GoogleAppMeasurement.xcframework; sourceTree = ""; }; - 64B993172B979ED500BAFB55 /* nanopb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = nanopb.xcframework; path = ../../../build/FirebaseSdk/Firebase/FirebaseAnalytics/nanopb.xcframework; sourceTree = ""; }; - 64EDE0892B9618AE00661736 /* MauiFirebaseAnalytics.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MauiFirebaseAnalytics.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 64EDE08C2B9618AE00661736 /* MauiFirebaseAnalytics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MauiFirebaseAnalytics.h; sourceTree = ""; }; - 64EDE09E2B96221400661736 /* FirebaseAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseAnalytics.swift; sourceTree = ""; }; - E5C8F6142B9F58EA00722F1E /* FirebaseApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseApplication.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 64EDE0862B9618AE00661736 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E5C8F6222B9F59F300722F1E /* FirebaseAnalytics in Frameworks */, - E5C8F6242B9F59F300722F1E /* FirebaseInstallations in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 64B992EB2B97997E00BAFB55 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 64B993142B979ED500BAFB55 /* FBLPromises.xcframework */, - 64B993122B979ED500BAFB55 /* FirebaseAnalytics.xcframework */, - 64B993132B979ED500BAFB55 /* FirebaseCore.xcframework */, - 64B993152B979ED500BAFB55 /* FirebaseCoreInternal.xcframework */, - 64B9930F2B979ED500BAFB55 /* FirebaseInstallations.xcframework */, - 64B993162B979ED500BAFB55 /* GoogleAppMeasurement.xcframework */, - 64B993112B979ED500BAFB55 /* GoogleAppMeasurementIdentitySupport.xcframework */, - 64B993102B979ED500BAFB55 /* GoogleUtilities.xcframework */, - 64B993172B979ED500BAFB55 /* nanopb.xcframework */, - 64B992EF2B97997E00BAFB55 /* FBLPromises.xcframework */, - 64B992EE2B97997E00BAFB55 /* FirebaseAnalytics.xcframework */, - 64B992F42B97997E00BAFB55 /* FirebaseCore.xcframework */, - 64B992F12B97997E00BAFB55 /* FirebaseCoreInternal.xcframework */, - 64B992F02B97997E00BAFB55 /* FirebaseInstallations.xcframework */, - 64B992ED2B97997E00BAFB55 /* GoogleAppMeasurement.xcframework */, - 64B992EC2B97997E00BAFB55 /* GoogleAppMeasurementIdentitySupport.xcframework */, - 64B992F22B97997E00BAFB55 /* GoogleUtilities.xcframework */, - 64B992F32B97997E00BAFB55 /* nanopb.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 64EDE07F2B9618AE00661736 = { - isa = PBXGroup; - children = ( - 64EDE08B2B9618AE00661736 /* MauiFirebaseAnalytics */, - 64EDE08A2B9618AE00661736 /* Products */, - 64B992EB2B97997E00BAFB55 /* Frameworks */, - ); - sourceTree = ""; - }; - 64EDE08A2B9618AE00661736 /* Products */ = { - isa = PBXGroup; - children = ( - 64EDE0892B9618AE00661736 /* MauiFirebaseAnalytics.framework */, - ); - name = Products; - sourceTree = ""; - }; - 64EDE08B2B9618AE00661736 /* MauiFirebaseAnalytics */ = { - isa = PBXGroup; - children = ( - 64EDE08C2B9618AE00661736 /* MauiFirebaseAnalytics.h */, - 64EDE09E2B96221400661736 /* FirebaseAnalytics.swift */, - E5C8F6142B9F58EA00722F1E /* FirebaseApplication.swift */, - ); - path = MauiFirebaseAnalytics; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 64EDE0842B9618AE00661736 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 64EDE08D2B9618AE00661736 /* MauiFirebaseAnalytics.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 64EDE0882B9618AE00661736 /* MauiFirebaseAnalytics */ = { - isa = PBXNativeTarget; - buildConfigurationList = 64EDE0902B9618AE00661736 /* Build configuration list for PBXNativeTarget "MauiFirebaseAnalytics" */; - buildPhases = ( - 64EDE0842B9618AE00661736 /* Headers */, - 64EDE0852B9618AE00661736 /* Sources */, - 64EDE0862B9618AE00661736 /* Frameworks */, - 64EDE0872B9618AE00661736 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MauiFirebaseAnalytics; - packageProductDependencies = ( - E5C8F6212B9F59F300722F1E /* FirebaseAnalytics */, - E5C8F6232B9F59F300722F1E /* FirebaseInstallations */, - ); - productName = MauiFirebaseAnalytics; - productReference = 64EDE0892B9618AE00661736 /* MauiFirebaseAnalytics.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 64EDE0802B9618AE00661736 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastUpgradeCheck = 1520; - TargetAttributes = { - 64EDE0882B9618AE00661736 = { - CreatedOnToolsVersion = 15.2; - LastSwiftMigration = 1520; - }; - }; - }; - buildConfigurationList = 64EDE0832B9618AE00661736 /* Build configuration list for PBXProject "MauiFirebaseAnalytics" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 64EDE07F2B9618AE00661736; - packageReferences = ( - E5C8F6162B9F593D00722F1E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, - ); - productRefGroup = 64EDE08A2B9618AE00661736 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 64EDE0882B9618AE00661736 /* MauiFirebaseAnalytics */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 64EDE0872B9618AE00661736 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 64EDE0852B9618AE00661736 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 64EDE09F2B96221400661736 /* FirebaseAnalytics.swift in Sources */, - E5C8F6152B9F58EA00722F1E /* FirebaseApplication.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 64EDE08E2B9618AE00661736 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 64EDE08F2B9618AE00661736 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SWIFT_COMPILATION_MODE = wholemodule; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 64EDE0912B9618AE00661736 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.2; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.2; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.MauiFirebaseAnalytics; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 64EDE0922B9618AE00661736 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.2; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.2; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.MauiFirebaseAnalytics; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 64EDE0832B9618AE00661736 /* Build configuration list for PBXProject "MauiFirebaseAnalytics" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 64EDE08E2B9618AE00661736 /* Debug */, - 64EDE08F2B9618AE00661736 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 64EDE0902B9618AE00661736 /* Build configuration list for PBXNativeTarget "MauiFirebaseAnalytics" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 64EDE0912B9618AE00661736 /* Debug */, - 64EDE0922B9618AE00661736 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCRemoteSwiftPackageReference section */ - E5C8F6162B9F593D00722F1E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 10.22.1; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - -/* Begin XCSwiftPackageProductDependency section */ - E5C8F6212B9F59F300722F1E /* FirebaseAnalytics */ = { - isa = XCSwiftPackageProductDependency; - package = E5C8F6162B9F593D00722F1E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseAnalytics; - }; - E5C8F6232B9F59F300722F1E /* FirebaseInstallations */ = { - isa = XCSwiftPackageProductDependency; - package = E5C8F6162B9F593D00722F1E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseInstallations; - }; -/* End XCSwiftPackageProductDependency section */ - }; - rootObject = 64EDE0802B9618AE00661736 /* Project object */; -} diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e05a430..0000000 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/firebase/macios/native/analytics/MauiFirebaseAnalytics/MauiFirebaseAnalytics.h b/firebase/macios/native/analytics/MauiFirebaseAnalytics/MauiFirebaseAnalytics.h deleted file mode 100644 index 2d27e8b..0000000 --- a/firebase/macios/native/analytics/MauiFirebaseAnalytics/MauiFirebaseAnalytics.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// MauiFirebaseAnalytics.h -// MauiFirebaseAnalytics -// -// Created by Jonathan Dick on 2024-03-04. -// - -#import - -//! Project version number for MauiFirebaseAnalytics. -// FOUNDATION_EXPORT double MauiFirebaseAnalyticsVersionNumber; - -//! Project version string for MauiFirebaseAnalytics. -// FOUNDATION_EXPORT const unsigned char MauiFirebaseAnalyticsVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 3475522..0000000 --- a/firebase/macios/native/messaging/MauiFirebaseMessaging.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,122 +0,0 @@ -{ - "pins" : [ - { - "identity" : "abseil-cpp-binary", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/abseil-cpp-binary.git", - "state" : { - "revision" : "df308b8b46607675f2b9ec8e569109008f9155ce", - "version" : "1.2022062300.1" - } - }, - { - "identity" : "app-check", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/app-check.git", - "state" : { - "revision" : "3e464dad87dad2d29bb29a97836789bf0f8f67d2", - "version" : "10.18.1" - } - }, - { - "identity" : "firebase-ios-sdk", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/firebase-ios-sdk.git", - "state" : { - "revision" : "be49849dcba96f2b5ee550d4eceb2c0fa27dade4", - "version" : "10.22.1" - } - }, - { - "identity" : "googleappmeasurement", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleAppMeasurement.git", - "state" : { - "revision" : "482cfa4e5880f0a29f66ecfd60c5a62af28bd1f0", - "version" : "10.22.1" - } - }, - { - "identity" : "googledatatransport", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleDataTransport.git", - "state" : { - "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565", - "version" : "9.4.0" - } - }, - { - "identity" : "googleutilities", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/GoogleUtilities.git", - "state" : { - "revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55", - "version" : "7.13.1" - } - }, - { - "identity" : "grpc-binary", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/grpc-binary.git", - "state" : { - "revision" : "ea4cb5cc0c39c732b85386263116d2e2fdbbdc61", - "version" : "1.49.2" - } - }, - { - "identity" : "gtm-session-fetcher", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/gtm-session-fetcher.git", - "state" : { - "revision" : "76135c9f4e1ac85459d5fec61b6f76ac47ab3a4c", - "version" : "3.3.1" - } - }, - { - "identity" : "interop-ios-for-google-sdks", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/interop-ios-for-google-sdks.git", - "state" : { - "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", - "version" : "100.0.0" - } - }, - { - "identity" : "leveldb", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/leveldb.git", - "state" : { - "revision" : "43aaef65e0c665daadf848761d560e446d350d3d", - "version" : "1.22.4" - } - }, - { - "identity" : "nanopb", - "kind" : "remoteSourceControl", - "location" : "https://github.com/firebase/nanopb.git", - "state" : { - "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", - "version" : "2.30910.0" - } - }, - { - "identity" : "promises", - "kind" : "remoteSourceControl", - "location" : "https://github.com/google/promises.git", - "state" : { - "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", - "version" : "2.4.0" - } - }, - { - "identity" : "swift-protobuf", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-protobuf.git", - "state" : { - "revision" : "65e8f29b2d63c4e38e736b25c27b83e012159be8", - "version" : "1.25.2" - } - } - ], - "version" : 2 -} diff --git a/firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.h b/firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.h deleted file mode 100644 index bdcca83..0000000 --- a/firebase/macios/native/messaging/MauiFirebaseMessaging/MauiFirebaseMessaging.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -//! Project version number for MauiFirebaseMessaging. -FOUNDATION_EXPORT double MauiFirebaseMessagingVersionNumber; - -//! Project version string for MauiFirebaseMessaging. -FOUNDATION_EXPORT const unsigned char MauiFirebaseMessagingVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/firebase/macios/sample/App.xaml.cs b/firebase/macios/sample/App.xaml.cs index aa72752..c456561 100644 --- a/firebase/macios/sample/App.xaml.cs +++ b/firebase/macios/sample/App.xaml.cs @@ -6,6 +6,6 @@ public App() { InitializeComponent(); - MainPage = new MainPage(); + MainPage = new AppTabbedPage(); } } \ No newline at end of file diff --git a/firebase/macios/sample/AppTabbedPage.xaml b/firebase/macios/sample/AppTabbedPage.xaml new file mode 100644 index 0000000..06ba294 --- /dev/null +++ b/firebase/macios/sample/AppTabbedPage.xaml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/firebase/macios/sample/AppTabbedPage.xaml.cs b/firebase/macios/sample/AppTabbedPage.xaml.cs new file mode 100644 index 0000000..ce34697 --- /dev/null +++ b/firebase/macios/sample/AppTabbedPage.xaml.cs @@ -0,0 +1,29 @@ +using Firebase; + +namespace MauiFirebaseMessagingSample; + +public partial class AppTabbedPage : TabbedPage +{ + static bool FirebaseConfigured { get; set; } = false; + + public AppTabbedPage() + { + InitializeComponent(); + } + + public static async Task ConfigureFirebase(ContentPage page) + { + if (!FirebaseConfigured) + { + try + { + MauiFIRApp.AutoConfigure(); + FirebaseConfigured = true; + } + catch (Exception ex) + { + await page.DisplayAlert("Unable to configure Firebase app!", ex.ToString(), "OK"); + } + } + } +} diff --git a/firebase/macios/sample/FIRAnalyticsPage.xaml b/firebase/macios/sample/FIRAnalyticsPage.xaml new file mode 100644 index 0000000..970f192 --- /dev/null +++ b/firebase/macios/sample/FIRAnalyticsPage.xaml @@ -0,0 +1,32 @@ + + + + + + +