diff --git a/Classes/BITAuthenticator.m b/Classes/BITAuthenticator.m index 4ff122b6..5a04d64d 100644 --- a/Classes/BITAuthenticator.m +++ b/Classes/BITAuthenticator.m @@ -36,6 +36,7 @@ #import "BITAuthenticationViewController.h" #import "BITHockeyAppClient.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITHockeyBaseManagerPrivate.h" #include @@ -105,12 +106,13 @@ - (void)authenticateInstallation { [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(authenticateInstallation) object:nil]; [self performSelector:@selector(authenticateInstallation) withObject:nil afterDelay:0.1]; } else { - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: + switch ([BITHockeyHelper applicationState]) { + case BITApplicationStateActive: [self authenticate]; break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: + case BITApplicationStateBackground: + case BITApplicationStateInactive: + case BITApplicationStateUnknown: // do nothing, wait for active state break; } @@ -743,7 +745,7 @@ + (void)email:(NSString *__autoreleasing *)email andIUID:(NSString *__autoreleas #pragma mark - Private helpers - (void)alertOnFailureStoringTokenInKeychain { - if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { + if ([BITHockeyHelper applicationState] != BITApplicationStateActive) { return; } diff --git a/Classes/BITChannel.m b/Classes/BITChannel.m index 9ae21866..fcac8489 100644 --- a/Classes/BITChannel.m +++ b/Classes/BITChannel.m @@ -6,6 +6,7 @@ #import "BITHockeyManager.h" #import "BITChannelPrivate.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITTelemetryContext.h" #import "BITTelemetryData.h" #import "BITEnvelope.h" @@ -257,11 +258,17 @@ - (void)resetQueue { #pragma mark - Adding to queue - (void)enqueueTelemetryItem:(BITTelemetryData *)item { - + [self enqueueTelemetryItem:item completionHandler:nil]; +} + +- (void)enqueueTelemetryItem:(BITTelemetryData *)item completionHandler:(nullable void (^)(void))completionHandler { if (!item) { // Item is nil: Do not enqueue item and abort operation. BITHockeyLogWarning(@"WARNING: TelemetryItem was nil."); + if(completionHandler) { + completionHandler(); + } return; } @@ -278,6 +285,11 @@ - (void)enqueueTelemetryItem:(BITTelemetryData *)item { if (![strongSelf timerIsRunning]) { [strongSelf startTimer]; } + + if(completionHandler) { + completionHandler(); + } + return; } @@ -285,9 +297,10 @@ - (void)enqueueTelemetryItem:(BITTelemetryData *)item { @synchronized(self) { NSDictionary *dict = [strongSelf dictionaryForTelemetryData:item]; [strongSelf appendDictionaryToEventBuffer:dict]; - UIApplication *application = [UIApplication sharedApplication]; + // If the app is running in the background. + BOOL applicationIsInBackground = ([BITHockeyHelper applicationState] == BITApplicationStateBackground); if (strongSelf.dataItemCount >= strongSelf.maxBatchSize || - (application && application.applicationState == UIApplicationStateBackground)) { + (applicationIsInBackground)) { // Case 2: Max batch count has been reached or the app is running in the background, so write queue to disk and delete all items. [strongSelf persistDataItemQueue:&BITTelemetryEventBuffer]; @@ -298,6 +311,10 @@ - (void)enqueueTelemetryItem:(BITTelemetryData *)item { [strongSelf startTimer]; } } + + if(completionHandler) { + completionHandler(); + } } }); } diff --git a/Classes/BITChannelPrivate.h b/Classes/BITChannelPrivate.h index 386bff9e..97c836f7 100644 --- a/Classes/BITChannelPrivate.h +++ b/Classes/BITChannelPrivate.h @@ -109,6 +109,15 @@ void bit_resetEventBuffer(char *__nonnull*__nonnull eventBuffer); */ - (BOOL)isQueueBusy; +/** + * Enqueue a telemetry item. This is for testing purposes where we actually use the completion handler. + * + * @param completionHandler The completion handler that will be called after enqueuing a BITTelemetryData object. + * + * @discussion intended for testing purposes. + */ +- (void)enqueueTelemetryItem:(BITTelemetryData *)item completionHandler:(nullable void (^)(void))completionHandler; + @end NS_ASSUME_NONNULL_END diff --git a/Classes/BITCrashManager.m b/Classes/BITCrashManager.m index 6c3088c5..5164b7cf 100644 --- a/Classes/BITCrashManager.m +++ b/Classes/BITCrashManager.m @@ -37,6 +37,7 @@ #import "HockeySDKPrivate.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITHockeyAppClient.h" #import "BITCrashManager.h" @@ -1052,8 +1053,7 @@ - (void)triggerDelayedProcessing { */ - (void)invokeDelayedProcessing { #if !defined (HOCKEYSDK_CONFIGURATION_ReleaseCrashOnlyExtensions) - if (!bit_isRunningInAppExtension() && - [[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { + if ([BITHockeyHelper applicationState] != BITApplicationStateActive) { return; } #endif @@ -1277,7 +1277,7 @@ - (void)startManager { } #if !defined (HOCKEYSDK_CONFIGURATION_ReleaseCrashOnlyExtensions) - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) { + if ([BITHockeyHelper applicationState] != BITApplicationStateActive) { [self appEnteredForeground]; } #else diff --git a/Classes/BITFeedbackListViewController.m b/Classes/BITFeedbackListViewController.m index ebee7473..09d05230 100644 --- a/Classes/BITFeedbackListViewController.m +++ b/Classes/BITFeedbackListViewController.m @@ -716,6 +716,10 @@ - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSIn #pragma mark - ListViewCellDelegate - (void)listCell:(id) __unused cell didSelectAttachment:(BITFeedbackMessageAttachment *)attachment { + if (!self.cachedPreviewItems){ + [self refreshPreviewItems]; + } + QLPreviewController *previewController = [[QLPreviewController alloc] init]; previewController.dataSource = self; @@ -739,10 +743,6 @@ - (void)refreshPreviewItems { } - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *) __unused controller { - if (!self.cachedPreviewItems){ - [self refreshPreviewItems]; - } - return self.cachedPreviewItems.count; } diff --git a/Classes/BITFeedbackManager.m b/Classes/BITFeedbackManager.m index 3fd48394..caaa619a 100644 --- a/Classes/BITFeedbackManager.m +++ b/Classes/BITFeedbackManager.m @@ -42,6 +42,7 @@ #import "HockeySDKNullability.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITHockeyAppClient.h" #define kBITFeedbackUserDataAsked @"HockeyFeedbackUserDataAsked" @@ -131,7 +132,7 @@ - (void)didBecomeActiveActions { - (void)didEnterBackgroundActions { self.didEnterBackgroundState = NO; - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { + if ([BITHockeyHelper applicationState] == BITApplicationStateBackground) { self.didEnterBackgroundState = YES; } } @@ -270,15 +271,16 @@ - (void)startManager { [self isiOS10PhotoPolicySet]; // we are already delayed, so the notification already came in and this won't invoked twice - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: + switch ([BITHockeyHelper applicationState]) { + case BITApplicationStateActive: // we did startup, so yes we are coming from background self.didEnterBackgroundState = YES; [self didBecomeActiveActions]; break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: + case BITApplicationStateBackground: + case BITApplicationStateInactive: + case BITApplicationStateUnknown: // do nothing, wait for active state break; } diff --git a/Classes/BITHockeyHelper+Application.h b/Classes/BITHockeyHelper+Application.h new file mode 100644 index 00000000..e7397ba6 --- /dev/null +++ b/Classes/BITHockeyHelper+Application.h @@ -0,0 +1,48 @@ +#import +#import + +#import "BITHockeyHelper.h" +/* + * Workaround for exporting symbols from category object files. + */ +extern NSString *BITHockeyHelperApplicationCategory; + +/** + * App states + */ +typedef NS_ENUM(NSInteger, BITApplicationState) { + + /** + * Application is active. + */ + BITApplicationStateActive = UIApplicationStateActive, + + /** + * Application is inactive. + */ + BITApplicationStateInactive = UIApplicationStateInactive, + + /** + * Application is in background. + */ + BITApplicationStateBackground = UIApplicationStateBackground, + + /** + * Application state can't be determined. + */ + BITApplicationStateUnknown +}; + +@interface BITHockeyHelper (Application) + +/** + * Get current application state. + * + * @return Current state of the application or BITApplicationStateUnknown while the state can't be determined. + * + * @discussion The application state may not be available everywhere. Application extensions doesn't have it for instance, + * in that case the BITApplicationStateUnknown value is returned. + */ ++ (BITApplicationState)applicationState; + +@end diff --git a/Classes/BITHockeyHelper+Application.m b/Classes/BITHockeyHelper+Application.m new file mode 100644 index 00000000..1a31bc2e --- /dev/null +++ b/Classes/BITHockeyHelper+Application.m @@ -0,0 +1,43 @@ +#import "BITHockeyHelper+Application.h" + +/* + * Workaround for exporting symbols from category object files. + */ +NSString *BITHockeyHelperApplicationCategory; + +@implementation BITHockeyHelper (Application) + ++ (BITApplicationState)applicationState { + + // App extensions must not access sharedApplication. + if (!bit_isRunningInAppExtension()) { + + __block BITApplicationState state; + dispatch_block_t block = ^{ + state = (BITApplicationState)[[self class] sharedAppState]; + }; + + if ([NSThread isMainThread]) { + block(); + } else { + dispatch_sync(dispatch_get_main_queue(), block); + } + + return state; + } + return BITApplicationStateUnknown; +} + ++ (UIApplication *)sharedApplication { + + // Compute selector at runtime for more discretion. + SEL sharedAppSel = NSSelectorFromString(@"sharedApplication"); + return ((UIApplication * (*)(id, SEL))[[UIApplication class] methodForSelector:sharedAppSel])([UIApplication class], + sharedAppSel); +} + ++ (UIApplicationState)sharedAppState { + return [[[[self class] sharedApplication] valueForKey:@"applicationState"] longValue]; +} + +@end diff --git a/Classes/BITHockeyHelper.m b/Classes/BITHockeyHelper.m index 47147ddc..c4d6a1cc 100644 --- a/Classes/BITHockeyHelper.m +++ b/Classes/BITHockeyHelper.m @@ -27,7 +27,7 @@ */ -#import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITKeychainUtils.h" #import "HockeySDK.h" #import "HockeySDKPrivate.h" @@ -43,6 +43,15 @@ @implementation BITHockeyHelper +/** + * @discussion + * Workaround for exporting symbols from category object files. + * See article https://medium.com/ios-os-x-development/categories-in-static-libraries-78e41f8ddb96#.aedfl1kl0 + */ +__attribute__((used)) static void importCategories() { + [NSString stringWithFormat:@"%@", BITHockeyHelperApplicationCategory]; +} + + (BOOL)isURLSessionSupported { id nsurlsessionClass = NSClassFromString(@"NSURLSessionUploadTask"); BOOL isUrlSessionSupported = (nsurlsessionClass && !bit_isRunningInAppExtension()); diff --git a/Classes/BITMetricsManager.m b/Classes/BITMetricsManager.m index 7b959b8c..d7dbeeec 100644 --- a/Classes/BITMetricsManager.m +++ b/Classes/BITMetricsManager.m @@ -6,6 +6,7 @@ #import "BITTelemetryContext.h" #import "BITMetricsManagerPrivate.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "HockeySDKPrivate.h" #import "BITChannelPrivate.h" #import "BITEventData.h" @@ -199,7 +200,8 @@ - (void)trackEventWithName:(nonnull NSString *)eventName { // If the app is running in the background. UIApplication *application = [UIApplication sharedApplication]; - if (application && application.applicationState == UIApplicationStateBackground) { + BOOL applicationIsInBackground = ([BITHockeyHelper applicationState] == BITApplicationStateBackground); + if (applicationIsInBackground) { [self.channel createBackgroundTaskWhileDataIsSending:application withWaitingGroup:group]; } } @@ -228,7 +230,8 @@ - (void)trackEventWithName:(nonnull NSString *)eventName // If the app is running in the background. UIApplication *application = [UIApplication sharedApplication]; - if (application && application.applicationState == UIApplicationStateBackground) { + BOOL applicationIsInBackground = ([BITHockeyHelper applicationState] == BITApplicationStateBackground); + if (applicationIsInBackground) { [self.channel createBackgroundTaskWhileDataIsSending:application withWaitingGroup:group]; } } diff --git a/Classes/BITStoreUpdateManager.m b/Classes/BITStoreUpdateManager.m index 6873e92b..65e06a7c 100644 --- a/Classes/BITStoreUpdateManager.m +++ b/Classes/BITStoreUpdateManager.m @@ -34,6 +34,7 @@ #import "HockeySDKPrivate.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITHockeyBaseManagerPrivate.h" #import "BITStoreUpdateManagerPrivate.h" @@ -416,12 +417,13 @@ - (void)startManager { [self registerObservers]; // we are already delayed, so the notification already came in and this won't invoked twice - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: + switch ([BITHockeyHelper applicationState]) { + case BITApplicationStateActive: [self didBecomeActiveActions]; break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: + case BITApplicationStateBackground: + case BITApplicationStateInactive: + case BITApplicationStateUnknown: // do nothing, wait for active state break; } diff --git a/Classes/BITUpdateManager.m b/Classes/BITUpdateManager.m index ea143160..c52bf7b9 100644 --- a/Classes/BITUpdateManager.m +++ b/Classes/BITUpdateManager.m @@ -36,6 +36,7 @@ #import "HockeySDKPrivate.h" #import "BITHockeyHelper.h" +#import "BITHockeyHelper+Application.h" #import "BITHockeyBaseManagerPrivate.h" #import "BITUpdateManagerPrivate.h" @@ -141,7 +142,7 @@ - (void)didBecomeActiveActions { - (void)didEnterBackgroundActions { self.didEnterBackgroundState = NO; - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { + if ([BITHockeyHelper applicationState] == BITApplicationStateBackground) { self.didEnterBackgroundState = YES; } } @@ -867,7 +868,7 @@ - (void)startManager { [self checkExpiryDateReached]; if (![self expiryDateReached]) { if ([self isCheckForUpdateOnLaunch] && [self shouldCheckForUpdates]) { - if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) return; + if ([BITHockeyHelper applicationState] != BITApplicationStateActive) return; [self performSelector:@selector(checkForUpdate) withObject:nil afterDelay:1.0]; } diff --git a/Documentation/Guides/Changelog.md b/Documentation/Guides/Changelog.md index c8aa2406..57b675a9 100644 --- a/Documentation/Guides/Changelog.md +++ b/Documentation/Guides/Changelog.md @@ -1,9 +1,11 @@ -## 5.0.1 +## 5.1.0 - [FEATURE] Add Turkish localization thanks to [Ozgur](https://github.com/ozgur).[#478](https://github.com/bitstadium/HockeySDK-iOS/pull/478) - [FEATURE] Add support to detect low memory and OS kill heuristics for extensions. Thx to [Dave Weston](https://github.com/dtweston) for this! [#470](https://github.com/bitstadium/HockeySDK-iOS/pull/470) - [IMPROVEMENT] Support tracking events in the background. [#475](https://github.com/bitstadium/HockeySDK-iOS/pull/475) - [FIX] Improvements around thread-safety and concurrency for Metrics. [#471](https://github.com/bitstadium/HockeySDK-iOS/pull/471) [#479](https://github.com/bitstadium/HockeySDK-iOS/pull/479) +- [FIX] Fix runtime warnings of Xcode 9's main thread checker tool. [#484](https://github.com/bitstadium/HockeySDK-iOS/pull/484) +- [FIX] Fix caching of previews for attachments to Feedback. [#487](https://github.com/bitstadium/HockeySDK-iOS/pull/487) ## 5.0.0 diff --git a/Documentation/Guides/Installation & Setup.md b/Documentation/Guides/Installation & Setup.md index 547e0e47..ef92c990 100644 --- a/Documentation/Guides/Installation & Setup.md +++ b/Documentation/Guides/Installation & Setup.md @@ -3,9 +3,9 @@ [![Version](http://cocoapod-badges.herokuapp.com/v/HockeySDK/badge.png)](http://cocoadocs.org/docsets/HockeySDK) [![Slack Status](https://slack.hockeyapp.net/badge.svg)](https://slack.hockeyapp.net) -## Version 5.0.1 +## Version 5.1.0 -- [Changelog](http://www.hockeyapp.net/help/sdk/ios/5.0.1/docs/docs/Changelog.html) +- [Changelog](http://www.hockeyapp.net/help/sdk/ios/5.1.0/docs/docs/Changelog.html) **NOTE** If your are using the binary integration of our SDK, make sure that the `HockeySDKResources.bundle` inside the `HockeySDK.embeddedframework`-folder has been added to your application. @@ -821,7 +821,7 @@ To check if data is send properly to HockeyApp and also see some additional SDK ## 4. Documentation -Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/5.0.1/index.html). +Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/5.1.0/index.html). ## 5.Troubleshooting @@ -835,7 +835,7 @@ Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/ Make sure none of the following files are copied into your app bundle, check under app target, `Build Phases`, `Copy Bundle Resources` or in the `.app` bundle after building: - `HockeySDK.framework` (except if you build a dynamic framework version of the SDK yourself!) - - `de.bitstadium.HockeySDK-iOS-5.0.1.docset` + - `de.bitstadium.HockeySDK-iOS-5.1.0.docset` ### Features are not working as expected diff --git a/Documentation/HockeySDK/.jazzy.yaml b/Documentation/HockeySDK/.jazzy.yaml index 19fd9312..55f6973c 100644 --- a/Documentation/HockeySDK/.jazzy.yaml +++ b/Documentation/HockeySDK/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../Themes/apple module: HockeySDK -module_version: 5.0.1 +module_version: 5.1.0 author: Microsoft Corp author_url: https://www.microsoft.com diff --git a/HockeySDK-Source.podspec b/HockeySDK-Source.podspec index d6de56e3..4fac8aa1 100644 --- a/HockeySDK-Source.podspec +++ b/HockeySDK-Source.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'HockeySDK-Source' - s.version = '5.0.1' + s.version = '5.1.0' s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.' s.description = <<-DESC @@ -25,7 +25,7 @@ Pod::Spec.new do |s| s.frameworks = 'CoreGraphics', 'CoreTelephony', 'CoreText', 'MobileCoreServices', 'Photos', 'QuartzCore', 'QuickLook', 'Security', 'SystemConfiguration', 'UIKit' s.libraries = 'c++', 'z' s.vendored_frameworks = 'Vendor/CrashReporter.framework' - s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"105\\"" BITHOCKEY_C_BUILD="\\"105\\""} } + s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"106\\"" BITHOCKEY_C_BUILD="\\"106\\""} } s.resource_bundle = { 'HockeySDKResources' => ['Resources/*.png', 'Resources/*.lproj'] } s.preserve_paths = 'Resources', 'Support' s.private_header_files = 'Classes/*Private.h' diff --git a/HockeySDK.podspec b/HockeySDK.podspec index e0b46b33..3649e099 100644 --- a/HockeySDK.podspec +++ b/HockeySDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'HockeySDK' - s.version = '5.0.1' + s.version = '5.1.0' s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.' s.description = <<-DESC diff --git a/README.md b/README.md index d4df9196..32e1466b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Version](http://cocoapod-badges.herokuapp.com/v/HockeySDK/badge.png)](http://cocoadocs.org/docsets/HockeySDK) [![Slack Status](https://slack.hockeyapp.net/badge.svg)](https://slack.hockeyapp.net) -## Version 5.0.0 +## Version 5.1.0 HockeySDK-iOS implements support for using HockeyApp in your iOS applications. @@ -23,13 +23,13 @@ The following features are currently supported: ## 1. Setup -It is super easy to use HockeyApp in your iOS app. Have a look at our [documentation](https://www.hockeyapp.net/help/sdk/ios/5.0.0/index.html) and onboard your app within minutes. +It is super easy to use HockeyApp in your iOS app. Have a look at our [documentation](https://www.hockeyapp.net/help/sdk/ios/5.1.0/index.html) and onboard your app within minutes. ## 2. Documentation -Please visit [our landing page](https://www.hockeyapp.net/help/sdk/ios/5.0.0/index.html) as a starting point for all of our documentation. +Please visit [our landing page](https://www.hockeyapp.net/help/sdk/ios/5.1.0/index.html) as a starting point for all of our documentation. -Please check out our [changelog](http://www.hockeyapp.net/help/sdk/ios/5.0.0/changelog.html), as well as our [troubleshooting section](https://www.hockeyapp.net/help/sdk/ios/5.0.0/installation--setup.html#troubleshooting). +Please check out our [changelog](http://www.hockeyapp.net/help/sdk/ios/5.1.0/changelog.html), as well as our [troubleshooting section](https://www.hockeyapp.net/help/sdk/ios/5.1.0/installation--setup.html#troubleshooting). ## 3. Contributing @@ -53,4 +53,4 @@ You must sign a [Contributor License Agreement](https://cla.microsoft.com/) befo ## 4. Contact -If you have further questions or are running into trouble that cannot be resolved by any of the steps [in our troubleshooting section](https://www.hockeyapp.net/help/sdk/ios/5.0.0/installation--setup.html#troubleshooting), feel free to open an issue here, contact us at [support@hockeyapp.net](mailto:support@hockeyapp.net) or join our [Slack](https://slack.hockeyapp.net). +If you have further questions or are running into trouble that cannot be resolved by any of the steps [in our troubleshooting section](https://www.hockeyapp.net/help/sdk/ios/5.1.0/installation--setup.html#troubleshooting), feel free to open an issue here, contact us at [support@hockeyapp.net](mailto:support@hockeyapp.net) or join our [Slack](https://slack.hockeyapp.net). diff --git a/Support/HockeySDK.xcodeproj/project.pbxproj b/Support/HockeySDK.xcodeproj/project.pbxproj index 07f706ad..37132695 100644 --- a/Support/HockeySDK.xcodeproj/project.pbxproj +++ b/Support/HockeySDK.xcodeproj/project.pbxproj @@ -395,8 +395,6 @@ 80A4662F1C58F4DF00199909 /* BITCrashReportTextFormatterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A4662D1C58F4DF00199909 /* BITCrashReportTextFormatterPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 80B1C4EE1C8A6F950057A5CB /* BITUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 8034E6671BA31D7C00D83A30 /* BITUser.h */; }; 80B1C4EF1C8A72620057A5CB /* HockeySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EB6173F1B0A30480035A986 /* HockeySDK.framework */; }; - 80CA63891C67BD5400362DBF /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 80CA63881C67BD5400362DBF /* libOCMock.a */; }; - 80CA638A1C67BD5400362DBF /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 80CA63881C67BD5400362DBF /* libOCMock.a */; }; 80CA638F1C67F78000362DBF /* BITUpdateManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 80CA638E1C67F78000362DBF /* BITUpdateManagerTests.m */; }; 80CA63901C67F78000362DBF /* BITUpdateManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 80CA638E1C67F78000362DBF /* BITUpdateManagerTests.m */; }; 846A901F1B20B0EB0076BB80 /* BITCrashCXXExceptionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 846A901D1B20B0EB0076BB80 /* BITCrashCXXExceptionHandler.h */; }; @@ -428,6 +426,12 @@ 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */; }; 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */; }; B2156DD51D9DED7F0001DDDC /* AppIconPlaceHolder.png in Resources */ = {isa = PBXBuildFile; fileRef = B2156DD01D9DED7F0001DDDC /* AppIconPlaceHolder.png */; }; + B286E5141FDB394F00BF4133 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B286E5131FDB394F00BF4133 /* OCMock.framework */; }; + B286E5151FDB394F00BF4133 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B286E5131FDB394F00BF4133 /* OCMock.framework */; }; + B2B2DB0A1FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B2DB081FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h */; }; + B2B2DB0B1FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B2DB091FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m */; }; + B2B2DB0C1FD9E48000FB7FF2 /* BITHockeyHelper+Application.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B2DB081FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h */; }; + B2B2DB0D1FDA0FD100FB7FF2 /* BITHockeyHelper+Application.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B2DB091FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m */; }; B2D1CE5E1D9DE55900CA74A8 /* FeedbackPlaceholder.png in Resources */ = {isa = PBXBuildFile; fileRef = B2D1CE5D1D9DE4F700CA74A8 /* FeedbackPlaceholder.png */; }; E405266217A2AD300096359C /* BITFeedbackManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; E40E0B0917DA19DC005E38C1 /* BITHockeyAppClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */; }; @@ -696,33 +700,12 @@ 807F75041C9AEDAA009E6DCB /* BITChannelPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITChannelPrivate.h; sourceTree = ""; }; 8080576B1C5818AE00BB319D /* BITHockeyLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyLogger.h; sourceTree = ""; }; 8080576C1C5818AE00BB319D /* BITHockeyLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyLogger.m; sourceTree = ""; }; - 80807B7D1C46BF0100F4C44F /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = ""; }; - 80807B7E1C46BF0100F4C44F /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = ""; }; - 80807B7F1C46BF0100F4C44F /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = ""; }; - 80807B801C46BF0100F4C44F /* OCMFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMFunctions.h; sourceTree = ""; }; - 80807B811C46BF0100F4C44F /* OCMLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMLocation.h; sourceTree = ""; }; - 80807B821C46BF0100F4C44F /* OCMMacroState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMMacroState.h; sourceTree = ""; }; - 80807B831C46BF0100F4C44F /* OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMock.h; sourceTree = ""; }; - 80807B841C46BF0100F4C44F /* OCMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockObject.h; sourceTree = ""; }; - 80807B851C46BF0100F4C44F /* OCMRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMRecorder.h; sourceTree = ""; }; - 80807B861C46BF0100F4C44F /* OCMStubRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMStubRecorder.h; sourceTree = ""; }; 80807B8A1C46BF2F00F4C44F /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrestIOS.framework; path = HockeySDKTests/Vendor/OCHamcrestIOS.framework; sourceTree = SOURCE_ROOT; }; 80807B8B1C46BF2F00F4C44F /* OCMockitoIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMockitoIOS.framework; path = HockeySDKTests/Vendor/OCMockitoIOS.framework; sourceTree = SOURCE_ROOT; }; - 8084416B1C20617C00644A40 /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = ""; }; - 8084416C1C20617C00644A40 /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = ""; }; - 8084416D1C20617C00644A40 /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = ""; }; - 8084416E1C20617C00644A40 /* OCMFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMFunctions.h; sourceTree = ""; }; - 8084416F1C20617C00644A40 /* OCMLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMLocation.h; sourceTree = ""; }; - 808441701C20617C00644A40 /* OCMMacroState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMMacroState.h; sourceTree = ""; }; - 808441711C20617C00644A40 /* OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMock.h; sourceTree = ""; }; - 808441721C20617C00644A40 /* OCMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockObject.h; sourceTree = ""; }; - 808441731C20617C00644A40 /* OCMRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMRecorder.h; sourceTree = ""; }; - 808441741C20617C00644A40 /* OCMStubRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMStubRecorder.h; sourceTree = ""; }; 8085BB831CBF1FA60023FD9B /* AppIcon.exotic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon.exotic.png; sourceTree = ""; }; 8085BB841CBF1FA60023FD9B /* AppIcon.exotic@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon.exotic@2x.png"; sourceTree = ""; }; 8085BB891CBF216E0023FD9B /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; 80A4662D1C58F4DF00199909 /* BITCrashReportTextFormatterPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashReportTextFormatterPrivate.h; sourceTree = ""; }; - 80CA63881C67BD5400362DBF /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libOCMock.a; sourceTree = ""; }; 80CA638E1C67F78000362DBF /* BITUpdateManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateManagerTests.m; sourceTree = ""; }; 846A901D1B20B0EB0076BB80 /* BITCrashCXXExceptionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashCXXExceptionHandler.h; sourceTree = ""; }; 846A901E1B20B0EB0076BB80 /* BITCrashCXXExceptionHandler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BITCrashCXXExceptionHandler.mm; sourceTree = ""; }; @@ -759,9 +742,12 @@ B22DFC001FC74ECB0052AF19 /* module_feedbackonly.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module_feedbackonly.modulemap; sourceTree = ""; }; B24AB7651FC8C1EC00AAAD1B /* HockeySDKDistribution.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = HockeySDKDistribution.sh; sourceTree = ""; }; B280F42D1DDF999F006179A7 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = fa.lproj/HockeySDK.strings; sourceTree = ""; }; + B286E5131FDB394F00BF4133 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = Vendor/OCMock.framework; sourceTree = ""; }; B29855421D85EB5D007FF452 /* allfeatures.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = allfeatures.xcconfig; sourceTree = ""; }; B29855431D85EBAC007FF452 /* module_allfeatures.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module_allfeatures.modulemap; sourceTree = ""; }; B2B04C141FBFB1D100EC12F5 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/HockeySDK.strings; sourceTree = ""; }; + B2B2DB081FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BITHockeyHelper+Application.h"; sourceTree = ""; }; + B2B2DB091FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "BITHockeyHelper+Application.m"; sourceTree = ""; }; B2D1CE5D1D9DE4F700CA74A8 /* FeedbackPlaceholder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = FeedbackPlaceholder.png; sourceTree = ""; }; BEE0207C16C5107E004426EA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/HockeySDK.strings; sourceTree = ""; }; E328A2FB1C88B344008BB527 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/HockeySDK.strings; sourceTree = ""; }; @@ -802,10 +788,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + B286E5141FDB394F00BF4133 /* OCMock.framework in Frameworks */, 1EA1170016F4D32C001C015C /* libHockeySDK.a in Frameworks */, 80807B8C1C46BF2F00F4C44F /* OCHamcrestIOS.framework in Frameworks */, 80807B8E1C46BF2F00F4C44F /* OCMockitoIOS.framework in Frameworks */, - 80CA63891C67BD5400362DBF /* libOCMock.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -821,10 +807,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + B286E5151FDB394F00BF4133 /* OCMock.framework in Frameworks */, 80B1C4EF1C8A72620057A5CB /* HockeySDK.framework in Frameworks */, 80807B8D1C46BF2F00F4C44F /* OCHamcrestIOS.framework in Frameworks */, 80807B8F1C46BF2F00F4C44F /* OCMockitoIOS.framework in Frameworks */, - 80CA638A1C67BD5400362DBF /* libOCMock.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -959,6 +945,8 @@ 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */, 1E49A4A5161222B900463151 /* BITHockeyHelper.h */, 1E49A4A6161222B900463151 /* BITHockeyHelper.m */, + B2B2DB081FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h */, + B2B2DB091FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m */, 8080576B1C5818AE00BB319D /* BITHockeyLogger.h */, 8042A7F41CC507B700B603FE /* BITHockeyLoggerPrivate.h */, 8080576C1C5818AE00BB319D /* BITHockeyLogger.m */, @@ -1186,39 +1174,10 @@ name = "Contract Files"; sourceTree = ""; }; - 80807B7C1C46BF0100F4C44F /* OCMock */ = { - isa = PBXGroup; - children = ( - 80807B7D1C46BF0100F4C44F /* NSNotificationCenter+OCMAdditions.h */, - 80807B7E1C46BF0100F4C44F /* OCMArg.h */, - 80807B7F1C46BF0100F4C44F /* OCMConstraint.h */, - 80807B801C46BF0100F4C44F /* OCMFunctions.h */, - 80807B811C46BF0100F4C44F /* OCMLocation.h */, - 80807B821C46BF0100F4C44F /* OCMMacroState.h */, - 80807B831C46BF0100F4C44F /* OCMock.h */, - 80807B841C46BF0100F4C44F /* OCMockObject.h */, - 80807B851C46BF0100F4C44F /* OCMRecorder.h */, - 80807B861C46BF0100F4C44F /* OCMStubRecorder.h */, - 80CA63881C67BD5400362DBF /* libOCMock.a */, - 8084416B1C20617C00644A40 /* NSNotificationCenter+OCMAdditions.h */, - 8084416C1C20617C00644A40 /* OCMArg.h */, - 8084416D1C20617C00644A40 /* OCMConstraint.h */, - 8084416E1C20617C00644A40 /* OCMFunctions.h */, - 8084416F1C20617C00644A40 /* OCMLocation.h */, - 808441701C20617C00644A40 /* OCMMacroState.h */, - 808441711C20617C00644A40 /* OCMock.h */, - 808441721C20617C00644A40 /* OCMockObject.h */, - 808441731C20617C00644A40 /* OCMRecorder.h */, - 808441741C20617C00644A40 /* OCMStubRecorder.h */, - ); - name = OCMock; - path = Vendor/OCMock; - sourceTree = ""; - }; 80807B891C46BF0600F4C44F /* Frameworks */ = { isa = PBXGroup; children = ( - 80807B7C1C46BF0100F4C44F /* OCMock */, + B286E5131FDB394F00BF4133 /* OCMock.framework */, 80807B8A1C46BF2F00F4C44F /* OCHamcrestIOS.framework */, 80807B8B1C46BF2F00F4C44F /* OCMockitoIOS.framework */, ); @@ -1398,6 +1357,7 @@ 1E49A4B5161222B900463151 /* BITHockeyBaseManagerPrivate.h in Headers */, 9774BCFF192CB20A00085EB5 /* BITActivityIndicatorButton.h in Headers */, 8034E6961BA3214300D83A30 /* BITCategoryContainer.h in Headers */, + B2B2DB0A1FD9E47B00FB7FF2 /* BITHockeyHelper+Application.h in Headers */, 1E49A4BE161222B900463151 /* BITHockeyHelper.h in Headers */, 973EC8BB18BDE29800DBFFBB /* BITArrowImageAnnotation.h in Headers */, 1E49A4C4161222B900463151 /* BITAppStoreHeader.h in Headers */, @@ -1432,6 +1392,7 @@ 1EB617731B0A30E90035A986 /* BITAuthenticator.h in Headers */, 1EB617751B0A30F50035A986 /* BITCrashManager.h in Headers */, 8034E62C1BA31AD600D83A30 /* BITTelemetryData.h in Headers */, + B2B2DB0C1FD9E48000FB7FF2 /* BITHockeyHelper+Application.h in Headers */, 1EB6176D1B0A30CC0035A986 /* BITWebTableViewCell.h in Headers */, 8034E68A1BA31D7C00D83A30 /* BITUser.h in Headers */, 80668C751C8CD93B00A133D3 /* BITEventData.h in Headers */, @@ -1842,6 +1803,7 @@ 1EB92E741955C38C0093C8B6 /* BITHockeyAttachment.m in Sources */, E48A3DED17B3ED1C00924C3D /* BITAuthenticator.m in Sources */, 1E49A4DB161222D400463151 /* HockeySDKPrivate.m in Sources */, + B2B2DB0B1FD9E47B00FB7FF2 /* BITHockeyHelper+Application.m in Sources */, 1E754E5D1621FBB70070AB92 /* BITCrashManager.m in Sources */, 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */, 1EF95CA7162CB037000AE3AD /* BITFeedbackActivity.m in Sources */, @@ -1946,6 +1908,7 @@ 1EB617901B0A31510035A986 /* BITActivityIndicatorButton.m in Sources */, 1EB6178E1B0A31510035A986 /* BITFeedbackActivity.m in Sources */, 1EB617661B0A30B60035A986 /* BITKeychainUtils.m in Sources */, + B2B2DB0D1FDA0FD100FB7FF2 /* BITHockeyHelper+Application.m in Sources */, 1EB617741B0A30EE0035A986 /* BITAuthenticator.m in Sources */, 1EB6176A1B0A30C30035A986 /* BITAppStoreHeader.m in Sources */, 1EB617831B0A31350035A986 /* BITImageAnnotation.m in Sources */, @@ -2161,6 +2124,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2288,7 +2252,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2465,6 +2429,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2522,6 +2487,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2681,6 +2647,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2915,7 +2882,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -2979,7 +2946,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -3044,7 +3011,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -3174,6 +3141,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -3301,7 +3269,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -3449,6 +3417,7 @@ ); INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", @@ -3575,7 +3544,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/HockeySDKTests/Vendor"; INFOPLIST_FILE = "HockeySDK FrameworkTests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(PROJECT_DIR)/HockeySDKTests/Vendor"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/HockeySDKTests/Vendor/**", diff --git a/Support/HockeySDKBase.xcconfig b/Support/HockeySDKBase.xcconfig index e3494ce6..f1ba785c 100644 --- a/Support/HockeySDKBase.xcconfig +++ b/Support/HockeySDKBase.xcconfig @@ -1,5 +1,5 @@ -BUILD_NUMBER = 105 -VERSION_STRING = 5.0.1 +BUILD_NUMBER = 106 +VERSION_STRING = 5.1.0 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS) HOCKEYSDK_CONFIGURATION_$(CONFIGURATION) BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\"" BIT_ARM_ARCHS = armv7 armv7s arm64 BIT_SIM_ARCHS = x86_64 i386 diff --git a/Support/HockeySDKTests/BITChannelTests.m b/Support/HockeySDKTests/BITChannelTests.m index f8cd514e..b6e1c6f6 100644 --- a/Support/HockeySDKTests/BITChannelTests.m +++ b/Support/HockeySDKTests/BITChannelTests.m @@ -44,12 +44,21 @@ - (void)testEnqueueEnvelopeWithOneEnvelopeAndJSONStream { self.sut.maxBatchSize = 3; BITTelemetryData *testData = [BITTelemetryData new]; - [self.sut enqueueTelemetryItem:testData]; + __weak XCTestExpectation *expectation = [self expectationWithDescription:@"Enqueued a telemetry item."]; - dispatch_sync(self.sut.dataItemsOperations, ^{ + [self.sut enqueueTelemetryItem:testData completionHandler:^{ assertThatUnsignedInteger(self.sut.dataItemCount, equalToUnsignedInteger(1)); XCTAssertTrue(strlen(BITTelemetryEventBuffer) > 0); - }); + + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:5.0 + handler:^(NSError *_Nullable error) { + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } + }]; } - (void)testEnqueueEnvelopeWithMultipleEnvelopesAndJSONStream { @@ -60,23 +69,50 @@ - (void)testEnqueueEnvelopeWithMultipleEnvelopesAndJSONStream { assertThatUnsignedInteger(self.sut.dataItemCount, equalToUnsignedInteger(0)); - [self.sut enqueueTelemetryItem:testData]; - dispatch_sync(self.sut.dataItemsOperations, ^{ + __weak XCTestExpectation *expectation = [self expectationWithDescription:@"Enqueued a telemetry item."]; + + [self.sut enqueueTelemetryItem:testData completionHandler:^{ assertThatUnsignedInteger(self.sut.dataItemCount, equalToUnsignedInteger(1)); XCTAssertTrue(strlen(BITTelemetryEventBuffer) > 0); - }); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:5.0 + handler:^(NSError *_Nullable error) { + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } + }]; - [self.sut enqueueTelemetryItem:testData]; - dispatch_sync(self.sut.dataItemsOperations, ^{ + expectation = [self expectationWithDescription:@"Enqueued a second telemetry item."]; + + [self.sut enqueueTelemetryItem:testData completionHandler:^{ assertThatUnsignedInteger(self.sut.dataItemCount, equalToUnsignedInteger(2)); XCTAssertTrue(strlen(BITTelemetryEventBuffer) > 0); - }); + [expectation fulfill]; + }]; - [self.sut enqueueTelemetryItem:testData]; - dispatch_sync(self.sut.dataItemsOperations, ^{ + [self waitForExpectationsWithTimeout:5.0 + handler:^(NSError *_Nullable error) { + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } + }]; + + expectation = [self expectationWithDescription:@"Enqueued a third telemetry item."]; + + [self.sut enqueueTelemetryItem:testData completionHandler:^{ assertThatUnsignedInteger(self.sut.dataItemCount, equalToUnsignedInteger(0)); XCTAssertTrue(strcmp(BITTelemetryEventBuffer, "") == 0); - }); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:5.0 + handler:^(NSError *_Nullable error) { + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } + }]; } #pragma mark - Safe JSON Stream Tests diff --git a/Support/HockeySDKTests/BITHockeyLoggerTests.m b/Support/HockeySDKTests/BITHockeyLoggerTests.m index 70f27c4a..9df13886 100644 --- a/Support/HockeySDKTests/BITHockeyLoggerTests.m +++ b/Support/HockeySDKTests/BITHockeyLoggerTests.m @@ -1,5 +1,5 @@ #import -#import "OCMock.h" +#import #import "BITHockeyLoggerPrivate.h" static char *const testFile = "Filename"; diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCArgumentCaptor.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCArgumentCaptor.h index 79f442f2..3e0fdc54 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCArgumentCaptor.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCArgumentCaptor.h @@ -9,7 +9,7 @@ * @discussion This matcher captures all values it was given to match, and always evaluates to * YES. Use it to capture argument values for further assertions. * - * Unlike other matchers which are usually transient, this matcher should be created outside of any + * Unlike other matchers, this matcher is not idempotent. It should be created outside of any * expression so that it can be queried for the items it captured. */ @interface HCArgumentCaptor : HCIsAnything @@ -31,4 +31,10 @@ */ @property (nonatomic, readonly) NSArray *allValues; +/*! + * @abstract Determines whether subsequent matched values are captured. + * @discussion YES by default. + */ +@property (nonatomic, assign) BOOL captureEnabled; + @end diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h index 47554ab3..40f91392 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h @@ -8,7 +8,7 @@ /*! * @header * Assertion macros for using matchers in testing frameworks. - * Unmet assertions are reported to the @ref HCTestFailureReporterChain. + * Unmet assertions are reported to the HCTestFailureReporterChain. */ @@ -25,7 +25,7 @@ FOUNDATION_EXPORT void HC_assertThatWithLocation(id testCase, id actual, id assertWithTimeout polls a value provided by a block to asynchronously * satisfy the matcher. The block is evaluated repeatedly for an actual value, which is passed to * the matcher for evaluation. If the matcher is not satisfied within the timeout, it is reported to - * the @ref HCTestFailureReporterChain. + * the HCTestFailureReporterChain. * - * An easy way of providing the actualBlock is to use the macro @ref thatEventually. + * An easy way of providing the actualBlock is to use the macro thatEventually. * * Name Clash
* In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym @@ -74,7 +74,9 @@ FOUNDATION_EXPORT void HC_assertWithTimeoutAndLocation(id testCase, NSTimeInterv * @abstract thatEventually(actual) - * Evaluates actual value at future time. * @param actual The object to evaluate as the actual value. - * @discussion Wraps actual in a block so that it can be repeatedly evaluated by @ref assertWithTimeout. + * @discussion Wraps actual in a block so that it can be repeatedly evaluated by + * assertWithTimeout. + * * Name Clash
* In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym * HC_thatEventually instead. diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h index b21bfd08..d9ed7247 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h @@ -6,7 +6,7 @@ /*! - * @abstract Base class for all @ref HCDescription implementations. + * @abstract Base class for all HCDescription implementations. */ @interface HCBaseDescription : NSObject @end diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h index 85fc0670..c02c8b34 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h @@ -8,10 +8,10 @@ /*! - * @abstract Base class for all @ref HCMatcher implementations. + * @abstract Base class for all HCMatcher implementations. * @discussion Simple matchers can just subclass HCBaseMatcher and implement -matches: * and -describeTo:. But if the matching algorithm has several "no match" paths, - * consider subclassing @ref HCDiagnosingMatcher instead. + * consider subclassing HCDiagnosingMatcher instead. */ @interface HCBaseMatcher : NSObject diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCCollect.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCCollect.h index ff95c159..06786524 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCCollect.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCCollect.h @@ -12,17 +12,9 @@ */ FOUNDATION_EXPORT NSArray * HCCollectItems(id item, va_list args); -/*! - * @abstract Returns an array of matchers from a variable-length comma-separated list terminated - * by nil. - * @discussion Each item is wrapped in @ref HCWrapInMatcher to transform non-matcher items into - * equality matchers. - */ -FOUNDATION_EXPORT NSArray * HCCollectMatchers(id item, va_list args); - /*! * @abstract Returns an array of matchers from a mixed array of items and matchers. - * @discussion Each item is wrapped in @ref HCWrapInMatcher to transform non-matcher items into - * equality matchers. + * @discussion Each item is wrapped in HCWrapInMatcher to transform non-matcher items into equality + * matchers. */ FOUNDATION_EXPORT NSArray * HCWrapIntoMatchers(NSArray *items); diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h index 80b12a27..e2a4775a 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h @@ -5,8 +5,8 @@ /*! - * @abstract A description of an @ref HCMatcher. - * @discussion An @ref HCMatcher will describe itself to a description which can later be used for reporting. + * @abstract A description of an HCMatcher. + * @discussion An HCMatcher will describe itself to a description which can later be used for reporting. */ @protocol HCDescription @@ -18,7 +18,7 @@ /*! * @abstract Appends description of specified value to description. - * @discussion If the value implements the @ref HCSelfDescribing protocol, then it will be used. + * @discussion If the value implements the HCSelfDescribing protocol, then it will be used. * @return self, for chaining. */ - (id )appendDescriptionOf:(id)value; diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDiagnosingMatcher.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDiagnosingMatcher.h index a806f07e..cf1793fc 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDiagnosingMatcher.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCDiagnosingMatcher.h @@ -8,7 +8,7 @@ * @abstract Base class for matchers that generate mismatch descriptions during the matching. * @discussion Some matching algorithms have several "no match" paths. It helps to make the mismatch * description as precise as possible, but we don't want to have to repeat the matching logic to do - * so. For such matchers, subclass HCDiagnosingMatcher and implement @ref HCMatcher's + * so. For such matchers, subclass HCDiagnosingMatcher and implement HCMatcher's * -matches:describingMismatchTo:. */ @interface HCDiagnosingMatcher : HCBaseMatcher diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualCompressingWhiteSpace.h similarity index 61% rename from Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h rename to Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualCompressingWhiteSpace.h index 50948e27..948c7a88 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualCompressingWhiteSpace.h @@ -5,21 +5,21 @@ /*! - * @abstract Tests if a string is equal to another string, ignoring any changes in whitespace. + * @abstract Tests if a string is equal to another string, when whitespace differences are (mostly) ignored. */ -@interface HCIsEqualIgnoringWhiteSpace : HCBaseMatcher +@interface HCIsEqualCompressingWhiteSpace : HCBaseMatcher - (instancetype)initWithString:(NSString *)string; @end -FOUNDATION_EXPORT id HC_equalToIgnoringWhiteSpace(NSString *expectedString); +FOUNDATION_EXPORT id HC_equalToCompressingWhiteSpace(NSString *expectedString); #ifndef HC_DISABLE_SHORT_SYNTAX /*! * @abstract Creates a matcher for NSStrings that matches when the examined string is equal to the - * specified expected string, ignoring differences in whitespace. + * specified expected string, when whitespace differences are (mostly) ignored. * @param expectedString The expected value of matched strings. (Must not be nil.) * @discussion To be exact, the following whitespace rules are applied: *
    @@ -28,14 +28,14 @@ FOUNDATION_EXPORT id HC_equalToIgnoringWhiteSpace(NSString *expectedString); *
* * Example
- *
assertThat(\@"   my\tfoo  bar ", equalToIgnoringWhiteSpace(\@" my  foo bar"))
+ *
assertThat(\@"   my\tfoo  bar ", equalToCompressingWhiteSpace(\@" my  foo bar"))
* * Name Clash
* In the event of a name clash, #define HC_DISABLE_SHORT_SYNTAX and use the synonym - * HC_equalToIgnoringWhiteSpace instead. + * HC_equalToCompressingWhiteSpace instead. */ -static inline id equalToIgnoringWhiteSpace(NSString *expectedString) +static inline id equalToCompressingWhiteSpace(NSString *expectedString) { - return HC_equalToIgnoringWhiteSpace(expectedString); + return HC_equalToCompressingWhiteSpace(expectedString); } #endif diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h index adf8379d..74d26096 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h @@ -9,8 +9,8 @@ * @discussion A matcher is able to describe itself to give feedback when it fails. * * HCMatcher implementations should not directly implement this protocol. Instead, extend the - * @ref HCBaseMatcher class, which will ensure that the HCMatcher API can grow to support new - * features and remain compatible with all HCMatcher implementations. + * HCBaseMatcher class, which will ensure that the HCMatcher API can grow to support new features + * and remain compatible with all HCMatcher implementations. */ @protocol HCMatcher diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h index bbd40a2a..79a7cf52 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h @@ -7,7 +7,7 @@ /*! - * @abstract An @ref HCDescription that is stored as a string. + * @abstract An HCDescription that is stored as a string. */ @interface HCStringDescription : HCBaseDescription { diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h index 8188f20e..3a371edd 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h @@ -13,8 +13,8 @@ * @abstract Test case used to run test method. * @discussion Can be nil. * - * For unmet OCHamcrest assertions, if the assertion was @ref assertThat or @ref assertWithTimeout, - * testCase will be the test case instance. + * For unmet OCHamcrest assertions, if the assertion was assertThat or + * assertWithTimeout, testCase will be the test case instance. */ @property (nonatomic, strong, readonly) id testCase; diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h index 1aadbc34..73814a0e 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h @@ -26,7 +26,7 @@ #import #import #import -#import +#import #import #import #import diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS index d4caa5c3..7bbfef85 100644 Binary files a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS and b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS differ diff --git a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist index 725b1e2a..510cd709 100644 --- a/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist +++ b/Support/HockeySDKTests/Vendor/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 15C50 + 15G31 CFBundleDevelopmentRegion English CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 5.2.0 + 6.0.0 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,21 +25,21 @@ MacOSX CFBundleVersion - 5.2.0 + 6.0.0 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 7C68 + 7D1014 DTPlatformVersion GM DTSDKBuild - 15C43 + 15E60 DTSDKName macosx10.11 DTXcode - 0720 + 0731 DTXcodeBuild - 7C68 + 7D1014 NSHumanReadableCopyright Copyright © 2016 hamcrest.org diff --git a/Support/HockeySDKTests/Vendor/OCMock/NSNotificationCenter+OCMAdditions.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/NSNotificationCenter+OCMAdditions.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/NSNotificationCenter+OCMAdditions.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/NSNotificationCenter+OCMAdditions.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMArg.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMArg.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMArg.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMArg.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMConstraint.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMConstraint.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMConstraint.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMConstraint.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMFunctions.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMFunctions.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMFunctions.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMFunctions.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMLocation.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMLocation.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMLocation.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMLocation.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMMacroState.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMMacroState.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMMacroState.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMMacroState.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMRecorder.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMRecorder.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMRecorder.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMRecorder.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMStubRecorder.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMStubRecorder.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMStubRecorder.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMStubRecorder.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMock.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMock.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMock.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMock.h diff --git a/Support/HockeySDKTests/Vendor/OCMock/OCMockObject.h b/Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMockObject.h similarity index 100% rename from Support/HockeySDKTests/Vendor/OCMock/OCMockObject.h rename to Support/HockeySDKTests/Vendor/OCMock.framework/Headers/OCMockObject.h diff --git a/Support/HockeySDKTests/Vendor/OCMock.framework/Info.plist b/Support/HockeySDKTests/Vendor/OCMock.framework/Info.plist new file mode 100644 index 00000000..66c586c6 Binary files /dev/null and b/Support/HockeySDKTests/Vendor/OCMock.framework/Info.plist differ diff --git a/Support/HockeySDKTests/Vendor/OCMock.framework/Modules/module.modulemap b/Support/HockeySDKTests/Vendor/OCMock.framework/Modules/module.modulemap new file mode 100644 index 00000000..6e988909 --- /dev/null +++ b/Support/HockeySDKTests/Vendor/OCMock.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module OCMock { + umbrella header "OCMock.h" + + export * + module * { export * } +} diff --git a/Support/HockeySDKTests/Vendor/OCMock.framework/OCMock b/Support/HockeySDKTests/Vendor/OCMock.framework/OCMock new file mode 100755 index 00000000..914d439c Binary files /dev/null and b/Support/HockeySDKTests/Vendor/OCMock.framework/OCMock differ diff --git a/Support/HockeySDKTests/Vendor/OCMock.framework/_CodeSignature/CodeResources b/Support/HockeySDKTests/Vendor/OCMock.framework/_CodeSignature/CodeResources new file mode 100644 index 00000000..674fa809 --- /dev/null +++ b/Support/HockeySDKTests/Vendor/OCMock.framework/_CodeSignature/CodeResources @@ -0,0 +1,286 @@ + + + + + files + + Headers/NSNotificationCenter+OCMAdditions.h + + pFhPKZzX9HM07wFLAmeFF43SG6Q= + + Headers/OCMArg.h + + eXH6306vchCAoMs2SOo05ZgYfyE= + + Headers/OCMConstraint.h + + FRbc5GvcXMiiCFl1PgW3OvepNYA= + + Headers/OCMFunctions.h + + CyzP7WkZ+OOYELFA5WsZaWO5kxg= + + Headers/OCMLocation.h + + qjhhruQ18SiTXjsRjKGUD1eCM/g= + + Headers/OCMMacroState.h + + qJJTF+b6OeQggRm1gDg8v6UIzpM= + + Headers/OCMRecorder.h + + diyYzxk+iLvIqBa+mGMSxgNx5Hs= + + Headers/OCMStubRecorder.h + + jk2b9AjWJ1SRj0ju7Uu+U3C3uT8= + + Headers/OCMock.h + + 93kK1Oj0uYy5eT+GMc5l1IOm+E0= + + Headers/OCMockObject.h + + oZEWGlkN3u1F+7KPHoLi3MYbU0k= + + Info.plist + + DDVjfbJWFO2giIrM67R4Jq7++Po= + + Modules/module.modulemap + + C/zv4wGd+b+kg7T2q31cWmGbPX0= + + + files2 + + Headers/NSNotificationCenter+OCMAdditions.h + + hash + + pFhPKZzX9HM07wFLAmeFF43SG6Q= + + hash2 + + NnTKrGNP4Njk3yKcEvglOeMqccpGA9jHyC1RQu2S0bQ= + + + Headers/OCMArg.h + + hash + + eXH6306vchCAoMs2SOo05ZgYfyE= + + hash2 + + FxqsQiA69iuoHCr4qLNLeUjs0O3nrlM1/y8HFUrRbz0= + + + Headers/OCMConstraint.h + + hash + + FRbc5GvcXMiiCFl1PgW3OvepNYA= + + hash2 + + 0qapY/YQKe0npD4guJXAxrg3PnEIeEK3R+PqW7jEc+A= + + + Headers/OCMFunctions.h + + hash + + CyzP7WkZ+OOYELFA5WsZaWO5kxg= + + hash2 + + hBleQ1IlJVlSU7ObC/o8aWPiF4aS3tbjdPPSQX0oFaI= + + + Headers/OCMLocation.h + + hash + + qjhhruQ18SiTXjsRjKGUD1eCM/g= + + hash2 + + D0ep+94IDMx4jNTEObjRjXjOa9o5HWtU3kALeNvMrMk= + + + Headers/OCMMacroState.h + + hash + + qJJTF+b6OeQggRm1gDg8v6UIzpM= + + hash2 + + rO0jxkQY4xa4ynAHSysMSsK1THpZIjLVGO6JAfyb0p8= + + + Headers/OCMRecorder.h + + hash + + diyYzxk+iLvIqBa+mGMSxgNx5Hs= + + hash2 + + Dl5hWJ6yAPLAbm0qYTbZ1Q8WT49qyklAUoxBRUazevU= + + + Headers/OCMStubRecorder.h + + hash + + jk2b9AjWJ1SRj0ju7Uu+U3C3uT8= + + hash2 + + tZQFBeJpaclUrRhLP7S8Tkw6To79q4BFCgy956ocR8U= + + + Headers/OCMock.h + + hash + + 93kK1Oj0uYy5eT+GMc5l1IOm+E0= + + hash2 + + 4QEeRNlGEjQ8CTfq7Bl5lcdkpjb35WQvT9VvDQott8Q= + + + Headers/OCMockObject.h + + hash + + oZEWGlkN3u1F+7KPHoLi3MYbU0k= + + hash2 + + JIb6/mFaQhSB0mM9ofM5Stqa5aJe7pwiDsuBf9FZV00= + + + Modules/module.modulemap + + hash + + C/zv4wGd+b+kg7T2q31cWmGbPX0= + + hash2 + + B5k13RUp+z7jVfSrgRPFafuYH6CF8A6V1qosS2Lm+1k= + + + + rules + + ^ + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^ + + weight + 20 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Support/HockeySDKTests/Vendor/OCMock/libOCMock.a b/Support/HockeySDKTests/Vendor/OCMock/libOCMock.a deleted file mode 100644 index 3e806539..00000000 Binary files a/Support/HockeySDKTests/Vendor/OCMock/libOCMock.a and /dev/null differ