Project import
diff --git a/Crashlytics b/Crashlytics
new file mode 120000
index 0000000..7074275
--- /dev/null
+++ b/Crashlytics
@@ -0,0 +1 @@
+Versions/Current/Crashlytics
\ No newline at end of file
diff --git a/Headers b/Headers
new file mode 120000
index 0000000..a177d2a
--- /dev/null
+++ b/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/Resources b/Resources
new file mode 120000
index 0000000..953ee36
--- /dev/null
+++ b/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/Versions/A/Crashlytics b/Versions/A/Crashlytics
new file mode 100644
index 0000000..d16d220
--- /dev/null
+++ b/Versions/A/Crashlytics
Binary files differ
diff --git a/Versions/A/Headers/Crashlytics.h b/Versions/A/Headers/Crashlytics.h
new file mode 100644
index 0000000..59addef
--- /dev/null
+++ b/Versions/A/Headers/Crashlytics.h
@@ -0,0 +1,217 @@
+//
+// Crashlytics.h
+// Crashlytics
+//
+// Copyright 2013 Crashlytics, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ *
+ * 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 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
+
+/**
+ *
+ * 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.
+ *
+ **/
+OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
+
+/**
+ *
+ * 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);
+
+@protocol CrashlyticsDelegate;
+
+@interface Crashlytics : NSObject
+
+@property (nonatomic, readonly, copy) NSString *apiKey;
+@property (nonatomic, readonly, copy) NSString *version;
+@property (nonatomic, assign) BOOL debugMode;
+
+@property (nonatomic, assign) NSObject <CrashlyticsDelegate> *delegate;
+
+/**
+ *
+ * The recommended way to install Crashlytics into your application is to place a call
+ * to +startWithAPIKey: in your -application:didFinishLaunchingWithOptions: method.
+ *
+ * This delay defaults to 1 second in order to generally give the application time to
+ * fully finish launching.
+ *
+ **/
++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey;
++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey afterDelay:(NSTimeInterval)delay;
+
+/**
+ *
+ * If you need the functionality provided by the CrashlyticsDelegate protocol, you can use
+ * these convenience methods to activate the framework and set the delegate in one call.
+ *
+ **/
++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(NSObject <CrashlyticsDelegate> *)delegate;
++ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(NSObject <CrashlyticsDelegate> *)delegate afterDelay:(NSTimeInterval)delay;
+
+/**
+ *
+ * Access the singleton Crashlytics instance.
+ *
+ **/
++ (Crashlytics *)sharedInstance;
+
+/**
+ *
+ * The easiest way to cause a crash - great for testing!
+ *
+ **/
+- (void)crash;
+
+/**
+ *
+ * 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.
+ *
+ **/
+- (void)setUserIdentifier:(NSString *)identifier;
+- (void)setUserName:(NSString *)name;
+- (void)setUserEmail:(NSString *)email;
+
++ (void)setUserIdentifier:(NSString *)identifier;
++ (void)setUserName:(NSString *)name;
++ (void)setUserEmail:(NSString *)email;
+
+/**
+ *
+ * Set a value for a key to be associated with your crash data.
+ *
+ **/
+- (void)setObjectValue:(id)value forKey:(NSString *)key;
+- (void)setIntValue:(int)value forKey:(NSString *)key;
+- (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
+- (void)setFloatValue:(float)value forKey:(NSString *)key;
+
++ (void)setObjectValue:(id)value forKey:(NSString *)key;
++ (void)setIntValue:(int)value forKey:(NSString *)key;
++ (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
++ (void)setFloatValue:(float)value forKey:(NSString *)key;
+
+@end
+
+/**
+ * The CLSCrashReport protocol exposes methods that you can call on crash report objects passed
+ * to delegate methods. If you want these values or the entire object to stay in memory retain
+ * them or copy them.
+ **/
+@protocol CLSCrashReport <NSObject>
+@required
+
+/**
+ * Returns the session identifier for the crash report.
+ **/
+@property (nonatomic, readonly) NSString *identifier;
+
+/**
+ * Returns the custom key value data for the crash report.
+ **/
+@property (nonatomic, readonly) NSDictionary *customKeys;
+
+/**
+ * Returns the CFBundleVersion of the application that crashed.
+ **/
+@property (nonatomic, readonly) NSString *bundleVersion;
+
+/**
+ * Returns the CFBundleShortVersionString of the application that crashed.
+ **/
+@property (nonatomic, readonly) NSString *bundleShortVersionString;
+
+/**
+ * Returns the date that the application crashed at.
+ **/
+@property (nonatomic, readonly) NSDate *crashedOnDate;
+
+/**
+ * Returns the os version that the application crashed on.
+ **/
+@property (nonatomic, readonly) NSString *OSVersion;
+
+/**
+ * Returns the os build version that the application crashed on.
+ **/
+@property (nonatomic, readonly) NSString *OSBuildVersion;
+
+@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:... methods.
+ *
+ **/
+@protocol CrashlyticsDelegate <NSObject>
+@optional
+
+/**
+ *
+ * Called once a Crashlytics instance has determined that the last execution of the
+ * application ended in a crash. This is called some time after the crash reporting
+ * process has begun. If you have specified a delay in one of the
+ * startWithAPIKey:... calls, this will take at least that long to be invoked.
+ *
+ **/
+- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics;
+
+/**
+ *
+ * Just like crashlyticsDidDetectCrashDuringPreviousExecution this delegate method is
+ * called once a Crashlytics instance has determined that the last execution of the
+ * application ended in a crash. A CLSCrashReport is passed back that contains data about
+ * the last crash report that was generated. See the CLSCrashReport protocol for method details.
+ * This method is called after crashlyticsDidDetectCrashDuringPreviousExecution.
+ *
+ **/
+- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id <CLSCrashReport>)crash;
+
+@end
diff --git a/Versions/A/Resources/Info.plist b/Versions/A/Resources/Info.plist
new file mode 100644
index 0000000..9127885
--- /dev/null
+++ b/Versions/A/Resources/Info.plist
@@ -0,0 +1,30 @@
+<?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>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Crashlytics</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.crashlytics.ios</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Crashlytics</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>2.1.5</string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>iPhoneOS</string>
+ </array>
+ <key>CFBundleVersion</key>
+ <string>16</string>
+ <key>DTPlatformName</key>
+ <string>iphoneos</string>
+ <key>MinimumOSVersion</key>
+ <string>4.0</string>
+</dict>
+</plist>
diff --git a/Versions/Current b/Versions/Current
new file mode 120000
index 0000000..8c7e5a6
--- /dev/null
+++ b/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/run b/run
new file mode 100755
index 0000000..62b4205
--- /dev/null
+++ b/run
Binary files differ