Pārlūkot izejas kodu

[FirebaseMessaging] Fix Xcode 26 symbol crash (#15165)

Co-authored-by: subdiox <subdiox@gmail.com>
Nick Cooke 8 mēneši atpakaļ
vecāks
revīzija
73bc2f6992

+ 3 - 2
FirebaseInAppMessaging/Sources/Runtime/FIRIAMActionURLFollower.m

@@ -175,8 +175,9 @@ NS_EXTENSION_UNAVAILABLE("Firebase In App Messaging is not supported for iOS ext
     FIRLogDebug(kFIRLoggerInAppMessaging, @"I-IAM240004",
                 @"App delegate responds to application:continueUserActivity:restorationHandler:."
                  "Simulating action url opening from a web browser.");
-    NSUserActivity *userActivity =
-        [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
+    // Use string literal to ensure compatibility with Xcode 26 and iOS 18
+    NSString *browsingWebType = @"NSUserActivityTypeBrowsingWeb";
+    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:browsingWebType];
     userActivity.webpageURL = url;
     BOOL handled = [self.appDelegate application:self.mainApplication
                             continueUserActivity:userActivity

+ 3 - 2
FirebaseInAppMessaging/Tests/Unit/FIRIAMActionUrlFollowerTests.m

@@ -84,8 +84,9 @@
                          continueUserActivity:[OCMArg checkWithBlock:^BOOL(id userActivity) {
                            // verifying the type and url field for the userActivity object
                            NSUserActivity *activity = (NSUserActivity *)userActivity;
-                           return [activity.activityType
-                                      isEqualToString:NSUserActivityTypeBrowsingWeb] &&
+                           // Use string literal to ensure compatibility with Xcode 26 and iOS 18
+                           NSString *browsingWebType = @"NSUserActivityTypeBrowsingWeb";
+                           return [activity.activityType isEqualToString:browsingWebType] &&
                                   [activity.webpageURL isEqual:url];
                          }]
                            restorationHandler:[OCMArg any]])

+ 5 - 0
FirebaseMessaging/CHANGELOG.md

@@ -1,3 +1,8 @@
+# 12.1.0
+- [fixed] Fix Xcode 26 crash from missing `NSUserActivityTypeBrowsingWeb`
+  symbol. Note that this fix isn't in the 12.1.0 zip and Carthage
+  distributions, but will be included from 12.2.0 onwards. (#15159)
+
 # 11.14.0
 - [fixed] Fix a potential SQL injection issue. (#14846).
 

+ 3 - 2
FirebaseMessaging/Sources/FIRMessaging.m

@@ -400,8 +400,9 @@ BOOL FIRMessagingIsContextManagerMessage(NSDictionary *message) {
   // if they haven't implemented it.
   if ([NSUserActivity class] != nil &&
       [appDelegate respondsToSelector:continueUserActivitySelector]) {
-    NSUserActivity *userActivity =
-        [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
+    // Use string literal to ensure compatibility with Xcode 26 and iOS 18
+    NSString *browsingWebType = @"NSUserActivityTypeBrowsingWeb";
+    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:browsingWebType];
     userActivity.webpageURL = url;
     [appDelegate application:application
         continueUserActivity:userActivity