// // TestFlight.h // libTestFlight // // Created by Jonathan Janzen on 06/11/11. // Copyright 2011 TestFlight. All rights reserved. #import #define TESTFLIGHT_SDK_VERSION @"1.2" #undef TFLog #if __cplusplus extern "C" { #endif void TFLog(NSString *format, ...); void TFLogv(NSString *format, va_list arg_list); #if __cplusplus } #endif #define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) /** * TestFlight object * All methods are class level */ @interface TestFlight : NSObject { } /** * Add custom environment information * If you want to track custom information such as a user name from your application you can add it here * * @param information A string containing the environment you are storing * @param key The key to store the information with */ + (void)addCustomEnvironmentInformation:(NSString *)information forKey:(NSString*)key; /** * Starts a TestFlight session using the Application Token for this Application * * @param applicationToken Will be the application token for the current application. * The token for this application can be retrieved by going to https://testflightapp.com/dashboard/applications/ * selecting this application from the list then selecting SDK. */ + (void)takeOff:(NSString *)applicationToken; /** * Sets custom options * * @param options NSDictionary containing the options you want to set available options are described below * * Option Accepted Values Description * reinstallCrashHandlers [ NSNumber numberWithBool:YES ] Reinstalls crash handlers, to be used if a third party * library installs crash handlers overtop of the TestFlight Crash Handlers * logToConsole [ NSNumber numberWithBool:YES ] YES - default, sends log statements to Apple System Log and TestFlight log * NO - sends log statements to TestFlight log only * logToSTDERR [ NSNumber numberWithBool:YES ] YES - default, sends log statements to STDERR when debugger is attached * NO - sends log statements to TestFlight log only * sendLogOnlyOnCrash [ NSNumber numberWithBool:YES ] NO - default, sends logs to TestFlight at the end of every session * YES - sends logs statements to TestFlight only if there was a crash * attachBacktraceToFeedback [ NSNumber numberWithBool:YES ] NO - default, feedback is sent exactly as the user enters it * YES - attaches the current backtrace, with symbols, to the feedback. * disableInAppUpdates [ NSNumber numberWithBool:YES ] NO - default, in application updates are allowed * YES - the in application update screen will not be displayed */ + (void)setOptions:(NSDictionary*)options; /** * Track when a user has passed a checkpoint after the flight has taken off. Eg. passed level 1, posted high score * * @param checkpointName The name of the checkpoint, this should be a static string */ + (void)passCheckpoint:(NSString *)checkpointName; /** * Opens a feedback window that is not attached to a checkpoint */ + (void)openFeedbackView; /** * Submits custom feedback to the site. Sends the data in feedback to the site. This is to be used as the method to submit * feedback from custom feedback forms. * * @param feedback Your users feedback, method does nothing if feedback is nil */ + (void)submitFeedback:(NSString*)feedback; /** * Sets the Device Identifier. (* Must be called before takeOff: *) * The SDK no longer obtains the device unique identifier. This method should only be used during testing so that you can * identify a testers test data with them. If you do not provide the identifier you will still see all session data, with checkpoints * and logs, but the data will be anonymized. * It is recommended that you only use this method during testing. We also recommended that you wrap this method with a pre-processor * directive that is only active for non-app store builds. * #ifndef RELEASE * [TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]]; * #endif * * @param deviceIdentifer The current devices device identifier */ + (void)setDeviceIdentifier:(NSString*)deviceIdentifer; @end