@react-native-firebase/crashlytics 25.1.0 → 26.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/RNFBCrashlytics.podspec +22 -8
- package/android/build.gradle +23 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/{ReactNativeFirebaseCrashlyticsModule.java → NativeRNFBTurboCrashlytics.java} +44 -39
- package/android/src/main/java/io/invertase/firebase/crashlytics/ReactNativeFirebaseCrashlyticsPackage.java +1 -1
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboCrashlyticsSpec.java +125 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/CMakeLists.txt +36 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/RNFBCrashlyticsTurboModules-generated.cpp +116 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/RNFBCrashlyticsTurboModules.h +31 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/react/renderer/components/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModulesJSI-generated.cpp +124 -0
- package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/react/renderer/components/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModulesJSI.h +320 -0
- package/app.plugin.js +1 -1
- package/dist/module/handlers.js +7 -24
- package/dist/module/handlers.js.map +1 -1
- package/dist/module/index.js +125 -8
- package/dist/module/index.js.map +1 -1
- package/dist/module/types/crashlytics.js +1 -40
- package/dist/module/types/crashlytics.js.map +1 -1
- package/dist/module/types/internal.js +4 -0
- package/dist/module/types/internal.js.map +1 -0
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/handlers.d.ts.map +1 -1
- package/dist/typescript/lib/index.d.ts +19 -4
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/types/crashlytics.d.ts +0 -21
- package/dist/typescript/lib/types/crashlytics.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +44 -0
- package/dist/typescript/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.h +15 -6
- package/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.m +24 -1
- package/ios/RNFBCrashlytics/RNFBCrashlyticsModule.h +2 -3
- package/ios/RNFBCrashlytics/{RNFBCrashlyticsModule.m → RNFBCrashlyticsModule.mm} +72 -72
- package/ios/RNFBCrashlytics/RNFBCrashlyticsNativeHelper.m +8 -0
- package/ios/RNFBCrashlytics.xcodeproj/project.pbxproj +8 -8
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
- package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules-generated.mm +148 -0
- package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules.h +214 -0
- package/ios/generated/RNFBCrashlyticsTurboModulesJSI-generated.cpp +124 -0
- package/ios/generated/RNFBCrashlyticsTurboModulesJSI.h +320 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/ios_config.sh +19 -2
- package/lib/handlers.ts +7 -26
- package/lib/index.ts +209 -7
- package/lib/types/crashlytics.ts +0 -30
- package/lib/types/internal.ts +59 -0
- package/lib/version.ts +1 -1
- package/package.json +30 -5
- package/plugin/build/app.plugin.d.ts +2 -0
- package/plugin/build/app.plugin.js +6 -0
- package/plugin/src/app.plugin.ts +3 -0
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/react-native.config.js +3 -28
- package/specs/NativeRNFBTurboCrashlytics.ts +41 -0
- package/typedoc.json +2 -3
- package/dist/module/modular.js +0 -241
- package/dist/module/modular.js.map +0 -1
- package/dist/module/namespaced.js +0 -135
- package/dist/module/namespaced.js.map +0 -1
- package/dist/typescript/lib/modular.d.ts +0 -193
- package/dist/typescript/lib/modular.d.ts.map +0 -1
- package/dist/typescript/lib/namespaced.d.ts +0 -12
- package/dist/typescript/lib/namespaced.d.ts.map +0 -1
- package/lib/modular.ts +0 -249
- package/lib/namespaced.ts +0 -206
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isBoolean","isError","isObject","isString","FirebaseModule","getOrCreateModularInstance","StackTrace","createNativeErrorObj","setGlobalErrorHandler","setOnUnhandledPromiseRejectionHandler","version","nativeModuleName","FirebaseCrashlyticsModule","constructor","app","config","customUrlOrRegion","native","_isCrashlyticsCollectionEnabled","isCrashlyticsCollectionEnabled","checkForUnsentReports","Error","crash","deleteUnsentReports","didCrashOnPreviousExecution","log","message","setAttribute","name","value","setAttributes","object","setUserId","userId","recordError","error","jsErrorName","fromError","offline","then","stackFrames","recordErrorPromise","catch","console","warn","sendUnsentReports","setCrashlyticsCollectionEnabled","enabled","namespace","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","getCrashlytics","crashlytics","attributes"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,43 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
-
*
|
|
6
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
* you may not use this library except in compliance with the License.
|
|
8
|
-
* You may obtain a copy of the License at
|
|
9
|
-
*
|
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
*
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
* See the License for the specific language governing permissions and
|
|
16
|
-
* limitations under the License.
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
// ============ Module Interface ============
|
|
20
|
-
/**
|
|
21
|
-
* Crashlytics module instance - returned from firebase.crashlytics() or firebase.app().crashlytics()
|
|
22
|
-
*/
|
|
23
|
-
// ============ Statics Interface ============
|
|
24
|
-
/**
|
|
25
|
-
* Static properties available on firebase.crashlytics
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* FirebaseApp type with crashlytics() method.
|
|
29
|
-
* @deprecated Import FirebaseApp from '@react-native-firebase/app' instead.
|
|
30
|
-
* The crashlytics() method is added via module augmentation.
|
|
31
|
-
*/
|
|
32
|
-
// ============ Module Augmentation ============
|
|
33
|
-
/* eslint-disable @typescript-eslint/no-namespace */
|
|
34
|
-
/* eslint-enable @typescript-eslint/no-namespace */
|
|
35
|
-
// ============ Backwards Compatibility Namespace - to be removed with namespaced exports ============
|
|
36
|
-
/**
|
|
37
|
-
* @deprecated Use the exported types directly instead.
|
|
38
|
-
* FirebaseCrashlyticsTypes namespace is kept for backwards compatibility.
|
|
39
|
-
*/
|
|
40
|
-
/* eslint-disable @typescript-eslint/no-namespace */
|
|
41
|
-
export let FirebaseCrashlyticsTypes;
|
|
42
|
-
/* eslint-enable @typescript-eslint/no-namespace */
|
|
3
|
+
export {};
|
|
43
4
|
//# sourceMappingURL=crashlytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../lib","sources":["types/crashlytics.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../lib","sources":["types/internal.ts"],"mappings":"","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../lib/handlers.ts"],"names":[],"mappings":"AAqBA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,+CAA+C,CAAC;AAEvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,UAAU,YAAY;IACpB,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,EACpC,oBAAoB,EAAE,OAAO,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CA2ChB;AAED,eAAO,MAAM,qBAAqB,0CAGF,OAAO,UAAU,OAAO,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../lib/handlers.ts"],"names":[],"mappings":"AAqBA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,+CAA+C,CAAC;AAEvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,UAAU,YAAY;IACpB,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,EACpC,oBAAoB,EAAE,OAAO,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CA2ChB;AAED,eAAO,MAAM,qBAAqB,0CAGF,OAAO,UAAU,OAAO,kBAuDtD,CAAC;AAEH,eAAO,MAAM,qCAAqC,wCAChB,MAAM,SAAS,KAAK,kBAiBpD,CAAC"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
import type { FirebaseApp } from '@react-native-firebase/app';
|
|
2
|
+
import './types/internal';
|
|
3
|
+
import type { Crashlytics } from './types/crashlytics';
|
|
4
|
+
export declare const SDK_VERSION = "26.1.0";
|
|
5
|
+
export declare function getCrashlytics(app?: FirebaseApp): Crashlytics;
|
|
6
|
+
export declare function checkForUnsentReports(crashlytics: Crashlytics): Promise<boolean>;
|
|
7
|
+
export declare function deleteUnsentReports(crashlytics: Crashlytics): Promise<void>;
|
|
8
|
+
export declare function didCrashOnPreviousExecution(crashlytics: Crashlytics): Promise<boolean>;
|
|
9
|
+
export declare function crash(crashlytics: Crashlytics): void;
|
|
10
|
+
export declare function log(crashlytics: Crashlytics, message: string): void;
|
|
11
|
+
export declare function recordError(crashlytics: Crashlytics, error: Error, jsErrorName?: string): void;
|
|
12
|
+
export declare function sendUnsentReports(crashlytics: Crashlytics): void;
|
|
13
|
+
export declare function setUserId(crashlytics: Crashlytics, userId: string): Promise<null>;
|
|
14
|
+
export declare function setAttribute(crashlytics: Crashlytics, name: string, value: string): Promise<null>;
|
|
15
|
+
export declare function setAttributes(crashlytics: Crashlytics, attributes: {
|
|
16
|
+
[key: string]: string;
|
|
17
|
+
}): Promise<null>;
|
|
18
|
+
export declare function setCrashlyticsCollectionEnabled(crashlytics: Crashlytics, enabled: boolean): Promise<null>;
|
|
19
|
+
export type { Crashlytics } from './types/crashlytics';
|
|
5
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAkBA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAY9D,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiIvD,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,CAM7D;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtF;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAEpD;AAED,wBAAgB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAE9F;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAEhE;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -91,27 +91,6 @@ export interface Statics {
|
|
|
91
91
|
/**
|
|
92
92
|
* FirebaseApp type with crashlytics() method.
|
|
93
93
|
* @deprecated Import FirebaseApp from '@react-native-firebase/app' instead.
|
|
94
|
-
* The crashlytics() method is added via module augmentation.
|
|
95
94
|
*/
|
|
96
95
|
export type FirebaseApp = ReactNativeFirebase.FirebaseApp;
|
|
97
|
-
declare module '@react-native-firebase/app' {
|
|
98
|
-
namespace ReactNativeFirebase {
|
|
99
|
-
interface Module {
|
|
100
|
-
crashlytics: FirebaseModuleWithStaticsAndApp<Crashlytics, Statics>;
|
|
101
|
-
}
|
|
102
|
-
interface FirebaseApp {
|
|
103
|
-
crashlytics(): Crashlytics;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
type _Statics = Statics;
|
|
108
|
-
/**
|
|
109
|
-
* @deprecated Use the exported types directly instead.
|
|
110
|
-
* FirebaseCrashlyticsTypes namespace is kept for backwards compatibility.
|
|
111
|
-
*/
|
|
112
|
-
export declare namespace FirebaseCrashlyticsTypes {
|
|
113
|
-
type Module = Crashlytics;
|
|
114
|
-
type Statics = _Statics;
|
|
115
|
-
}
|
|
116
|
-
export {};
|
|
117
96
|
//# sourceMappingURL=crashlytics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crashlytics.d.ts","sourceRoot":"","sources":["../../../../lib/types/crashlytics.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB,CAAC,cAAc;IACrE,qDAAqD;IACrD,GAAG,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;;;OAKG;IACH,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;;OAGG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAID;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED
|
|
1
|
+
{"version":3,"file":"crashlytics.d.ts","sourceRoot":"","sources":["../../../../lib/types/crashlytics.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB,CAAC,cAAc;IACrE,qDAAqD;IACrD,GAAG,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;;;OAKG;IACH,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;;OAGG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAID;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Crashlytics } from './crashlytics';
|
|
2
|
+
export interface NativeRNFBTurboCrashlytics {
|
|
3
|
+
isCrashlyticsCollectionEnabled: boolean;
|
|
4
|
+
isErrorGenerationOnJSCrashEnabled: boolean;
|
|
5
|
+
isCrashlyticsJavascriptExceptionHandlerChainingEnabled: boolean;
|
|
6
|
+
checkForUnsentReports(): Promise<boolean>;
|
|
7
|
+
crash(): void;
|
|
8
|
+
deleteUnsentReports(): Promise<void>;
|
|
9
|
+
didCrashOnPreviousExecution(): Promise<boolean>;
|
|
10
|
+
log(message: string): void;
|
|
11
|
+
setAttribute(name: string, value: string): Promise<null>;
|
|
12
|
+
setAttributes(object: {
|
|
13
|
+
[key: string]: string;
|
|
14
|
+
}): Promise<null>;
|
|
15
|
+
setUserId(userId: string): Promise<null>;
|
|
16
|
+
recordError(errorObj: unknown): void;
|
|
17
|
+
sendUnsentReports(): void;
|
|
18
|
+
setCrashlyticsCollectionEnabled(enabled: boolean): Promise<null>;
|
|
19
|
+
logPromise(message: string): Promise<void>;
|
|
20
|
+
recordErrorPromise(errorObj: unknown): Promise<void>;
|
|
21
|
+
crashWithStackPromise(errorObj: unknown): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
declare module '@react-native-firebase/app/dist/module/internal/NativeModules' {
|
|
24
|
+
interface ReactNativeFirebaseNativeModules {
|
|
25
|
+
NativeRNFBTurboCrashlytics: NativeRNFBTurboCrashlytics;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export interface CrashlyticsInternal extends Crashlytics {
|
|
29
|
+
checkForUnsentReports(): Promise<boolean>;
|
|
30
|
+
crash(): void;
|
|
31
|
+
deleteUnsentReports(): Promise<void>;
|
|
32
|
+
didCrashOnPreviousExecution(): Promise<boolean>;
|
|
33
|
+
log(message: string): void;
|
|
34
|
+
recordError(error: Error, jsErrorName?: string): void;
|
|
35
|
+
sendUnsentReports(): void;
|
|
36
|
+
setUserId(userId: string): Promise<null>;
|
|
37
|
+
setAttribute(name: string, value: string): Promise<null>;
|
|
38
|
+
setAttributes(attributes: {
|
|
39
|
+
[key: string]: string;
|
|
40
|
+
}): Promise<null>;
|
|
41
|
+
setCrashlyticsCollectionEnabled(enabled: boolean): Promise<null>;
|
|
42
|
+
readonly native: NativeRNFBTurboCrashlytics;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;IACd,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,aAAa,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,OAAO,QAAQ,+DAA+D,CAAC;IAC7E,UAAU,gCAAgC;QACxC,0BAA0B,EAAE,0BAA0B,CAAC;KACxD;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;IACd,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,iBAAiB,IAAI,IAAI,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "
|
|
1
|
+
export declare const version = "26.1.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -15,10 +15,23 @@
|
|
|
15
15
|
*
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
#import <FirebaseCoreExtension/FIRLibrary.h>
|
|
19
18
|
#import <Foundation/Foundation.h>
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
// This header is intentionally Firebase-free. It's imported by
|
|
21
|
+
// RNFBCrashlyticsModule.mm (Objective-C++), which only ever calls the three
|
|
22
|
+
// plain BOOL class methods below. The `<FIRLibrary>` conformance and
|
|
23
|
+
// `+componentsToRegister` (which needs `FIRComponent`/`FIRLibrary` from
|
|
24
|
+
// FirebaseCoreExtension) are declared privately in RNFBCrashlyticsInitProvider.m
|
|
25
|
+
// instead -- they're only invoked by Firebase's own component/DI runtime via
|
|
26
|
+
// reflection, never called directly by RNFB code, so they don't need to be
|
|
27
|
+
// visible here. This avoids `FirebaseCoreExtension/FIRLibrary.h` (whose
|
|
28
|
+
// `__has_include` check is unreliable under this repo's hybrid SPM+CocoaPods
|
|
29
|
+
// setup, since FirebaseCoreExtension is only a transitive SPM dependency and
|
|
30
|
+
// can't be declared as its own SPM product -- see
|
|
31
|
+
// okf-bundle/ios-spm-native-imports.md) ever being parsed from a `.mm` file,
|
|
32
|
+
// which is what previously failed with "use of '@import' when C++ modules are
|
|
33
|
+
// disabled".
|
|
34
|
+
@interface RNFBCrashlyticsInitProvider : NSObject
|
|
22
35
|
|
|
23
36
|
+ (BOOL)isCrashlyticsCollectionEnabled;
|
|
24
37
|
|
|
@@ -26,8 +39,4 @@
|
|
|
26
39
|
|
|
27
40
|
+ (BOOL)isCrashlyticsJavascriptExceptionHandlerChainingEnabled;
|
|
28
41
|
|
|
29
|
-
/// Returns one or more FIRComponents that will be registered in
|
|
30
|
-
/// FIRApp and participate in dependency resolution and injection.
|
|
31
|
-
+ (NSArray<FIRComponent *> *)componentsToRegister;
|
|
32
|
-
|
|
33
42
|
@end
|
|
@@ -16,13 +16,27 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
#import "RNFBCrashlyticsInitProvider.h"
|
|
19
|
+
#if __has_include(<Firebase/Firebase.h>)
|
|
19
20
|
#import <Firebase/Firebase.h>
|
|
21
|
+
#elif __has_include(<FirebaseCore/FirebaseCore.h>)
|
|
22
|
+
#import <FirebaseCore/FirebaseCore.h>
|
|
23
|
+
#else
|
|
24
|
+
@import FirebaseCore;
|
|
25
|
+
#endif
|
|
26
|
+
#if __has_include(<FirebaseCoreExtension/FIRAppInternal.h>)
|
|
20
27
|
#import <FirebaseCoreExtension/FIRAppInternal.h>
|
|
21
28
|
#import <FirebaseCoreExtension/FIRComponent.h>
|
|
22
29
|
#import <FirebaseCoreExtension/FIRComponentContainer.h>
|
|
23
30
|
#import <FirebaseCoreExtension/FIRComponentType.h>
|
|
24
31
|
#import <FirebaseCoreExtension/FIRLibrary.h>
|
|
32
|
+
#else
|
|
33
|
+
@import FirebaseCoreExtension;
|
|
34
|
+
#endif
|
|
35
|
+
#if __has_include(<FirebaseCrashlytics/FIRCrashlytics.h>)
|
|
25
36
|
#import <FirebaseCrashlytics/FIRCrashlytics.h>
|
|
37
|
+
#else
|
|
38
|
+
@import FirebaseCrashlytics;
|
|
39
|
+
#endif
|
|
26
40
|
#import "RNFBJSON.h"
|
|
27
41
|
#import "RNFBMeta.h"
|
|
28
42
|
#import "RNFBPreferences.h"
|
|
@@ -46,8 +60,17 @@ NSString *const KEY_CRASHLYTICS_JAVASCRIPT_EXCEPTION_HANDLER_CHAINING_ENABLED =
|
|
|
46
60
|
@protocol FIRCrashlyticsInstanceProvider <NSObject>
|
|
47
61
|
@end
|
|
48
62
|
|
|
49
|
-
/// Privately conform to the protocol for component registration.
|
|
63
|
+
/// Privately conform to the protocol for component registration. `<FIRLibrary>` and
|
|
64
|
+
/// `+componentsToRegister` live here rather than in RNFBCrashlyticsInitProvider.h because
|
|
65
|
+
/// they're only invoked by Firebase's own component/DI runtime via reflection, never by RNFB
|
|
66
|
+
/// code directly -- keeping them out of the public header keeps it Firebase-free (see header
|
|
67
|
+
/// comment and okf-bundle/ios-spm-native-imports.md).
|
|
50
68
|
@interface RNFBCrashlyticsInitProvider () <RNFBCrashlyticsInitProviderProtocol, FIRLibrary>
|
|
69
|
+
|
|
70
|
+
/// Returns one or more FIRComponents that will be registered in
|
|
71
|
+
/// FIRApp and participate in dependency resolution and injection.
|
|
72
|
+
+ (NSArray<FIRComponent *> *)componentsToRegister;
|
|
73
|
+
|
|
51
74
|
@end
|
|
52
75
|
|
|
53
76
|
@implementation RNFBCrashlyticsInitProvider
|
|
@@ -16,9 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
#import <Foundation/Foundation.h>
|
|
19
|
+
#import "RNFBCrashlyticsTurboModules.h"
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@interface RNFBCrashlyticsModule : NSObject <RCTBridgeModule>
|
|
21
|
+
@interface RNFBCrashlyticsModule : NSObject <NativeRNFBTurboCrashlyticsSpec>
|
|
23
22
|
|
|
24
23
|
@end
|
|
@@ -22,19 +22,34 @@
|
|
|
22
22
|
#import <React/RCTLog.h>
|
|
23
23
|
#import <React/RCTUtils.h>
|
|
24
24
|
|
|
25
|
+
#if __has_include(<Firebase/Firebase.h>)
|
|
25
26
|
#import <Firebase/Firebase.h>
|
|
27
|
+
#elif __has_include(<FirebaseCrashlytics/FirebaseCrashlytics.h>)
|
|
28
|
+
#import <FirebaseCore/FirebaseCore.h>
|
|
29
|
+
#import <FirebaseCrashlytics/FirebaseCrashlytics.h>
|
|
30
|
+
#else
|
|
31
|
+
@import FirebaseCore;
|
|
32
|
+
@import FirebaseCrashlytics;
|
|
33
|
+
#endif
|
|
26
34
|
#import "RNFBApp/RNFBSharedUtils.h"
|
|
27
35
|
#import "RNFBCrashlyticsInitProvider.h"
|
|
28
36
|
#import "RNFBCrashlyticsModule.h"
|
|
29
37
|
#import "RNFBPreferences.h"
|
|
30
38
|
|
|
31
39
|
@implementation RNFBCrashlyticsModule
|
|
32
|
-
#pragma mark -
|
|
33
|
-
#pragma mark Module Setup
|
|
34
40
|
|
|
35
|
-
RCT_EXPORT_MODULE()
|
|
41
|
+
RCT_EXPORT_MODULE(NativeRNFBTurboCrashlytics)
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
+ (BOOL)requiresMainQueueSetup {
|
|
44
|
+
return NO;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
48
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
49
|
+
return std::make_shared<facebook::react::NativeRNFBTurboCrashlyticsSpecJSI>(params);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- (NSDictionary *)crashlyticsConstantsDictionary {
|
|
38
53
|
NSMutableDictionary *constants = [NSMutableDictionary new];
|
|
39
54
|
constants[@"isCrashlyticsCollectionEnabled"] =
|
|
40
55
|
@([RCTConvert BOOL:@([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled])]);
|
|
@@ -50,31 +65,29 @@ RCT_EXPORT_MODULE();
|
|
|
50
65
|
return constants;
|
|
51
66
|
}
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
- (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
|
|
69
|
+
constantsToExport {
|
|
70
|
+
return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self crashlyticsConstantsDictionary]];
|
|
55
71
|
}
|
|
56
72
|
|
|
57
|
-
|
|
58
|
-
|
|
73
|
+
- (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
|
|
74
|
+
getConstants {
|
|
75
|
+
return [self constantsToExport];
|
|
76
|
+
}
|
|
59
77
|
|
|
60
|
-
|
|
61
|
-
: (RCTPromiseResolveBlock)resolve rejecter
|
|
62
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
78
|
+
- (void)checkForUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
63
79
|
[[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL unsentReports) {
|
|
64
80
|
resolve([NSNumber numberWithBool:unsentReports]);
|
|
65
81
|
}];
|
|
66
82
|
}
|
|
67
83
|
|
|
68
|
-
|
|
84
|
+
- (void)crash {
|
|
69
85
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
70
86
|
if ([self isDebuggerAttached]) {
|
|
71
87
|
RCTLog(
|
|
72
88
|
@"Crashlytics - WARNING: Debugger detected. Crashlytics will not receive crash reports.");
|
|
73
89
|
}
|
|
74
90
|
|
|
75
|
-
// https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios recommends
|
|
76
|
-
// using "@[][1]" to crash, but that gets caught by react-native and shown as a red box for
|
|
77
|
-
// debug builds. Raise SIGSEGV here to generate a hard crash.
|
|
78
91
|
int *p = 0;
|
|
79
92
|
*p = 0;
|
|
80
93
|
} else {
|
|
@@ -82,10 +95,9 @@ RCT_EXPORT_METHOD(crash) {
|
|
|
82
95
|
}
|
|
83
96
|
}
|
|
84
97
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
98
|
+
- (void)crashWithStackPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
|
|
99
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
100
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
89
101
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
90
102
|
if ([self isDebuggerAttached]) {
|
|
91
103
|
RCTLog(
|
|
@@ -93,9 +105,6 @@ RCT_EXPORT_METHOD(crashWithStackPromise
|
|
|
93
105
|
}
|
|
94
106
|
[self recordJavaScriptError:jsErrorDict];
|
|
95
107
|
|
|
96
|
-
// This is strongly discouraged by Apple as "it will appear as though your app has crashed".
|
|
97
|
-
// Coincidentally, we are *in* a crash handler and have logged a crash report.
|
|
98
|
-
// It seems like the one place calling exit cleanly is valid.
|
|
99
108
|
ELog(@"Crashlytics - Crash logged. Terminating app.");
|
|
100
109
|
exit(0);
|
|
101
110
|
} else {
|
|
@@ -104,42 +113,45 @@ RCT_EXPORT_METHOD(crashWithStackPromise
|
|
|
104
113
|
resolve([NSNull null]);
|
|
105
114
|
}
|
|
106
115
|
|
|
107
|
-
|
|
116
|
+
- (void)deleteUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
117
|
+
[[FIRCrashlytics crashlytics] deleteUnsentReports];
|
|
118
|
+
resolve([NSNull null]);
|
|
119
|
+
}
|
|
108
120
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
121
|
+
- (void)didCrashOnPreviousExecution:(RCTPromiseResolveBlock)resolve
|
|
122
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
112
123
|
BOOL didCrash = [[FIRCrashlytics crashlytics] didCrashDuringPreviousExecution];
|
|
113
124
|
resolve([NSNumber numberWithBool:didCrash]);
|
|
114
125
|
}
|
|
115
126
|
|
|
116
|
-
|
|
127
|
+
- (void)log:(NSString *)message {
|
|
128
|
+
[[FIRCrashlytics crashlytics] log:message];
|
|
129
|
+
}
|
|
117
130
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
131
|
+
- (void)logPromise:(NSString *)message
|
|
132
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
133
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
122
134
|
[[FIRCrashlytics crashlytics] log:message];
|
|
123
135
|
resolve([NSNull null]);
|
|
124
136
|
}
|
|
125
137
|
|
|
126
|
-
|
|
138
|
+
- (void)sendUnsentReports {
|
|
139
|
+
[[FIRCrashlytics crashlytics] sendUnsentReports];
|
|
140
|
+
}
|
|
127
141
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
142
|
+
- (void)setAttribute:(NSString *)key
|
|
143
|
+
value:(NSString *)value
|
|
144
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
145
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
133
146
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
134
147
|
[[FIRCrashlytics crashlytics] setCustomValue:value forKey:key];
|
|
135
148
|
}
|
|
136
149
|
resolve([NSNull null]);
|
|
137
150
|
}
|
|
138
151
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
152
|
+
- (void)setAttributes:(NSDictionary *)attributes
|
|
153
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
154
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
143
155
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
144
156
|
NSArray *keys = [attributes allKeys];
|
|
145
157
|
|
|
@@ -150,52 +162,48 @@ RCT_EXPORT_METHOD(setAttributes
|
|
|
150
162
|
resolve([NSNull null]);
|
|
151
163
|
}
|
|
152
164
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
165
|
+
- (void)setUserId:(NSString *)userId
|
|
166
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
167
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
157
168
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
158
169
|
[[FIRCrashlytics crashlytics] setUserID:userId];
|
|
159
170
|
}
|
|
160
171
|
resolve([NSNull null]);
|
|
161
172
|
}
|
|
162
173
|
|
|
163
|
-
|
|
174
|
+
- (void)recordError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
|
|
164
175
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
165
176
|
[self recordJavaScriptError:jsErrorDict];
|
|
166
177
|
}
|
|
167
178
|
}
|
|
168
179
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
180
|
+
- (void)recordErrorPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
|
|
181
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
182
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
173
183
|
if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
|
|
174
184
|
[self recordJavaScriptError:jsErrorDict];
|
|
175
185
|
}
|
|
176
186
|
resolve([NSNull null]);
|
|
177
187
|
}
|
|
178
188
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
: (RCTPromiseRejectBlock)reject) {
|
|
189
|
+
- (void)setCrashlyticsCollectionEnabled:(BOOL)enabled
|
|
190
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
191
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
183
192
|
[[RNFBPreferences shared] setBooleanValue:@"crashlytics_auto_collection_enabled"
|
|
184
193
|
boolValue:enabled];
|
|
185
194
|
resolve([NSNull null]);
|
|
186
195
|
}
|
|
187
196
|
|
|
188
|
-
- (void)recordJavaScriptError:(
|
|
189
|
-
NSString *message = jsErrorDict
|
|
190
|
-
|
|
197
|
+
- (void)recordJavaScriptError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
|
|
198
|
+
NSString *message = jsErrorDict.message();
|
|
199
|
+
auto stackFrames = jsErrorDict.frames();
|
|
191
200
|
NSMutableArray *stackTrace = [[NSMutableArray alloc] init];
|
|
192
|
-
BOOL isUnhandledPromiseRejection =
|
|
201
|
+
BOOL isUnhandledPromiseRejection = jsErrorDict.isUnhandledRejection();
|
|
193
202
|
|
|
194
|
-
for (
|
|
195
|
-
FIRStackFrame *customFrame =
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
line:(uint32_t)[stackFrame[@"line"] intValue]];
|
|
203
|
+
for (const auto &stackFrame : stackFrames) {
|
|
204
|
+
FIRStackFrame *customFrame = [FIRStackFrame stackFrameWithSymbol:stackFrame.fn()
|
|
205
|
+
file:stackFrame.file()
|
|
206
|
+
line:(uint32_t)stackFrame.line()];
|
|
199
207
|
[stackTrace addObject:customFrame];
|
|
200
208
|
}
|
|
201
209
|
|
|
@@ -211,14 +219,6 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
|
|
|
211
219
|
[[FIRCrashlytics crashlytics] recordExceptionModel:exceptionModel];
|
|
212
220
|
}
|
|
213
221
|
|
|
214
|
-
/**
|
|
215
|
-
* Check if the debugger is attached
|
|
216
|
-
*
|
|
217
|
-
* Taken from
|
|
218
|
-
* https://github.com/plausiblelabs/plcrashreporter/blob/2dd862ce049e6f43feb355308dfc710f3af54c4d/Source/Crash%20Demo/main.m#L96
|
|
219
|
-
*
|
|
220
|
-
* @return `YES` if the debugger is attached to the current process, `NO` otherwise
|
|
221
|
-
*/
|
|
222
222
|
- (BOOL)isDebuggerAttached {
|
|
223
223
|
static BOOL debuggerIsAttached = NO;
|
|
224
224
|
|
|
@@ -231,7 +231,7 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
|
|
|
231
231
|
name[0] = CTL_KERN;
|
|
232
232
|
name[1] = KERN_PROC;
|
|
233
233
|
name[2] = KERN_PROC_PID;
|
|
234
|
-
name[3] = getpid();
|
|
234
|
+
name[3] = getpid();
|
|
235
235
|
|
|
236
236
|
if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) {
|
|
237
237
|
ELog(@"Crashlytics ERROR: Checking for a running debugger via sysctl() failed: %s",
|
|
@@ -17,7 +17,15 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
#import "RNFBCrashlyticsNativeHelper.h"
|
|
20
|
+
#if __has_include(<Firebase/Firebase.h>)
|
|
20
21
|
#import <Firebase/Firebase.h>
|
|
22
|
+
#elif __has_include(<FirebaseCrashlytics/FirebaseCrashlytics.h>)
|
|
23
|
+
#import <FirebaseCore/FirebaseCore.h>
|
|
24
|
+
#import <FirebaseCrashlytics/FirebaseCrashlytics.h>
|
|
25
|
+
#else
|
|
26
|
+
@import FirebaseCore;
|
|
27
|
+
@import FirebaseCrashlytics;
|
|
28
|
+
#endif
|
|
21
29
|
|
|
22
30
|
@implementation RNFBCrashlyticsNativeHelper
|
|
23
31
|
|