├── 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 | [![npm version](https://badge.fury.io/js/react-native-firebase-crash-report.svg)](https://badge.fury.io/js/react-native-firebase-crash-report) 4 | [![npm downloads](https://img.shields.io/npm/dm/react-native-firebase-crash-report.svg?maxAge=2592000)](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 | ![Upgrade Google Play Services and Google Repository](https://github.com/ianlin/react-native-firebase-crash-report/blob/master/img/upgrade_play_services.png) 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 | [![ianlin](https://avatars1.githubusercontent.com/u/914406?s=48)](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 | --------------------------------------------------------------------------------