Skip to content

[🐛] Messaging module crashes on startup in scene-based life-cycle apps #8796

@matthesjh

Description

@matthesjh

Issue

Accessing [UIApplication sharedApplication].delegate.window in a scene-based life-cycle app results in a runtime crash, because the window property is not populated by default. The window property is accessed in RNFBMessaging+NSNotificationCenter.m at line 81 and 153. The scene-based life-cycle is available since iOS 13 and will be required soon for all apps. See this technote for further details.

As a quick fix, we can test if the delegate responds to the window selector, before comparing it with != nil, to prevent the crash. But this approach prevents getting the React root view, which is used later to store the isHeadless property. I am not sure if this breaks the functionality of the messaging module in some way.


Project Files

Javascript

Click To Expand

package.json:

# N/A

firebase.json for react-native-firebase v6:

# N/A

iOS

Click To Expand

ios/Podfile:

  • I'm not using Pods
  • I'm using Pods and my Podfile looks like:
# N/A

AppDelegate.swift:

import UIKit
import FirebaseCore

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
  ) -> Bool {
    FirebaseApp.configure()

    return true
  }
}


Android

Click To Expand

Have you converted to AndroidX?

  • my application is an AndroidX application?
  • I am using android/gradle.settings jetifier=true for Android compatibility?
  • I am using the NPM package jetifier for react-native compatibility?

android/build.gradle:

// N/A

android/app/build.gradle:

// N/A

android/settings.gradle:

// N/A

MainApplication.java:

// N/A

AndroidManifest.xml:

<!-- N/A -->


Environment

Click To Expand

react-native info output:

 OUTPUT GOES HERE
  • Platform that you're experiencing the issue on:
    • iOS
    • Android
    • iOS but have not tested behavior on Android
    • Android but have not tested behavior on iOS
    • Both
  • react-native-firebase version you're using that has this issue:
    • e.g. 23.5.0
  • Firebase module(s) you're using that has the issue:
    • e.g. Messaging
  • Are you using TypeScript?
    • Y & 5.5.4


Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions