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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/firebase/macios/sample/FIRAnalyticsPage.xaml.cs b/firebase/macios/sample/FIRAnalyticsPage.xaml.cs
new file mode 100644
index 0000000..a31b277
--- /dev/null
+++ b/firebase/macios/sample/FIRAnalyticsPage.xaml.cs
@@ -0,0 +1,26 @@
+using Firebase;
+
+namespace MauiFirebaseMessagingSample;
+
+public partial class FIRAnalyticsPage : ContentPage
+{
+ public FIRAnalyticsPage()
+ {
+ InitializeComponent();
+ }
+
+ async void OnAnalyticsClicked (object sender, EventArgs e)
+ {
+ try
+ {
+ await AppTabbedPage.ConfigureFirebase(this);
+ MauiFIRAnalytics.LogEvent("OnAnalyticsClicked", new Foundation.NSDictionary("param1", "value1"));
+ var appInstanceId = await MauiFIRAnalytics.GetAppInstanceIdAsync();
+ await DisplayAlert($"Logged event to app ID {appInstanceId}", "", "OK");
+ }
+ catch (Exception ex)
+ {
+ await DisplayAlert("Unable to log event!", ex.ToString(), "OK");
+ }
+ }
+}
diff --git a/firebase/macios/sample/FIRMessagingPage.xaml b/firebase/macios/sample/FIRMessagingPage.xaml
new file mode 100644
index 0000000..bfb6ef6
--- /dev/null
+++ b/firebase/macios/sample/FIRMessagingPage.xaml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/firebase/macios/sample/FIRMessagingPage.xaml.cs b/firebase/macios/sample/FIRMessagingPage.xaml.cs
new file mode 100644
index 0000000..a981ce0
--- /dev/null
+++ b/firebase/macios/sample/FIRMessagingPage.xaml.cs
@@ -0,0 +1,41 @@
+using Firebase;
+
+namespace MauiFirebaseMessagingSample;
+
+public partial class FIRMessagingPage : ContentPage
+{
+ public FIRMessagingPage()
+ {
+ InitializeComponent();
+ }
+
+ void SetText()
+ {
+ lblFcmToken.Text = MauiFIRMessaging.FcmToken ?? "No app token available";
+ btnFcmRegister.Text = (MauiFIRMessaging.FcmToken == null ? "Register" : "UnRegister") + " for Firebase Messaging";
+ }
+
+ async void OnRegisterClicked (object sender, EventArgs e)
+ {
+ try
+ {
+ await AppTabbedPage.ConfigureFirebase(this);
+
+ if (MauiFIRMessaging.FcmToken == null)
+ {
+ var native = await AppDelegate.RequestPush();
+ var fcmToken = await MauiFIRMessaging.RegisterAsync(native);
+ lblFcmToken.Text = fcmToken;
+ }
+ else
+ {
+ await MauiFIRMessaging.UnregisterAsync();
+ }
+ SetText();
+ }
+ catch (Exception ex)
+ {
+ await DisplayAlert("Unable to fetch app token!", ex.ToString(), "OK");
+ }
+ }
+}
diff --git a/firebase/macios/sample/MainPage.xaml b/firebase/macios/sample/MainPage.xaml
deleted file mode 100644
index ae5fd78..0000000
--- a/firebase/macios/sample/MainPage.xaml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/firebase/macios/sample/MainPage.xaml.cs b/firebase/macios/sample/MainPage.xaml.cs
deleted file mode 100644
index 19f9cc0..0000000
--- a/firebase/macios/sample/MainPage.xaml.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using Firebase;
-
-namespace MauiFirebaseMessagingSample;
-
-
-public partial class MainPage : ContentPage
-{
- bool configured = false;
-
- public MainPage()
- {
- InitializeComponent();
- }
-
-
- protected override async void OnAppearing()
- {
- base.OnAppearing();
- if (!configured)
- {
- try
- {
- configured = true;
- FirebaseApplication.AutoConfigure();
- FirebaseMessaging.IsAutoInitEnabled = true;
- }
- catch (Exception ex)
- {
- await this.DisplayAlert("Fail", ex.ToString(), "OK");
- }
- }
- this.SetText();
- }
-
-
- void SetText()
- {
- lblFcmToken.Text = FirebaseMessaging.FcmToken ?? "No FCM Token";
- btnRegister.Text = (FirebaseMessaging.FcmToken == null ? "Register" : "UnRegister") + " for Firebase Messaging";
- }
-
- async void OnClicked(object sender, EventArgs e)
- {
- try
- {
- if (FirebaseMessaging.FcmToken == null)
- {
- var native = await AppDelegate.RequestPush();
-
- //FirebaseMessaging.Configure("no", "no");
- var fcmToken = await FirebaseMessaging.RegisterAsync(native);
- lblFcmToken.Text = fcmToken;
- }
- else
- {
- await FirebaseMessaging.UnRegisterAsync();
- }
- SetText();
- }
- catch (Exception ex)
- {
- await this.DisplayAlert("Fail", ex.ToString(), "OK");
- }
- }
-}
\ No newline at end of file
diff --git a/firebase/macios/sample/Platforms/iOS/GoogleService-Info.plist b/firebase/macios/sample/Platforms/iOS/GoogleService-Info.plist
index 6666d81..f276e94 100644
--- a/firebase/macios/sample/Platforms/iOS/GoogleService-Info.plist
+++ b/firebase/macios/sample/Platforms/iOS/GoogleService-Info.plist
@@ -2,10 +2,6 @@
- CLIENT_ID
-
- REVERSED_CLIENT_ID
-
API_KEY
GCM_SENDER_ID
@@ -13,11 +9,11 @@
PLIST_VERSION
1
BUNDLE_ID
-
+ com.companyname.firebase.sample
PROJECT_ID
-
+ mauifir
STORAGE_BUCKET
-
+ mauifir.appspot.com
IS_ADS_ENABLED
IS_ANALYTICS_ENABLED
diff --git a/firebase/macios/sample/Sample.csproj b/firebase/macios/sample/Sample.csproj
index 8c35ef0..fa07849 100644
--- a/firebase/macios/sample/Sample.csproj
+++ b/firebase/macios/sample/Sample.csproj
@@ -58,8 +58,7 @@
-
-
+