Integration for iOS

Download the latest version

Download v 2.0.3 Released: Nov 24, 2014

Minimal system requirements

Requires iOS 6.0 or later.

Release Notes

v. 2.0.3
  • Improved and optimized UI for iOS 8
  • Optimized the time tracking performance (flow)
  • Fixed the bug related to multiple report association with test case
v. 2.0.2
  • Added the new API [[Ubertesters shared] disableCrashHandler]; method
  • Renamed Ubertesters options for locking and activation mode
  • Ubertesters Project ID parameter is replaced with Ubertesters Organization SDK Token
v. 2.0.1
  • Fixed the bug with the Ubertesters widget blocking the part of user interface in the default position.

Download the latest version of Ubertesters SDK for iOS

  1. Download and unzip it
  2. Drag the UbertestersSDK folder to your project.

Add frameworks to your Link Binary With Libraries Build Phase tab.

Frameworks to be added:

  • AdSupport.framework,
  • QuartzCore.framework
  • CoreImage.framework,
  • SystemConfiguration.framework,
  • CoreTelephony.framework,
  • CoreLocation.framework.
  • AudioToolbox.framework.
  • OpenGLES.framework
  • CoreMotion.framework

  1. Select your Project in the Project Navigator
  2. Select the target you want to enable the SDK for
  3. Select the Build Phases tab
  4. Open the Link Binary With Libraries Phase
  5. Click the + to add a new library
  6. Find QuartzCore.framework in the list and add it
  7. Repeat Steps 2 – 6 until all targets you want to use the SDK with

Simply add pod 'Ubertesters' to your Podfile and run pod install You can then skip steps 1 throungh 2.


Add "Ubertesters Organization token" to your app's "Info.plist" file

  • 1.Open and select your project, go to SDK Integration
  • 2.Copy "Ubertesters Organization SDK Token"
  • 3.Add "Ubertesters Organization SDK Token" to your app's "Info.plist" with the key "ubertesters_organization_token"


    Make sure the NSAllowsArbitraryLoads key is set to ‘Yes’, otherwise you’ll get a lock screen when the app is launched.


Modify your Application Delegate file:

  1. Import Ubertesters:
    #import <UbertestersSDK/Ubertesters.h>
  2. Use Ubertesters Initialize function.
    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
        (NSDictionary *)launchOptions
        //your code here
        //Ubertersters SDK initialization
        [[Ubertesters shared] initialize];
        return YES; // this is the rest of your method

It is possible to initialize Ubertesters in 2 ways:

  1. Using initializer with the default parameters.

    When you are using the initializer with the default parameters – UbertestersActivationModeWidget for activation mode and UbertestersLockingModeDisableUbertesters for locking mode:

    [[Ubertesters shared] initialize];
  2. Using customized initializer.



    [[Ubertesters shared] initializeWithOptions:UbertestersActivationModeWidget |

    The customized initializer is used with the Ubertesters SDK options which determine the behavior of Ubertesters widget (with the help of which you call the bug submission screen) and the behavior of the Ubertesters app when the build/app is not available in Ubertesters system. According to their functions, all the options can be divided in two groups – activation mode options and locking mode options.

    You can use the following options for the customized initializer:

Activation mode options:

UbertestersActivationModeWidget The Ubertesters widget (an orange bubble) is shown, and you need to click on it to call a bug submission screen.
UbertestersActivationModeShake The widget is not shown, you need to shake your phone to call a menu for a bug submission or take a screenshot.
UbertestersActivationModeManual The Ubertesters widget is not shown, a menu should be called with the help of our API methods. You can specify the conditions under which the Ubertesters menu will be shown.

Locking mode options:

UbertestersLockingModeDisableUbertesters This option will not lock your application if the build is not uploaded on our server
UbertestersLockingModeLockApplication Ubertesters SDK locks the app completely if the build is not located on our server, it is impossible to navigate through the app

Additional option:

UbertestersDefault Combines two options: UbertestersActivationModeWidget and UbertestersLockingModeDisableUbertesters.


Make sure you are using Apple LLVN compiler 4.2 and greater. Go to BuildSettings of your target and find BuildOptions. There will be row Compiler for C/C++/Objective-C.


Ubertesters SDK supports beta testing mode only and cannot be used in the production builds. Please remove Ubertesters SDK before submitting your app to AppStore.


Ubertesters SDK API methods

API methods allow the developers to call additional methods and customize our SDK according to their needs.

Remote Logging

To perform remote logging you can use the UTLog method. UT log is a function with a text and a log level.

Remote logging allows you to send an important system event information to Ubertesters server dedicating to storing and archiving this data. You can check the sent logs in your Ubertesters account in Activity > Session > Session Tracking

UTLog methods:

UTLogLevelInfo Sends info logs
UTLogLevelWar Sends warning logs
UTLogLevelError Sends error logs

To add UTLog, please use the following line:

- (void)UTLog:(NSString *)format withLevel:(UTLogLevel)level
typedef enum
    UTLogLevelError, // level = «error»
    UTLogLevelWarning, // level = «warning»
    UTLogLevelInfo // level = «info»
} UTLogLevel;


[[Ubertesters shared] UTLog:@"text message" withLevel:UTLogLevelInfo];

API methods used with UbertestersActivationModeManual

These methods allow to specify the behavior of Ubertesters bug submission screen in case Manual mode is used.

Method Action Example
- (void)makeScreenshot; Captures screenshot in the app you are testing [[Ubertesters shared] makeScreenshot];
- (void)showMenu; Shows Ubertesters menu [[Ubertesters shared] showMenu];
- (void)hideMenu; Shows Ubertesters menu [[Ubertesters shared] hideMenu];

Disable Crash Handler

Method Action
- (void) disableCrashHandler; Disables Ubertesters crash handler. Allows using our platform along with third party crash reporters.


[[Ubertesters shared] disableCrashHandler];

Ubertesters Extra Data protocol

Method Action
ubertestersIssueWillPost Allows the developer to add extra data parameters to the reports sent to the server when the issue is reported.

How it works

  1. Adopt Ubertesters Extra Data protocol:
    @interface ViewController () 
  2. Implement Extra Data protocol method:
    @protocol UbertestersExtraDataProtocol <NSObject>
    -(ExtraDataList *)ubertestersIssueWillPost;
  3. Set Ubertesters Delegate property:
    [[Ubertesters shared] setIssueDelegate:self];
  4. Fill in extra data list with the required parameters:

    For example:

    -(ExtraDataList *)ubertestersIssueWillPost{
        ExtraDataList *data = [[ExtraDataList alloc] init];
        [data setAttribute:self.view.description forAttributeName:@"viewDescription"];
        [data setAttribute:NSStringFromCGRect(self.view.frame) forAttributeName:@"selfViewFrame"];
        return data;


Please make sure AttributeName parameters do not coincide, otherwise the Attributes will be replaced with the latest meaning.

SDK Twitter

Stay updated with
the Ubertesters SDK new releases!

Follow SDK on Twitter! Close popup