[v6] Implement Crashlytics upgrade + required internals changes (#1958)

[crashlytics]

Fixes: #1643, #1848, #1964, #1920, #1884, #1783, #1966, #1940, #1447

Features/Bugs Todo:

  Capture JS Exceptions with stack traces automatically
  Capture Unhandled Promise Rejections with stack traces automatically
  [Android] .crash() not captured in debug due to RN RedBox; see #1921
  Support advanced user identifier features
  [Android] Enable Crashlyics NDK reporting by default (gist)
  Support toggling native crash logging off/on (e.g. disable in DEV)
  Support toggling JS crash logging off/on (e.g. disable in DEV)

  [ios] Static framework support for all modules
  [ios] Implement CocoaPods Firebase RN modules auto-loader script
  Implement firebase.json config loader; Android & iOS
  [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  [android] Cleanup manifest permissions for all modules
  [android] Implement Content provider base class
  [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting
This commit is contained in:
Mike Diarmid
2019-03-13 17:07:21 +00:00
committed by GitHub
parent 81a08c0647
commit c89ba48e92
97 changed files with 4204 additions and 911 deletions

View File

@@ -21,6 +21,9 @@
#import "RNFBAppModule.h"
#import "RNFBRCTEventEmitter.h"
#import "RNFBSharedUtils.h"
#import "RNFBPreferences.h"
#import "RNFBJSON.h"
#import "RNFBMeta.h"
@implementation RNFBAppModule
@@ -42,6 +45,68 @@
return [RNFBRCTEventEmitter shared].bridge;
}
#pragma mark -
#pragma mark META Methods
RCT_EXPORT_METHOD(metaGetAll:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
resolve([RNFBMeta getAll]);
}
#pragma mark -
#pragma mark JSON Methods
RCT_EXPORT_METHOD(jsonGetAll:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
resolve([[RNFBJSON shared] getAll]);
}
#pragma mark -
#pragma mark Preference Methods
RCT_EXPORT_METHOD(preferencesSetBool:
(NSString *) key
boolValue:
(BOOL) boolValue
resolver:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
[[RNFBPreferences shared] setBooleanValue:key boolValue:boolValue];
resolve([NSNull null]);
}
RCT_EXPORT_METHOD(preferencesSetString:
(NSString *) key
stringValue:
(NSString *) stringValue
resolver:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
[[RNFBPreferences shared] setStringValue:key stringValue:stringValue];
resolve([NSNull null]);
}
RCT_EXPORT_METHOD(preferencesGetAll:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
resolve([[RNFBPreferences shared] getAll]);
}
RCT_EXPORT_METHOD(preferencesClearAll:
(RCTPromiseResolveBlock) resolve
rejecter:
(RCTPromiseRejectBlock) reject) {
[[RNFBPreferences shared] clearAll];
resolve([NSNull null]);
}
#pragma mark -
#pragma mark Event Methods
@@ -77,7 +142,7 @@
RCT_EXPORT_METHOD(eventsRemoveListener:
(NSString *) eventName
all:
(BOOL *) all) {
(BOOL) all) {
[[RNFBRCTEventEmitter shared] removeListeners:eventName all:all];
}