From 4ec5524645d9815f9e59344fd10acfebe97c5512 Mon Sep 17 00:00:00 2001 From: Salakar Date: Wed, 26 Sep 2018 06:57:11 +0100 Subject: [PATCH] [ios][crashlytics] add support for multiple crashlytics locations (pods vs manual linking) fixes #1401 --- .../crashlytics/RNFirebaseCrashlytics.m | 91 ++++++++++--------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/ios/RNFirebase/fabric/crashlytics/RNFirebaseCrashlytics.m b/ios/RNFirebase/fabric/crashlytics/RNFirebaseCrashlytics.m index 526c9c0f..9b82a7af 100644 --- a/ios/RNFirebase/fabric/crashlytics/RNFirebaseCrashlytics.m +++ b/ios/RNFirebase/fabric/crashlytics/RNFirebaseCrashlytics.m @@ -1,47 +1,54 @@ #import "RNFirebaseCrashlytics.h" #if __has_include() -#import - -@implementation RNFirebaseCrashlytics -RCT_EXPORT_MODULE(); - -RCT_EXPORT_METHOD(crash) { - [[Crashlytics sharedInstance] crash]; -} - -RCT_EXPORT_METHOD(log:(NSString *)message) { - CLS_LOG(@"%@", message); -} - -RCT_EXPORT_METHOD(recordError:(nonnull NSNumber *)code domain:(NSString *)domain) { - NSError *error = [NSError errorWithDomain:domain code:[code integerValue] userInfo:nil]; - [CrashlyticsKit recordError:error]; -} - -RCT_EXPORT_METHOD(setBoolValue:(NSString *)key boolValue:(BOOL *)boolValue) { - [CrashlyticsKit setBoolValue:boolValue forKey:key]; -} - -RCT_EXPORT_METHOD(setFloatValue:(NSString *)key floatValue:(nonnull NSNumber *)floatValue) { - [CrashlyticsKit setFloatValue:[floatValue floatValue] forKey:key]; -} - -RCT_EXPORT_METHOD(setIntValue:(NSString *)key intValue:(nonnull NSNumber *)intValue) { - [CrashlyticsKit setIntValue:[intValue integerValue] forKey:key]; -} - -RCT_EXPORT_METHOD(setStringValue:(NSString *)key stringValue:(NSString *)stringValue) { - [CrashlyticsKit setObjectValue:stringValue forKey:key]; -} - -RCT_EXPORT_METHOD(setUserIdentifier:(NSString *)userId) { - [CrashlyticsKit setUserIdentifier:userId]; -} - -@end - + #define HAS_CRASHLYTICS 1 + #import #else -@implementation RNFirebaseCrashlytics -@end + #if __has_include() + #define HAS_CRASHLYTICS 2 + #import + #endif +#endif + +#ifdef HAS_CRASHLYTICS + @implementation RNFirebaseCrashlytics + RCT_EXPORT_MODULE(); + + RCT_EXPORT_METHOD(crash) { + [[Crashlytics sharedInstance] crash]; + } + + RCT_EXPORT_METHOD(log:(NSString *)message) { + CLS_LOG(@"%@", message); + } + + RCT_EXPORT_METHOD(recordError:(nonnull NSNumber *)code domain:(NSString *)domain) { + NSError *error = [NSError errorWithDomain:domain code:[code integerValue] userInfo:nil]; + [CrashlyticsKit recordError:error]; + } + + RCT_EXPORT_METHOD(setBoolValue:(NSString *)key boolValue:(BOOL *)boolValue) { + [CrashlyticsKit setBoolValue:boolValue forKey:key]; + } + + RCT_EXPORT_METHOD(setFloatValue:(NSString *)key floatValue:(nonnull NSNumber *)floatValue) { + [CrashlyticsKit setFloatValue:[floatValue floatValue] forKey:key]; + } + + RCT_EXPORT_METHOD(setIntValue:(NSString *)key intValue:(nonnull NSNumber *)intValue) { + [CrashlyticsKit setIntValue:[intValue integerValue] forKey:key]; + } + + RCT_EXPORT_METHOD(setStringValue:(NSString *)key stringValue:(NSString *)stringValue) { + [CrashlyticsKit setObjectValue:stringValue forKey:key]; + } + + RCT_EXPORT_METHOD(setUserIdentifier:(NSString *)userId) { + [CrashlyticsKit setUserIdentifier:userId]; + } + + @end +#else + @implementation RNFirebaseCrashlytics + @end #endif