Skip to content

Commit c43fdca

Browse files
authored
Update readme for 12.10.1 (#1273)
1 parent 8bc7cf9 commit c43fdca

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

docs/readme.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,45 @@ need to conditionally compile code when also targeting the desktop.
5555
The 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+
5897
Setup
5998
-----
6099

@@ -71,6 +110,17 @@ Support
71110

72111
Release 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

Comments
 (0)