6.3 KiB
Introduction
This article describes how to integrate HockeyApp into your iOS apps. The SDK allows testers to update your app to another beta version right from within the application. It will notify the tester if a new update is available. The SDK also allows to send crash reports. If a crash has happened, it will ask the tester on the next start whether he wants to send information about the crash to the server.
This document contains the following sections:
- Requirements
- Download & Extract
- Set up Xcode
- Modify Code
- Submit the UDID
- Mac Desktop Uploader
- Xcode Documentation
Requirements
The SDK runs on devices with iOS 4.0 or higher.
If you need support for iOS 3.x, please check out HockeyKit and QuincyKit
Download & Extract
-
Download the latest HockeySDK-iOS framework.
-
Unzip the file. A new folder
HockeySDK-iOS
is created. -
Move the folder into your project directory. We usually put 3rd-party code into a subdirectory named
Vendor
, so we move the directory into it.
Set up Xcode
-
Drag & drop the
HockeySDK-iOS
folder from your project directory to your Xcode project. -
Similar to above, our projects have a group
Vendor
, so we drop it there. -
Select
Create groups for any added folders
and set the checkmark for your target. Then clickFinish
. -
Select your project in the
Project Navigator
(⌘+1). -
Select your target.
-
Select the tab
Summary
. -
Expand
Link Binary With Libraries
. -
The following entries should be present:
- CoreGraphics.framework
- Foundation.framework
- HockeySDK.framework
- QuartzCore.framework
- SystemConfiguration.framework
- UIKit.framework
-
If one of the frameworks is missing, then click the + button, search the framework and confirm with the
Add
button. -
Remove
CrashReporter.framework
if present, and also remove if from the project by deleting it also from the filesystem -
Select
Build Settings
-
Search
Framework Search Paths
-
Make sure that the list does not contain a path pointing to the
QuincyKit
SDK or another framework that containsPLCrashReporter
-
HockeySDK-iOS also needs a JSON library. If your deployment target iOS 5.0 or later, then you don't have to do anything. If your deployment target is iOS 4.x, please include one of the following libraries:
Modify Code
-
Open your
AppDelegate.m
file. -
Add the following line at the top of the file below your own #import statements:
#import <HockeySDK/HockeySDK.h>
-
Let the AppDelegate implement the protocols
BITHockeyManagerDelegate
,BITUpdateManagerDelegate
andBITCrashManagerDelegate
:@interface AppDelegate() <BITHockeyManagerDelegate, BITUpdateManagerDelegate, BITCrashManagerDelegate> {} @end
-
Search for the method
application:didFinishLaunchingWithOptions:
-
Add the following lines:
[[BITHockeyManager sharedHockeyManager] configureWithBetaIdentifier:@"BETA_IDENTIFIER" liveIdentifier:@"LIVE_IDENTIFIER" delegate:self]; [[BITHockeyManager sharedHockeyManager] startManager];
-
Replace
BETA_IDENTIFIER
with the app identifier of your beta app. If you don't know what the app identifier is or how to find it, please read this how-to. -
Replace
LIVE_IDENTIFIER
with the app identifier of your release app.
Submit the UDID
If you only want crash reporting, you can skip this step. If you want to use HockeyApp for beta distribution and analyze which testers have installed your app, you need to implement an additional delegate method in your AppDelegate.m:
#pragma mark - BITUpdateManagerDelegate
- (NSString *)customDeviceIdentifierForUpdateManager:(BITUpdateManager *)updateManager {
#ifndef CONFIGURATION_AppStore
if ([[UIDevice currentDevice] respondsToSelector:@selector(uniqueIdentifier)])
return [[UIDevice currentDevice] performSelector:@selector(uniqueIdentifier)];
#endif
return nil;
}
The method only returns the UDID when the build is not targeted to the App Sore. This assumes that a preprocessor macro name CONFIGURATION_AppStore exists and is set for App Store builds. You can define the macro as follows:
-
Select your project in the
Project Navigator
(⌘+1). -
Select your target.
-
Select the tab
Build Settings
. -
Search for
preprocessor macros
-
Select the top-most line and double-click the value field.
-
Click the + button.
-
Enter the following string into the input field and finish with "Done".
CONFIGURATION_$(CONFIGURATION)
Now you can use #if defined (CONFIGURATION_AppStore)
statements in your code. If your configurations have different names, please adjust the above use of CONFIGURATION_AppStore
.
Mac Desktop Uploader
The Mac Desktop Uploader can provide easy uploading of your app versions to HockeyApp. Check out the installation tutorial.
Xcode Documentation
This documentation provides integrated help in Xcode for all public APIs and a set of additional tutorials and HowTos.
-
Download the latest HockeySDK-iOS documentation.
-
Unzip the file. A new folder
HockeySDK-iOS-documentation
is created. -
Copy the content into ~
/Library/Developer/Shared/Documentation/DocSet