@@ -55,6 +55,45 @@ need to conditionally compile code when also targeting the desktop.
55
55
The AdMob Unity plugin is distributed separately and is available from the
56
56
[ AdMob Get Started] ( https://firebase.google.com/docs/admob/unity/start ) guide.
57
57
58
+ ## Platform Notes
59
+
60
+ ### iOS Method Swizzling
61
+
62
+ On iOS, some application events (such as opening URLs and receiving
63
+ notifications) require your application delegate to implement specific methods.
64
+ For example, receiving a notification may require your application delegate to
65
+ implement ` application:didReceiveRemoteNotification: ` . Because each iOS
66
+ application has its own app delegate, Firebase uses _ method swizzling_ , which
67
+ allows the replacement of one method with another, to attach its own handlers in
68
+ addition to any you may have implemented.
69
+
70
+ The Firebase Cloud Messaging library needs to attach
71
+ handlers to the application delegate using method swizzling. If you are using
72
+ these libraries, at load time, Firebase will typically identify your ` AppDelegate `
73
+ class and swizzle the required methods onto it.
74
+
75
+ #### Specifying Your AppDelegate Class Directly (iOS)
76
+
77
+ For a more direct approach, or if you encounter issues with the default
78
+ method swizzling, you can explicitly tell Firebase which class is your
79
+ application's ` AppDelegate ` . To do this, add the ` FirebaseAppDelegateClassName `
80
+ key to your app's ` Info.plist ` file:
81
+
82
+ * ** Key:** ` FirebaseAppDelegateClassName `
83
+ * ** Type:** ` String `
84
+ * ** Value:** Your AppDelegate's class name (e.g., ` MyCustomAppDelegate ` )
85
+
86
+ ** Example ` Info.plist ` entry:**
87
+ ``` xml
88
+ <key >FirebaseAppDelegateClassName</key >
89
+ <string >MyCustomAppDelegate</string >
90
+ ```
91
+
92
+ If this key is provided with a valid class name, Firebase will use that class
93
+ directly for its AppDelegate-related interactions. If the key is not present,
94
+ is invalid, or the class is not found, Firebase will use its standard method
95
+ swizzling approach.
96
+
58
97
Setup
59
98
-----
60
99
@@ -71,6 +110,17 @@ Support
71
110
72
111
Release Notes
73
112
-------------
113
+ ### 12.10.1
114
+ - Changes
115
+ - General (iOS): Change AppDelegate swizzling logic to not use ` objc_copyClassList ` ,
116
+ which was causing a slow startup, and crashes on iOS 15.
117
+ ([ #1268 ] ( https://github.com/firebase/firebase-unity-sdk/issues/1268 ) ).
118
+ - General (iOS): Added an option to explicitly specify your app's ` AppDelegate ` class
119
+ name via the ` FirebaseAppDelegateClassName ` key in ` Info.plist ` . This
120
+ provides a more direct way for Firebase to interact with your specified
121
+ AppDelegate. See "Platform Notes > iOS Method Swizzling >
122
+ Specifying Your AppDelegate Class Directly (iOS)" for details.
123
+
74
124
### 12.10.0
75
125
- Changes
76
126
- General: Update to Firebase C++ SDK version 12.8.0.
0 commit comments