@@ -55,6 +55,45 @@ need to conditionally compile code when also targeting the desktop.
5555The AdMob Unity plugin is distributed separately and is available from the
5656[ AdMob Get Started] ( https://firebase.google.com/docs/admob/unity/start ) guide.
5757
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+
5897Setup
5998-----
6099
@@ -71,6 +110,17 @@ Support
71110
72111Release Notes
73112-------------
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+
74124### 12.10.0
75125- Changes
76126 - General: Update to Firebase C++ SDK version 12.8.0.
0 commit comments