firebase / firebase/firebase-ios-sdk
Crashlytics: Signal/Mach handlers are installed asynchronously, this doesn't allow to build proper chain
- Dominant language
- C++
- Stars
- 6.7k
- Forks
- 1.8k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 72
Description
### Description
Java/C# ecosystems requires signals to be handled by them firstly to allow handling of null pointer exceptions inside try/catch block. To achieve this proper signal chain has to be built with Java/c# handlers on top and Crashlytics bellow.
This usually done by restoring signal handler to platform one after initialisation of crashlytics (and delegating handling to it in case of non try/catch case)
currently FIRApp.configure() installs handlers asynchronously and this doesn't allow calling party to wait completion to restore proper chain.
As result Crashlytics:
- will report phantom crashes on properly handled NPEs inside try/catch
### Reproducing the issue
FIRApp.configure() will schedule FIRCLSSignalInitialize/FIRCLSMachExceptionInit in async queue, as result this installation will happen after FIRApp.configure() exits
### Firebase SDK Version
12.3
### Xcode Version
26.0
### Installation Method
Zip
### Firebase Product(s)
Crashlytics
### Targeted Platforms
iOS
### Relevant Log Output
```shell
```
### If using Swift Package Manager, the project's Package.resolved
### If using CocoaPods, the project's Podfile.lock
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.