Add support for excluding features at compile time

Features can be excluded/included at compile-time using #define statements, e.g. using `Preprocessor Macros`. These don't influence if the feature will actually be enabled, since that can also be done at runtime and some features are disabled automatically in the App Store or disabled by default in general.

The BITHockeyManager header file will still reference all modules, but accessing the modules will not be possible if excluded from the library.

Value of 1 includes the feature into the static library, 0 will exclude the feature from the static library.

Defaults:

Crash Reporting: HOCKEYSDK_FEATURE_CRASH_REPORTER 1
Feedback: HOCKEYSDK_FEATURE_FEEDBACK 1
App Store Updates: HOCKEYSDK_FEATURE_STORE_UPDATES 1 (This feature is disabled by default in code!)
Authenticator: HOCKEYSDK_FEATURE_AUTHENTICATOR 1
Beta Updates: HOCKEYSDK_FEATURE_UPDATES 1
Jira Mobile Connect: HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT 0
This commit is contained in:
Andreas Linde 2013-09-11 19:18:21 +02:00
parent 0188285893
commit 11a8a14e4f
20 changed files with 238 additions and 36 deletions

View File

@ -28,10 +28,14 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
#import <CrashReporter/CrashReporter.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <UIKit/UIKit.h>
#import "HockeySDK.h"
#import "HockeySDKPrivate.h"
#import "BITHockeyHelper.h"
@ -925,3 +929,6 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus";
@end
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */

View File

@ -6,10 +6,14 @@
//
//
#import "BITFeedbackActivity.h"
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "HockeySDKPrivate.h"
#import "HockeySDK.h"
#import "BITFeedbackActivity.h"
#import "BITHockeyHelper.h"
#import "BITFeedbackManagerPrivate.h"
@ -108,3 +112,5 @@
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -28,6 +28,9 @@
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "HockeySDKPrivate.h"
#import "BITFeedbackManagerPrivate.h"
@ -301,3 +304,4 @@
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -28,6 +28,9 @@
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "HockeySDKPrivate.h"
#import "BITFeedbackManagerPrivate.h"
@ -756,3 +759,5 @@
}
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -28,6 +28,9 @@
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "HockeySDKPrivate.h"
#import "BITFeedbackManager.h"
@ -938,3 +941,5 @@
}
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -28,9 +28,9 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import <Foundation/Foundation.h>
#import "BITFeedbackMessage.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "BITFeedbackMessage.h"
@interface BITFeedbackManager () <UIAlertViewDelegate> {
}
@ -94,3 +94,5 @@
- (void)deleteAllMessages;
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -28,6 +28,9 @@
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "HockeySDKPrivate.h"
#import "BITFeedbackUserDataViewController.h"
@ -259,3 +262,5 @@
@end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

@ -32,19 +32,31 @@
#import "BITHockeyManagerPrivate.h"
#import "BITHockeyBaseManagerPrivate.h"
#if HOCKEYSDK_FEATURE_UPDATES
#import "BITUpdateManagerPrivate.h"
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
#import "BITStoreUpdateManagerPrivate.h"
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "BITFeedbackManagerPrivate.h"
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
#if HOCKEYSDK_FEATURE_AUTHENTICATOR
#import "BITAuthenticator_Private.h"
#import "BITHockeyAppClient.h"
#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */
@interface BITHockeyManager ()
- (BOOL)shouldUseLiveIdentifier;
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#if HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
- (void)configureJMC;
#endif
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
@end
@ -162,6 +174,7 @@
BITHockeyLog(@"INFO: Starting HockeyManager");
_startManagerIsInvoked = YES;
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
// start CrashManager
if (![self isCrashManagerDisabled]) {
BITHockeyLog(@"INFO: Start CrashManager");
@ -170,7 +183,9 @@
}
[_crashManager startManager];
}
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
// start StoreUpdateManager
if ([self isStoreUpdateManagerEnabled]) {
BITHockeyLog(@"INFO: Start StoreUpdateManager");
@ -179,7 +194,9 @@
}
[_storeUpdateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f];
}
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
// start FeedbackManager
if (![self isFeedbackManagerDisabled]) {
BITHockeyLog(@"INFO: Start FeedbackManager");
@ -188,6 +205,7 @@
}
[_feedbackManager performSelector:@selector(startManager) withObject:nil afterDelay:1.0f];
}
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
// start Authenticator
if (![self isAppStoreEnvironment]) {
@ -201,41 +219,49 @@
[_authenticator startManager];
}
#if HOCKEYSDK_FEATURE_UPDATES
// Setup UpdateManager
if (![self isUpdateManagerDisabled]
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#if HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
|| [[self class] isJMCPresent]
#endif
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
) {
if ([self.authenticator installationIdentificationValidated]) {
[self invokeStartUpdateManager];
}
}
#endif /* HOCKEYSDK_FEATURE_UPDATES */
}
#if HOCKEYSDK_FEATURE_UPDATES
- (void)setDisableUpdateManager:(BOOL)disableUpdateManager {
if (_updateManager) {
[_updateManager setDisableUpdateManager:disableUpdateManager];
}
_disableUpdateManager = disableUpdateManager;
}
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
- (void)setEnableStoreUpdateManager:(BOOL)enableStoreUpdateManager {
if (_storeUpdateManager) {
[_storeUpdateManager setEnableStoreUpdateManager:enableStoreUpdateManager];
}
_enableStoreUpdateManager = enableStoreUpdateManager;
}
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
- (void)setDisableFeedbackManager:(BOOL)disableFeedbackManager {
if (_feedbackManager) {
[_feedbackManager setDisableFeedbackManager:disableFeedbackManager];
}
_disableFeedbackManager = disableFeedbackManager;
}
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
- (void)setServerURL:(NSString *)aServerURL {
@ -244,15 +270,18 @@
aServerURL = [NSString stringWithFormat:@"%@/", aServerURL];
}
#if HOCKEYSDK_FEATURE_AUTHENTICATOR
if (_serverURL != aServerURL) {
_serverURL = [aServerURL copy];
_authenticator.hockeyAppClient.baseURL = [NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL];
}
#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */
}
#pragma mark - KVO
#if HOCKEYSDK_FEATURE_UPDATES
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"installationIdentificationValidated"] &&
[object valueForKey:@"installationIdentificationValidated"] ) {
@ -262,7 +291,7 @@
[self invokeStartUpdateManager];
}
}
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#if HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
} else if (([object trackerConfig]) && ([[object trackerConfig] isKindOfClass:[NSDictionary class]])) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *trackerConfig = [[defaults valueForKey:@"BITTrackerConfigurations"] mutableCopy];
@ -275,9 +304,10 @@
[defaults synchronize];
[self configureJMC];
#endif
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
}
}
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#pragma mark - Private Instance Methods
@ -290,6 +320,7 @@
}
}
#if HOCKEYSDK_FEATURE_UPDATES
- (void)invokeStartUpdateManager {
if (_startUpdateManagerIsInvoked) return;
@ -305,6 +336,7 @@
}
[_updateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f];
}
#endif /* HOCKEYSDK_FEATURE_UPDATES */
- (BOOL)isSetUpOnMainThread {
NSString *errorString = @"ERROR: This SDK has to be setup on the main thread!";
@ -339,20 +371,28 @@
_startManagerIsInvoked = NO;
if (_validAppIdentifier) {
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
BITHockeyLog(@"INFO: Setup CrashManager");
_crashManager = [[BITCrashManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
_crashManager.delegate = _delegate;
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */
#if HOCKEYSDK_FEATURE_UPDATES
BITHockeyLog(@"INFO: Setup UpdateManager");
_updateManager = [[BITUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
_updateManager.delegate = _delegate;
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
BITHockeyLog(@"INFO: Setup StoreUpdateManager");
_storeUpdateManager = [[BITStoreUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
BITHockeyLog(@"INFO: Setup FeedbackManager");
_feedbackManager = [[BITFeedbackManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
_feedbackManager.delegate = _delegate;
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
BITHockeyLog(@"INFO: Setup Authenticator");
BITHockeyAppClient *client = [[BITHockeyAppClient alloc] initWithBaseURL:[NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]];
@ -360,7 +400,7 @@
_authenticator.hockeyAppClient = client;
_authenticator.delegate = _delegate;
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#if HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
// Only if JMC is part of the project
if ([[self class] isJMCPresent]) {
BITHockeyLog(@"INFO: Setup JMC");
@ -369,14 +409,14 @@
[[self class] disableJMCCrashReporter];
[self performSelector:@selector(configureJMC) withObject:nil afterDelay:0];
}
#endif
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
} else {
[self logInvalidIdentifier:@"app identifier"];
}
}
#if JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#if HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
#pragma mark - JMC
@ -475,6 +515,6 @@
}
}
#endif
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
@end

View File

@ -26,9 +26,12 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import <Foundation/Foundation.h>
#import <sys/sysctl.h>
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_STORE_UPDATES
#import <sys/sysctl.h>
#import "HockeySDKPrivate.h"
#import "BITHockeyHelper.h"
@ -431,3 +434,5 @@
}
@end
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */

View File

@ -29,8 +29,7 @@
*/
#import <UIKit/UIKit.h>
#if HOCKEYSDK_FEATURE_STORE_UPDATES
@interface BITStoreUpdateManager () <UIAlertViewDelegate> {
}
@ -58,3 +57,5 @@
- (void)checkForUpdateDelayed;
@end
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */

View File

@ -29,7 +29,6 @@
*/
#import <UIKit/UIKit.h>
#import "BITHockeyBaseManager.h"

View File

@ -28,9 +28,12 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import <Foundation/Foundation.h>
#import <sys/sysctl.h>
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_UPDATES
#import <sys/sysctl.h>
#import "HockeySDKPrivate.h"
#import "BITHockeyHelper.h"
@ -922,3 +925,5 @@ typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) {
}
@end
#endif /* HOCKEYSDK_FEATURE_UPDATES */

View File

@ -29,7 +29,9 @@
*/
#import <UIKit/UIKit.h>
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_UPDATES
/** TODO:
* if during startup the auth-state is pending, we get never rid of the nag-alertview
@ -93,3 +95,5 @@
- (BOOL)hasNewerMandatoryVersion;
@end
#endif /* HOCKEYSDK_FEATURE_UPDATES */

View File

@ -28,6 +28,11 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_UPDATES
#import "HockeySDKPrivate.h"
#import <QuartzCore/QuartzCore.h>
#import "BITHockeyHelper.h"
#import "BITAppVersionMetaInfo.h"
@ -35,9 +40,6 @@
#import "BITWebTableViewCell.h"
#import "BITStoreButton.h"
#import "HockeySDK.h"
#import "HockeySDKPrivate.h"
#import "BITUpdateManagerPrivate.h"
#import "BITUpdateViewControllerPrivate.h"
#import "BITHockeyBaseManagerPrivate.h"
@ -548,3 +550,5 @@
}
@end
#endif /* HOCKEYSDK_FEATURE_UPDATES */

View File

@ -28,7 +28,10 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import <UIKit/UIKit.h>
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_UPDATES
#import "BITStoreButton.h"
typedef enum {
@ -53,3 +56,5 @@ typedef enum {
@property (nonatomic, assign) AppStoreButtonState appStoreButtonState;
@end
#endif /* HOCKEYSDK_FEATURE_UPDATES */

View File

@ -30,26 +30,38 @@
#ifndef HockeySDK_h
#define HockeySDK_h
#import "HockeySDKFeatureConfig.h"
#import "BITHockeyManager.h"
#import "BITHockeyManagerDelegate.h"
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
#import "BITCrashManager.h"
#import "BITCrashManagerDelegate.h"
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */
#if HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
#import "BITUpdateManager.h"
#import "BITUpdateManagerDelegate.h"
#import "BITUpdateViewController.h"
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
#import "BITStoreUpdateManager.h"
#import "BITStoreUpdateManagerDelegate.h"
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "BITFeedbackManager.h"
#import "BITFeedbackActivity.h"
#import "BITFeedbackComposeViewController.h"
#import "BITFeedbackComposeViewControllerDelegate.h"
#import "BITFeedbackListViewController.h"
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
#if HOCKEYSDK_FEATURE_AUTHENTICATOR
#import "BITAuthenticator.h"
#endif
// Notification message which HockeyManager is listening to, to retry requesting updated from the server
#define BITHockeyNetworkDidBecomeReachableNotification @"BITHockeyNetworkDidBecomeReachable"

View File

@ -0,0 +1,95 @@
/*
* Author: Andreas Linde <mail@andreaslinde.de>
*
* Copyright (c) 2013 HockeyApp, Bit Stadium GmbH.
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef HockeySDK_HockeySDKFeatureConfig_h
#define HockeySDK_HockeySDKFeatureConfig_h
/**
* If true, include support for handling crash reports
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_CRASH_REPORTER
# define HOCKEYSDK_FEATURE_CRASH_REPORTER 1
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */
/**
* If true, include support for managing user feedback
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_FEEDBACK
# define HOCKEYSDK_FEATURE_FEEDBACK 1
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
/**
* If true, include support for informing the user about new updates pending in the App Store
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_STORE_UPDATES
# define HOCKEYSDK_FEATURE_STORE_UPDATES 1
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
/**
* If true, include support for authentication installations for Ad-Hoc and Enterprise builds
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR
# define HOCKEYSDK_FEATURE_AUTHENTICATOR 1
#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */
/**
* If true, include support for handling in-app udpates for Ad-Hoc and Enterprise builds
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_UPDATES
# define HOCKEYSDK_FEATURE_UPDATES 1
#endif /* HOCKEYSDK_FEATURE_UPDATES */
/**
* If true, include support for the Jira Mobile Connect SDK.
*
* @warning This requires Crash Reporting and Update Manager to be included!
*
* _Default_: Disabled
*/
#ifndef HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
# define HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT 0
#endif /* HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT */
#endif /* HockeySDK_HockeySDKFeatureConfig_h */

View File

@ -59,12 +59,6 @@
#define BITHOCKEYSDK_BUNDLE @"HockeySDKResources.bundle"
#define BITHOCKEYSDK_URL @"https://sdk.hockeyapp.net/"
// Whether to compile in support for Jira Mobile Connect
// default is disabled
#ifndef JIRA_MOBILE_CONNECT_SUPPORT_ENABLED
#define JIRA_MOBILE_CONNECT_SUPPORT_ENABLED 0
#endif
#define BITHockeyLog(fmt, ...) do { if([BITHockeyManager sharedHockeyManager].isDebugLogEnabled && ![BITHockeyManager sharedHockeyManager].isAppStoreEnvironment) { NSLog((@"[HockeySDK] %s/%d " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); }} while(0)
#define BIT_RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]
@ -88,6 +82,6 @@ BOOL BITValidateEmail(NSString *email);
#define kBITTextLabelAlignmentRight NSTextAlignmentRight
#define kBITLineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle
#endif
#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */
#endif //HockeySDK_HockeySDKPrivate_h

View File

@ -106,6 +106,7 @@
1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */; };
1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */; };
1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */; };
1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */; };
1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */; };
1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */; };
@ -256,6 +257,7 @@
1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashReportTextFormatter.m; sourceTree = "<group>"; };
1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCHamcrestIOS.framework; sourceTree = "<group>"; };
1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMockitoIOS.framework; sourceTree = "<group>"; };
1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HockeySDKFeatureConfig.h; sourceTree = "<group>"; };
1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManager.h; sourceTree = "<group>"; };
1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITStoreUpdateManager.m; sourceTree = "<group>"; };
1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerPrivate.h; sourceTree = "<group>"; };
@ -546,6 +548,7 @@
1EC69F5D1615001500808FD9 /* BITHockeyManagerPrivate.h */,
1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */,
1E71509A15B5C76F004E88FF /* HockeySDK.h */,
1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */,
);
name = Classes;
path = ../Classes;
@ -625,6 +628,7 @@
1EC69F601615001500808FD9 /* BITHockeyManagerPrivate.h in Headers */,
E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */,
1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */,
1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */,
1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */,
1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */,
1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */,

View File

@ -14,7 +14,7 @@ The binary distribution of HockeySDK does not provide this integration. You need
4. Double tab in the `HockeySDKLib` column and add the following two values
$(inherited)
JIRA_MOBILE_CONNECT_SUPPORT_ENABLED=1
HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT=1
5. Setup JMC as described in the [JMC instructions](https://developer.atlassian.com/display/JMC/Enabling+JIRA+Mobile+Connect)
6. Sign in to HockeyApp