diff --git a/Crashlytics.framework/Crashlytics b/Crashlytics.framework/Crashlytics index e723ee62..7ca4108a 100755 Binary files a/Crashlytics.framework/Crashlytics and b/Crashlytics.framework/Crashlytics differ diff --git a/Crashlytics.framework/Headers/CLSLogging.h b/Crashlytics.framework/Headers/CLSLogging.h index fe1ece6e..59590d54 100644 --- a/Crashlytics.framework/Headers/CLSLogging.h +++ b/Crashlytics.framework/Headers/CLSLogging.h @@ -4,13 +4,14 @@ // // Copyright (c) 2015 Crashlytics, Inc. All rights reserved. // - -#import #ifdef __OBJC__ +#import "CLSAttributes.h" #import + +NS_ASSUME_NONNULL_BEGIN #endif -FAB_START_NONNULL + /** * @@ -57,6 +58,7 @@ OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0); **/ OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); OBJC_EXTERN void CLSNSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0); -#endif -FAB_END_NONNULL + +NS_ASSUME_NONNULL_END +#endif diff --git a/Crashlytics.framework/Headers/CLSReport.h b/Crashlytics.framework/Headers/CLSReport.h index bae34e6c..6e3a5153 100644 --- a/Crashlytics.framework/Headers/CLSReport.h +++ b/Crashlytics.framework/Headers/CLSReport.h @@ -6,9 +6,9 @@ // #import -#import +#import "CLSAttributes.h" -FAB_START_NONNULL +NS_ASSUME_NONNULL_BEGIN /** * The CLSCrashReport protocol is deprecated. See the CLSReport class and the CrashyticsDelegate changes for details. @@ -33,6 +33,7 @@ FAB_START_NONNULL @interface CLSReport : NSObject - (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; /** * Returns the session identifier for the report. @@ -70,8 +71,7 @@ FAB_START_NONNULL @property (nonatomic, copy, readonly) NSString *OSBuildVersion; /** - * Returns YES if the report contains any crash information. If the report - * contains only NSErrors, this will return NO. + * Returns YES if the report contains any crash information, otherwise returns NO. **/ @property (nonatomic, assign, readonly) BOOL isCrash; @@ -81,23 +81,23 @@ FAB_START_NONNULL * that the maximum size and count of custom keys is still enforced, and you can overwrite keys * and/or cause excess keys to be deleted by using this method. **/ -- (void)setObjectValue:(id FAB_NULLABLE)value forKey:(NSString *)key; +- (void)setObjectValue:(nullable id)value forKey:(NSString *)key; /** * Record an application-specific user identifier. See Crashlytics.h for details. **/ -@property (nonatomic, copy) NSString * FAB_NULLABLE userIdentifier; +@property (nonatomic, copy, nullable) NSString * userIdentifier; /** * Record a user name. See Crashlytics.h for details. **/ -@property (nonatomic, copy) NSString * FAB_NULLABLE userName; +@property (nonatomic, copy, nullable) NSString * userName; /** * Record a user email. See Crashlytics.h for details. **/ -@property (nonatomic, copy) NSString * FAB_NULLABLE userEmail; +@property (nonatomic, copy, nullable) NSString * userEmail; @end -FAB_END_NONNULL +NS_ASSUME_NONNULL_END diff --git a/Crashlytics.framework/Headers/CLSStackFrame.h b/Crashlytics.framework/Headers/CLSStackFrame.h index 37447912..a9c0f296 100644 --- a/Crashlytics.framework/Headers/CLSStackFrame.h +++ b/Crashlytics.framework/Headers/CLSStackFrame.h @@ -6,9 +6,9 @@ // #import -#import +#import "CLSAttributes.h" -FAB_START_NONNULL +NS_ASSUME_NONNULL_BEGIN /** * @@ -25,13 +25,13 @@ FAB_START_NONNULL + (instancetype)stackFrameWithAddress:(NSUInteger)address; + (instancetype)stackFrameWithSymbol:(NSString *)symbol; -@property (nonatomic, copy) NSString * FAB_NULLABLE symbol; -@property (nonatomic, copy) NSString * FAB_NULLABLE library; -@property (nonatomic, copy) NSString * FAB_NULLABLE fileName; +@property (nonatomic, copy, nullable) NSString *symbol; +@property (nonatomic, copy, nullable) NSString *library; +@property (nonatomic, copy, nullable) NSString *fileName; @property (nonatomic, assign) uint32_t lineNumber; @property (nonatomic, assign) uint64_t offset; @property (nonatomic, assign) uint64_t address; @end -FAB_END_NONNULL +NS_ASSUME_NONNULL_END diff --git a/Crashlytics.framework/Headers/Crashlytics.h b/Crashlytics.framework/Headers/Crashlytics.h index 07ab722b..dff88a63 100644 --- a/Crashlytics.framework/Headers/Crashlytics.h +++ b/Crashlytics.framework/Headers/Crashlytics.h @@ -7,20 +7,22 @@ #import -#import +#import "CLSAttributes.h" #import "CLSLogging.h" #import "CLSReport.h" #import "CLSStackFrame.h" +#import "Answers.h" -#define CLS_DEPRECATED(x) __attribute__ ((deprecated(x))) - -FAB_START_NONNULL +NS_ASSUME_NONNULL_BEGIN @protocol CrashlyticsDelegate; +/** + * Crashlytics. Handles configuration and initialization of Crashlytics. + */ @interface Crashlytics : NSObject -@property (nonatomic, readonly, copy) NSString *apiKey; +@property (nonatomic, readonly, copy) NSString *APIKey; @property (nonatomic, readonly, copy) NSString *version; @property (nonatomic, assign) BOOL debugMode; @@ -34,144 +36,156 @@ FAB_START_NONNULL * synchronously during start. * **/ -@property (nonatomic, assign) id FAB_NULLABLE delegate; +@property (nonatomic, assign, nullable) id delegate; /** + * The recommended way to install Crashlytics into your application is to place a call to +startWithAPIKey: + * in your -application:didFinishLaunchingWithOptions: or -applicationDidFinishLaunching: + * method. * - * The recommended way to install Crashlytics into your application is to place a call - * to +startWithAPIKey: in your -application:didFinishLaunchingWithOptions:/-applicationDidFinishLaunching: - * method. + * Note: Starting with 3.0, the submission process has been significantly improved. The delay parameter + * is no longer required to throttle submissions on launch, performance will be great without it. * - * Note: Starting with 3.0, the submission process has been significantly improved. The delay parameter - * is no longer required to throttle submissions on launch, performance will be great without it. + * @param apiKey The Crashlytics API Key for this app * - **/ + * @return The singleton Crashlytics instance + */ + (Crashlytics *)startWithAPIKey:(NSString *)apiKey; + (Crashlytics *)startWithAPIKey:(NSString *)apiKey afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey: instead."); /** + * If you need the functionality provided by the CrashlyticsDelegate protocol, you can use + * these convenience methods to activate the framework and set the delegate in one call. + * + * @param apiKey The Crashlytics API Key for this app + * @param delegate A delegate object which conforms to CrashlyticsDelegate. * - * If you need the functionality provided by the CrashlyticsDelegate protocol, you can use - * these convenience methods to activate the framework and set the delegate in one call. - * - **/ -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(id FAB_NULLABLE)delegate; -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(id FAB_NULLABLE)delegate afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey:delegate: instead."); + * @return The singleton Crashlytics instance + */ ++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id)delegate; ++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id)delegate afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey:delegate: instead."); /** + * Access the singleton Crashlytics instance. * - * Access the singleton Crashlytics instance. - * - **/ + * @return The singleton Crashlytics instance + */ + (Crashlytics *)sharedInstance; /** - * - * The easiest ways to cause a crash - great for testing! - * - **/ + * The easiest way to cause a crash - great for testing! + */ - (void)crash; + +/** + * The easiest way to cause a crash with an exception - great for testing. + */ - (void)throwException; /** + * Specify a user identifier which will be visible in the Crashlytics UI. * - * Many of our customers have requested the ability to tie crashes to specific end-users of their - * application in order to facilitate responses to support requests or permit the ability to reach - * out for more information. We allow you to specify up to three separate values for display within - * the Crashlytics UI - but please be mindful of your end-user's privacy. + * Many of our customers have requested the ability to tie crashes to specific end-users of their + * application in order to facilitate responses to support requests or permit the ability to reach + * out for more information. We allow you to specify up to three separate values for display within + * the Crashlytics UI - but please be mindful of your end-user's privacy. * - * We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record - * in your system. This could be a database id, hash, or other value that is meaningless to a - * third-party observer but can be indexed and queried by you. + * We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record + * in your system. This could be a database id, hash, or other value that is meaningless to a + * third-party observer but can be indexed and queried by you. * - * Optionally, you may also specify the end-user's name or username, as well as email address if you - * do not have a system that works well with obscured identifiers. + * Optionally, you may also specify the end-user's name or username, as well as email address if you + * do not have a system that works well with obscured identifiers. * - * Pursuant to our EULA, this data is transferred securely throughout our system and we will not - * disseminate end-user data unless required to by law. That said, if you choose to provide end-user - * contact information, we strongly recommend that you disclose this in your application's privacy - * policy. Data privacy is of our utmost concern. + * Pursuant to our EULA, this data is transferred securely throughout our system and we will not + * disseminate end-user data unless required to by law. That said, if you choose to provide end-user + * contact information, we strongly recommend that you disclose this in your application's privacy + * policy. Data privacy is of our utmost concern. * - **/ -- (void)setUserIdentifier:(NSString * FAB_NULLABLE)identifier; -- (void)setUserName:(NSString * FAB_NULLABLE)name; -- (void)setUserEmail:(NSString * FAB_NULLABLE)email; - -+ (void)setUserIdentifier:(NSString * FAB_NULLABLE)identifier CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setUserName:(NSString * FAB_NULLABLE)name CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setUserEmail:(NSString * FAB_NULLABLE)email CLS_DEPRECATED("Please access this method via +sharedInstance"); + * @param identifier An arbitrary user identifier string which ties an end-user to a record in your system. + */ +- (void)setUserIdentifier:(nullable NSString *)identifier; /** + * Specify a user name which will be visible in the Crashlytics UI. + * Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs. + * @see setUserIdentifier: * - * Set a value for a key to be associated with your crash data. When setting an object value, the object - * is converted to a string. This is typically done by calling -[NSObject description]. + * @param name An end user's name. + */ +- (void)setUserName:(nullable NSString *)name; + +/** + * Specify a user email which will be visible in the Crashlytics UI. + * Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs. + * + * @see setUserIdentifier: * - **/ -- (void)setObjectValue:(id FAB_NULLABLE)value forKey:(NSString *)key; + * @param email An end user's email address. + */ +- (void)setUserEmail:(nullable NSString *)email; + ++ (void)setUserIdentifier:(nullable NSString *)identifier CLS_DEPRECATED("Please access this method via +sharedInstance"); ++ (void)setUserName:(nullable NSString *)name CLS_DEPRECATED("Please access this method via +sharedInstance"); ++ (void)setUserEmail:(nullable NSString *)email CLS_DEPRECATED("Please access this method via +sharedInstance"); + +/** + * Set a value for a for a key to be associated with your crash data which will be visible in the Crashlytics UI. + * When setting an object value, the object is converted to a string. This is typically done by calling + * -[NSObject description]. + * + * @param value The object to be associated with the key + * @param key The key with which to associate the value + */ +- (void)setObjectValue:(nullable id)value forKey:(NSString *)key; + +/** + * Set an int value for a key to be associated with your crash data which will be visible in the Crashlytics UI. + * + * @param value The integer value to be set + * @param key The key with which to associate the value + */ - (void)setIntValue:(int)value forKey:(NSString *)key; + +/** + * Set an BOOL value for a key to be associated with your crash data which will be visible in the Crashlytics UI. + * + * @param value The BOOL value to be set + * @param key The key with which to associate the value + */ - (void)setBoolValue:(BOOL)value forKey:(NSString *)key; + +/** + * Set an float value for a key to be associated with your crash data which will be visible in the Crashlytics UI. + * + * @param value The float value to be set + * @param key The key with which to associate the value + */ - (void)setFloatValue:(float)value forKey:(NSString *)key; -+ (void)setObjectValue:(id FAB_NULLABLE)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); ++ (void)setObjectValue:(nullable id)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); + (void)setIntValue:(int)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); + (void)setBoolValue:(BOOL)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); + (void)setFloatValue:(float)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); /** + * This method can be used to record a single exception structure in a report. This is particularly useful + * when your code interacts with non-native languages like Lua, C#, or Javascript. This call can be + * expensive and should only be used shortly before process termination. This API is not intended be to used + * to log NSException objects. All safely-reportable NSExceptions are automatically captured by + * Crashlytics. * - * This method can be used to record a single exception structure in a report. This is particularly useful - * when your code interacts with non-native languages like Lua, C#, or Javascript. This call can be - # expensive and should only be used shortly before process termination. This API is not intended be to used - * to log NSException objects. All safely-reportable NSExceptions are automatically captured by - * Crashlytics. - * - * The frameArray argument should contain only CLSStackFrame instances. - * - **/ -- (void)recordCustomExceptionName:(NSString *)name reason:(NSString * FAB_NULLABLE)reason frameArray:(NSArray *)frameArray; - - - -/** - * In Beta. Sign up at http://answers.io/labs to get on the list! - * - * @brief Log an event to be sent to Answers. - * @param eventName The event name as it will be shown in the dashboard. - * @discussion Example usage: - * @code [CrashlyticsKit logEvent:@"Tweet Viewed"]; - * + * @param name The name of the custom exception + * @param reason The reason this exception occured + * @param frameArray An array of CLSStackFrame objects */ -- (void)logEvent:(NSString *)eventName; +- (void)recordCustomExceptionName:(NSString *)name reason:(nullable NSString *)reason frameArray:(CLS_GENERIC_NSARRAY(CLSStackFrame *) *)frameArray; -/** - * In Beta. Sign up at http://answers.io/labs to get on the list! - * - * @brief Log an event to be sent to Answers, optionally providing a dictionary of attributes. Attribute keys - * must be NSString and and values must be NSNumber or NSString. - * @param eventName The event name as it will be shown in the dashboard. - * @param attributes An NSDictionary with keys of type NSString, and values of type NSNumber - * or NSString. There may be at most 20 attributes for a particular event. - * @discussion How we treat NSNumber: - * We will provide information about the distribution of values over time. - * - * How we treat NSStrings: - * NSStrings are used as categorical data, allowing comparison across different category values. - * Strings are limited to a maximum length of 100 characters, attributes over this length will be - * truncated. - * - * When tracking the Tweet views to better understand user engagement, sending the tweet's length - * and the type of media present in the tweet allows you to track how tweet length and the type of media influence - * engagement. - * Example usage: - * @code [CrashlyticsKit logEvent:@"Tweet Viewed" attributes:@{ - * @"Media Type": @"Image", - * @"Length": @120 - * }]; - */ -- (void)logEvent:(NSString *)eventName attributes:(NSDictionary * FAB_NULLABLE) attributes; +- (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); +- (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); ++ (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); ++ (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); -+ (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to -logEvent:"); -+ (void)logEvent:(NSString *)eventName attributes:(NSDictionary * FAB_NULLABLE) attributes CLS_DEPRECATED("Please refer to -logEvent:attributes:"); @end /** @@ -181,59 +195,47 @@ FAB_START_NONNULL * use of these calls by assigning an object to the Crashlytics' delegate property directly, * or through the convenience +startWithAPIKey:delegate: method. * - **/ + */ @protocol CrashlyticsDelegate @optional -/** - * - * Called once a Crashlytics instance has determined that the last execution of the - * application ended in a crash. This is called some time after the crash reporting - * process has begun. If you have specified a delay in one of the - * startWithAPIKey:... calls, this will take at least that long to be invoked. - * - **/ -- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:"); -/** - * - * Just like crashlyticsDidDetectCrashDuringPreviousExecution this delegate method is - * called once a Crashlytics instance has determined that the last execution of the - * application ended in a crash. A CLSCrashReport is passed back that contains data about - * the last crash report that was generated. See the CLSCrashReport protocol for method details. - * This method is called after crashlyticsDidDetectCrashDuringPreviousExecution. - * - **/ +- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:"); - (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id )crash CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:"); /** * - * Called when a Crashlytics instance has determined that the last execution of the - * application ended in a crash. This is called synchronously on Crashlytics - * initialization. Your delegate must invoke the completionHandler, but does not need to do so - * synchronously, or even on the main thread. Invoking completionHandler with NO will cause the - * detected report to be deleted and not submitted to Crashlytics. This is useful for - * implementing permission prompts, or other more-complex forms of logic around submitting crashes. + * Called when a Crashlytics instance has determined that the last execution of the + * application ended in a crash. This is called synchronously on Crashlytics + * initialization. Your delegate must invoke the completionHandler, but does not need to do so + * synchronously, or even on the main thread. Invoking completionHandler with NO will cause the + * detected report to be deleted and not submitted to Crashlytics. This is useful for + * implementing permission prompts, or other more-complex forms of logic around submitting crashes. * - * Failure to invoke the completionHandler will prevent submissions from being reported. Watch out. - * - * Just implementing this delegate method will disable all forms of synchronous report submission. This can - * impact the reliability of reporting crashes very early in application launch. + * @warning Failure to invoke the completionHandler will prevent submissions from being reported. Watch out. * - **/ - + * @warning Just implementing this delegate method will disable all forms of synchronous report submission. This can + * impact the reliability of reporting crashes very early in application launch. + * + * @param report The CLSReport object representing the last detected crash + * @param completionHandler The completion handler to call when your logic has completed. + * + */ - (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL submit))completionHandler; /** + * If your app is running on an OS that supports it (OS X 10.9+, iOS 7.0+), Crashlytics will submit + * most reports using out-of-process background networking operations. This results in a significant + * improvement in reliability of reporting, as well as power and performance wins for your users. + * If you don't want this functionality, you can disable by returning NO from this method. * - * If your app is running on an OS that supports it (OS X 10.9+, iOS 7.0+), Crashlytics will submit - * most reports using out-of-process background networking operations. This results in a significant - * improvement in reliability of reporting, as well as power and performance wins for your users. - * If you don't want this functionality, you can disable by returning NO from this method. + * @warning Background submission is not supported for extensions on iOS or OS X. * - * Note: background submission is not supported for extensions on iOS or OS X. + * @param crashlytics The Crashlytics singleton instance * - **/ + * @return Return NO if you don't want out-of-process background network operations. + * + */ - (BOOL)crashlyticsCanUseBackgroundSessions:(Crashlytics *)crashlytics; @end @@ -243,4 +245,4 @@ FAB_START_NONNULL */ #define CrashlyticsKit [Crashlytics sharedInstance] -FAB_END_NONNULL +NS_ASSUME_NONNULL_END diff --git a/Crashlytics.framework/Info.plist b/Crashlytics.framework/Info.plist index b8168d93..eb11bb81 100644 --- a/Crashlytics.framework/Info.plist +++ b/Crashlytics.framework/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 13F34 + 14E46 CFBundleDevelopmentRegion English CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.8 + 3.3.1 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,25 +25,25 @@ iPhoneOS CFBundleVersion - 50 + 79 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 12B411 + 13A340 DTPlatformName iphoneos DTPlatformVersion - 8.1 + 9.0 DTSDKBuild - 12B411 + 13A340 DTSDKName - iphoneos8.1 + iphoneos9.0 DTXcode - 0611 + 0700 DTXcodeBuild - 6A2008a + 7A218 MinimumOSVersion - 5.0 + 6.0 NSHumanReadableCopyright Copyright © 2015 Crashlytics, Inc. All rights reserved. UIDeviceFamily diff --git a/Crashlytics.framework/Modules/module.modulemap b/Crashlytics.framework/Modules/module.modulemap index 7c8ea5c0..5994fcd1 100644 --- a/Crashlytics.framework/Modules/module.modulemap +++ b/Crashlytics.framework/Modules/module.modulemap @@ -1,8 +1,10 @@ framework module Crashlytics { header "Crashlytics.h" + header "Answers.h" header "CLSLogging.h" header "CLSReport.h" header "CLSStackFrame.h" + header "CLSAttributes.h" export * diff --git a/Crashlytics.framework/run b/Crashlytics.framework/run index c4406565..4cc6f345 100755 Binary files a/Crashlytics.framework/run and b/Crashlytics.framework/run differ diff --git a/Crashlytics.framework/submit b/Crashlytics.framework/submit index 1a87904d..c4331a36 100755 Binary files a/Crashlytics.framework/submit and b/Crashlytics.framework/submit differ diff --git a/Fabric.framework/Fabric b/Fabric.framework/Fabric index c4e14672..04b5ba9e 100755 Binary files a/Fabric.framework/Fabric and b/Fabric.framework/Fabric differ diff --git a/Fabric.framework/Headers/FABAttributes.h b/Fabric.framework/Headers/FABAttributes.h index 7200ea47..8961f566 100644 --- a/Fabric.framework/Headers/FABAttributes.h +++ b/Fabric.framework/Headers/FABAttributes.h @@ -10,14 +10,44 @@ #define FAB_UNAVAILABLE(x) __attribute__((unavailable(x))) -#if __has_feature(nullability) -#define FAB_NONNULL __nonnull -#define FAB_NULLABLE __nullable -#define FAB_START_NONNULL _Pragma("clang assume_nonnull begin") -#define FAB_END_NONNULL _Pragma("clang assume_nonnull end") -#else -#define FAB_NONNULL -#define FAB_NULLABLE -#define FAB_START_NONNULL -#define FAB_END_NONNULL +#ifndef TARGET_OS_IOS +#define TARGET_OS_IOS TARGET_OS_IPHONE #endif + +#if __has_feature(nullability) + #define fab_nullable nullable + #define fab_nonnull nonnull + #define fab_null_unspecified null_unspecified + #define fab_null_resettable null_resettable + #define __fab_nullable __nullable + #define __fab_nonnull __nonnull + #define __fab_null_unspecified __null_unspecified +#else + #define fab_nullable + #define fab_nonnull + #define fab_null_unspecified + #define fab_null_resettable + #define __fab_nullable + #define __fab_nonnull + #define __fab_null_unspecified +#endif + +#ifndef NS_ASSUME_NONNULL_BEGIN + #define NS_ASSUME_NONNULL_BEGIN +#endif + +#ifndef NS_ASSUME_NONNULL_END + #define NS_ASSUME_NONNULL_END +#endif + + +/** + * The following macros are defined here to provide + * backwards compatability. If you are still using + * them you should migrate to the new versions that + * are defined above. + */ +#define FAB_NONNULL __fab_nonnull +#define FAB_NULLABLE __fab_nullable +#define FAB_START_NONNULL NS_ASSUME_NONNULL_BEGIN +#define FAB_END_NONNULL NS_ASSUME_NONNULL_END diff --git a/Fabric.framework/Headers/Fabric.h b/Fabric.framework/Headers/Fabric.h index 7b1b31ab..f0ca18fb 100644 --- a/Fabric.framework/Headers/Fabric.h +++ b/Fabric.framework/Headers/Fabric.h @@ -1,13 +1,13 @@ // // Fabric.h // -// Copyright (c) 2014 Twitter. All rights reserved. +// Copyright (c) 2015 Twitter. All rights reserved. // #import #import "FABAttributes.h" -FAB_START_NONNULL +NS_ASSUME_NONNULL_BEGIN /** * Fabric Base. Coordinates configuration and starts all provided kits. @@ -15,24 +15,23 @@ FAB_START_NONNULL @interface Fabric : NSObject /** - * Initialize Fabric and all provided kits. Call this method within your App Delegate's - * `application:didFinishLaunchingWithOptions:` and provide the kits you wish to use. + * Initialize Fabric and all provided kits. Call this method within your App Delegate's `application:didFinishLaunchingWithOptions:` and provide the kits you wish to use. * - * For example, in Objective-C: + * For example, in Objective-C: * - * `[Fabric with:@[TwitterKit, CrashlyticsKit, MoPubKit]];` + * `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];` * - * Swift: + * Swift: * - * `Fabric.with([Twitter(), Crashlytics(), MoPub()])` - * - * Only the first call to this method is honored. Subsequent calls are no-ops. + * `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])` * - * @param kits An array of kit instances. Kits may provide a macro such as CrashlyticsKit which can be passed in as array elements in objective-c. + * Only the first call to this method is honored. Subsequent calls are no-ops. * - * @return Returns the shared Fabric instance. In most cases this can be ignored. + * @param kitClasses An array of kit Class objects + * + * @return Returns the shared Fabric instance. In most cases this can be ignored. */ -+ (instancetype)with:(NSArray *)kits; ++ (instancetype)with:(NSArray *)kitClasses; /** * Returns the Fabric singleton object. @@ -49,27 +48,7 @@ FAB_START_NONNULL */ - (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance."); -/** - * Returns Fabrics's instance of the specified kit. - * - * @param klass The class of the kit. - * - * @return The kit instance of class klass which was provided to with: or nil. - */ -- (id FAB_NULLABLE)kitForClass:(Class)klass; - -/** - * Returns a dictionary containing the kit configuration info for the provided kit. - * The configuration information is parsed from the application's Info.plist. This - * method is primarily intended to be used by kits to retrieve their configuration. - * - * @param kitInstance An instance of the kit whose configuration should be returned. - * - * @return A dictionary containing kit specific configuration information or nil if none exists. - */ -- (NSDictionary * FAB_NULLABLE)configurationDictionaryForKit:(id)kitInstance; - @end -FAB_END_NONNULL +NS_ASSUME_NONNULL_END diff --git a/Fabric.framework/Info.plist b/Fabric.framework/Info.plist index 36cf6303..fb148e19 100644 --- a/Fabric.framework/Info.plist +++ b/Fabric.framework/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 13F34 + 14E46 CFBundleDevelopmentRegion en CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.2.5 + 1.5.1 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,25 +25,25 @@ iPhoneOS CFBundleVersion - 16 + 25 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 12B411 + 13A340 DTPlatformName iphoneos DTPlatformVersion - 8.1 + 9.0 DTSDKBuild - 12B411 + 13A340 DTSDKName - iphoneos8.1 + iphoneos9.0 DTXcode - 0611 + 0700 DTXcodeBuild - 6A2008a + 7A218 MinimumOSVersion - 5.0 + 6.0 NSHumanReadableCopyright Copyright © 2015 Twitter. All rights reserved. UIDeviceFamily diff --git a/Fabric.framework/run b/Fabric.framework/run index 3c479413..d3e86246 100755 Binary files a/Fabric.framework/run and b/Fabric.framework/run differ diff --git a/Yep.xcodeproj/project.pbxproj b/Yep.xcodeproj/project.pbxproj index 427232d9..13fae3b1 100644 --- a/Yep.xcodeproj/project.pbxproj +++ b/Yep.xcodeproj/project.pbxproj @@ -2266,6 +2266,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Yep", @@ -2297,6 +2298,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Yep",