React Native Firebase Crash Report With Custom Log
If you're using React Native >= 0.40, make sure to use react-native-firebase-crash-report
>= 1.2.0
import FirebaseCrash from 'react-native-firebase-crash-report';
/*
* Create custom log messages that will be included in the crash report
*/
FirebaseCrash.log('User logged in');
/*
* Create custom log messages that will be included in the crash report and output to logcat/NSLog
*/
FirebaseCrash.logcat('User logged in');
// Android only
// Params:
// - message: string, required
// - debug level: int, optional, default 3 (https://developer.android.com/reference/android/util/Log.html)
// - tag: string, optional, default 'RNFirebaseCrashReport'
FirebaseCrash.logcat('User logged in', 3, 'MyTag');
/*
* Report errors on demand
*
* iOS Note: calling this API on iOS will result in app crash
*/
FirebaseCrash.report('A weird thing just happened...');
npm install --save react-native-firebase-crash-report
rnpm link react-native-firebase-crash-report
For more information please visit Set Up Crash Reporting For iOS
If you are using RN < 0.29 you would have run into this problem, just follow the PR to fix it manually.
cd <your_project>/ios
Note: You can skip this step if you have pod initialised already.
pod init
target 'YourProject' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Pods for YourProject
+ pod 'Firebase/Core'
+ pod 'Firebase/Crash'
target 'YourProjectTests' do
inherit! :search_paths
# Pods for testing
end
end
pod install
Add following code in your AppDelegate.m
#import "AppDelegate.h"
#import "RCTRootView.h"
+@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
+
+ // Use Firebase library to configure APIs
+ [FIRApp configure];
+
return YES;
}
For more information please visit Set Up Crash Reporting For Android
- In
android/build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'de.undercouch:gradle-download-task:2.0.0'
+ classpath 'com.google.gms:google-services:3.0.0'
- In
android/app/build.gradle
, add this line at the bottom of the file
apply plugin: 'com.google.gms.google-services'
- app/build.gradle
dependencies {
...
compile project(':react-native-firebase-analytics')
compile project(':react-native-firebase-crash-report') <-- add this
...
}
- settings.gradle
include ':react-native-firebase-analytics'
project(':react-native-firebase-analytics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-analytics/android')
// add everything below this
include ':react-native-firebase-crash-report'
project(':react-native-firebase-crash-report').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-crash-report/android')
- MainApplication.java
...
import com.ianlin.RNFirebaseCrashReport.RNFirebaseCrashReportPackage; <-- add this
...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new FIRAnalyticsPackage(),
...
new RNFirebaseCrashReportPackage(), <-- add this
...
);
}
Any pull requests, issue reports and suggestion are highly welcome.
ISC License (functionality equivalent to MIT License)