Installation

The recommended way to install Bugsee is using CocoaPods, but you can also add it to your project manually by following the instructions below

Pod Installation

Add the following line to your project's Podfile

pod 'Bugsee'

Run the following commands to install the Pod:

pod install
pod update Bugsee # This is important, install command does not guarantee you will get latest version

If you are using CocoaPods you can skip now directly to initialization

Manual Installation

Download the latest version from here and extract it. Copy Bugsee.framework to your project by drag and dropping it into the right location. When asked, choose to copy:

Copy frameworks

Initialization

Locate your app delegate and initialize the framework in your application:didFinishLaunchingWithOptions method:

Objective-C

@import Bugsee;

//...

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // ...other initialization code

    [Bugsee launchWithToken:@"<your_app_token>"];

    return YES;
}

Swift

import Bugsee

//...

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // ...other initialization code

    Bugsee.launch(token:"<your_app_token>")

    return true
}

Debug builds

If you want to build and enable Bugsee only in debug builds, there are few things you need to do.

The proper file in your Podfile to only enable it in debug builds is

Add the following line to your project's Podfile

pod 'Bugsee', :configurations => ['Debug']

Then you have to wrap every reference to Bugsee in your code with #ifdef DEBUG as the following example shows:

#ifdef DEBUG
#import <Bugsee/Bugsee.h>
#endif

...

#ifdef DEBUG
[Bugsee launchWithToken:@"<your_app_token>"];
#endif

Testflight builds

It makes sense in some cases to enable Bugsee on builds distributed through Testflight but keep it disabled on the ones distributed through iTunes. There is an easy way to detect a TestFlight build at runtime. You might come up with more complex use case where Bugsee is enabled both for TestFlight and for Release but with different configuration options, the example below shows a simple case of completely disabling it in the production build.

Objective-C

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // ...other initialization code

    if ([[[[NSBundle mainBundle] appStoreReceiptURL] lastPathComponent] isEqualToString:@"sandboxReceipt"]) {
        // We are in TestFlight, enable Bugsee!
        [Bugsee launchWithToken:@"<your_app_token>"];
    }

    return YES;
}

Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // ...other initialization code

    let isRunningTestFlightBeta = NSBundle.mainBundle().appStoreReceiptURL?.lastPathComponent == "sandboxReceipt"
    if isRunningTestFlightBeta {
        Bugsee.launch(token:"<your_app_token>")
    }

    return true
}