├── img
└── upgrade_play_services.png
├── android
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── ianlin
│ │ └── RNFirebaseCrashReport
│ │ ├── RNFirebaseCrashReportPackage.java
│ │ └── RNFirebaseCrashReportModule.java
└── build.gradle
├── ios
├── RNFirebaseCrashReport
│ ├── RNFirebaseCrashReport.h
│ └── RNFirebaseCrashReport.m
└── RNFirebaseCrashReport.xcodeproj
│ └── project.pbxproj
├── .gitignore
├── LICENSE
├── index.js
├── package.json
└── README.md
/img/upgrade_play_services.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ianlin/react-native-firebase-crash-report/HEAD/img/upgrade_play_services.png
--------------------------------------------------------------------------------
/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ios/RNFirebaseCrashReport/RNFirebaseCrashReport.h:
--------------------------------------------------------------------------------
1 | //
2 | // RNFirebaseCrashReport.h
3 | // RNFirebaseCrashReport
4 | //
5 | // Created by Ian Yu-Hsun Lin (@ianlin) on 7/6/16.
6 | // Copyright © 2016 Ian Yu-Hsun Lin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import
12 |
13 | @interface RNFirebaseCrashReport : NSObject
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.1"
6 |
7 | defaultConfig {
8 | minSdkVersion 16
9 | targetSdkVersion 22
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | }
14 |
15 | dependencies {
16 | compile 'com.facebook.react:react-native:+'
17 | compile 'com.google.firebase:firebase-core:+'
18 | compile 'com.google.firebase:firebase-crash:+'
19 | }
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # CUSTOM
2 | #
3 | .*.swp
4 |
5 | # OSX
6 | #
7 | .DS_Store
8 |
9 | # Xcode
10 | #
11 | build/
12 | *.pbxuser
13 | !default.pbxuser
14 | *.mode1v3
15 | !default.mode1v3
16 | *.mode2v3
17 | !default.mode2v3
18 | *.perspectivev3
19 | !default.perspectivev3
20 | xcuserdata
21 | *.xccheckout
22 | *.moved-aside
23 | DerivedData
24 | *.hmap
25 | *.ipa
26 | *.xcuserstate
27 | project.xcworkspace
28 |
29 | # Android/IJ
30 | #
31 | .idea
32 | .gradle
33 | local.properties
34 |
35 | # node.js
36 | #
37 | node_modules/
38 | npm-debug.log
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016, Ian Yu-Hsun Lin @ianlin
2 |
3 | Permission to use, copy, modify, and/or distribute this software for any
4 | purpose with or without fee is hereby granted, provided that the above
5 | copyright notice and this permission notice appear in all copies.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 |
--------------------------------------------------------------------------------
/ios/RNFirebaseCrashReport/RNFirebaseCrashReport.m:
--------------------------------------------------------------------------------
1 | //
2 | // RNFirebaseCrashReport.m
3 | // RNFirebaseCrashReport
4 | //
5 | // Created by Ian Yu-Hsun Lin (@ianlin) on 7/6/16.
6 | // Copyright © 2016 Ian Yu-Hsun Lin. All rights reserved.
7 | //
8 |
9 | #import "RNFirebaseCrashReport.h"
10 |
11 | #import
12 | #import
13 | #import
14 | #import
15 |
16 | @import FirebaseCrash;
17 |
18 | @implementation RNFirebaseCrashReport
19 |
20 | RCT_EXPORT_MODULE()
21 |
22 | @synthesize bridge = _bridge;
23 |
24 | RCT_EXPORT_METHOD(log:(NSString *)message)
25 | {
26 | FIRCrashLog(message);
27 | }
28 |
29 | RCT_EXPORT_METHOD(logcat:(NSString *)message)
30 | {
31 | FIRCrashNSLog(message);
32 | }
33 |
34 | RCT_EXPORT_METHOD(report:(NSString *)message)
35 | {
36 | FIRCrashLog(message);
37 | assert(NO);
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var { Platform, NativeModules } = require('react-native');
4 | const _FirebaseCrashReport = NativeModules.RNFirebaseCrashReport;
5 |
6 | export default class FirebaseCrashReport {
7 |
8 | static log(message: string) {
9 | _FirebaseCrashReport.log(message);
10 | }
11 |
12 | static logcat(message: string, level: number = null, tag: string = null) {
13 | if (Platform.OS === 'ios') {
14 | _FirebaseCrashReport.logcat(message);
15 | } else if (Platform.OS === 'android') {
16 | level = (typeof level !== 'number') ? 3 : level; // --- default level: 3 - DEBUG
17 | tag = (typeof tag !== 'string') ? 'RNFirebaseCrashReport' : tag;
18 | _FirebaseCrashReport.logcat(level, tag, message);
19 | }
20 | }
21 |
22 | static report(message) {
23 | _FirebaseCrashReport.report(message);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-native-firebase-crash-report",
3 | "version": "1.3.0",
4 | "description": "React Native Firebase Crash Report",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/ianlin/react-native-firebase-crash-report.git"
12 | },
13 | "keywords": [
14 | "React",
15 | "ReactNative",
16 | "Firebase",
17 | "Crash",
18 | "Crash Report",
19 | "Custom Log",
20 | "Crash Custom Log",
21 | "Crash Report Custom Log"
22 | ],
23 | "author": "Ian Yu-Hsun Lin ",
24 | "license": "ISC",
25 | "bugs": {
26 | "url": "https://github.com/ianlin/react-native-firebase-crash-report/issues"
27 | },
28 | "homepage": "https://github.com/ianlin/react-native-firebase-crash-report#readme",
29 | "peerDependencies": {
30 | "react-native": ">=0.19.0"
31 | },
32 | "devDependencies": {
33 | "react-native": ">=0.19.0"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ianlin/RNFirebaseCrashReport/RNFirebaseCrashReportPackage.java:
--------------------------------------------------------------------------------
1 | package com.ianlin.RNFirebaseCrashReport;
2 |
3 | import com.facebook.react.ReactPackage;
4 | import com.facebook.react.bridge.JavaScriptModule;
5 | import com.facebook.react.bridge.NativeModule;
6 | import com.facebook.react.bridge.ReactApplicationContext;
7 | import com.facebook.react.uimanager.ViewManager;
8 |
9 | import java.util.ArrayList;
10 | import java.util.Collections;
11 | import java.util.List;
12 |
13 | public class RNFirebaseCrashReportPackage implements ReactPackage {
14 |
15 | @Override
16 | public List createNativeModules(ReactApplicationContext reactContext) {
17 | List modules = new ArrayList<>();
18 | modules.add(new RNFirebaseCrashReportModule(reactContext));
19 | return modules;
20 | }
21 |
22 | // Deprecate RN 0.47
23 | public List> createJSModules() {
24 | return Collections.emptyList();
25 | }
26 |
27 | @Override
28 | public List createViewManagers(ReactApplicationContext reactContext) {
29 | return Collections.emptyList();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ianlin/RNFirebaseCrashReport/RNFirebaseCrashReportModule.java:
--------------------------------------------------------------------------------
1 | package com.ianlin.RNFirebaseCrashReport;
2 |
3 | import com.facebook.react.bridge.LifecycleEventListener;
4 | import com.facebook.react.bridge.ReactApplicationContext;
5 | import com.facebook.react.bridge.ReactContextBaseJavaModule;
6 | import com.facebook.react.bridge.ReactMethod;
7 |
8 | import com.google.firebase.crash.FirebaseCrash;
9 |
10 | public class RNFirebaseCrashReportModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
11 | private final static String TAG = RNFirebaseCrashReportModule.class.getCanonicalName();
12 |
13 | public RNFirebaseCrashReportModule(ReactApplicationContext reactContext) {
14 | super(reactContext);
15 | reactContext.addLifecycleEventListener(this);
16 | }
17 |
18 | @Override
19 | public String getName() {
20 | return "RNFirebaseCrashReport";
21 | }
22 |
23 | @ReactMethod
24 | public void log(String message) {
25 | FirebaseCrash.log(message);
26 | }
27 |
28 | @ReactMethod
29 | public void logcat(int level, String tag, String message) {
30 | FirebaseCrash.logcat(level, tag, message);
31 | }
32 |
33 | @ReactMethod
34 | public void report(String message) {
35 | FirebaseCrash.report(new Exception(message));
36 | }
37 |
38 | @Override
39 | public void onHostResume() {
40 | }
41 |
42 | @Override
43 | public void onHostPause() {
44 | }
45 |
46 | @Override
47 | public void onHostDestroy() {
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React Native Firebase Crash Report
2 |
3 | [](https://badge.fury.io/js/react-native-firebase-crash-report)
4 | [](https://img.shields.io/npm/dm/react-native-firebase-crash-report.svg?maxAge=2592000)
5 |
6 | React Native Firebase Crash Report With Custom Log
7 |
8 | **--- This project is deprecated. Please migrate to Firebase Crashlytics ---**
9 |
10 | * [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics/)
11 | * [react-native-firebase](https://github.com/invertase/react-native-firebase)
12 |
13 | ## Version
14 |
15 | If you're using React Native >= 0.40, make sure to use `react-native-firebase-crash-report` >= **1.2.0**
16 |
17 | ## Usage
18 |
19 | ```javascript
20 |
21 | import FirebaseCrash from 'react-native-firebase-crash-report';
22 |
23 | /*
24 | * Create custom log messages that will be included in the crash report
25 | */
26 |
27 | FirebaseCrash.log('User logged in');
28 |
29 | /*
30 | * Create custom log messages that will be included in the crash report and output to logcat/NSLog
31 | */
32 |
33 | FirebaseCrash.logcat('User logged in');
34 |
35 | // Android only
36 | // Params:
37 | // - message: string, required
38 | // - debug level: int, optional, default 3 (https://developer.android.com/reference/android/util/Log.html)
39 | // - tag: string, optional, default 'RNFirebaseCrashReport'
40 | FirebaseCrash.logcat('User logged in', 3, 'MyTag');
41 |
42 | /*
43 | * Report errors on demand
44 | *
45 | * iOS Note: calling this API on iOS will result in app crash
46 | */
47 |
48 | FirebaseCrash.report('A weird thing just happened...');
49 |
50 | ```
51 |
52 | ## Installation
53 |
54 | ### Install node module
55 |
56 | ```bash
57 | npm install --save react-native-firebase-crash-report
58 | ```
59 |
60 | ### Linking libraries
61 |
62 | ```bash
63 | rnpm link react-native-firebase-crash-report
64 | ```
65 |
66 | ## iOS Configuration
67 |
68 | ### Install Firebase From Cocoapods
69 |
70 | For more information please visit [Set Up Crash Reporting For iOS][1]
71 |
72 | #### Pre-check
73 |
74 | If you are using RN < 0.29 you would have run into [this problem][4], just follow the PR to fix it manually.
75 |
76 | #### Go to your project's ios folder
77 |
78 | ```bash
79 | cd /ios
80 | ```
81 |
82 | #### (Optional) Initialise Pod
83 |
84 | **Note**: You can skip this step if you have pod initialised already.
85 |
86 | ```bash
87 | pod init
88 | ```
89 |
90 | #### Add `pod 'Firebase/Core'` and `pod 'Firebase/Crash'` to `Podfile`
91 |
92 | ```diff
93 | target 'YourProject' do
94 | # Uncomment this line if you're using Swift or would like to use dynamic frameworks
95 | use_frameworks!
96 |
97 | # Pods for YourProject
98 | + pod 'Firebase/Core'
99 | + pod 'Firebase/Crash'
100 |
101 | target 'YourProjectTests' do
102 | inherit! :search_paths
103 | # Pods for testing
104 | end
105 |
106 | end
107 | ```
108 |
109 | #### Install Pods
110 |
111 | ```bash
112 | pod install
113 | ```
114 |
115 | ### Initialise Firebase
116 |
117 | Add following code in your `AppDelegate.m`
118 |
119 | ```diff
120 | #import "AppDelegate.h"
121 |
122 | #import "RCTRootView.h"
123 |
124 | +@import Firebase;
125 |
126 | @implementation AppDelegate
127 |
128 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
129 | {
130 |
131 | ...
132 |
133 | self.window.rootViewController = rootViewController;
134 | [self.window makeKeyAndVisible];
135 | +
136 | + // Use Firebase library to configure APIs
137 | + [FIRApp configure];
138 | +
139 | return YES;
140 | }
141 | ```
142 |
143 | ## Android Configuration
144 |
145 | For more information please visit [Set Up Crash Reporting For Android][2]
146 |
147 | ### Upgrade Google Play Services and Google Repository
148 |
149 | 
150 |
151 | ### Add Google Services
152 |
153 | - In `android/build.gradle`
154 |
155 | ```diff
156 | dependencies {
157 | classpath 'com.android.tools.build:gradle:1.3.1'
158 | classpath 'de.undercouch:gradle-download-task:2.0.0'
159 | + classpath 'com.google.gms:google-services:3.0.0'
160 | ```
161 |
162 | - In `android/app/build.gradle`, add this line at the bottom of the file
163 |
164 | ```gradle
165 | apply plugin: 'com.google.gms.google-services'
166 | ```
167 |
168 | ### (Optional) Manually linking libraries
169 |
170 | - **app/build.gradle**
171 |
172 | ```gradle
173 | dependencies {
174 | ...
175 | compile project(':react-native-firebase-analytics')
176 | compile project(':react-native-firebase-crash-report') <-- add this
177 | ...
178 | }
179 | ```
180 |
181 | - **settings.gradle**
182 |
183 | ```gradle
184 | include ':react-native-firebase-analytics'
185 | project(':react-native-firebase-analytics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-analytics/android')
186 |
187 | // add everything below this
188 | include ':react-native-firebase-crash-report'
189 | project(':react-native-firebase-crash-report').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-crash-report/android')
190 | ```
191 |
192 | - **MainApplication.java**
193 |
194 | ```gradle
195 | ...
196 | import com.ianlin.RNFirebaseCrashReport.RNFirebaseCrashReportPackage; <-- add this
197 | ...
198 |
199 | @Override
200 | protected List getPackages() {
201 | return Arrays.asList(
202 | new MainReactPackage(),
203 | new FIRAnalyticsPackage(),
204 | ...
205 | new RNFirebaseCrashReportPackage(), <-- add this
206 | ...
207 | );
208 | }
209 | ```
210 |
211 | ## Original Author:
212 | [](https://github.com/ianlin)
213 |
214 | ## License
215 |
216 | [ISC License][5] (functionality equivalent to **MIT License**)
217 |
218 | [1]: https://firebase.google.com/docs/crash/ios
219 | [2]: https://firebase.google.com/docs/android/setup
220 | [3]: https://github.com/rnpm/rnpm
221 | [4]: https://github.com/facebook/react-native/pull/7927
222 | [5]: https://opensource.org/licenses/ISC
223 |
--------------------------------------------------------------------------------
/ios/RNFirebaseCrashReport.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 2346ED891D2CB9E400053E1E /* RNFirebaseCrashReport.m in Sources */ = {isa = PBXBuildFile; fileRef = 2346ED881D2CB9E400053E1E /* RNFirebaseCrashReport.m */; };
11 | /* End PBXBuildFile section */
12 |
13 | /* Begin PBXCopyFilesBuildPhase section */
14 | 2397DA461D2CB80E00FE376F /* CopyFiles */ = {
15 | isa = PBXCopyFilesBuildPhase;
16 | buildActionMask = 2147483647;
17 | dstPath = "include/$(PRODUCT_NAME)";
18 | dstSubfolderSpec = 16;
19 | files = (
20 | );
21 | runOnlyForDeploymentPostprocessing = 0;
22 | };
23 | /* End PBXCopyFilesBuildPhase section */
24 |
25 | /* Begin PBXFileReference section */
26 | 2346ED871D2CB9E400053E1E /* RNFirebaseCrashReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNFirebaseCrashReport.h; sourceTree = ""; };
27 | 2346ED881D2CB9E400053E1E /* RNFirebaseCrashReport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNFirebaseCrashReport.m; sourceTree = ""; };
28 | 2397DA481D2CB80E00FE376F /* libRNFirebaseCrashReport.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNFirebaseCrashReport.a; sourceTree = BUILT_PRODUCTS_DIR; };
29 | /* End PBXFileReference section */
30 |
31 | /* Begin PBXFrameworksBuildPhase section */
32 | 2397DA451D2CB80E00FE376F /* Frameworks */ = {
33 | isa = PBXFrameworksBuildPhase;
34 | buildActionMask = 2147483647;
35 | files = (
36 | );
37 | runOnlyForDeploymentPostprocessing = 0;
38 | };
39 | /* End PBXFrameworksBuildPhase section */
40 |
41 | /* Begin PBXGroup section */
42 | 2397DA3F1D2CB80D00FE376F = {
43 | isa = PBXGroup;
44 | children = (
45 | 2397DA4A1D2CB80E00FE376F /* RNFirebaseCrashReport */,
46 | 2397DA491D2CB80E00FE376F /* Products */,
47 | );
48 | sourceTree = "";
49 | };
50 | 2397DA491D2CB80E00FE376F /* Products */ = {
51 | isa = PBXGroup;
52 | children = (
53 | 2397DA481D2CB80E00FE376F /* libRNFirebaseCrashReport.a */,
54 | );
55 | name = Products;
56 | sourceTree = "";
57 | };
58 | 2397DA4A1D2CB80E00FE376F /* RNFirebaseCrashReport */ = {
59 | isa = PBXGroup;
60 | children = (
61 | 2346ED871D2CB9E400053E1E /* RNFirebaseCrashReport.h */,
62 | 2346ED881D2CB9E400053E1E /* RNFirebaseCrashReport.m */,
63 | );
64 | path = RNFirebaseCrashReport;
65 | sourceTree = "";
66 | };
67 | /* End PBXGroup section */
68 |
69 | /* Begin PBXNativeTarget section */
70 | 2397DA471D2CB80E00FE376F /* RNFirebaseCrashReport */ = {
71 | isa = PBXNativeTarget;
72 | buildConfigurationList = 2397DA511D2CB80E00FE376F /* Build configuration list for PBXNativeTarget "RNFirebaseCrashReport" */;
73 | buildPhases = (
74 | 2397DA441D2CB80E00FE376F /* Sources */,
75 | 2397DA451D2CB80E00FE376F /* Frameworks */,
76 | 2397DA461D2CB80E00FE376F /* CopyFiles */,
77 | );
78 | buildRules = (
79 | );
80 | dependencies = (
81 | );
82 | name = RNFirebaseCrashReport;
83 | productName = RNFirebaseCrashReport;
84 | productReference = 2397DA481D2CB80E00FE376F /* libRNFirebaseCrashReport.a */;
85 | productType = "com.apple.product-type.library.static";
86 | };
87 | /* End PBXNativeTarget section */
88 |
89 | /* Begin PBXProject section */
90 | 2397DA401D2CB80E00FE376F /* Project object */ = {
91 | isa = PBXProject;
92 | attributes = {
93 | LastUpgradeCheck = 0730;
94 | ORGANIZATIONNAME = "Ian Yu-Hsun Lin";
95 | TargetAttributes = {
96 | 2397DA471D2CB80E00FE376F = {
97 | CreatedOnToolsVersion = 7.3.1;
98 | };
99 | };
100 | };
101 | buildConfigurationList = 2397DA431D2CB80E00FE376F /* Build configuration list for PBXProject "RNFirebaseCrashReport" */;
102 | compatibilityVersion = "Xcode 3.2";
103 | developmentRegion = English;
104 | hasScannedForEncodings = 0;
105 | knownRegions = (
106 | en,
107 | );
108 | mainGroup = 2397DA3F1D2CB80D00FE376F;
109 | productRefGroup = 2397DA491D2CB80E00FE376F /* Products */;
110 | projectDirPath = "";
111 | projectRoot = "";
112 | targets = (
113 | 2397DA471D2CB80E00FE376F /* RNFirebaseCrashReport */,
114 | );
115 | };
116 | /* End PBXProject section */
117 |
118 | /* Begin PBXSourcesBuildPhase section */
119 | 2397DA441D2CB80E00FE376F /* Sources */ = {
120 | isa = PBXSourcesBuildPhase;
121 | buildActionMask = 2147483647;
122 | files = (
123 | 2346ED891D2CB9E400053E1E /* RNFirebaseCrashReport.m in Sources */,
124 | );
125 | runOnlyForDeploymentPostprocessing = 0;
126 | };
127 | /* End PBXSourcesBuildPhase section */
128 |
129 | /* Begin XCBuildConfiguration section */
130 | 2397DA4F1D2CB80E00FE376F /* Debug */ = {
131 | isa = XCBuildConfiguration;
132 | buildSettings = {
133 | ALWAYS_SEARCH_USER_PATHS = NO;
134 | CLANG_ANALYZER_NONNULL = YES;
135 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
136 | CLANG_CXX_LIBRARY = "libc++";
137 | CLANG_ENABLE_MODULES = YES;
138 | CLANG_ENABLE_OBJC_ARC = YES;
139 | CLANG_WARN_BOOL_CONVERSION = YES;
140 | CLANG_WARN_CONSTANT_CONVERSION = YES;
141 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
142 | CLANG_WARN_EMPTY_BODY = YES;
143 | CLANG_WARN_ENUM_CONVERSION = YES;
144 | CLANG_WARN_INT_CONVERSION = YES;
145 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
146 | CLANG_WARN_UNREACHABLE_CODE = YES;
147 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
148 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
149 | COPY_PHASE_STRIP = NO;
150 | DEBUG_INFORMATION_FORMAT = dwarf;
151 | ENABLE_STRICT_OBJC_MSGSEND = YES;
152 | ENABLE_TESTABILITY = YES;
153 | GCC_C_LANGUAGE_STANDARD = gnu99;
154 | GCC_DYNAMIC_NO_PIC = NO;
155 | GCC_NO_COMMON_BLOCKS = YES;
156 | GCC_OPTIMIZATION_LEVEL = 0;
157 | GCC_PREPROCESSOR_DEFINITIONS = (
158 | "DEBUG=1",
159 | "$(inherited)",
160 | );
161 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
162 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
163 | GCC_WARN_UNDECLARED_SELECTOR = YES;
164 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
165 | GCC_WARN_UNUSED_FUNCTION = YES;
166 | GCC_WARN_UNUSED_VARIABLE = YES;
167 | IPHONEOS_DEPLOYMENT_TARGET = 9.3;
168 | MTL_ENABLE_DEBUG_INFO = YES;
169 | ONLY_ACTIVE_ARCH = YES;
170 | SDKROOT = iphoneos;
171 | };
172 | name = Debug;
173 | };
174 | 2397DA501D2CB80E00FE376F /* Release */ = {
175 | isa = XCBuildConfiguration;
176 | buildSettings = {
177 | ALWAYS_SEARCH_USER_PATHS = NO;
178 | CLANG_ANALYZER_NONNULL = YES;
179 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
180 | CLANG_CXX_LIBRARY = "libc++";
181 | CLANG_ENABLE_MODULES = YES;
182 | CLANG_ENABLE_OBJC_ARC = YES;
183 | CLANG_WARN_BOOL_CONVERSION = YES;
184 | CLANG_WARN_CONSTANT_CONVERSION = YES;
185 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
186 | CLANG_WARN_EMPTY_BODY = YES;
187 | CLANG_WARN_ENUM_CONVERSION = YES;
188 | CLANG_WARN_INT_CONVERSION = YES;
189 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
190 | CLANG_WARN_UNREACHABLE_CODE = YES;
191 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
192 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
193 | COPY_PHASE_STRIP = NO;
194 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
195 | ENABLE_NS_ASSERTIONS = NO;
196 | ENABLE_STRICT_OBJC_MSGSEND = YES;
197 | GCC_C_LANGUAGE_STANDARD = gnu99;
198 | GCC_NO_COMMON_BLOCKS = YES;
199 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
200 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
201 | GCC_WARN_UNDECLARED_SELECTOR = YES;
202 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
203 | GCC_WARN_UNUSED_FUNCTION = YES;
204 | GCC_WARN_UNUSED_VARIABLE = YES;
205 | IPHONEOS_DEPLOYMENT_TARGET = 9.3;
206 | MTL_ENABLE_DEBUG_INFO = NO;
207 | SDKROOT = iphoneos;
208 | VALIDATE_PRODUCT = YES;
209 | };
210 | name = Release;
211 | };
212 | 2397DA521D2CB80E00FE376F /* Debug */ = {
213 | isa = XCBuildConfiguration;
214 | buildSettings = {
215 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
216 | ENABLE_TESTABILITY = NO;
217 | FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../../ios/**";
218 | HEADER_SEARCH_PATHS = "$(SRCROOT)/../../react-native/React/**";
219 | OTHER_LDFLAGS = "-ObjC";
220 | PRODUCT_NAME = "$(TARGET_NAME)";
221 | SKIP_INSTALL = YES;
222 | };
223 | name = Debug;
224 | };
225 | 2397DA531D2CB80E00FE376F /* Release */ = {
226 | isa = XCBuildConfiguration;
227 | buildSettings = {
228 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
229 | FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../../ios/**";
230 | HEADER_SEARCH_PATHS = "$(SRCROOT)/../../react-native/React/**";
231 | OTHER_LDFLAGS = "-ObjC";
232 | PRODUCT_NAME = "$(TARGET_NAME)";
233 | SKIP_INSTALL = YES;
234 | };
235 | name = Release;
236 | };
237 | /* End XCBuildConfiguration section */
238 |
239 | /* Begin XCConfigurationList section */
240 | 2397DA431D2CB80E00FE376F /* Build configuration list for PBXProject "RNFirebaseCrashReport" */ = {
241 | isa = XCConfigurationList;
242 | buildConfigurations = (
243 | 2397DA4F1D2CB80E00FE376F /* Debug */,
244 | 2397DA501D2CB80E00FE376F /* Release */,
245 | );
246 | defaultConfigurationIsVisible = 0;
247 | defaultConfigurationName = Release;
248 | };
249 | 2397DA511D2CB80E00FE376F /* Build configuration list for PBXNativeTarget "RNFirebaseCrashReport" */ = {
250 | isa = XCConfigurationList;
251 | buildConfigurations = (
252 | 2397DA521D2CB80E00FE376F /* Debug */,
253 | 2397DA531D2CB80E00FE376F /* Release */,
254 | );
255 | defaultConfigurationIsVisible = 0;
256 | defaultConfigurationName = Release;
257 | };
258 | /* End XCConfigurationList section */
259 | };
260 | rootObject = 2397DA401D2CB80E00FE376F /* Project object */;
261 | }
262 |
--------------------------------------------------------------------------------