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. * OTHER DEALINGS IN THE SOFTWARE.
*/ */
#import "HockeySDK.h"
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
#import <CrashReporter/CrashReporter.h> #import <CrashReporter/CrashReporter.h>
#import <SystemConfiguration/SystemConfiguration.h> #import <SystemConfiguration/SystemConfiguration.h>
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "HockeySDK.h"
#import "HockeySDKPrivate.h" #import "HockeySDKPrivate.h"
#import "BITHockeyHelper.h" #import "BITHockeyHelper.h"
@ -925,3 +929,6 @@ NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus";
@end @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 "HockeySDKPrivate.h"
#import "HockeySDK.h"
#import "BITFeedbackActivity.h"
#import "BITHockeyHelper.h" #import "BITHockeyHelper.h"
#import "BITFeedbackManagerPrivate.h" #import "BITFeedbackManagerPrivate.h"
@ -108,3 +112,5 @@
@end @end
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -30,26 +30,38 @@
#ifndef HockeySDK_h #ifndef HockeySDK_h
#define HockeySDK_h #define HockeySDK_h
#import "HockeySDKFeatureConfig.h"
#import "BITHockeyManager.h" #import "BITHockeyManager.h"
#import "BITHockeyManagerDelegate.h" #import "BITHockeyManagerDelegate.h"
#if HOCKEYSDK_FEATURE_CRASH_REPORTER
#import "BITCrashManager.h" #import "BITCrashManager.h"
#import "BITCrashManagerDelegate.h" #import "BITCrashManagerDelegate.h"
#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */
#if HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_JIRA_MOBILE_CONNECT
#import "BITUpdateManager.h" #import "BITUpdateManager.h"
#import "BITUpdateManagerDelegate.h" #import "BITUpdateManagerDelegate.h"
#import "BITUpdateViewController.h" #import "BITUpdateViewController.h"
#endif /* HOCKEYSDK_FEATURE_UPDATES */
#if HOCKEYSDK_FEATURE_STORE_UPDATES
#import "BITStoreUpdateManager.h" #import "BITStoreUpdateManager.h"
#import "BITStoreUpdateManagerDelegate.h" #import "BITStoreUpdateManagerDelegate.h"
#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */
#if HOCKEYSDK_FEATURE_FEEDBACK
#import "BITFeedbackManager.h" #import "BITFeedbackManager.h"
#import "BITFeedbackActivity.h" #import "BITFeedbackActivity.h"
#import "BITFeedbackComposeViewController.h" #import "BITFeedbackComposeViewController.h"
#import "BITFeedbackComposeViewControllerDelegate.h" #import "BITFeedbackComposeViewControllerDelegate.h"
#import "BITFeedbackListViewController.h" #import "BITFeedbackListViewController.h"
#endif /* HOCKEYSDK_FEATURE_FEEDBACK */
#if HOCKEYSDK_FEATURE_AUTHENTICATOR
#import "BITAuthenticator.h" #import "BITAuthenticator.h"
#endif
// Notification message which HockeyManager is listening to, to retry requesting updated from the server // Notification message which HockeyManager is listening to, to retry requesting updated from the server
#define BITHockeyNetworkDidBecomeReachableNotification @"BITHockeyNetworkDidBecomeReachable" #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_BUNDLE @"HockeySDKResources.bundle"
#define BITHOCKEYSDK_URL @"https://sdk.hockeyapp.net/" #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 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] #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 kBITTextLabelAlignmentRight NSTextAlignmentRight
#define kBITLineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle #define kBITLineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle
#endif #endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */
#endif //HockeySDK_HockeySDKPrivate_h #endif //HockeySDK_HockeySDKPrivate_h

View File

@ -106,6 +106,7 @@
1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */; }; 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */; };
1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */; }; 1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */; };
1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.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 */; }; 1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */; };
1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */; }; 1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */; };
1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerPrivate.h; sourceTree = "<group>"; };
@ -546,6 +548,7 @@
1EC69F5D1615001500808FD9 /* BITHockeyManagerPrivate.h */, 1EC69F5D1615001500808FD9 /* BITHockeyManagerPrivate.h */,
1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */, 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */,
1E71509A15B5C76F004E88FF /* HockeySDK.h */, 1E71509A15B5C76F004E88FF /* HockeySDK.h */,
1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */,
); );
name = Classes; name = Classes;
path = ../Classes; path = ../Classes;
@ -625,6 +628,7 @@
1EC69F601615001500808FD9 /* BITHockeyManagerPrivate.h in Headers */, 1EC69F601615001500808FD9 /* BITHockeyManagerPrivate.h in Headers */,
E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */, E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */,
1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */, 1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */,
1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */,
1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */, 1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */,
1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */, 1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */,
1E94F9E116E91330006570AD /* BITStoreUpdateManager.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 4. Double tab in the `HockeySDKLib` column and add the following two values
$(inherited) $(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) 5. Setup JMC as described in the [JMC instructions](https://developer.atlassian.com/display/JMC/Enabling+JIRA+Mobile+Connect)
6. Sign in to HockeyApp 6. Sign in to HockeyApp