Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[馃悰] 馃敟 In App Messaging Button Action doesn't work on iOS #7730

Closed
2 of 10 tasks
kauamelo opened this issue Apr 3, 2024 · 4 comments
Closed
2 of 10 tasks

[馃悰] 馃敟 In App Messaging Button Action doesn't work on iOS #7730

kauamelo opened this issue Apr 3, 2024 · 4 comments
Labels
Help: Needs Triage Issue needs additional investigation/triaging. Impact: Bug New bug report Type: Stale Issue has become stale - automatically added by Stale bot

Comments

@kauamelo
Copy link

kauamelo commented Apr 3, 2024

Issue

I create an in-app messaging of type Modal and add a Firebase Dynamic Link (for the link: https://www.google.com/) in the "Button action" field:

Screenshot 2024-04-03 at 11 10 39

On iOS, when I click on the action button, it just closes the Modal and no action is taken. It doesn't open https://www.google.com/ in the browser as it should.
It works perfectly on Android.

I'm using the same version for all react-native-firebase packages:

        "@react-native-firebase/analytics": "18.8.0",
        "@react-native-firebase/app": "18.8.0",
        "@react-native-firebase/dynamic-links": "18.8.0",
        "@react-native-firebase/in-app-messaging": "18.8.0",
        "@react-native-firebase/messaging": "18.8.0",
        "@react-native-firebase/perf": "18.8.0",
        "@react-native-firebase/remote-config": "18.8.0",

I've tried Firebase Dynamic Links and normal links. None works on iOS but all work on Android.

I've also tried to 'whitelist' domains in Info.plist, but it still doesn't work:

                 <key>NSExceptionDomains</key>
		<dict>
			<key>myapname.page.link</key>
			<dict>
				<key>NSExceptionAllowsInsecureHTTPLoads</key>
				<true/>
				<key>NSIncludesSubdomains</key>
				<true/>
			</dict>
		</dict>

Project Files

Javascript

Click To Expand

package.json:

{
    "name": "my-app",
    "version": "0.0.1",
    "engines": {
        "node": "18.18.0"
    },
    "private": true,
    "scripts": {
        ...
    },
    "dependencies": {
        "@contentful/rich-text-react-renderer": "15.19.4",
        "@contentful/rich-text-types": "16.3.4",
        "@notifee/react-native": "7.8.2",
        "@react-native-async-storage/async-storage": "1.21.0",
        "@react-native-community/blur": "4.4.0",
        "@react-native-community/netinfo": "11.2.1",
        "@react-native-firebase/analytics": "18.8.0",
        "@react-native-firebase/app": "18.8.0",
        "@react-native-firebase/dynamic-links": "18.8.0",
        "@react-native-firebase/in-app-messaging": "18.8.0",
        "@react-native-firebase/messaging": "18.8.0",
        "@react-native-firebase/perf": "18.8.0",
        "@react-native-firebase/remote-config": "18.8.0",
        "@react-native-picker/picker": "2.6.1",
        "@react-native/metro-config": "0.74.0",
        "@react-navigation/bottom-tabs": "6.5.11",
        "@react-navigation/elements": "1.3.21",
        "@react-navigation/native": "6.1.9",
        "@react-navigation/stack": "6.3.20",
        "@sayem314/react-native-keep-awake": "1.2.2",
        "@sentry/react-native": "5.18.0",
        "@stripe/stripe-react-native": "0.36.0",
        "axios": "0.24.0",
        "color": "4.2.3",
        "contentful": "10.6.21",
        "country-telephone-data": "0.6.3",
        "formik": "2.4.5",
        "i18n-iso-countries": "7.9.0",
        "i18next": "23.8.2",
        "libphonenumber-js": "1.10.55",
        "moment": "2.30.1",
        "react": "18.2.0",
        "react-content-loader": "6.2.1",
        "react-i18next": "14.0.3",
        "react-native": "0.73.2",
        "react-native-app-auth": "7.1.0",
        "react-native-bootsplash": "^5.4.1",
        "react-native-callkeep": "4.3.7",
        "react-native-collapsible": "1.6.1",
        "react-native-color-matrix-image-filters": "6.0.7",
        "react-native-create-thumbnail": "2.0.0",
        "react-native-date-picker": "4.3.5",
        "react-native-device-info": "10.12.0",
        "react-native-fast-image": "8.6.3",
        "react-native-gesture-handler": "2.14.1",
        "react-native-image-crop-picker": "0.40.2",
        "react-native-image-viewing": "0.2.2",
        "react-native-inappbrowser-reborn": "3.7.0",
        "react-native-keyboard-aware-scroll-view": "0.9.5",
        "react-native-keychain": "8.1.2",
        "react-native-linear-gradient": "2.8.3",
        "react-native-localize": "3.0.6",
        "react-native-modal": "13.0.1",
        "react-native-permissions": "4.1.1",
        "react-native-qrcode-svg": "6.3.0",
        "react-native-rate": "1.2.12",
        "react-native-safe-area-context": "4.9.0",
        "react-native-screens": "3.29.0",
        "react-native-share": "10.0.2",
        "react-native-svg": "14.1.0",
        "react-native-twilio-video-webrtc": "3.2.0",
        "react-native-video": "6.0.0-beta.5",
        "react-native-voip-push-notification": "3.3.1",
        "react-native-webview": "13.7.0",
        "swr": "2.2.4",
        "upgrade": "1.1.0",
        "yup": "1.3.3"
    },
    "devDependencies": {
        "@babel/core": "7.23.9",
        "@babel/plugin-syntax-flow": "7.23.3",
        "@babel/plugin-transform-react-jsx": "7.23.4",
        "@babel/preset-env": "7.23.9",
        "@babel/preset-typescript": "7.23.3",
        "@babel/runtime": "7.23.9",
        "@jest/create-cache-key-function": "29.7.0",
        "@react-native/babel-preset": "0.73.20",
        "@react-native/eslint-config": "0.74.0",
        "@react-native/typescript-config": "0.74.0",
        "@testing-library/jest-native": "5.4.3",
        "@testing-library/react-hooks": "8.0.1",
        "@testing-library/react-native": "12.4.3",
        "@types/color": "3.0.6",
        "@types/country-telephone-data": "0.6.3",
        "@types/jest": "29.5.11",
        "@types/node": "18.16.3",
        "@types/react": "18.2.20",
        "@types/react-dom": "18.2.17",
        "@types/react-native-share": "3.3.8",
        "@types/react-native-video": "5.0.19",
        "@types/react-test-renderer": "18.0.7",
        "@typescript-eslint/eslint-plugin": "6.20.0",
        "@typescript-eslint/parser": "6.20.0",
        "eslint": "8.56.0",
        "eslint-config-airbnb": "19.0.4",
        "eslint-config-airbnb-typescript": "17.1.0",
        "eslint-config-prettier": "9.1.0",
        "eslint-plugin-ft-flow": "3.0.4-alpha-0",
        "eslint-plugin-import": "2.29.1",
        "eslint-plugin-jest": "27.6.3",
        "eslint-plugin-jsx-a11y": "6.8.0",
        "eslint-plugin-prettier": "5.1.3",
        "eslint-plugin-react": "7.33.2",
        "eslint-plugin-react-hooks": "4.6.0",
        "eslint-plugin-react-native": "4.1.0",
        "eslint-plugin-testing-library": "6.2.0",
        "husky": "9.0.10",
        "jest": "29.7.0",
        "knip": "4.3.1",
        "lint-staged": "15.2.1",
        "patch-package": "8.0.0",
        "postinstall-postinstall": "2.1.0",
        "prettier": "3.2.5",
        "react-native-svg-transformer": "1.3.0",
        "react-test-renderer": "18.2.0",
        "ts-jest": "29.1.2",
        "typescript": "5.3.3"
    },
    "lint-staged": {
        "{src,test}/**/*.{ts,tsx,js,jsx}": [
            "eslint --cache",
            "prettier --write --cache"
        ]
    },
}

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:
source 'https://cdn.cocoapods.org/'

# -- Setup required by react-native-permissions 4.0.0
# Slightly changed from what React Native suggests
def node_require(script)
  # Resolve script with node to allow for hoisting
  require Pod::Executable.execute_command('node', ['-p',
                                                   "require.resolve(
      '#{script}',
      {paths: [process.argv[1]]},
    )", __dir__]).strip
end

node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')
# -- End of setup required by react-native-permissions 4.0.0

# Sets the minimum version of supported iOS devices to 13.4
platform :ios, '13.4'
prepare_react_native_project!

# 猬囷笍 uncomment wanted permissions
setup_permissions([
                    # 'AppTrackingTransparency',
                    # 'Bluetooth',
                    # 'Calendars',
                    # 'CalendarsWriteOnly',
                    'Camera',
                    # 'Contacts',
                    # 'FaceID',
                    # 'LocationAccuracy',
                    # 'LocationAlways',
                    # 'LocationWhenInUse',
                    # 'MediaLibrary',
                    'Microphone',
                    # 'Motion',
                    'Notifications',
                    # 'PhotoLibrary',
                    # 'PhotoLibraryAddOnly',
                    # 'Reminders',
                    # 'Siri',
                    # 'SpeechRecognition',
                    # 'StoreKit',
                  ])

# ignores all warnings from all pods
# We do this as we cannot fix warnings from 3rd party libraries
inhibit_all_warnings!

$RNFirebaseAnalyticsWithoutAdIdSupport = true

# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

abstract_target 'Common' do
  # From RN setup guide
  config = use_native_modules!

  # From RN setup guide
  use_react_native!(
    path: config[:reactNativePath],

    # Enables Flipper.
    #
    # Note that if you have use_frameworks! enabled, Flipper will not work and
    # you should disable the next line.
    # To update Flipper version, check what the latest iOS/Cocoapods version is here: https://github.com/facebook/flipper (small image with iOS version, not necessarily the same version as the NPM package)
    # :flipper_configuration => FlipperConfiguration.enabled(["Debug"], { 'Flipper' => '0.203.0' }),

    # An absolute path to your application root.
    app_path: "#{Pod::Config.instance.installation_root}/.."
  )

  # Needed for Firebase to work
  pod 'Firebase', modular_headers: true
  pod 'FirebaseCore', modular_headers: true
  pod 'FirebaseCoreExtension', modular_headers: true
  pod 'FirebaseInstallations', modular_headers: true
  pod 'FirebaseABTesting', modular_headers: true
  pod 'GoogleUtilities', modular_headers: true
  pod 'GoogleDataTransport', modular_headers: true
  pod 'nanopb', modular_headers: true

  $RNFirebaseAsStaticFramework = true

  # From RN setup guide
  target '--.production' do
    use_native_modules!
  end

  target '--.staging' do
    use_native_modules!
  end

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false
    )
  end
end

AppDelegate.m:

#import <Firebase.h>
#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>

#import "RNAppAuthAuthorizationFlowManager.h"

#import <RNCallKeep.h>

#import <PushKit/PushKit.h>
#import "RNVoipPushNotificationManager.h"

#import <React/RCTLinkingManager.h>

#import "RNBootSplash.h"


@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  if ([self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:url]) {
    return YES;
  }
  return [RCTLinkingManager application:application openURL:url options:options];
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
 restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
  if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
    if (self.authorizationFlowManagerDelegate) {
      BOOL resumableAuth = [self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:userActivity.webpageURL];
      if (resumableAuth) {
        return YES;
      }
    }
  }

  return [RCTLinkingManager application:application
                   continueUserActivity:userActivity
                     restorationHandler:restorationHandler];
}

- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type {
  [RNVoipPushNotificationManager didUpdatePushCredentials:credentials forType:(NSString *)type];
}

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type
{

}

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion {
  [RNVoipPushNotificationManager didReceiveIncomingPushWithPayload:payload forType:(NSString *)type];

  NSString *uuid = [payload.dictionaryPayload valueForKeyPath:@"data.id"];
  NSString *callerName = [payload.dictionaryPayload valueForKeyPath:@"aps.alert.body"];
  NSString *handle = @"caller number here";
  BOOL hasVideo = [[payload.dictionaryPayload valueForKeyPath:@"data.hasVideo"] isEqualToNumber:[NSNumber numberWithInt:1]];
  NSDictionary *extra = [payload.dictionaryPayload valueForKeyPath:@"data"];

  [RNCallKeep reportNewIncomingCall: uuid
                             handle: handle
                         handleType: @"generic"
                           hasVideo: hasVideo
                localizedCallerName: callerName
                    supportsHolding: NO
                       supportsDTMF: NO
                   supportsGrouping: NO
                 supportsUngrouping: NO
                        fromPushKit: YES
                            payload: extra
              withCompletionHandler: completion];

  dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 60);
  dispatch_after(delay, dispatch_get_main_queue(), ^(void){
    int reasonId = 3;

    if ([RNCallKeep isCallActive: uuid] == false) {
      [RNCallKeep endCallWithUUID: uuid reason: reasonId];
    }
  });

  completion();
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [FIRApp configure];
  self.moduleName = @"--";
  self.initialProps = @{};

  [RNCallKeep setup:@{
    @"appName": [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"],
    @"maximumCallGroups": @1,
    @"maximumCallsPerCallGroup": @1,
    @"supportsVideo": @YES,
  }];

  [RNVoipPushNotificationManager voipRegistration];

  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
  return [self getBundleURL];
}
- (NSURL *)getBundleURL
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

- (UIView *)createRootViewWithBridge:(RCTBridge *)bridge
                          moduleName:(NSString *)moduleName
                           initProps:(NSDictionary *)initProps {
  UIView *rootView = [super createRootViewWithBridge:bridge
                                          moduleName:moduleName
                                           initProps:initProps];

  [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView];

  return rootView;
}

@end


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:

(node:19463) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
System:
  OS: macOS 14.2
  CPU: (8) arm64 Apple M1 Pro
  Memory: 94.03 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.18.0
    path: /usr/local/bin/node
  Yarn:
    version: 1.22.21
    path: /opt/homebrew/bin/yarn
  npm:
    version: 9.8.1
    path: /usr/local/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods: Not Found
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.2
      - iOS 17.2
      - macOS 14.2
      - tvOS 17.2
      - visionOS 1.0
      - watchOS 10.2
  Android SDK: Not Found
IDEs:
  Android Studio: 2023.1 AI-231.9392.1.2311.11330709
  Xcode:
    version: 15.2/15C500b
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.9
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.2
    wanted: 0.73.2
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false
  • 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:

    • 18.8.0
  • Firebase module(s) you're using that has the issue:

      "@react-native-firebase/analytics": "18.8.0",
      "@react-native-firebase/app": "18.8.0",
      "@react-native-firebase/dynamic-links": "18.8.0",
      ==> "@react-native-firebase/in-app-messaging": "18.8.0", <==
      "@react-native-firebase/messaging": "18.8.0",
      "@react-native-firebase/perf": "18.8.0",
      "@react-native-firebase/remote-config": "18.8.0",
    
  • Are you using TypeScript?

    • Yes: typescript@5.3.3


@kauamelo kauamelo added Help: Needs Triage Issue needs additional investigation/triaging. Impact: Bug New bug report labels Apr 3, 2024
@mikehardy
Copy link
Collaborator

I wonder if this isn't a dynamic link configuration issue of some sort on the iOS side - we are missing some in-app-messaging listeners but not in an asymmetric way across platforms - if it works on android then it should exist and work on ios as well

Some thoughts -

  • you might want to update to the brand new 19.1.2 version here as it includes the latest firebase-ios-sdk (10.23.1) and you never know what they fix in the underlying native libraries but it is frequently incompatibilities related to new iOS versions...
  • if you want to persist with dynamic links, you might carefully watch the output of the device logs in either Console.app or from a real device that is plugged in to your computer and the app is running from Xcode so you can view the console output in Xcode. I wouldn't trust a simulator
  • you might want to very carefully look at dynamic links and start migrating to react-native built-in support for linking - dynamic links is sunset, so if the problem is the dynamic link itself (vs the in-app-messaging click listener...) then it is unlikely to see any satisfactory resolution as there is no active development on the sunset product. This is something that needs to happen for all projects anyway (migrating away from dynamic links...) so it's best to examine that honestly with the idea that building any new functionality on it is mis-spent time and maintaining existing functionality on it is actually deferred maintenance as the transition is required in the future

@kauamelo
Copy link
Author

kauamelo commented Apr 4, 2024

Hi Mike!

I've tried with a normal link (ex: https://www.google.com/) but it doesn't work either. So I'm not sure whether the problem is a dynamic link configuration issue of some sort on the iOS side as you're suspecting. It doesn't work on iOS, regardless of the type of the URL...

I used a Firebase Dynamic Link in the example here because I saw this has been an issue for one year:
#6861
and it seems like the only workaround people found was to use Firebase Dynamic Link. But even that is not working for me...

Does it work for you with a normal link? And with a Firebase Dynamic Link? Maybe I'm missing something ?

I've updated everything to 19.1.2 but I started getting other issues in my project. I'll try to update them later today and come back here with an update of whether it fixes that or not.

@kauamelo
Copy link
Author

kauamelo commented Apr 4, 2024

Hi again @mikehardy :)

I've updated all my firebase packages to 19.1.2 (all updated project files are attached at the end of this msg):

"@react-native-firebase/analytics": "19.1.2",
"@react-native-firebase/app": "19.1.2",
"@react-native-firebase/in-app-messaging": "19.1.2",
"@react-native-firebase/messaging": "19.1.2",
"@react-native-firebase/perf": "19.1.2",
"@react-native-firebase/remote-config": "19.1.2",

I'm not using Firebase Dynamic Link. I'm just trying to open https://www.google.com/:

image

I'm not using an emulator. I'm running the app on my physical iPhone plugged in to a macbook and the app is running from Xcode.

I checked the xCode log (attached the whole log below) but the only mention to In-App Messaging is that it was successfully received:
10.23.1 - [FirebaseInAppMessaging][I-IAM900008] A test message with id 523423414 was parsed successfully.

Xcode log

Click To Expand

Xcode log:

10.23.1 - [FirebaseAnalytics][I-ACS023007] Analytics v.10.23.1 started
10.23.1 - [FirebaseAnalytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
10.23.1 - [FirebaseAnalytics][I-ACS044002] The AdSupport Framework is not currently linked. Some features will not function properly. Learn more at http://goo.gl/9vSsPb
10.23.1 - [GoogleUtilities/MethodSwizzler][I-SWZ002000] Swizzling class: UIViewController SEL:originalIMPOfCurrentIMP: after it has been previously been swizzled.
10.23.1 - [GoogleUtilities/MethodSwizzler][I-SWZ002000] Swizzling class: UIViewController SEL:originalIMPOfCurrentIMP: after it has been previously been swizzled.
10.23.1 - [FirebaseAnalytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
10.23.1 - [FirebaseMessaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
[RNCallKeep][setup] options = {
    appName = --;
    maximumCallGroups = 1;
    maximumCallsPerCallGroup = 1;
    supportsVideo = 1;
}
[RNCallKeep][setSettings] options = {
    appName = --;
    maximumCallGroups = 1;
    maximumCallsPerCallGroup = 1;
    supportsVideo = 1;
}
[RNCallKeep][getProviderConfiguration]
[RNVoipPushNotificationManager] voipRegistration enter
Connection 1: received failure notification
Connection 1: failed to connect 1:50, reason -1
Connection 1: encountered error(1:50)
Task <F9070C6C-1189-4F85-B930-90BFD49830ED>.<1> HTTP load failed, 0/0 bytes (error code: -1009 [1:50])
Task <F9070C6C-1189-4F85-B930-90BFD49830ED>.<1> finished with error [-1009] Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x282c19b60 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_NSURLErrorNWPathKey=unsatisfied (Local network prohibited), interface: en0[802.11], ipv4, uses wifi, _kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <F9070C6C-1189-4F85-B930-90BFD49830ED>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <F9070C6C-1189-4F85-B930-90BFD49830ED>.<1>"
), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=http://???/status, NSErrorFailingURLKey=http://???/status, _kCFStreamErrorDomainKey=1}
Module FileModule requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
Running application AppName ({
    initialProps =     {
    };
    rootTag = 1;
})
[RNCallKeep][init]
+[RNFBAppModule getCustomDomain:] [Line 239] authDomains: (null)
Connection 2: received failure notification
Connection 2: failed to connect 1:50, reason -1
Connection 2: encountered error(1:50)
Task <7595CDFC-0DA9-440C-8662-556B942BCF9B>.<2> HTTP load failed, 0/0 bytes (error code: -1009 [1:50])
Task <7595CDFC-0DA9-440C-8662-556B942BCF9B>.<2> finished with error [-1009] Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x282d8a400 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_NSURLErrorNWPathKey=unsatisfied (Local network prohibited), interface: en0[802.11], ipv4, uses wifi, _kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7595CDFC-0DA9-440C-8662-556B942BCF9B>.<2>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <7595CDFC-0DA9-440C-8662-556B942BCF9B>.<2>"
), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=http://???/status, NSErrorFailingURLKey=http://???/status, _kCFStreamErrorDomainKey=1}
[RNVoipPushNotificationManager] didUpdatePushCredentials credentials.token = {length = 32, bytes = 0x64482a33 ba2742a7 b2ebb6b5 0c903fb3 ... cafbdc87 fc40cbd5 }, type = PKPushTypeVoIP
nw_socket_handle_socket_event [C3.1.1:1] Socket SO_ERROR [61: Connection refused]
nw_socket_handle_socket_event [C3.1.2:1] Socket SO_ERROR [61: Connection refused]
nw_connection_get_connected_socket_block_invoke [C3] Client called nw_connection_get_connected_socket on unconnected nw_connection
TCP Conn 0x2813c6800 Failed : error 0:61 [61]
[RNCallKeep][setup] already setup
Unbalanced calls start/end for tag 19
[RNCallKeep][setup] already setup in native code
Module FileModule requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
Running "AppName" with {"rootTag":1,"initialProps":{}}
nw_socket_handle_socket_event [C5.1.1:1] Socket SO_ERROR [61: Connection refused]
nw_socket_handle_socket_event [C5.1.2:1] Socket SO_ERROR [61: Connection refused]
nw_connection_get_connected_socket_block_invoke [C5] Client called nw_connection_get_connected_socket on unconnected nw_connection
TCP Conn 0x2813ce120 Failed : error 0:61 [61]
10.23.1 - [FirebaseAnalytics][I-ACS023012] Analytics collection enabled
10.23.1 - [FirebaseAnalytics][I-ACS023220] Analytics screen reporting is enabled. Call Analytics.logEvent(AnalyticsEventScreenView, parameters: [...]) to log a screen view event. To disable automatic screen reporting, set the flag FirebaseAutomaticScreenReportingEnabled to NO (boolean) in the Info.plist
Thread Performance Checker: Thread running at User-interactive quality-of-service class waiting on a lower QoS thread running at Default quality-of-service class. Investigate ways to avoid priority inversions
PID: 8281, TID: 1810672
Backtrace
=================================================================
3   AppName.staging               0x0000000101881934 -[SRRunLoopThread runLoop] + 44
4   AppName.staging               0x000000010187be70 +[NSRunLoop(SRWebSocket) SR_networkRunLoop] + 56
5   AppName.staging               0x0000000101880264 -[SRProxyConnect _openConnection] + 72
6   AppName.staging               0x000000010187f71c -[SRProxyConnect _configureProxy] + 916
7   AppName.staging               0x000000010187ef10 -[SRProxyConnect openNetworkStreamWithCompletion:] + 92
8   AppName.staging               0x00000001018836c4 -[SRWebSocket open] + 624
9   AppName.staging               0x0000000101132b04 -[RCTReconnectingWebSocket start] + 148
10  AppName.staging               0x000000010111d7b8 -[RCTPackagerConnection init] + 416
11  AppName.staging               0x000000010111d5f8 __49+[RCTPackagerConnection sharedPackagerConnection]_block_invoke + 36
12  libdispatch.dylib                   0x0000000107c3eb34 _dispatch_client_callout + 20
13  libdispatch.dylib                   0x0000000107c40690 _dispatch_once_callout + 140
14  AppName.staging               0x000000010111d5ac +[RCTPackagerConnection sharedPackagerConnection] + 88
15  AppName.staging               0x00000001011aad1c -[RCTDevSettings initialize] + 164
16  AppName.staging               0x0000000101108b34 -[RCTModuleData _initializeModule] + 92
17  AppName.staging               0x000000010110848c -[RCTModuleData setUpInstanceAndBridge:] + 2168
18  AppName.staging               0x0000000101109f88 -[RCTModuleData instance] + 1168
19  AppName.staging               0x00000001010af590 -[RCTCxxBridge moduleForName:lazilyLoadIfNecessary:] + 704
20  AppName.staging               0x0000000101112f20 -[RCTModuleRegistry moduleForName:lazilyLoadIfNecessary:] + 140
21  AppName.staging               0x0000000101112e88 -[RCTModuleRegistry moduleForName:] + 48
22  AppName.staging               0x00000001011bae38 -[RCTPerfMonitor devMenuItem] + 92
23  AppName.staging               0x00000001011bad04 -[RCTPerfMonitor initialize] + 88
24  AppName.staging               0x0000000101108b34 -[RCTModuleData _initializeModule] + 92
25  AppName.staging               0x000000010110848c -[RCTModuleData setUpInstanceAndBridge:] + 2168
26  AppName.staging               0x000000010110a1c0 __25-[RCTModuleData instance]_block_invoke + 44
27  AppNamee.staging               0x000000010116bbb4 RCTUnsafeExecuteOnMainQueueSync + 52
28  AppName.staging               0x0000000101109e28 -[RCTModuleData instance] + 816
29  AppName.staging               0x00000001010b3e70 __49-[RCTCxxBridge _prepareModulesWithDispatchGroup:]_block_invoke + 160
30  libdispatch.dylib                   0x0000000107c3cf50 _dispatch_call_block_and_release + 32
31  libdispatch.dylib                   0x0000000107c3eb34 _dispatch_client_callout + 20
32  libdispatch.dylib                   0x0000000107c4f158 _dispatch_main_queue_drain + 1448
33  libdispatch.dylib                   0x0000000107c4eba0 _dispatch_main_queue_callback_4CF + 44
34  CoreFoundation                      0x000000018971901c BE405D8A-5464-37A3-A17E-1068DB404B23 + 225308
35  CoreFoundation                      0x0000000189715d28 BE405D8A-5464-37A3-A17E-1068DB404B23 + 212264
36  CoreFoundation                      0x0000000189715478 CFRunLoopRunSpecific + 608
37  GraphicsServices                    0x00000001ccc964f8 GSEventRunModal + 164
38  UIKitCore                           0x000000018bb3962c 99AD2A31-9360-369F-9C0B-A7A0AF33E2E7 + 2278956
39  UIKitCore                           0x000000018bb38c68 UIApplicationMain + 340
40  AppName.staging               0x0000000100d0d54c main + 96
41  dyld                                0x00000001ac44edcc 630C2209-DFD7-3C72-B0A9-E856C560F123 + 24012
10.23.1 - [FirebasePerformance][I-PRF300003] URL length outside limits, returning nil.
10.23.1 - [FirebasePerformance][I-PRF300003] URL length outside limits, returning nil.
nw_socket_handle_socket_event [C7.1.1:1] Socket SO_ERROR [61: Connection refused]
nw_socket_handle_socket_event [C7.1.2:1] Socket SO_ERROR [61: Connection refused]
[RNCallKeep][startObserving]
nw_connection_get_connected_socket_block_invoke [C7] Client called nw_connection_get_connected_socket on unconnected nw_connection
TCP Conn 0x2813dd0e0 Failed : error 0:61 [61]
[RNVoipPushNotificationManager] voipRegistration is already registered. return _lastVoipToken =-
10.23.1 - [FirebaseInAppMessaging][I-IAM900008] A test message with id 523423414 was parsed successfully.
[GESTURE HANDLER] Initialize gesture handler for view <RCTRootContentView: 0x108228000; frame = (0 0; 390 844); gestureRecognizers = <NSArray: 0x282dae370>; layer = <CALayer: 0x28223f280>> reactTag: 1; frame = {{0, 0}, {390, 844}}; layer = <CALayer: 0x28223f280>
10.23.1 - [FirebaseAnalytics][I-ACS013000] User property name is too long. The maximum supported length is 24: -----

Javascript

Click To Expand

package.json:

{
    "name": "myAppName",
    "version": "0.0.1",
    "engines": {
        "node": "18.18.0"
    },
    "private": true,
    "scripts": {
        ...
    },
    "dependencies": {
        "@contentful/rich-text-react-renderer": "15.19.4",
        "@contentful/rich-text-types": "16.3.4",
        "@notifee/react-native": "7.8.2",
        "@react-native-async-storage/async-storage": "1.21.0",
        "@react-native-community/blur": "4.4.0",
        "@react-native-community/netinfo": "11.2.1",
        "@react-native-firebase/analytics": "19.1.2",
        "@react-native-firebase/app": "19.1.2",
        "@react-native-firebase/in-app-messaging": "19.1.2",
        "@react-native-firebase/messaging": "19.1.2",
        "@react-native-firebase/perf": "19.1.2",
        "@react-native-firebase/remote-config": "19.1.2",
        "@react-native-picker/picker": "2.6.1",
        "@react-native/metro-config": "0.74.0",
        "@react-navigation/bottom-tabs": "6.5.11",
        "@react-navigation/elements": "1.3.21",
        "@react-navigation/native": "6.1.9",
        "@react-navigation/stack": "6.3.20",
        "@sayem314/react-native-keep-awake": "1.2.2",
        "@sentry/react-native": "5.18.0",
        "@stripe/stripe-react-native": "0.36.0",
        "axios": "0.24.0",
        "color": "4.2.3",
        "contentful": "10.6.21",
        "country-telephone-data": "0.6.3",
        "formik": "2.4.5",
        "i18n-iso-countries": "7.9.0",
        "i18next": "23.8.2",
        "libphonenumber-js": "1.10.55",
        "moment": "2.30.1",
        "react": "18.2.0",
        "react-content-loader": "6.2.1",
        "react-i18next": "14.0.3",
        "react-native": "0.73.2",
        "react-native-app-auth": "7.1.0",
        "react-native-callkeep": "4.3.7",
        "react-native-collapsible": "1.6.1",
        "react-native-color-matrix-image-filters": "6.0.7",
        "react-native-create-thumbnail": "2.0.0",
        "react-native-date-picker": "4.3.5",
        "react-native-device-info": "10.12.0",
        "react-native-fast-image": "8.6.3",
        "react-native-gesture-handler": "2.14.1",
        "react-native-image-crop-picker": "0.40.2",
        "react-native-image-viewing": "0.2.2",
        "react-native-inappbrowser-reborn": "3.7.0",
        "react-native-keyboard-aware-scroll-view": "0.9.5",
        "react-native-keychain": "8.1.2",
        "react-native-linear-gradient": "2.8.3",
        "react-native-localize": "3.0.6",
        "react-native-modal": "13.0.1",
        "react-native-permissions": "4.1.1",
        "react-native-rate": "1.2.12",
        "react-native-safe-area-context": "4.9.0",
        "react-native-screens": "3.29.0",
        "react-native-share": "10.0.2",
        "react-native-splash-screen": "3.3.0",
        "react-native-svg": "14.1.0",
        "react-native-twilio-video-webrtc": "3.2.0",
        "react-native-video": "6.0.0-beta.5",
        "react-native-voip-push-notification": "3.3.1",
        "react-native-webview": "13.7.0",
        "swr": "2.2.4",
        "upgrade": "1.1.0",
        "yup": "1.3.3"
    },
    "devDependencies": {
        "@babel/core": "7.23.9",
        "@babel/plugin-syntax-flow": "7.23.3",
        "@babel/plugin-transform-react-jsx": "7.23.4",
        "@babel/preset-env": "7.23.9",
        "@babel/preset-typescript": "7.23.3",
        "@babel/runtime": "7.23.9",
        "@jest/create-cache-key-function": "29.7.0",
        "@react-native/babel-preset": "0.73.20",
        "@react-native/eslint-config": "0.74.0",
        "@react-native/typescript-config": "0.74.0",
        "@testing-library/jest-native": "5.4.3",
        "@testing-library/react-hooks": "8.0.1",
        "@testing-library/react-native": "12.4.3",
        "@types/color": "3.0.6",
        "@types/country-telephone-data": "0.6.3",
        "@types/jest": "29.5.11",
        "@types/node": "18.16.3",
        "@types/react": "18.2.20",
        "@types/react-dom": "18.2.17",
        "@types/react-native-share": "3.3.8",
        "@types/react-native-video": "5.0.19",
        "@types/react-test-renderer": "18.0.7",
        "@typescript-eslint/eslint-plugin": "6.20.0",
        "@typescript-eslint/parser": "6.20.0",
        "eslint": "8.56.0",
        "eslint-config-airbnb": "19.0.4",
        "eslint-config-airbnb-typescript": "17.1.0",
        "eslint-config-prettier": "9.1.0",
        "eslint-plugin-ft-flow": "3.0.4-alpha-0",
        "eslint-plugin-import": "2.29.1",
        "eslint-plugin-jest": "27.6.3",
        "eslint-plugin-jsx-a11y": "6.8.0",
        "eslint-plugin-prettier": "5.1.3",
        "eslint-plugin-react": "7.33.2",
        "eslint-plugin-react-hooks": "4.6.0",
        "eslint-plugin-react-native": "4.1.0",
        "eslint-plugin-testing-library": "6.2.0",
        "husky": "9.0.10",
        "jest": "29.7.0",
        "knip": "4.3.1",
        "lint-staged": "15.2.1",
        "patch-package": "8.0.0",
        "postinstall-postinstall": "2.1.0",
        "prettier": "3.2.5",
        "react-native-svg-transformer": "1.3.0",
        "react-test-renderer": "18.2.0",
        "ts-jest": "29.1.2",
        "typescript": "5.3.3"
    },
    "lint-staged": {
        "{src,test}/**/*.{ts,tsx,js,jsx}": [
            "eslint --cache",
            "prettier --write --cache"
        ]
    },
}

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:
source 'https://cdn.cocoapods.org/'

# -- Setup required by react-native-permissions 4.0.0
# Slightly changed from what React Native suggests
def node_require(script)
  # Resolve script with node to allow for hoisting
  require Pod::Executable.execute_command('node', ['-p',
                                                   "require.resolve(
      '#{script}',
      {paths: [process.argv[1]]},
    )", __dir__]).strip
end

node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')
# -- End of setup required by react-native-permissions 4.0.0

# Sets the minimum version of supported iOS devices to 13.4
platform :ios, '13.4'
prepare_react_native_project!

# 猬囷笍 uncomment wanted permissions
setup_permissions([
                    # 'AppTrackingTransparency',
                    # 'Bluetooth',
                    # 'Calendars',
                    # 'CalendarsWriteOnly',
                    'Camera',
                    # 'Contacts',
                    # 'FaceID',
                    # 'LocationAccuracy',
                    # 'LocationAlways',
                    # 'LocationWhenInUse',
                    # 'MediaLibrary',
                    'Microphone',
                    # 'Motion',
                    'Notifications',
                    # 'PhotoLibrary',
                    # 'PhotoLibraryAddOnly',
                    # 'Reminders',
                    # 'Siri',
                    # 'SpeechRecognition',
                    # 'StoreKit',
                  ])

# ignores all warnings from all pods
# We do this as we cannot fix warnings from 3rd party libraries
inhibit_all_warnings!

$RNFirebaseAnalyticsWithoutAdIdSupport = true

# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

abstract_target 'Common' do
  # From RN setup guide
  config = use_native_modules!

  use_react_native!(
    path: config[:reactNativePath],

    # Enables Flipper.
    #
    # Note that if you have use_frameworks! enabled, Flipper will not work and
    # you should disable the next line.
    # To update Flipper version, check what the latest iOS/Cocoapods version is here: https://github.com/facebook/flipper (small image with iOS version, not necessarily the same version as the NPM package)
    # :flipper_configuration => FlipperConfiguration.enabled(["Debug"], { 'Flipper' => '0.203.0' }),

    # An absolute path to your application root.
    app_path: "#{Pod::Config.instance.installation_root}/.."
  )

  # Needed for Firebase to work
  pod 'Firebase', modular_headers: true
  pod 'FirebaseCore', modular_headers: true
  pod 'FirebaseCoreExtension', modular_headers: true
  pod 'FirebaseInstallations', modular_headers: true
  pod 'FirebaseABTesting', modular_headers: true
  pod 'GoogleUtilities', modular_headers: true
  pod 'GoogleDataTransport', modular_headers: true
  pod 'nanopb', modular_headers: true

  $RNFirebaseAsStaticFramework = true

  # From RN setup guide
  target 'myAppName.production' do
    use_native_modules!
  end

  target 'myAppName.staging' do
    use_native_modules!
  end

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false
    )
  end
end

AppDelegate.m:

#import <Firebase.h>
#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>

#import "RNAppAuthAuthorizationFlowManager.h"

#import <RNCallKeep.h>

#import <PushKit/PushKit.h>
#import "RNVoipPushNotificationManager.h"

#import <React/RCTLinkingManager.h>

#import "RNBootSplash.h"


@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  if ([self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:url]) {
    return YES;
  }
  return [RCTLinkingManager application:application openURL:url options:options];
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
 restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
  if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
    if (self.authorizationFlowManagerDelegate) {
      BOOL resumableAuth = [self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:userActivity.webpageURL];
      if (resumableAuth) {
        return YES;
      }
    }
  }

  return [RCTLinkingManager application:application
                   continueUserActivity:userActivity
                     restorationHandler:restorationHandler];
}

- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type {
  [RNVoipPushNotificationManager didUpdatePushCredentials:credentials forType:(NSString *)type];
}

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type
{

}

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion {
  [RNVoipPushNotificationManager didReceiveIncomingPushWithPayload:payload forType:(NSString *)type];

  NSString *uuid = [payload.dictionaryPayload valueForKeyPath:@"data.id"];
  NSString *callerName = [payload.dictionaryPayload valueForKeyPath:@"aps.alert.body"];
  NSString *handle = @"caller number here";
  BOOL hasVideo = [[payload.dictionaryPayload valueForKeyPath:@"data.hasVideo"] isEqualToNumber:[NSNumber numberWithInt:1]];
  NSDictionary *extra = [payload.dictionaryPayload valueForKeyPath:@"data"];

  [RNCallKeep reportNewIncomingCall: uuid
                             handle: handle
                         handleType: @"generic"
                           hasVideo: hasVideo
                localizedCallerName: callerName
                    supportsHolding: NO
                       supportsDTMF: NO
                   supportsGrouping: NO
                 supportsUngrouping: NO
                        fromPushKit: YES
                            payload: extra
              withCompletionHandler: completion];

  dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 60);
  dispatch_after(delay, dispatch_get_main_queue(), ^(void){
    int reasonId = 3;

    if ([RNCallKeep isCallActive: uuid] == false) {
      [RNCallKeep endCallWithUUID: uuid reason: reasonId];
    }
  });

  completion();
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [FIRApp configure];
  self.moduleName = @"--";
  self.initialProps = @{};

  [RNCallKeep setup:@{
    @"appName": [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"],
    @"maximumCallGroups": @1,
    @"maximumCallsPerCallGroup": @1,
    @"supportsVideo": @YES,
  }];

  [RNVoipPushNotificationManager voipRegistration];

  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
  return [self getBundleURL];
}
- (NSURL *)getBundleURL
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

- (UIView *)createRootViewWithBridge:(RCTBridge *)bridge
                          moduleName:(NSString *)moduleName
                           initProps:(NSDictionary *)initProps {
  UIView *rootView = [super createRootViewWithBridge:bridge
                                          moduleName:moduleName
                                           initProps:initProps];

  [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView];

  return rootView;
}

@end


Environment

Click To Expand

react-native info output:

System:
  OS: macOS 14.2
  CPU: (8) arm64 Apple M1 Pro
  Memory: 117.98 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.18.0
    path: /var/folders/_v/vbctvgnj2kqcmztn7kshm35m0000gn/T/yarn--1712238645213-0.9290557829262842/node
  Yarn:
    version: 1.22.21
    path: /var/folders/_v/vbctvgnj2kqcmztn7kshm35m0000gn/T/yarn--1712238645213-0.9290557829262842/yarn
  npm:
    version: 9.8.1
    path: /usr/local/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods: Not Found
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.2
      - iOS 17.2
      - macOS 14.2
      - tvOS 17.2
      - visionOS 1.0
      - watchOS 10.2
  Android SDK: Not Found
IDEs:
  Android Studio: 2023.1 AI-231.9392.1.2311.11330709
  Xcode:
    version: 15.2/15C500b
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.9
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.2
    wanted: 0.73.2
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false
  • 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:

    • 18.8.0
  • Firebase module(s) you're using that has the issue:

      "@react-native-firebase/analytics": "19.1.2",
      "@react-native-firebase/app": "19.1.2",
      "@react-native-firebase/in-app-messaging": "19.1.2",
      "@react-native-firebase/messaging": "19.1.2",
      "@react-native-firebase/perf": "19.1.2",
      "@react-native-firebase/remote-config": "19.1.2",
    
  • Are you using TypeScript?

    • Yes: typescript@5.3.3


Copy link

github-actions bot commented May 2, 2024

Hello 馃憢, to help manage issues we automatically close stale issues.

This issue has been automatically marked as stale because it has not had activity for quite some time.Has this issue been fixed, or does it still require attention?

This issue will be closed in 15 days if no further activity occurs.

Thank you for your contributions.

@github-actions github-actions bot added the Type: Stale Issue has become stale - automatically added by Stale bot label May 2, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Help: Needs Triage Issue needs additional investigation/triaging. Impact: Bug New bug report Type: Stale Issue has become stale - automatically added by Stale bot
Projects
None yet
Development

No branches or pull requests

2 participants