Replace Crashlytics/Fabric with Countly & Sentry.
This commit is contained in:
		@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Crashlytics
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Headers
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Modules
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Resources
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,31 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  ANSCompatibility.h
 | 
			
		||||
//  AnswersKit
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(nullability)
 | 
			
		||||
#define nonnull
 | 
			
		||||
#define nullable
 | 
			
		||||
#define _Nullable
 | 
			
		||||
#define _Nonnull
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#define NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_END
 | 
			
		||||
#define NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __has_feature(objc_generics)
 | 
			
		||||
#define ANS_GENERIC_NSARRAY(type) NSArray<type>
 | 
			
		||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
 | 
			
		||||
#else
 | 
			
		||||
#define ANS_GENERIC_NSARRAY(type) NSArray
 | 
			
		||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,210 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Answers.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "ANSCompatibility.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  This class exposes the Answers Events API, allowing you to track key 
 | 
			
		||||
 *  user user actions and metrics in your app.
 | 
			
		||||
 */
 | 
			
		||||
@interface Answers : NSObject
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Sign Up event to see users signing up for your app in real-time, understand how
 | 
			
		||||
 *  many users are signing up with different methods and their success rate signing up.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param signUpMethodOrNil     The method by which a user logged in, e.g. Twitter or Digits.
 | 
			
		||||
 *  @param signUpSucceededOrNil  The ultimate success or failure of the login
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logSignUpWithMethod:(nullable NSString *)signUpMethodOrNil
 | 
			
		||||
                    success:(nullable NSNumber *)signUpSucceededOrNil
 | 
			
		||||
           customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Log In event to see users logging into your app in real-time, understand how many
 | 
			
		||||
 *  users are logging in with different methods and their success rate logging into your app.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param loginMethodOrNil      The method by which a user logged in, e.g. email, Twitter or Digits.
 | 
			
		||||
 *  @param loginSucceededOrNil   The ultimate success or failure of the login
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLoginWithMethod:(nullable NSString *)loginMethodOrNil
 | 
			
		||||
                   success:(nullable NSNumber *)loginSucceededOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Share event to see users sharing from your app in real-time, letting you
 | 
			
		||||
 *  understand what content they're sharing from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param shareMethodOrNil      The method by which a user shared, e.g. email, Twitter, SMS.
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logShareWithMethod:(nullable NSString *)shareMethodOrNil
 | 
			
		||||
               contentName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
               contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
                 contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Invite Event to track how users are inviting other users into
 | 
			
		||||
 *  your application.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param inviteMethodOrNil     The method of invitation, e.g. GameCenter, Twitter, email.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logInviteWithMethod:(nullable NSString *)inviteMethodOrNil
 | 
			
		||||
           customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Purchase event to see your revenue in real-time, understand how many users are making purchases, see which
 | 
			
		||||
 *  items are most popular, and track plenty of other important purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param itemPriceOrNil         The purchased item's price.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param purchaseSucceededOrNil Was the purchase succesful or unsuccesful
 | 
			
		||||
 *  @param itemNameOrNil          The human-readable form of the item's name. Example:
 | 
			
		||||
 *  @param itemTypeOrNil          The type, or genre of the item. Example: Song
 | 
			
		||||
 *  @param itemIdOrNil            The machine-readable, unique item identifier Example: SKU
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this purchase.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logPurchaseWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
 | 
			
		||||
                    currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                     success:(nullable NSNumber *)purchaseSucceededOrNil
 | 
			
		||||
                    itemName:(nullable NSString *)itemNameOrNil
 | 
			
		||||
                    itemType:(nullable NSString *)itemTypeOrNil
 | 
			
		||||
                      itemId:(nullable NSString *)itemIdOrNil
 | 
			
		||||
            customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Level Start Event to track where users are in your game.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param levelNameOrNil        The level name
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this level start event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLevelStart:(nullable NSString *)levelNameOrNil
 | 
			
		||||
     customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Level End event to track how users are completing levels in your game.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param levelNameOrNil                 The name of the level completed, E.G. "1" or "Training"
 | 
			
		||||
 *  @param scoreOrNil                     The score the user completed the level with.
 | 
			
		||||
 *  @param levelCompletedSuccesfullyOrNil A boolean representing whether or not the level was completed succesfully.
 | 
			
		||||
 *  @param customAttributesOrNil          A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLevelEnd:(nullable NSString *)levelNameOrNil
 | 
			
		||||
              score:(nullable NSNumber *)scoreOrNil
 | 
			
		||||
            success:(nullable NSNumber *)levelCompletedSuccesfullyOrNil
 | 
			
		||||
   customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Add to Cart event to see users adding items to a shopping cart in real-time, understand how
 | 
			
		||||
 *  many users start the purchase flow, see which items are most popular, and track plenty of other important
 | 
			
		||||
 *  purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param itemPriceOrNil         The purchased item's price.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param itemNameOrNil          The human-readable form of the item's name. Example:
 | 
			
		||||
 *  @param itemTypeOrNil          The type, or genre of the item. Example: Song
 | 
			
		||||
 *  @param itemIdOrNil            The machine-readable, unique item identifier Example: SKU
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logAddToCartWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
 | 
			
		||||
                     currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                     itemName:(nullable NSString *)itemNameOrNil
 | 
			
		||||
                     itemType:(nullable NSString *)itemTypeOrNil
 | 
			
		||||
                       itemId:(nullable NSString *)itemIdOrNil
 | 
			
		||||
             customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Start Checkout event to see users moving through the purchase funnel in real-time, understand how many
 | 
			
		||||
 *  users are doing this and how much they're spending per checkout, and see how it related to other important
 | 
			
		||||
 *  purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param totalPriceOrNil        The total price of the cart.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param itemCountOrNil         The number of items in the cart.
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logStartCheckoutWithPrice:(nullable NSDecimalNumber *)totalPriceOrNil
 | 
			
		||||
                         currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                        itemCount:(nullable NSNumber *)itemCountOrNil
 | 
			
		||||
                 customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Rating event to see users rating content within your app in real-time and understand what
 | 
			
		||||
 *  content is most engaging, from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param ratingOrNil           The integer rating given by the user.
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logRating:(nullable NSNumber *)ratingOrNil
 | 
			
		||||
      contentName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
      contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
        contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
 customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Content View event to see users viewing content within your app in real-time and
 | 
			
		||||
 *  understand what content is most engaging, from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logContentViewWithName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
                   contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
                     contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
              customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Search event allows you to see users searching within your app in real-time and understand
 | 
			
		||||
 *  exactly what they're searching for.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param queryOrNil            The user's query.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logSearchWithQuery:(nullable NSString *)queryOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Custom Event to see user actions that are uniquely important for your app in real-time, to see how often
 | 
			
		||||
 *  they're performing these actions with breakdowns by different categories you add. Use a human-readable name for
 | 
			
		||||
 *  the name of the event, since this is how the event will appear in Answers.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param eventName             The human-readable name for the event.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event. Attribute keys
 | 
			
		||||
 *                               must be <code>NSString</code> and and values must be <code>NSNumber</code> or <code>NSString</code>.
 | 
			
		||||
 *  @discussion                  How we treat <code>NSNumbers</code>:
 | 
			
		||||
 *                               We will provide information about the distribution of values over time.
 | 
			
		||||
 *
 | 
			
		||||
 *                               How we treat <code>NSStrings</code>:
 | 
			
		||||
 *                               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.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logCustomEventWithName:(NSString *)eventName
 | 
			
		||||
              customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,33 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSAttributes.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define CLS_DEPRECATED(x)  __attribute__ ((deprecated(x)))
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(nullability)
 | 
			
		||||
    #define nonnull
 | 
			
		||||
    #define nullable
 | 
			
		||||
    #define _Nullable
 | 
			
		||||
    #define _Nonnull
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
    #define NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_END
 | 
			
		||||
    #define NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __has_feature(objc_generics)
 | 
			
		||||
    #define CLS_GENERIC_NSARRAY(type) NSArray<type>
 | 
			
		||||
    #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
 | 
			
		||||
#else
 | 
			
		||||
    #define CLS_GENERIC_NSARRAY(type) NSArray
 | 
			
		||||
    #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,64 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSLogging.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The CLS_LOG macro provides as easy way to gather more information in your log messages that are
 | 
			
		||||
 * sent with your crash data. CLS_LOG prepends your custom log message with the function name and
 | 
			
		||||
 * line number where the macro was used. If your app was built with the DEBUG preprocessor macro
 | 
			
		||||
 * defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
 | 
			
		||||
 * If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
 | 
			
		||||
 *
 | 
			
		||||
 * Example output:
 | 
			
		||||
 * -[AppDelegate login:] line 134 $ login start
 | 
			
		||||
 *
 | 
			
		||||
 * If you would like to change this macro, create a new header file, unset our define and then define
 | 
			
		||||
 * your own version. Make sure this new header file is imported after the Crashlytics header file.
 | 
			
		||||
 *
 | 
			
		||||
 * #undef CLS_LOG
 | 
			
		||||
 * #define CLS_LOG(__FORMAT__, ...) CLSNSLog...
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
 | 
			
		||||
#else
 | 
			
		||||
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * Add logging that will be sent with your crash data. This logging will not show up in the system.log
 | 
			
		||||
 * and will only be visible in your Crashlytics dashboard.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
 | 
			
		||||
OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * Add logging that will be sent with your crash data. This logging will show up in the system.log
 | 
			
		||||
 * and your Crashlytics dashboard. It is not recommended for Release builds.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSReport.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The CLSCrashReport protocol is deprecated. See the CLSReport class and the CrashyticsDelegate changes for details.
 | 
			
		||||
 **/
 | 
			
		||||
@protocol CLSCrashReport <NSObject>
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *identifier;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDate *crashedOnDate;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The CLSReport exposes an interface to the phsyical report that Crashlytics has created. You can
 | 
			
		||||
 * use this class to get information about the event, and can also set some values after the
 | 
			
		||||
 * event has occured.
 | 
			
		||||
 **/
 | 
			
		||||
@interface CLSReport : NSObject <CLSCrashReport>
 | 
			
		||||
 | 
			
		||||
- (instancetype)init NS_UNAVAILABLE;
 | 
			
		||||
+ (instancetype)new NS_UNAVAILABLE;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the session identifier for the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *identifier;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the custom key value data for the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the CFBundleVersion of the application that generated the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the CFBundleShortVersionString of the application that generated the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the date that the report was created.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDate *dateCreated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the os version that the application crashed on.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the os build version that the application crashed on.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns YES if the report contains any crash information, otherwise returns NO.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, assign, readonly) BOOL isCrash;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * You can use this method to set, after the event, additional custom keys. The rules
 | 
			
		||||
 * and semantics for this method are the same as those documented in Crashlytics.h. Be aware
 | 
			
		||||
 * 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:(nullable id)value forKey:(NSString *)key;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record an application-specific user identifier. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userIdentifier;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record a user name. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userName;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record a user email. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userEmail;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,38 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSStackFrame.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to
 | 
			
		||||
 * record information about non-ObjC/C++ exceptions. All information included here will be displayed 
 | 
			
		||||
 * in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the 
 | 
			
		||||
 * address property. If set, Crashlytics will attempt symbolication and could overwrite other properities 
 | 
			
		||||
 * in the process.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
@interface CLSStackFrame : NSObject
 | 
			
		||||
 | 
			
		||||
+ (instancetype)stackFrame;
 | 
			
		||||
+ (instancetype)stackFrameWithAddress:(NSUInteger)address;
 | 
			
		||||
+ (instancetype)stackFrameWithSymbol:(NSString *)symbol;
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString *symbol;
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString *rawSymbol;
 | 
			
		||||
@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
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,266 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Crashlytics.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
#import "CLSLogging.h"
 | 
			
		||||
#import "CLSReport.h"
 | 
			
		||||
#import "CLSStackFrame.h"
 | 
			
		||||
#import "Answers.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
@protocol CrashlyticsDelegate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Crashlytics. Handles configuration and initialization of Crashlytics.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: The Crashlytics class cannot be subclassed. If this is causing you pain for
 | 
			
		||||
 * testing, we suggest using either a wrapper class or a protocol extension.
 | 
			
		||||
 */
 | 
			
		||||
@interface Crashlytics : NSObject
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, readonly, copy) NSString *APIKey;
 | 
			
		||||
@property (nonatomic, readonly, copy) NSString *version;
 | 
			
		||||
@property (nonatomic, assign)         BOOL      debugMode;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The delegate can be used to influence decisions on reporting and behavior, as well as reacting
 | 
			
		||||
 * to previous crashes.
 | 
			
		||||
 *
 | 
			
		||||
 * Make certain that the delegate is setup before starting Crashlytics with startWithAPIKey:... or
 | 
			
		||||
 * via +[Fabric with:...]. Failure to do will result in missing any delegate callbacks that occur
 | 
			
		||||
 * synchronously during start.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, assign, nullable) id <CrashlyticsDelegate> delegate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The recommended way to install Crashlytics into your application is to place a call to +startWithAPIKey: 
 | 
			
		||||
 *  in your -application:didFinishLaunchingWithOptions: or -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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @return The singleton Crashlytics instance
 | 
			
		||||
 */
 | 
			
		||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)delegate;
 | 
			
		||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @return The singleton Crashlytics instance
 | 
			
		||||
 */
 | 
			
		||||
+ (Crashlytics *)sharedInstance;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:(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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param name       The name of the custom exception
 | 
			
		||||
 *  @param reason     The reason this exception occured
 | 
			
		||||
 *  @param frameArray An array of CLSStackFrame objects
 | 
			
		||||
 */
 | 
			
		||||
- (void)recordCustomExceptionName:(NSString *)name reason:(nullable NSString *)reason frameArray:(CLS_GENERIC_NSARRAY(CLSStackFrame *) *)frameArray;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and
 | 
			
		||||
 * displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of
 | 
			
		||||
 * NSErrors that can be recorded during your app's life-cycle is limited by a fixed-size circular buffer. If the
 | 
			
		||||
 * buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch
 | 
			
		||||
 * of your application.
 | 
			
		||||
 *
 | 
			
		||||
 * You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented
 | 
			
		||||
 * by the NSError instance itself.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
- (void)recordError:(NSError *)error;
 | 
			
		||||
- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo;
 | 
			
		||||
 | 
			
		||||
- (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:");
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The CrashlyticsDelegate protocol provides a mechanism for your application to take
 | 
			
		||||
 * action on events that occur in the Crashlytics crash reporting system.  You can make
 | 
			
		||||
 * use of these calls by assigning an object to the Crashlytics' delegate property directly,
 | 
			
		||||
 * or through the convenience +startWithAPIKey:delegate: method.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
@protocol CrashlyticsDelegate <NSObject>
 | 
			
		||||
@optional
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:");
 | 
			
		||||
- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id <CLSCrashReport>)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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @warning 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
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  `CrashlyticsKit` can be used as a parameter to `[Fabric with:@[CrashlyticsKit]];` in Objective-C. In Swift, use Crashlytics.sharedInstance()
 | 
			
		||||
 */
 | 
			
		||||
#define CrashlyticsKit [Crashlytics sharedInstance]
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
framework module Crashlytics {
 | 
			
		||||
    header "Crashlytics.h"
 | 
			
		||||
    header "Answers.h"
 | 
			
		||||
    header "ANSCompatibility.h"
 | 
			
		||||
    header "CLSLogging.h"
 | 
			
		||||
    header "CLSReport.h"
 | 
			
		||||
    header "CLSStackFrame.h"
 | 
			
		||||
    header "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
    export *
 | 
			
		||||
 | 
			
		||||
    link "z"
 | 
			
		||||
    link "c++"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>BuildMachineOSBuild</key>
 | 
			
		||||
	<string>15F34</string>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>Crashlytics</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>com.twitter.crashlytics.mac</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>Crashlytics</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>FMWK</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>3.7.2</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleSupportedPlatforms</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<string>MacOSX</string>
 | 
			
		||||
	</array>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>112</string>
 | 
			
		||||
	<key>DTCompiler</key>
 | 
			
		||||
	<string>com.apple.compilers.llvm.clang.1_0</string>
 | 
			
		||||
	<key>DTPlatformBuild</key>
 | 
			
		||||
	<string>7D175</string>
 | 
			
		||||
	<key>DTPlatformVersion</key>
 | 
			
		||||
	<string>GM</string>
 | 
			
		||||
	<key>DTSDKBuild</key>
 | 
			
		||||
	<string>15E60</string>
 | 
			
		||||
	<key>DTSDKName</key>
 | 
			
		||||
	<string>macosx10.11</string>
 | 
			
		||||
	<key>DTXcode</key>
 | 
			
		||||
	<string>0730</string>
 | 
			
		||||
	<key>DTXcodeBuild</key>
 | 
			
		||||
	<string>7D175</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2016 Crashlytics, Inc. All rights reserved.</string>
 | 
			
		||||
	<key>UIDeviceFamily</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<integer>3</integer>
 | 
			
		||||
		<integer>2</integer>
 | 
			
		||||
		<integer>1</integer>
 | 
			
		||||
		<integer>4</integer>
 | 
			
		||||
	</array>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
A
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
#  run
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (c) 2015 Crashlytics. All rights reserved.
 | 
			
		||||
 | 
			
		||||
#  Figure out where we're being called from
 | 
			
		||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 | 
			
		||||
 | 
			
		||||
#  Quote path in case of spaces or special chars
 | 
			
		||||
DIR="\"${DIR}"
 | 
			
		||||
 | 
			
		||||
PATH_SEP="/"
 | 
			
		||||
VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
 | 
			
		||||
UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
 | 
			
		||||
 | 
			
		||||
#  Ensure params are as expected, run in sync mode to validate
 | 
			
		||||
eval $DIR$PATH_SEP$VALIDATE_COMMAND
 | 
			
		||||
return_code=$?
 | 
			
		||||
 | 
			
		||||
if [[ $return_code != 0 ]]; then
 | 
			
		||||
  exit $return_code
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#  Verification passed, upload dSYM in background to prevent Xcode from waiting
 | 
			
		||||
#  Note: Validation is performed again before upload.
 | 
			
		||||
#  Output can still be found in Console.app
 | 
			
		||||
eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Fabric
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Headers
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Modules
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Versions/Current/Resources
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,60 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  FABAttributes.h
 | 
			
		||||
//  Fabric
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (C) 2015 Twitter, Inc.
 | 
			
		||||
//
 | 
			
		||||
//  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
//  you may not use this file except in compliance with the License.
 | 
			
		||||
//  You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
//  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
//  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
//  See the License for the specific language governing permissions and
 | 
			
		||||
//  limitations under the License.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define FAB_UNAVAILABLE(x) __attribute__((unavailable(x)))
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
@@ -1,77 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Fabric.h
 | 
			
		||||
//  Fabric
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (C) 2015 Twitter, Inc.
 | 
			
		||||
//
 | 
			
		||||
//  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
//  you may not use this file except in compliance with the License.
 | 
			
		||||
//  You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
//  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
//  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
//  See the License for the specific language governing permissions and
 | 
			
		||||
//  limitations under the License.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "FABAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
#if TARGET_OS_IPHONE
 | 
			
		||||
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
 | 
			
		||||
    #error "Fabric's minimum iOS version is 6.0"
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
 | 
			
		||||
    #error "Fabric's minimum OS X version is 10.7"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Fabric Base. Coordinates configuration and starts all provided kits.
 | 
			
		||||
 */
 | 
			
		||||
@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.
 | 
			
		||||
 *
 | 
			
		||||
 * For example, in Objective-C:
 | 
			
		||||
 *
 | 
			
		||||
 *      `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];`
 | 
			
		||||
 *
 | 
			
		||||
 * Swift:
 | 
			
		||||
 *
 | 
			
		||||
 *      `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])`
 | 
			
		||||
 *
 | 
			
		||||
 * Only the first call to this method is honored. Subsequent calls are no-ops.
 | 
			
		||||
 *
 | 
			
		||||
 * @param kitClasses An array of kit Class objects
 | 
			
		||||
 *
 | 
			
		||||
 * @return Returns the shared Fabric instance. In most cases this can be ignored.
 | 
			
		||||
 */
 | 
			
		||||
+ (instancetype)with:(NSArray *)kitClasses;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Returns the Fabric singleton object.
 | 
			
		||||
 */
 | 
			
		||||
+ (instancetype)sharedSDK;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  This BOOL enables or disables debug logging, such as kit version information. The default value is NO.
 | 
			
		||||
 */
 | 
			
		||||
@property (nonatomic, assign) BOOL debug;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance.
 | 
			
		||||
 */
 | 
			
		||||
- (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance.");
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
framework module Fabric {
 | 
			
		||||
    umbrella header "Fabric.h"
 | 
			
		||||
 | 
			
		||||
    export *
 | 
			
		||||
    module * { export * }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>BuildMachineOSBuild</key>
 | 
			
		||||
	<string>14F1021</string>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>en</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>Fabric</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>io.fabric.sdk.mac</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>Fabric</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>FMWK</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>1.6.7</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleSupportedPlatforms</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<string>MacOSX</string>
 | 
			
		||||
	</array>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>53</string>
 | 
			
		||||
	<key>DTCompiler</key>
 | 
			
		||||
	<string>com.apple.compilers.llvm.clang.1_0</string>
 | 
			
		||||
	<key>DTPlatformBuild</key>
 | 
			
		||||
	<string>7C1002</string>
 | 
			
		||||
	<key>DTPlatformVersion</key>
 | 
			
		||||
	<string>GM</string>
 | 
			
		||||
	<key>DTSDKBuild</key>
 | 
			
		||||
	<string>15C43</string>
 | 
			
		||||
	<key>DTSDKName</key>
 | 
			
		||||
	<string>macosx10.11</string>
 | 
			
		||||
	<key>DTXcode</key>
 | 
			
		||||
	<string>0721</string>
 | 
			
		||||
	<key>DTXcodeBuild</key>
 | 
			
		||||
	<string>7C1002</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2015 Twitter. All rights reserved.</string>
 | 
			
		||||
	<key>UIDeviceFamily</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<integer>3</integer>
 | 
			
		||||
		<integer>2</integer>
 | 
			
		||||
		<integer>1</integer>
 | 
			
		||||
		<integer>4</integer>
 | 
			
		||||
	</array>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
A
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
#  run
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (c) 2015 Crashlytics. All rights reserved.
 | 
			
		||||
 | 
			
		||||
#  Figure out where we're being called from
 | 
			
		||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 | 
			
		||||
 | 
			
		||||
#  Quote path in case of spaces or special chars
 | 
			
		||||
DIR="\"${DIR}"
 | 
			
		||||
 | 
			
		||||
PATH_SEP="/"
 | 
			
		||||
VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
 | 
			
		||||
UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
 | 
			
		||||
 | 
			
		||||
#  Ensure params are as expected, run in sync mode to validate
 | 
			
		||||
eval $DIR$PATH_SEP$VALIDATE_COMMAND
 | 
			
		||||
return_code=$?
 | 
			
		||||
 | 
			
		||||
if [[ $return_code != 0 ]]; then
 | 
			
		||||
  exit $return_code
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#  Verification passed, upload dSYM in background to prevent Xcode from waiting
 | 
			
		||||
#  Note: Validation is performed again before upload.
 | 
			
		||||
#  Output can still be found in Console.app
 | 
			
		||||
eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,31 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  ANSCompatibility.h
 | 
			
		||||
//  AnswersKit
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(nullability)
 | 
			
		||||
#define nonnull
 | 
			
		||||
#define nullable
 | 
			
		||||
#define _Nullable
 | 
			
		||||
#define _Nonnull
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#define NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_END
 | 
			
		||||
#define NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __has_feature(objc_generics)
 | 
			
		||||
#define ANS_GENERIC_NSARRAY(type) NSArray<type>
 | 
			
		||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
 | 
			
		||||
#else
 | 
			
		||||
#define ANS_GENERIC_NSARRAY(type) NSArray
 | 
			
		||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,210 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Answers.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "ANSCompatibility.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  This class exposes the Answers Events API, allowing you to track key 
 | 
			
		||||
 *  user user actions and metrics in your app.
 | 
			
		||||
 */
 | 
			
		||||
@interface Answers : NSObject
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Sign Up event to see users signing up for your app in real-time, understand how
 | 
			
		||||
 *  many users are signing up with different methods and their success rate signing up.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param signUpMethodOrNil     The method by which a user logged in, e.g. Twitter or Digits.
 | 
			
		||||
 *  @param signUpSucceededOrNil  The ultimate success or failure of the login
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logSignUpWithMethod:(nullable NSString *)signUpMethodOrNil
 | 
			
		||||
                    success:(nullable NSNumber *)signUpSucceededOrNil
 | 
			
		||||
           customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Log In event to see users logging into your app in real-time, understand how many
 | 
			
		||||
 *  users are logging in with different methods and their success rate logging into your app.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param loginMethodOrNil      The method by which a user logged in, e.g. email, Twitter or Digits.
 | 
			
		||||
 *  @param loginSucceededOrNil   The ultimate success or failure of the login
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLoginWithMethod:(nullable NSString *)loginMethodOrNil
 | 
			
		||||
                   success:(nullable NSNumber *)loginSucceededOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Share event to see users sharing from your app in real-time, letting you
 | 
			
		||||
 *  understand what content they're sharing from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param shareMethodOrNil      The method by which a user shared, e.g. email, Twitter, SMS.
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logShareWithMethod:(nullable NSString *)shareMethodOrNil
 | 
			
		||||
               contentName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
               contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
                 contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Invite Event to track how users are inviting other users into
 | 
			
		||||
 *  your application.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param inviteMethodOrNil     The method of invitation, e.g. GameCenter, Twitter, email.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logInviteWithMethod:(nullable NSString *)inviteMethodOrNil
 | 
			
		||||
           customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Purchase event to see your revenue in real-time, understand how many users are making purchases, see which
 | 
			
		||||
 *  items are most popular, and track plenty of other important purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param itemPriceOrNil         The purchased item's price.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param purchaseSucceededOrNil Was the purchase succesful or unsuccesful
 | 
			
		||||
 *  @param itemNameOrNil          The human-readable form of the item's name. Example:
 | 
			
		||||
 *  @param itemTypeOrNil          The type, or genre of the item. Example: Song
 | 
			
		||||
 *  @param itemIdOrNil            The machine-readable, unique item identifier Example: SKU
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this purchase.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logPurchaseWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
 | 
			
		||||
                    currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                     success:(nullable NSNumber *)purchaseSucceededOrNil
 | 
			
		||||
                    itemName:(nullable NSString *)itemNameOrNil
 | 
			
		||||
                    itemType:(nullable NSString *)itemTypeOrNil
 | 
			
		||||
                      itemId:(nullable NSString *)itemIdOrNil
 | 
			
		||||
            customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Level Start Event to track where users are in your game.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param levelNameOrNil        The level name
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this level start event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLevelStart:(nullable NSString *)levelNameOrNil
 | 
			
		||||
     customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Level End event to track how users are completing levels in your game.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param levelNameOrNil                 The name of the level completed, E.G. "1" or "Training"
 | 
			
		||||
 *  @param scoreOrNil                     The score the user completed the level with.
 | 
			
		||||
 *  @param levelCompletedSuccesfullyOrNil A boolean representing whether or not the level was completed succesfully.
 | 
			
		||||
 *  @param customAttributesOrNil          A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logLevelEnd:(nullable NSString *)levelNameOrNil
 | 
			
		||||
              score:(nullable NSNumber *)scoreOrNil
 | 
			
		||||
            success:(nullable NSNumber *)levelCompletedSuccesfullyOrNil
 | 
			
		||||
   customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log an Add to Cart event to see users adding items to a shopping cart in real-time, understand how
 | 
			
		||||
 *  many users start the purchase flow, see which items are most popular, and track plenty of other important
 | 
			
		||||
 *  purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param itemPriceOrNil         The purchased item's price.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param itemNameOrNil          The human-readable form of the item's name. Example:
 | 
			
		||||
 *  @param itemTypeOrNil          The type, or genre of the item. Example: Song
 | 
			
		||||
 *  @param itemIdOrNil            The machine-readable, unique item identifier Example: SKU
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logAddToCartWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
 | 
			
		||||
                     currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                     itemName:(nullable NSString *)itemNameOrNil
 | 
			
		||||
                     itemType:(nullable NSString *)itemTypeOrNil
 | 
			
		||||
                       itemId:(nullable NSString *)itemIdOrNil
 | 
			
		||||
             customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Start Checkout event to see users moving through the purchase funnel in real-time, understand how many
 | 
			
		||||
 *  users are doing this and how much they're spending per checkout, and see how it related to other important
 | 
			
		||||
 *  purchase-related metrics.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param totalPriceOrNil        The total price of the cart.
 | 
			
		||||
 *  @param currencyOrNil          The ISO4217 currency code. Example: USD
 | 
			
		||||
 *  @param itemCountOrNil         The number of items in the cart.
 | 
			
		||||
 *  @param customAttributesOrNil  A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logStartCheckoutWithPrice:(nullable NSDecimalNumber *)totalPriceOrNil
 | 
			
		||||
                         currency:(nullable NSString *)currencyOrNil
 | 
			
		||||
                        itemCount:(nullable NSNumber *)itemCountOrNil
 | 
			
		||||
                 customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Rating event to see users rating content within your app in real-time and understand what
 | 
			
		||||
 *  content is most engaging, from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param ratingOrNil           The integer rating given by the user.
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logRating:(nullable NSNumber *)ratingOrNil
 | 
			
		||||
      contentName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
      contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
        contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
 customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Content View event to see users viewing content within your app in real-time and
 | 
			
		||||
 *  understand what content is most engaging, from the type or genre down to the specific id.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param contentNameOrNil      The human readable name for this piece of content.
 | 
			
		||||
 *  @param contentTypeOrNil      The type of content shared.
 | 
			
		||||
 *  @param contentIdOrNil        The unique identifier for this piece of content. Useful for finding the top shared item.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logContentViewWithName:(nullable NSString *)contentNameOrNil
 | 
			
		||||
                   contentType:(nullable NSString *)contentTypeOrNil
 | 
			
		||||
                     contentId:(nullable NSString *)contentIdOrNil
 | 
			
		||||
              customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Search event allows you to see users searching within your app in real-time and understand
 | 
			
		||||
 *  exactly what they're searching for.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param queryOrNil            The user's query.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logSearchWithQuery:(nullable NSString *)queryOrNil
 | 
			
		||||
          customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Log a Custom Event to see user actions that are uniquely important for your app in real-time, to see how often
 | 
			
		||||
 *  they're performing these actions with breakdowns by different categories you add. Use a human-readable name for
 | 
			
		||||
 *  the name of the event, since this is how the event will appear in Answers.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param eventName             The human-readable name for the event.
 | 
			
		||||
 *  @param customAttributesOrNil A dictionary of custom attributes to associate with this event. Attribute keys
 | 
			
		||||
 *                               must be <code>NSString</code> and and values must be <code>NSNumber</code> or <code>NSString</code>.
 | 
			
		||||
 *  @discussion                  How we treat <code>NSNumbers</code>:
 | 
			
		||||
 *                               We will provide information about the distribution of values over time.
 | 
			
		||||
 *
 | 
			
		||||
 *                               How we treat <code>NSStrings</code>:
 | 
			
		||||
 *                               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.
 | 
			
		||||
 */
 | 
			
		||||
+ (void)logCustomEventWithName:(NSString *)eventName
 | 
			
		||||
              customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,33 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSAttributes.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define CLS_DEPRECATED(x)  __attribute__ ((deprecated(x)))
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(nullability)
 | 
			
		||||
    #define nonnull
 | 
			
		||||
    #define nullable
 | 
			
		||||
    #define _Nullable
 | 
			
		||||
    #define _Nonnull
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
    #define NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NS_ASSUME_NONNULL_END
 | 
			
		||||
    #define NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __has_feature(objc_generics)
 | 
			
		||||
    #define CLS_GENERIC_NSARRAY(type) NSArray<type>
 | 
			
		||||
    #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
 | 
			
		||||
#else
 | 
			
		||||
    #define CLS_GENERIC_NSARRAY(type) NSArray
 | 
			
		||||
    #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,64 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSLogging.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The CLS_LOG macro provides as easy way to gather more information in your log messages that are
 | 
			
		||||
 * sent with your crash data. CLS_LOG prepends your custom log message with the function name and
 | 
			
		||||
 * line number where the macro was used. If your app was built with the DEBUG preprocessor macro
 | 
			
		||||
 * defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
 | 
			
		||||
 * If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
 | 
			
		||||
 *
 | 
			
		||||
 * Example output:
 | 
			
		||||
 * -[AppDelegate login:] line 134 $ login start
 | 
			
		||||
 *
 | 
			
		||||
 * If you would like to change this macro, create a new header file, unset our define and then define
 | 
			
		||||
 * your own version. Make sure this new header file is imported after the Crashlytics header file.
 | 
			
		||||
 *
 | 
			
		||||
 * #undef CLS_LOG
 | 
			
		||||
 * #define CLS_LOG(__FORMAT__, ...) CLSNSLog...
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
 | 
			
		||||
#else
 | 
			
		||||
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * Add logging that will be sent with your crash data. This logging will not show up in the system.log
 | 
			
		||||
 * and will only be visible in your Crashlytics dashboard.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
 | 
			
		||||
OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * Add logging that will be sent with your crash data. This logging will show up in the system.log
 | 
			
		||||
 * and your Crashlytics dashboard. It is not recommended for Release builds.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSReport.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The CLSCrashReport protocol is deprecated. See the CLSReport class and the CrashyticsDelegate changes for details.
 | 
			
		||||
 **/
 | 
			
		||||
@protocol CLSCrashReport <NSObject>
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *identifier;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDate *crashedOnDate;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The CLSReport exposes an interface to the phsyical report that Crashlytics has created. You can
 | 
			
		||||
 * use this class to get information about the event, and can also set some values after the
 | 
			
		||||
 * event has occured.
 | 
			
		||||
 **/
 | 
			
		||||
@interface CLSReport : NSObject <CLSCrashReport>
 | 
			
		||||
 | 
			
		||||
- (instancetype)init NS_UNAVAILABLE;
 | 
			
		||||
+ (instancetype)new NS_UNAVAILABLE;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the session identifier for the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *identifier;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the custom key value data for the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the CFBundleVersion of the application that generated the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the CFBundleShortVersionString of the application that generated the report.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the date that the report was created.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSDate *dateCreated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the os version that the application crashed on.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the os build version that the application crashed on.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns YES if the report contains any crash information, otherwise returns NO.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, assign, readonly) BOOL isCrash;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * You can use this method to set, after the event, additional custom keys. The rules
 | 
			
		||||
 * and semantics for this method are the same as those documented in Crashlytics.h. Be aware
 | 
			
		||||
 * 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:(nullable id)value forKey:(NSString *)key;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record an application-specific user identifier. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userIdentifier;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record a user name. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userName;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Record a user email. See Crashlytics.h for details.
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString * userEmail;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,38 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  CLSStackFrame.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to
 | 
			
		||||
 * record information about non-ObjC/C++ exceptions. All information included here will be displayed 
 | 
			
		||||
 * in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the 
 | 
			
		||||
 * address property. If set, Crashlytics will attempt symbolication and could overwrite other properities 
 | 
			
		||||
 * in the process.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
@interface CLSStackFrame : NSObject
 | 
			
		||||
 | 
			
		||||
+ (instancetype)stackFrame;
 | 
			
		||||
+ (instancetype)stackFrameWithAddress:(NSUInteger)address;
 | 
			
		||||
+ (instancetype)stackFrameWithSymbol:(NSString *)symbol;
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString *symbol;
 | 
			
		||||
@property (nonatomic, copy, nullable) NSString *rawSymbol;
 | 
			
		||||
@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
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
@@ -1,266 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Crashlytics.h
 | 
			
		||||
//  Crashlytics
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
 | 
			
		||||
#import "CLSAttributes.h"
 | 
			
		||||
#import "CLSLogging.h"
 | 
			
		||||
#import "CLSReport.h"
 | 
			
		||||
#import "CLSStackFrame.h"
 | 
			
		||||
#import "Answers.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
@protocol CrashlyticsDelegate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Crashlytics. Handles configuration and initialization of Crashlytics.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: The Crashlytics class cannot be subclassed. If this is causing you pain for
 | 
			
		||||
 * testing, we suggest using either a wrapper class or a protocol extension.
 | 
			
		||||
 */
 | 
			
		||||
@interface Crashlytics : NSObject
 | 
			
		||||
 | 
			
		||||
@property (nonatomic, readonly, copy) NSString *APIKey;
 | 
			
		||||
@property (nonatomic, readonly, copy) NSString *version;
 | 
			
		||||
@property (nonatomic, assign)         BOOL      debugMode;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The delegate can be used to influence decisions on reporting and behavior, as well as reacting
 | 
			
		||||
 * to previous crashes.
 | 
			
		||||
 *
 | 
			
		||||
 * Make certain that the delegate is setup before starting Crashlytics with startWithAPIKey:... or
 | 
			
		||||
 * via +[Fabric with:...]. Failure to do will result in missing any delegate callbacks that occur
 | 
			
		||||
 * synchronously during start.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
@property (nonatomic, assign, nullable) id <CrashlyticsDelegate> delegate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  The recommended way to install Crashlytics into your application is to place a call to +startWithAPIKey: 
 | 
			
		||||
 *  in your -application:didFinishLaunchingWithOptions: or -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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @return The singleton Crashlytics instance
 | 
			
		||||
 */
 | 
			
		||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)delegate;
 | 
			
		||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @return The singleton Crashlytics instance
 | 
			
		||||
 */
 | 
			
		||||
+ (Crashlytics *)sharedInstance;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:
 | 
			
		||||
 *
 | 
			
		||||
 *  @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:(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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @param name       The name of the custom exception
 | 
			
		||||
 *  @param reason     The reason this exception occured
 | 
			
		||||
 *  @param frameArray An array of CLSStackFrame objects
 | 
			
		||||
 */
 | 
			
		||||
- (void)recordCustomExceptionName:(NSString *)name reason:(nullable NSString *)reason frameArray:(CLS_GENERIC_NSARRAY(CLSStackFrame *) *)frameArray;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and
 | 
			
		||||
 * displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of
 | 
			
		||||
 * NSErrors that can be recorded during your app's life-cycle is limited by a fixed-size circular buffer. If the
 | 
			
		||||
 * buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch
 | 
			
		||||
 * of your application.
 | 
			
		||||
 *
 | 
			
		||||
 * You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented
 | 
			
		||||
 * by the NSError instance itself.
 | 
			
		||||
 *
 | 
			
		||||
 **/
 | 
			
		||||
- (void)recordError:(NSError *)error;
 | 
			
		||||
- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo;
 | 
			
		||||
 | 
			
		||||
- (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:");
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * The CrashlyticsDelegate protocol provides a mechanism for your application to take
 | 
			
		||||
 * action on events that occur in the Crashlytics crash reporting system.  You can make
 | 
			
		||||
 * use of these calls by assigning an object to the Crashlytics' delegate property directly,
 | 
			
		||||
 * or through the convenience +startWithAPIKey:delegate: method.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
@protocol CrashlyticsDelegate <NSObject>
 | 
			
		||||
@optional
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:");
 | 
			
		||||
- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id <CLSCrashReport>)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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @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.
 | 
			
		||||
 *
 | 
			
		||||
 *  @warning 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
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  `CrashlyticsKit` can be used as a parameter to `[Fabric with:@[CrashlyticsKit]];` in Objective-C. In Swift, use Crashlytics.sharedInstance()
 | 
			
		||||
 */
 | 
			
		||||
#define CrashlyticsKit [Crashlytics sharedInstance]
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,14 +0,0 @@
 | 
			
		||||
framework module Crashlytics {
 | 
			
		||||
    header "Crashlytics.h"
 | 
			
		||||
    header "Answers.h"
 | 
			
		||||
    header "ANSCompatibility.h"
 | 
			
		||||
    header "CLSLogging.h"
 | 
			
		||||
    header "CLSReport.h"
 | 
			
		||||
    header "CLSStackFrame.h"
 | 
			
		||||
    header "CLSAttributes.h"
 | 
			
		||||
 | 
			
		||||
    export *
 | 
			
		||||
 | 
			
		||||
    link "z"
 | 
			
		||||
    link "c++"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
#  run
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (c) 2015 Crashlytics. All rights reserved.
 | 
			
		||||
 | 
			
		||||
#  Figure out where we're being called from
 | 
			
		||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 | 
			
		||||
 | 
			
		||||
#  Quote path in case of spaces or special chars
 | 
			
		||||
DIR="\"${DIR}"
 | 
			
		||||
 | 
			
		||||
PATH_SEP="/"
 | 
			
		||||
VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
 | 
			
		||||
UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
 | 
			
		||||
 | 
			
		||||
#  Ensure params are as expected, run in sync mode to validate
 | 
			
		||||
eval $DIR$PATH_SEP$VALIDATE_COMMAND
 | 
			
		||||
return_code=$?
 | 
			
		||||
 | 
			
		||||
if [[ $return_code != 0 ]]; then
 | 
			
		||||
  exit $return_code
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#  Verification passed, upload dSYM in background to prevent Xcode from waiting
 | 
			
		||||
#  Note: Validation is performed again before upload.
 | 
			
		||||
#  Output can still be found in Console.app
 | 
			
		||||
eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								platform-darwin/External/iOS/Fabric.framework/Fabric
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								platform-darwin/External/iOS/Fabric.framework/Fabric
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,60 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  FABAttributes.h
 | 
			
		||||
//  Fabric
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (C) 2015 Twitter, Inc.
 | 
			
		||||
//
 | 
			
		||||
//  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
//  you may not use this file except in compliance with the License.
 | 
			
		||||
//  You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
//  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
//  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
//  See the License for the specific language governing permissions and
 | 
			
		||||
//  limitations under the License.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define FAB_UNAVAILABLE(x) __attribute__((unavailable(x)))
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
@@ -1,77 +0,0 @@
 | 
			
		||||
//
 | 
			
		||||
//  Fabric.h
 | 
			
		||||
//  Fabric
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (C) 2015 Twitter, Inc.
 | 
			
		||||
//
 | 
			
		||||
//  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
//  you may not use this file except in compliance with the License.
 | 
			
		||||
//  You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
//  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
//  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
//  See the License for the specific language governing permissions and
 | 
			
		||||
//  limitations under the License.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import <Foundation/Foundation.h>
 | 
			
		||||
#import "FABAttributes.h"
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
#if TARGET_OS_IPHONE
 | 
			
		||||
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
 | 
			
		||||
    #error "Fabric's minimum iOS version is 6.0"
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
 | 
			
		||||
    #error "Fabric's minimum OS X version is 10.7"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Fabric Base. Coordinates configuration and starts all provided kits.
 | 
			
		||||
 */
 | 
			
		||||
@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.
 | 
			
		||||
 *
 | 
			
		||||
 * For example, in Objective-C:
 | 
			
		||||
 *
 | 
			
		||||
 *      `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];`
 | 
			
		||||
 *
 | 
			
		||||
 * Swift:
 | 
			
		||||
 *
 | 
			
		||||
 *      `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])`
 | 
			
		||||
 *
 | 
			
		||||
 * Only the first call to this method is honored. Subsequent calls are no-ops.
 | 
			
		||||
 *
 | 
			
		||||
 * @param kitClasses An array of kit Class objects
 | 
			
		||||
 *
 | 
			
		||||
 * @return Returns the shared Fabric instance. In most cases this can be ignored.
 | 
			
		||||
 */
 | 
			
		||||
+ (instancetype)with:(NSArray *)kitClasses;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Returns the Fabric singleton object.
 | 
			
		||||
 */
 | 
			
		||||
+ (instancetype)sharedSDK;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  This BOOL enables or disables debug logging, such as kit version information. The default value is NO.
 | 
			
		||||
 */
 | 
			
		||||
@property (nonatomic, assign) BOOL debug;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance.
 | 
			
		||||
 */
 | 
			
		||||
- (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance.");
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>BuildMachineOSBuild</key>
 | 
			
		||||
	<string>14F1021</string>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>en</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>Fabric</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>io.fabric.sdk.ios</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>Fabric</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>FMWK</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>1.6.7</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleSupportedPlatforms</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<string>iPhoneOS</string>
 | 
			
		||||
	</array>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>53</string>
 | 
			
		||||
	<key>DTCompiler</key>
 | 
			
		||||
	<string>com.apple.compilers.llvm.clang.1_0</string>
 | 
			
		||||
	<key>DTPlatformBuild</key>
 | 
			
		||||
	<string>13C75</string>
 | 
			
		||||
	<key>DTPlatformName</key>
 | 
			
		||||
	<string>iphoneos</string>
 | 
			
		||||
	<key>DTPlatformVersion</key>
 | 
			
		||||
	<string>9.2</string>
 | 
			
		||||
	<key>DTSDKBuild</key>
 | 
			
		||||
	<string>13C75</string>
 | 
			
		||||
	<key>DTSDKName</key>
 | 
			
		||||
	<string>iphoneos9.2</string>
 | 
			
		||||
	<key>DTXcode</key>
 | 
			
		||||
	<string>0721</string>
 | 
			
		||||
	<key>DTXcodeBuild</key>
 | 
			
		||||
	<string>7C1002</string>
 | 
			
		||||
	<key>MinimumOSVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2015 Twitter. All rights reserved.</string>
 | 
			
		||||
	<key>UIDeviceFamily</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<integer>3</integer>
 | 
			
		||||
		<integer>2</integer>
 | 
			
		||||
		<integer>1</integer>
 | 
			
		||||
		<integer>4</integer>
 | 
			
		||||
	</array>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
framework module Fabric {
 | 
			
		||||
    umbrella header "Fabric.h"
 | 
			
		||||
 | 
			
		||||
    export *
 | 
			
		||||
    module * { export * }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
#  run
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (c) 2015 Crashlytics. All rights reserved.
 | 
			
		||||
 | 
			
		||||
#  Figure out where we're being called from
 | 
			
		||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 | 
			
		||||
 | 
			
		||||
#  Quote path in case of spaces or special chars
 | 
			
		||||
DIR="\"${DIR}"
 | 
			
		||||
 | 
			
		||||
PATH_SEP="/"
 | 
			
		||||
VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
 | 
			
		||||
UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
 | 
			
		||||
 | 
			
		||||
#  Ensure params are as expected, run in sync mode to validate
 | 
			
		||||
eval $DIR$PATH_SEP$VALIDATE_COMMAND
 | 
			
		||||
return_code=$?
 | 
			
		||||
 | 
			
		||||
if [[ $return_code != 0 ]]; then
 | 
			
		||||
  exit $return_code
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#  Verification passed, upload dSYM in background to prevent Xcode from waiting
 | 
			
		||||
#  Note: Validation is performed again before upload.
 | 
			
		||||
#  Output can still be found in Console.app
 | 
			
		||||
eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user