diff --git a/Blog/AppDelegate.m b/Blog/AppDelegate.m index afe5558..00f6f45 100644 --- a/Blog/AppDelegate.m +++ b/Blog/AppDelegate.m @@ -6,7 +6,6 @@ // Copyright (c) 2014 Guru Logic Inc. All rights reserved. // -#import #import #import "AppDelegate.h" #import "PostsViewController.h" @@ -29,7 +28,6 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self setupCodeInjection]; - [self setupHockeySDK]; UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; UINavigationController *navigationController = splitViewController.viewControllers.lastObject; navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem; @@ -52,12 +50,6 @@ } } -- (void)setupHockeySDK { - [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"15435e2af912c96d7068c47c7bc6438f"]; - [[BITHockeyManager sharedHockeyManager] startManager]; - [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation]; -} - - (PostsViewController *)postsViewController { UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; UINavigationController *navigationController = splitViewController.viewControllers.firstObject; diff --git a/Podfile b/Podfile index 3a9c534..71ac7d9 100644 --- a/Podfile +++ b/Podfile @@ -20,9 +20,7 @@ target :Blog do pod 'dyci' pod 'FontAwesome+iOS', :git => 'https://github.com/alexdrone/ios-fontawesome.git' pod 'MBProgressHUD' - pod 'HockeySDK' end target :BlogTests do - link_with :Blog end diff --git a/Podfile.lock b/Podfile.lock index 6a62850..21e0f69 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -8,7 +8,6 @@ PODS: - dyci/Injections (= 0.1.5.6) - dyci/Injections (0.1.5.6) - FontAwesome+iOS (0.0.1) - - HockeySDK (3.6.4) - libextobjc (0.4.1): - libextobjc/EXTADT (= 0.4.1) - libextobjc/EXTConcreteProtocol (= 0.4.1) @@ -100,7 +99,6 @@ PODS: DEPENDENCIES: - dyci - FontAwesome+iOS (from `https://github.com/alexdrone/ios-fontawesome.git`) - - HockeySDK - libextobjc - Mantle - MBProgressHUD @@ -121,7 +119,6 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa dyci: 099c2e6dc98abb8f21b370cabbf1443ff700608a FontAwesome+iOS: c6d3bbd2856b9633028d316d56133d45fb6a6cb0 - HockeySDK: c07cdd580296737edcd0963e292c19885a53f563 libextobjc: a650fc1bf489a3d3a9bc2e621efa3e1006fc5471 Mantle: d7c75b6fb789b20f7ae30cd0d09435fe545896ff MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad @@ -130,4 +127,4 @@ SPEC CHECKSUMS: PromiseKit: b333c1baae651ed1fdfb4f6f4ef18d7ca118931e YapDatabase: 13566c87dc9226a0f15d755edba08e8ad94cac9f -COCOAPODS: 0.37.1 +COCOAPODS: 0.37.2 diff --git a/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h b/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h deleted file mode 120000 index 1092ef4..0000000 --- a/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITActivityIndicatorButton.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h b/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h deleted file mode 120000 index 9f0ad14..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAppStoreHeader.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h b/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h deleted file mode 120000 index 63cd39e..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAppVersionMetaInfo.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h deleted file mode 120000 index 6542c24..0000000 --- a/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITArrowImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h b/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h deleted file mode 120000 index 46d598e..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAttributedLabel.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h b/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h deleted file mode 120000 index 176aa93..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAuthenticationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticator.h b/Pods/Headers/Private/HockeySDK/BITAuthenticator.h deleted file mode 120000 index 8567561..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAuthenticator.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAuthenticator.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h b/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h deleted file mode 120000 index 395268d..0000000 --- a/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAuthenticator_Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h deleted file mode 120000 index 2fce628..0000000 --- a/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITBlurImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h b/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h deleted file mode 120000 index eaa8a5a..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashDetails.h b/Pods/Headers/Private/HockeySDK/BITCrashDetails.h deleted file mode 120000 index 3a4bee4..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashDetails.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashDetails.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h b/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h deleted file mode 120000 index bc65016..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashDetailsPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManager.h b/Pods/Headers/Private/HockeySDK/BITCrashManager.h deleted file mode 120000 index 5934a08..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h deleted file mode 120000 index 7073977..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h deleted file mode 120000 index 0f28b49..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h b/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h deleted file mode 120000 index 54e7a2a..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashMetaData.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h b/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h deleted file mode 120000 index 1c17bf6..0000000 --- a/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashReportTextFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h b/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h deleted file mode 120000 index 3ee3761..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackActivity.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h deleted file mode 120000 index a9c8fc9..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackComposeViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h deleted file mode 120000 index a58e9d5..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h deleted file mode 120000 index e4f2686..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackListViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h deleted file mode 120000 index 2c45f93..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackListViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h deleted file mode 120000 index 4ece7c3..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h deleted file mode 120000 index fe85d70..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h deleted file mode 120000 index 6acade0..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h b/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h deleted file mode 120000 index b82c3e2..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackMessage.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h b/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h deleted file mode 120000 index dddfc77..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackMessageAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h deleted file mode 120000 index 2c26411..0000000 --- a/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackUserDataViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h b/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h deleted file mode 120000 index 3b70d31..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHTTPOperation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h b/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h deleted file mode 120000 index b4c02e6..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyAppClient.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h b/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h deleted file mode 120000 index db05bcd..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h deleted file mode 120000 index 3cb9516..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyBaseManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h deleted file mode 120000 index 63fd2d7..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyBaseManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h deleted file mode 120000 index f8cd886..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyBaseViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h b/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h deleted file mode 120000 index eaacba3..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyHelper.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyManager.h b/Pods/Headers/Private/HockeySDK/BITHockeyManager.h deleted file mode 120000 index e010c80..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h deleted file mode 120000 index d7aa47b..0000000 --- a/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h deleted file mode 120000 index c46b085..0000000 --- a/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h b/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h deleted file mode 120000 index b9e1fb7..0000000 --- a/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITImageAnnotationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h b/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h deleted file mode 120000 index 761c8e8..0000000 --- a/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITKeychainUtils.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h deleted file mode 120000 index 4a4dadc..0000000 --- a/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITRectangleImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreButton.h b/Pods/Headers/Private/HockeySDK/BITStoreButton.h deleted file mode 120000 index 69a7ee1..0000000 --- a/Pods/Headers/Private/HockeySDK/BITStoreButton.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreButton.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h deleted file mode 120000 index 0cec214..0000000 --- a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h deleted file mode 120000 index 765a1d6..0000000 --- a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h deleted file mode 120000 index 3c10563..0000000 --- a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreUpdateManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManager.h b/Pods/Headers/Private/HockeySDK/BITUpdateManager.h deleted file mode 120000 index 213385f..0000000 --- a/Pods/Headers/Private/HockeySDK/BITUpdateManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h deleted file mode 120000 index 4774b1b..0000000 --- a/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h deleted file mode 120000 index ad5afaf..0000000 --- a/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h b/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h deleted file mode 120000 index ca187f0..0000000 --- a/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h b/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h deleted file mode 120000 index 5f4b1dc..0000000 --- a/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateViewControllerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h b/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h deleted file mode 120000 index 0827e6f..0000000 --- a/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITWebTableViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDK.h b/Pods/Headers/Private/HockeySDK/HockeySDK.h deleted file mode 120000 index d5ab803..0000000 --- a/Pods/Headers/Private/HockeySDK/HockeySDK.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/HockeySDK.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h b/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h deleted file mode 120000 index 41a8c4b..0000000 --- a/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/HockeySDKFeatureConfig.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h b/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h deleted file mode 120000 index 250c180..0000000 --- a/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/HockeySDKPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h b/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h deleted file mode 120000 index 1092ef4..0000000 --- a/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITActivityIndicatorButton.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h b/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h deleted file mode 120000 index 9f0ad14..0000000 --- a/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAppStoreHeader.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h b/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h deleted file mode 120000 index 63cd39e..0000000 --- a/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAppVersionMetaInfo.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h deleted file mode 120000 index 6542c24..0000000 --- a/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITArrowImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h b/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h deleted file mode 120000 index 46d598e..0000000 --- a/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAttributedLabel.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h b/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h deleted file mode 120000 index 176aa93..0000000 --- a/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAuthenticationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAuthenticator.h b/Pods/Headers/Public/HockeySDK/BITAuthenticator.h deleted file mode 120000 index 8567561..0000000 --- a/Pods/Headers/Public/HockeySDK/BITAuthenticator.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITAuthenticator.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h deleted file mode 120000 index 2fce628..0000000 --- a/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITBlurImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h b/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h deleted file mode 120000 index eaa8a5a..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashDetails.h b/Pods/Headers/Public/HockeySDK/BITCrashDetails.h deleted file mode 120000 index 3a4bee4..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashDetails.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashDetails.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashManager.h b/Pods/Headers/Public/HockeySDK/BITCrashManager.h deleted file mode 120000 index 5934a08..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h deleted file mode 120000 index 7073977..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h b/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h deleted file mode 120000 index 54e7a2a..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashMetaData.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h b/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h deleted file mode 120000 index 1c17bf6..0000000 --- a/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITCrashReportTextFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h b/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h deleted file mode 120000 index 3ee3761..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackActivity.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h deleted file mode 120000 index a9c8fc9..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackComposeViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h deleted file mode 120000 index a58e9d5..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h deleted file mode 120000 index e4f2686..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackListViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h deleted file mode 120000 index 2c45f93..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackListViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h b/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h deleted file mode 120000 index 4ece7c3..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h deleted file mode 120000 index fe85d70..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h b/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h deleted file mode 120000 index b82c3e2..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackMessage.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h b/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h deleted file mode 120000 index dddfc77..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackMessageAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h deleted file mode 120000 index 2c26411..0000000 --- a/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITFeedbackUserDataViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h b/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h deleted file mode 120000 index 3b70d31..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHTTPOperation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h b/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h deleted file mode 120000 index b4c02e6..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyAppClient.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h b/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h deleted file mode 120000 index db05bcd..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h b/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h deleted file mode 120000 index 3cb9516..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyBaseManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h b/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h deleted file mode 120000 index f8cd886..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyBaseViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h b/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h deleted file mode 120000 index eaacba3..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyHelper.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyManager.h b/Pods/Headers/Public/HockeySDK/BITHockeyManager.h deleted file mode 120000 index e010c80..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h deleted file mode 120000 index d7aa47b..0000000 --- a/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITHockeyManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h deleted file mode 120000 index c46b085..0000000 --- a/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h b/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h deleted file mode 120000 index b9e1fb7..0000000 --- a/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITImageAnnotationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h b/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h deleted file mode 120000 index 761c8e8..0000000 --- a/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITKeychainUtils.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h deleted file mode 120000 index 4a4dadc..0000000 --- a/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITRectangleImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreButton.h b/Pods/Headers/Public/HockeySDK/BITStoreButton.h deleted file mode 120000 index 69a7ee1..0000000 --- a/Pods/Headers/Public/HockeySDK/BITStoreButton.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreButton.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h deleted file mode 120000 index 0cec214..0000000 --- a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h deleted file mode 120000 index 765a1d6..0000000 --- a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITStoreUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateManager.h b/Pods/Headers/Public/HockeySDK/BITUpdateManager.h deleted file mode 120000 index 213385f..0000000 --- a/Pods/Headers/Public/HockeySDK/BITUpdateManager.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h deleted file mode 120000 index 4774b1b..0000000 --- a/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h b/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h deleted file mode 120000 index ca187f0..0000000 --- a/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITUpdateViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h b/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h deleted file mode 120000 index 0827e6f..0000000 --- a/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/BITWebTableViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/HockeySDK.h b/Pods/Headers/Public/HockeySDK/HockeySDK.h deleted file mode 120000 index d5ab803..0000000 --- a/Pods/Headers/Public/HockeySDK/HockeySDK.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/HockeySDK.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h b/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h deleted file mode 120000 index 41a8c4b..0000000 --- a/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h +++ /dev/null @@ -1 +0,0 @@ -../../../HockeySDK/Classes/HockeySDKFeatureConfig.h \ No newline at end of file diff --git a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h deleted file mode 100644 index 2c63322..0000000 --- a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2012-2014 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. - */ - -#import - -@interface BITActivityIndicatorButton : UIButton - -- (void)setShowsActivityIndicator:(BOOL)showsIndicator; - -@end diff --git a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m deleted file mode 100644 index 0096618..0000000 --- a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2012-2014 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. - */ - -#import "BITActivityIndicatorButton.h" - -@interface BITActivityIndicatorButton() - -@property (nonatomic, strong) UIActivityIndicatorView *indicator; -@property (nonatomic) BOOL indicatorVisible; - -@end - -@implementation BITActivityIndicatorButton - -- (void)setShowsActivityIndicator:(BOOL)showsIndicator { - if (self.indicatorVisible == showsIndicator){ - return; - } - - if (!self.indicator){ - self.indicator = [[UIActivityIndicatorView alloc] initWithFrame:self.bounds]; - [self addSubview:self.indicator]; - [self.indicator setColor:[UIColor blackColor]]; - } - - self.indicatorVisible = showsIndicator; - - if (showsIndicator){ - [self.indicator startAnimating]; - self.indicator.alpha = 1; - self.layer.borderWidth = 1; - self.layer.borderColor = [UIColor lightGrayColor].CGColor; - self.layer.cornerRadius = 5; - self.imageView.image = nil; - } else { - [self.indicator stopAnimating]; - self.layer.cornerRadius = 0; - self.indicator.alpha = 0; - self.layer.borderWidth = 0; - - } - -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - [self.indicator setFrame:self.bounds]; - -} - - -@end diff --git a/Pods/HockeySDK/Classes/BITAppStoreHeader.h b/Pods/HockeySDK/Classes/BITAppStoreHeader.h deleted file mode 100644 index b08ada4..0000000 --- a/Pods/HockeySDK/Classes/BITAppStoreHeader.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - - -#import - -#ifndef __IPHONE_6_1 -#define __IPHONE_6_1 60100 -#endif - - -/** - * Header style depending on the iOS version - */ -typedef NS_ENUM(NSUInteger, BITAppStoreHeaderStyle) { - /** - * Default is iOS 6 style - */ - BITAppStoreHeaderStyleDefault = 0, - /** - * Draw header in the iOS 7 style - */ - BITAppStoreHeaderStyleOS7 = 1 -}; - -@interface BITAppStoreHeader : UIView - -@property (nonatomic, copy) NSString *headerText; -@property (nonatomic, copy) NSString *subHeaderText; -@property (nonatomic, strong) UIImage *iconImage; -@property (nonatomic, assign) BITAppStoreHeaderStyle style; - -@end diff --git a/Pods/HockeySDK/Classes/BITAppStoreHeader.m b/Pods/HockeySDK/Classes/BITAppStoreHeader.m deleted file mode 100644 index 87a967f..0000000 --- a/Pods/HockeySDK/Classes/BITAppStoreHeader.m +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - - -#import "BITAppStoreHeader.h" -#import "BITHockeyHelper.h" -#import "HockeySDKPrivate.h" - - -#define kLightGrayColor BIT_RGBCOLOR(235, 235, 235) -#define kDarkGrayColor BIT_RGBCOLOR(186, 186, 186) -#define kWhiteBackgroundColorDefault BIT_RGBCOLOR(245, 245, 245) -#define kWhiteBackgroundColorOS7 BIT_RGBCOLOR(255, 255, 255) -#define kImageHeight 72 -#define kImageBorderRadius 12 -#define kImageBorderRadiusiOS7 16.5 -#define kImageLeftMargin 14 -#define kImageTopMargin 12 -#define kTextRow kImageTopMargin*2 + kImageHeight - -@implementation BITAppStoreHeader { - UILabel *_headerLabelView; - UILabel *_middleLabelView; -} - - -#pragma mark - NSObject - -- (instancetype)initWithFrame:(CGRect)frame { - if ((self = [super initWithFrame:frame])) { - self.autoresizingMask = UIViewAutoresizingFlexibleWidth; - self.backgroundColor = kWhiteBackgroundColorDefault; - self.style = BITAppStoreHeaderStyleDefault; - } - return self; -} - - -#pragma mark - UIView - -- (void)drawRect:(CGRect)rect { - CGRect bounds = self.bounds; - CGContextRef context = UIGraphicsGetCurrentContext(); - - if (self.style == BITAppStoreHeaderStyleDefault) { - // draw the gradient - NSArray *colors = [NSArray arrayWithObjects:(id)kDarkGrayColor.CGColor, (id)kLightGrayColor.CGColor, nil]; - CGGradientRef gradient = CGGradientCreateWithColors(CGColorGetColorSpace((__bridge CGColorRef)[colors objectAtIndex:0]), (__bridge CFArrayRef)colors, (CGFloat[2]){0, 1}); - CGPoint top = CGPointMake(CGRectGetMidX(bounds), bounds.size.height - 3); - CGPoint bottom = CGPointMake(CGRectGetMidX(bounds), CGRectGetMaxY(bounds)); - CGContextDrawLinearGradient(context, gradient, top, bottom, 0); - CGGradientRelease(gradient); - } else { - // draw the line - CGContextRef ctx = UIGraphicsGetCurrentContext(); - CGContextSetLineWidth(ctx, 1.0); - CGContextSetStrokeColorWithColor(ctx, kDarkGrayColor.CGColor); - CGContextMoveToPoint(ctx, 0, CGRectGetMaxY(bounds)); - CGContextAddLineToPoint( ctx, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds)); - CGContextStrokePath(ctx); - } - - // icon - [_iconImage drawAtPoint:CGPointMake(kImageLeftMargin, kImageTopMargin)]; - - [super drawRect:rect]; -} - - -- (void)layoutSubviews { - if (self.style == BITAppStoreHeaderStyleOS7) - self.backgroundColor = kWhiteBackgroundColorOS7; - - [super layoutSubviews]; - - CGFloat globalWidth = self.frame.size.width; - - // draw header name - UIColor *mainTextColor = BIT_RGBCOLOR(61, 61, 61); - UIColor *secondaryTextColor = BIT_RGBCOLOR(100, 100, 100); - UIFont *mainFont = [UIFont boldSystemFontOfSize:15]; - UIFont *secondaryFont = [UIFont systemFontOfSize:10]; - - if (!_headerLabelView) _headerLabelView = [[UILabel alloc] init]; - [_headerLabelView setFont:mainFont]; - [_headerLabelView setFrame:CGRectMake(kTextRow, kImageTopMargin, globalWidth-kTextRow, 20)]; - [_headerLabelView setTextColor:mainTextColor]; - [_headerLabelView setBackgroundColor:[UIColor clearColor]]; - [_headerLabelView setText:_headerText]; - [self addSubview:_headerLabelView]; - - // middle - if (!_middleLabelView) _middleLabelView = [[UILabel alloc] init]; - [_middleLabelView setFont:secondaryFont]; - [_middleLabelView setFrame:CGRectMake(kTextRow, kImageTopMargin + 17, globalWidth-kTextRow, 20)]; - [_middleLabelView setTextColor:secondaryTextColor]; - [_middleLabelView setBackgroundColor:[UIColor clearColor]]; - [_middleLabelView setText:_subHeaderText]; - [self addSubview:_middleLabelView]; -} - - -#pragma mark - Properties - -- (void)setHeaderText:(NSString *)anHeaderText { - if (_headerText != anHeaderText) { - _headerText = [anHeaderText copy]; - [self setNeedsDisplay]; - } -} - -- (void)setSubHeaderText:(NSString *)aSubHeaderText { - if (_subHeaderText != aSubHeaderText) { - _subHeaderText = [aSubHeaderText copy]; - [self setNeedsDisplay]; - } -} - -- (void)setIconImage:(UIImage *)anIconImage { - if (_iconImage != anIconImage) { - - // scale, make borders and reflection - _iconImage = bit_imageToFitSize(anIconImage, CGSizeMake(kImageHeight, kImageHeight), YES); - CGFloat radius = kImageBorderRadius; - if (self.style == BITAppStoreHeaderStyleOS7) - radius = kImageBorderRadiusiOS7; - _iconImage = bit_roundedCornerImage(_iconImage, radius, 0.0); - - [self setNeedsDisplay]; - } -} - -@end diff --git a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h deleted file mode 100644 index 2143e02..0000000 --- a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Author: Peter Steinberger - * Andreas Linde - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde, Peter Steinberger. - * 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. - */ - -#import - -@interface BITAppVersionMetaInfo : NSObject { -} -@property (nonatomic, copy) NSString *name; -@property (nonatomic, copy) NSString *version; -@property (nonatomic, copy) NSString *shortVersion; -@property (nonatomic, copy) NSString *minOSVersion; -@property (nonatomic, copy) NSString *notes; -@property (nonatomic, copy) NSDate *date; -@property (nonatomic, copy) NSNumber *size; -@property (nonatomic, copy) NSNumber *mandatory; -@property (nonatomic, copy) NSNumber *versionID; -@property (nonatomic, copy) NSDictionary *uuids; - -- (NSString *)nameAndVersionString; -- (NSString *)versionString; -- (NSString *)dateString; -- (NSString *)sizeInMB; -- (NSString *)notesOrEmptyString; -- (void)setDateWithTimestamp:(NSTimeInterval)timestamp; -- (BOOL)isValid; -- (BOOL)hasUUID:(NSString *)uuid; -- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo; - -+ (BITAppVersionMetaInfo *)appVersionMetaInfoFromDict:(NSDictionary *)dict; - -@end diff --git a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m deleted file mode 100644 index 24b4216..0000000 --- a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Author: Peter Steinberger - * Andreas Linde - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde, Peter Steinberger. - * 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. - */ - -#import "BITAppVersionMetaInfo.h" -#import "HockeySDKPrivate.h" - - -@implementation BITAppVersionMetaInfo - - -#pragma mark - Static - -+ (BITAppVersionMetaInfo *)appVersionMetaInfoFromDict:(NSDictionary *)dict { - BITAppVersionMetaInfo *appVersionMetaInfo = [[[self class] alloc] init]; - - if ([dict isKindOfClass:[NSDictionary class]]) { - appVersionMetaInfo.name = [dict objectForKey:@"title"]; - appVersionMetaInfo.version = [dict objectForKey:@"version"]; - appVersionMetaInfo.shortVersion = [dict objectForKey:@"shortversion"]; - appVersionMetaInfo.minOSVersion = [dict objectForKey:@"minimum_os_version"]; - [appVersionMetaInfo setDateWithTimestamp:[[dict objectForKey:@"timestamp"] doubleValue]]; - appVersionMetaInfo.size = [dict objectForKey:@"appsize"]; - appVersionMetaInfo.notes = [dict objectForKey:@"notes"]; - appVersionMetaInfo.mandatory = [dict objectForKey:@"mandatory"]; - appVersionMetaInfo.versionID = [dict objectForKey:@"id"]; - appVersionMetaInfo.uuids = [dict objectForKey:@"uuids"]; - } - - return appVersionMetaInfo; -} - - -#pragma mark - NSObject - -- (BOOL)isEqual:(id)other { - if (other == self) - return YES; - if (!other || ![other isKindOfClass:[self class]]) - return NO; - return [self isEqualToAppVersionMetaInfo:other]; -} - -- (BOOL)isEqualComparingString:(NSString *)stringA withString:(NSString *)stringB { - if ([stringA isKindOfClass:[NSString class]] && [stringB isKindOfClass:[NSString class]]) { - return [stringA isEqualToString:stringB]; - } - - return NO; -} - -- (BOOL)isEqualComparingNumber:(NSNumber *)numberA withNumber:(NSNumber *)numberB { - if ([numberA isKindOfClass:[NSNumber class]] && [numberB isKindOfClass:[NSNumber class]]) { - return [numberA isEqualToNumber:numberB]; - } - - return NO; -} - -- (BOOL)isEqualComparingDate:(NSDate *)dateA withDate:(NSDate *)dateB { - if ([dateA isKindOfClass:[NSDate class]] && [dateB isKindOfClass:[NSDate class]]) { - return [dateA isEqualToDate:dateB]; - } - - return NO; -} - -- (BOOL)isEqualComparingDictionary:(NSDictionary *)dictA withDate:(NSDictionary *)dictB { - if ([dictA isKindOfClass:[NSDictionary class]] && [dictB isKindOfClass:[NSDictionary class]]) { - return [dictA isEqualToDictionary:dictB]; - } - - return NO; -} - -- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo { - if (self == anAppVersionMetaInfo) - return YES; - if (![self isEqualComparingString:self.name withString:anAppVersionMetaInfo.name]) - return NO; - if (![self isEqualComparingString:self.version withString:anAppVersionMetaInfo.version]) - return NO; - if (![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion]) - return NO; - if (![self isEqualComparingString:self.minOSVersion withString:anAppVersionMetaInfo.minOSVersion]) - return NO; - if (![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes]) - return NO; - if (![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date]) - return NO; - if (![self isEqualComparingNumber:self.size withNumber:anAppVersionMetaInfo.size]) - return NO; - if (![self isEqualComparingNumber:self.mandatory withNumber:anAppVersionMetaInfo.mandatory]) - return NO; - if (![self isEqualComparingDictionary:self.uuids withDate:anAppVersionMetaInfo.uuids]) - return NO; - return YES; -} - - -#pragma mark - NSCoder - -- (void)encodeWithCoder:(NSCoder *)encoder { - [encoder encodeObject:self.name forKey:@"name"]; - [encoder encodeObject:self.version forKey:@"version"]; - [encoder encodeObject:self.shortVersion forKey:@"shortVersion"]; - [encoder encodeObject:self.minOSVersion forKey:@"minOSVersion"]; - [encoder encodeObject:self.notes forKey:@"notes"]; - [encoder encodeObject:self.date forKey:@"date"]; - [encoder encodeObject:self.size forKey:@"size"]; - [encoder encodeObject:self.mandatory forKey:@"mandatory"]; - [encoder encodeObject:self.versionID forKey:@"versionID"]; - [encoder encodeObject:self.uuids forKey:@"uuids"]; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder { - if ((self = [super init])) { - self.name = [decoder decodeObjectForKey:@"name"]; - self.version = [decoder decodeObjectForKey:@"version"]; - self.shortVersion = [decoder decodeObjectForKey:@"shortVersion"]; - self.minOSVersion = [decoder decodeObjectForKey:@"minOSVersion"]; - self.notes = [decoder decodeObjectForKey:@"notes"]; - self.date = [decoder decodeObjectForKey:@"date"]; - self.size = [decoder decodeObjectForKey:@"size"]; - self.mandatory = [decoder decodeObjectForKey:@"mandatory"]; - self.versionID = [decoder decodeObjectForKey:@"versionID"]; - self.uuids = [decoder decodeObjectForKey:@"uuids"]; - } - return self; -} - - -#pragma mark - Properties - -- (NSString *)nameAndVersionString { - NSString *appNameAndVersion = [NSString stringWithFormat:@"%@ %@", self.name, [self versionString]]; - return appNameAndVersion; -} - -- (NSString *)versionString { - NSString *shortString = ([self.shortVersion respondsToSelector:@selector(length)] && [self.shortVersion length]) ? [NSString stringWithFormat:@"%@", self.shortVersion] : @""; - NSString *versionString = [shortString length] ? [NSString stringWithFormat:@" (%@)", self.version] : self.version; - return [NSString stringWithFormat:@"%@ %@%@", BITHockeyLocalizedString(@"UpdateVersion"), shortString, versionString]; -} - -- (NSString *)dateString { - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - [formatter setDateStyle:NSDateFormatterMediumStyle]; - - return [formatter stringFromDate:self.date]; -} - -- (NSString *)sizeInMB { - if ([_size isKindOfClass: [NSNumber class]] && [_size doubleValue] > 0) { - double appSizeInMB = [_size doubleValue]/(1024*1024); - NSString *appSizeString = [NSString stringWithFormat:@"%.1f MB", appSizeInMB]; - return appSizeString; - } - - return @"0 MB"; -} - -- (void)setDateWithTimestamp:(NSTimeInterval)timestamp { - if (timestamp) { - NSDate *appDate = [NSDate dateWithTimeIntervalSince1970:timestamp]; - self.date = appDate; - } else { - self.date = nil; - } -} - -- (NSString *)notesOrEmptyString { - if (self.notes) { - return self.notes; - }else { - return [NSString string]; - } -} - - -// A valid app needs at least following properties: name, version, date -- (BOOL)isValid { - BOOL valid = [self.name length] && [self.version length] && self.date; - return valid; -} - -- (BOOL)hasUUID:(NSString *)uuid { - if (!uuid) return NO; - if (!self.uuids) return NO; - - __block BOOL hasUUID = NO; - - [self.uuids enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ - if (obj && [uuid compare:obj] == NSOrderedSame) { - hasUUID = YES; - *stop = YES; - } - }]; - - return hasUUID; -} -@end diff --git a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h deleted file mode 100644 index feeca76..0000000 --- a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITImageAnnotation.h" - -@interface BITArrowImageAnnotation : BITImageAnnotation - -@end diff --git a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m deleted file mode 100644 index ec7ccd9..0000000 --- a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITArrowImageAnnotation.h" - -#define kArrowPointCount 7 - - -@interface BITArrowImageAnnotation() - -@property (nonatomic, strong) CAShapeLayer *shapeLayer; -@property (nonatomic, strong) CAShapeLayer *strokeLayer; - -@end - -@implementation BITArrowImageAnnotation - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.shapeLayer = [CAShapeLayer layer]; - self.shapeLayer.strokeColor = [UIColor whiteColor].CGColor; - self.shapeLayer.lineWidth = 5; - self.shapeLayer.fillColor = [UIColor redColor].CGColor; - - self.strokeLayer = [CAShapeLayer layer]; - self.strokeLayer.strokeColor = [UIColor redColor].CGColor; - self.strokeLayer.lineWidth = 10; - self.strokeLayer.fillColor = [UIColor clearColor].CGColor; - [self.layer addSublayer:self.strokeLayer]; - - [self.layer addSublayer:self.shapeLayer]; - - - } - return self; -} - -- (void)buildShape { - CGFloat baseWidth = MAX(self.frame.size.width, self.frame.size.height); - CGFloat topHeight = MAX(baseWidth / 3.0f,10); - - - CGFloat lineWidth = MAX(baseWidth / 10.0f,3); - CGFloat startX, startY, endX, endY; - - CGRect boundRect = CGRectInset(self.bounds, 0, 0); - CGFloat arrowLength= sqrt(pow(CGRectGetWidth(boundRect), 2) + pow(CGRectGetHeight(boundRect), 2)); - if (arrowLength < 30){ - - CGFloat factor = 30.f/arrowLength; - - boundRect = CGRectApplyAffineTransform(boundRect, CGAffineTransformMakeScale(factor,factor)); - } - - if ( self.movedDelta.width < 0){ - startX = CGRectGetMinX(boundRect); - endX = CGRectGetMaxX(boundRect); - } else { - startX = CGRectGetMaxX(boundRect); - endX = CGRectGetMinX(boundRect); - - } - - if ( self.movedDelta.height < 0){ - startY = CGRectGetMinY(boundRect); - endY = CGRectGetMaxY(boundRect); - } else { - startY = CGRectGetMaxY(boundRect); - endY = CGRectGetMinY(boundRect); - - } - - - if (fabs(CGRectGetWidth(boundRect)) < 30 || fabs(CGRectGetHeight(boundRect)) < 30){ - CGFloat smallerOne = MIN(fabs(CGRectGetHeight(boundRect)), fabs(CGRectGetWidth(boundRect))); - - CGFloat factor = smallerOne/30.f; - - CGRectApplyAffineTransform(boundRect, CGAffineTransformMakeScale(factor,factor)); - } - - UIBezierPath *path = [self bezierPathWithArrowFromPoint:CGPointMake(endX, endY) toPoint:CGPointMake(startX, startY) tailWidth:lineWidth headWidth:topHeight headLength:topHeight]; - - self.shapeLayer.path = path.CGPath; - self.strokeLayer.path = path.CGPath; - [CATransaction begin]; - [CATransaction setAnimationDuration:0]; - self.strokeLayer.lineWidth = lineWidth/1.5f; - self.shapeLayer.lineWidth = lineWidth / 3.0f; - - [CATransaction commit]; - -} - - -- (UIBezierPath *)bezierPathWithArrowFromPoint:(CGPoint)startPoint - toPoint:(CGPoint)endPoint - tailWidth:(CGFloat)tailWidth - headWidth:(CGFloat)headWidth - headLength:(CGFloat)headLength { - CGFloat length = hypotf(endPoint.x - startPoint.x, endPoint.y - startPoint.y); - - CGPoint points[kArrowPointCount]; - [self getAxisAlignedArrowPoints:points - forLength:length - tailWidth:tailWidth - headWidth:headWidth - headLength:headLength]; - - CGAffineTransform transform = [self transformForStartPoint:startPoint - endPoint:endPoint - length:length]; - - CGMutablePathRef cgPath = CGPathCreateMutable(); - CGPathAddLines(cgPath, &transform, points, sizeof points / sizeof *points); - CGPathCloseSubpath(cgPath); - - UIBezierPath *uiPath = [UIBezierPath bezierPathWithCGPath:cgPath]; - CGPathRelease(cgPath); - return uiPath; -} - -- (void)getAxisAlignedArrowPoints:(CGPoint[kArrowPointCount])points - forLength:(CGFloat)length - tailWidth:(CGFloat)tailWidth - headWidth:(CGFloat)headWidth - headLength:(CGFloat)headLength { - CGFloat tailLength = length - headLength; - points[0] = CGPointMake(0, tailWidth / 2); - points[1] = CGPointMake(tailLength, tailWidth / 2); - points[2] = CGPointMake(tailLength, headWidth / 2); - points[3] = CGPointMake(length, 0); - points[4] = CGPointMake(tailLength, -headWidth / 2); - points[5] = CGPointMake(tailLength, -tailWidth / 2); - points[6] = CGPointMake(0, -tailWidth / 2); -} - -+ (CGAffineTransform)dqd_transformForStartPoint:(CGPoint)startPoint - endPoint:(CGPoint)endPoint - length:(CGFloat)length { - CGFloat cosine = (endPoint.x - startPoint.x) / length; - CGFloat sine = (endPoint.y - startPoint.y) / length; - return (CGAffineTransform){ cosine, sine, -sine, cosine, startPoint.x, startPoint.y }; -} - -- (CGAffineTransform)transformForStartPoint:(CGPoint)startPoint - endPoint:(CGPoint)endPoint - length:(CGFloat)length { - CGFloat cosine = (endPoint.x - startPoint.x) / length; - CGFloat sine = (endPoint.y - startPoint.y) / length; - return (CGAffineTransform){ cosine, sine, -sine, cosine, startPoint.x, startPoint.y }; -} - -#pragma mark - UIView - -- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { - - CGPathRef strokePath = CGPathCreateCopyByStrokingPath(self.shapeLayer.path, NULL, fmaxf(90.0f, self.shapeLayer.lineWidth), kCGLineCapRound,kCGLineJoinMiter,0); - - BOOL containsPoint = CGPathContainsPoint(strokePath, NULL, point, NO); - - CGPathRelease(strokePath); - - if (containsPoint){ - return self; - } else { - return nil; - } - -} - -- (void)layoutSubviews{ - [super layoutSubviews]; - - [self buildShape]; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITAttributedLabel.h b/Pods/HockeySDK/Classes/BITAttributedLabel.h deleted file mode 100644 index d84caec..0000000 --- a/Pods/HockeySDK/Classes/BITAttributedLabel.h +++ /dev/null @@ -1,330 +0,0 @@ -// TTTAttributedLabel.h -// -// Copyright (c) 2011 Mattt Thompson (http://mattt.me) -// -// 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. - -#import -#import - -/** - Vertical alignment for text in a label whose bounds are larger than its text bounds - */ -typedef enum { - BITAttributedLabelVerticalAlignmentCenter = 0, - BITAttributedLabelVerticalAlignmentTop = 1, - BITAttributedLabelVerticalAlignmentBottom = 2, -} BITAttributedLabelVerticalAlignment; - -/** - Determines whether the text to which this attribute applies has a strikeout drawn through itself. - */ -extern NSString * const kBITStrikeOutAttributeName; - -/** - The background fill color. Value must be a `CGColorRef`. Default value is `nil` (no fill). - */ -extern NSString * const kBITBackgroundFillColorAttributeName; - -/** - The background stroke color. Value must be a `CGColorRef`. Default value is `nil` (no stroke). - */ -extern NSString * const kBITBackgroundStrokeColorAttributeName; - -/** - The background stroke line width. Value must be an `NSNumber`. Default value is `1.0f`. - */ -extern NSString * const kBITBackgroundLineWidthAttributeName; - -/** - The background corner radius. Value must be an `NSNumber`. Default value is `5.0f`. - */ -extern NSString * const kBITBackgroundCornerRadiusAttributeName; - -@protocol BITAttributedLabelDelegate; - -// Override UILabel @property to accept both NSString and NSAttributedString -@protocol BITAttributedLabel -@property (nonatomic, copy) id text; -@end - -/** - `TTTAttributedLabel` is a drop-in replacement for `UILabel` that supports `NSAttributedString`, as well as automatically-detected and manually-added links to URLs, addresses, phone numbers, and dates. - - # Differences Between `TTTAttributedLabel` and `UILabel` - - For the most part, `TTTAttributedLabel` behaves just like `UILabel`. The following are notable exceptions, in which `TTTAttributedLabel` properties may act differently: - - - `text` - This property now takes an `id` type argument, which can either be a kind of `NSString` or `NSAttributedString` (mutable or immutable in both cases) - - `lineBreakMode` - This property displays only the first line when the value is `UILineBreakModeHeadTruncation`, `UILineBreakModeTailTruncation`, or `UILineBreakModeMiddleTruncation` - - `adjustsFontsizeToFitWidth` - Supported in iOS 5 and greater, this property is effective for any value of `numberOfLines` greater than zero. In iOS 4, setting `numberOfLines` to a value greater than 1 with `adjustsFontSizeToFitWidth` set to `YES` may cause `sizeToFit` to execute indefinitely. - - Any properties affecting text or paragraph styling, such as `shadowRadius` or `firstLineIndent` will only apply when text is set with an `NSString`. If the text is set with an `NSAttributedString`, these properties will not apply. - - @warning Any properties changed on the label after setting the text will not be reflected until a subsequent call to `setText:` or `setText:afterInheritingLabelAttributesAndConfiguringWithBlock:`. This is to say, order of operations matters in this case. For example, if the label text color is originally black when the text is set, changing the text color to red will have no effect on the display of the label until the text is set once again. - */ -@interface BITAttributedLabel : UILabel - -///----------------------------- -/// @name Accessing the Delegate -///----------------------------- - -/** - The receiver's delegate. - - @discussion A `TTTAttributedLabel` delegate responds to messages sent by tapping on links in the label. You can use the delegate to respond to links referencing a URL, address, phone number, date, or date with a specified time zone and duration. - */ -@property (nonatomic, unsafe_unretained) id delegate; - -///-------------------------------------------- -/// @name Detecting, Accessing, & Styling Links -///-------------------------------------------- - -/** - A bitmask of `UIDataDetectorTypes` which are used to automatically detect links in the label text. This is `UIDataDetectorTypeNone` by default. - - @warning You must specify `dataDetectorTypes` before setting the `text`, with either `setText:` or `setText:afterInheritingLabelAttributesAndConfiguringWithBlock:`. - */ -@property (nonatomic, assign) UIDataDetectorTypes dataDetectorTypes; - -/** - An array of `NSTextCheckingResult` objects for links detected or manually added to the label text. - */ -@property (readonly, nonatomic, strong) NSArray *links; - -/** - A dictionary containing the `NSAttributedString` attributes to be applied to links detected or manually added to the label text. The default link style is blue and underlined. - - @warning You must specify `linkAttributes` before setting autodetecting or manually-adding links for these attributes to be applied. - */ -@property (nonatomic, strong) NSDictionary *linkAttributes; - -/** - A dictionary containing the `NSAttributedString` attributes to be applied to links when they are in the active state. Supply `nil` or an empty dictionary to opt out of active link styling. The default active link style is red and underlined. - */ -@property (nonatomic, strong) NSDictionary *activeLinkAttributes; - -///--------------------------------------- -/// @name Accessing Text Style Attributes -///--------------------------------------- - -/** - The shadow blur radius for the label. A value of 0 indicates no blur, while larger values produce correspondingly larger blurring. This value must not be negative. The default value is 0. - */ -@property (nonatomic, assign) CGFloat shadowRadius; - -///-------------------------------------------- -/// @name Accessing Paragraph Style Attributes -///-------------------------------------------- - -/** - The distance, in points, from the leading margin of a frame to the beginning of the paragraph's first line. This value is always nonnegative, and is 0.0 by default. - */ -@property (nonatomic, assign) CGFloat firstLineIndent; - -/** - The space in points added between lines within the paragraph. This value is always nonnegative and is 0.0 by default. - */ -@property (nonatomic, assign) CGFloat leading; - -/** - The line height multiple. This value is 0.0 by default. - */ -@property (nonatomic, assign) CGFloat lineHeightMultiple; - -/** - The distance, in points, from the margin to the text container. This value is `UIEdgeInsetsZero` by default. - - @discussion The `UIEdgeInset` members correspond to paragraph style properties rather than a particular geometry, and can change depending on the writing direction. - - ## `UIEdgeInset` Member Correspondence With `CTParagraphStyleSpecifier` Values: - - - `top`: `kCTParagraphStyleSpecifierParagraphSpacingBefore` - - `left`: `kCTParagraphStyleSpecifierHeadIndent` - - `bottom`: `kCTParagraphStyleSpecifierParagraphSpacing` - - `right`: `kCTParagraphStyleSpecifierTailIndent` - - */ -@property (nonatomic, assign) UIEdgeInsets textInsets; - -/** - The vertical text alignment for the label, for when the frame size is greater than the text rect size. The vertical alignment is `TTTAttributedLabelVerticalAlignmentCenter` by default. - */ -@property (nonatomic, assign) BITAttributedLabelVerticalAlignment verticalAlignment; - -///---------------------------------- -/// @name Setting the Text Attributes -///---------------------------------- - -/** - Sets the text displayed by the label. - - @param text An `NSString` or `NSAttributedString` object to be displayed by the label. If the specified text is an `NSString`, the label will display the text like a `UILabel`, inheriting the text styles of the label. If the specified text is an `NSAttributedString`, the label text styles will be overridden by the styles specified in the attributed string. - - @discussion This method overrides `UILabel -setText:` to accept both `NSString` and `NSAttributedString` objects. This string is `nil` by default. - */ -- (void)setText:(id)text; - -/** - Sets the text displayed by the label, after configuring an attributed string containing the text attributes inherited from the label in a block. - - @param text An `NSString` or `NSAttributedString` object to be displayed by the label. - @param block A block object that returns an `NSMutableAttributedString` object and takes a single argument, which is an `NSMutableAttributedString` object with the text from the first parameter, and the text attributes inherited from the label text styles. For example, if you specified the `font` of the label to be `[UIFont boldSystemFontOfSize:14]` and `textColor` to be `[UIColor redColor]`, the `NSAttributedString` argument of the block would be contain the `NSAttributedString` attribute equivalents of those properties. In this block, you can set further attributes on particular ranges. - - @discussion This string is `nil` by default. - */ -- (void)setText:(id)text afterInheritingLabelAttributesAndConfiguringWithBlock:(NSMutableAttributedString *(^)(NSMutableAttributedString *mutableAttributedString))block; - -///---------------------------------- -/// @name Accessing the Text Attributes -///---------------------------------- - -/** - A copy of the label's current attributedText. This returns `nil` if an attributed string has never been set on the label. - */ -@property (readwrite, nonatomic, copy) NSAttributedString *attributedText; - -///------------------- -/// @name Adding Links -///------------------- - -/** - Adds a link to an `NSTextCheckingResult`. - - @param result An `NSTextCheckingResult` representing the link's location and type. - */ -- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result; - -/** - Adds a link to an `NSTextCheckingResult`. - - @param result An `NSTextCheckingResult` representing the link's location and type. - @param attributes The attributes to be added to the text in the range of the specified link. If `nil`, no attributes are added. - */ -- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result attributes:(NSDictionary *)attributes; - -/** - Adds a link to a URL for a specified range in the label text. - - @param url The url to be linked to - @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. - */ -- (void)addLinkToURL:(NSURL *)url withRange:(NSRange)range; - -/** - Adds a link to an address for a specified range in the label text. - - @param addressComponents A dictionary of address components for the address to be linked to - @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. - - @discussion The address component dictionary keys are described in `NSTextCheckingResult`'s "Keys for Address Components." - */ -- (void)addLinkToAddress:(NSDictionary *)addressComponents withRange:(NSRange)range; - -/** - Adds a link to a phone number for a specified range in the label text. - - @param phoneNumber The phone number to be linked to. - @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. - */ -- (void)addLinkToPhoneNumber:(NSString *)phoneNumber withRange:(NSRange)range; - -/** - Adds a link to a date for a specified range in the label text. - - @param date The date to be linked to. - @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. - */ -- (void)addLinkToDate:(NSDate *)date withRange:(NSRange)range; - -/** - Adds a link to a date with a particular time zone and duration for a specified range in the label text. - - @param date The date to be linked to. - @param timeZone The time zone of the specified date. - @param duration The duration, in seconds from the specified date. - @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. - */ -- (void)addLinkToDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration withRange:(NSRange)range; - -@end - -/** - The `TTTAttributedLabelDelegate` protocol defines the messages sent to an attributed label delegate when links are tapped. All of the methods of this protocol are optional. - */ -@protocol BITAttributedLabelDelegate - -///----------------------------------- -/// @name Responding to Link Selection -///----------------------------------- -@optional - -/** - Tells the delegate that the user did select a link to a URL. - - @param label The label whose link was selected. - @param url The URL for the selected link. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url; - -/** - Tells the delegate that the user did select a link to an address. - - @param label The label whose link was selected. - @param addressComponents The components of the address for the selected link. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithAddress:(NSDictionary *)addressComponents; - -/** - Tells the delegate that the user did select a link to a phone number. - - @param label The label whose link was selected. - @param phoneNumber The phone number for the selected link. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithPhoneNumber:(NSString *)phoneNumber; - -/** - Tells the delegate that the user did select a link to a date. - - @param label The label whose link was selected. - @param date The date for the selected link. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithDate:(NSDate *)date; - -/** - Tells the delegate that the user did select a link to a date with a time zone and duration. - - @param label The label whose link was selected. - @param date The date for the selected link. - @param timeZone The time zone of the date for the selected link. - @param duration The duration, in seconds from the date for the selected link. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration; - -/** - Tells the delegate that the user did select a link to a text checking result. - - @discussion This method is called if no other delegate method was called, which can occur by either now implementing the method in `TTTAttributedLabelDelegate` corresponding to a particular link, or the link was added by passing an instance of a custom `NSTextCheckingResult` subclass into `-addLinkWithTextCheckingResult:`. - - @param label The label whose link was selected. - @param result The custom text checking result. - */ -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithTextCheckingResult:(NSTextCheckingResult *)result; - -@end diff --git a/Pods/HockeySDK/Classes/BITAttributedLabel.m b/Pods/HockeySDK/Classes/BITAttributedLabel.m deleted file mode 100644 index d2d5fb4..0000000 --- a/Pods/HockeySDK/Classes/BITAttributedLabel.m +++ /dev/null @@ -1,1022 +0,0 @@ -// TTTAttributedLabel.m -// -// Copyright (c) 2011 Mattt Thompson (http://mattt.me) -// -// 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. - -#import "BITAttributedLabel.h" - -#define kBITLineBreakWordWrapTextWidthScalingFactor (M_PI / M_E) - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -NSString * const kBITStrikeOutAttributeName = @"BITStrikeOutAttribute"; -NSString * const kBITBackgroundFillColorAttributeName = @"BITBackgroundFillColor"; -NSString * const kBITBackgroundStrokeColorAttributeName = @"BITBackgroundStrokeColor"; -NSString * const kBITBackgroundLineWidthAttributeName = @"BITBackgroundLineWidth"; -NSString * const kBITBackgroundCornerRadiusAttributeName = @"BITBackgroundCornerRadius"; - -static inline __attribute__((unused)) CTTextAlignment CTTextAlignmentFromUITextAlignment(UITextAlignment alignment) { - switch (alignment) { - case UITextAlignmentLeft: return kCTLeftTextAlignment; - case UITextAlignmentCenter: return kCTCenterTextAlignment; - case UITextAlignmentRight: return kCTRightTextAlignment; - default: return kCTNaturalTextAlignment; - } -} - -static __attribute__((unused)) inline CTTextAlignment CTTextAlignmentFromNSTextAlignment(NSTextAlignment alignment) { - switch (alignment) { - case NSTextAlignmentLeft: return kCTLeftTextAlignment; - case NSTextAlignmentCenter: return kCTCenterTextAlignment; - case NSTextAlignmentRight: return kCTRightTextAlignment; - default: return kCTNaturalTextAlignment; - } -} - -static inline CTLineBreakMode CTLineBreakModeFromUILineBreakMode(UILineBreakMode lineBreakMode) { - switch (lineBreakMode) { - case UILineBreakModeWordWrap: return kCTLineBreakByWordWrapping; - case UILineBreakModeCharacterWrap: return kCTLineBreakByCharWrapping; - case UILineBreakModeClip: return kCTLineBreakByClipping; - case UILineBreakModeHeadTruncation: return kCTLineBreakByTruncatingHead; - case UILineBreakModeTailTruncation: return kCTLineBreakByTruncatingTail; - case UILineBreakModeMiddleTruncation: return kCTLineBreakByTruncatingMiddle; - default: return 0; - } -} - -static inline __attribute__((unused)) CTLineBreakMode CTLineBreakModeFromNSLineBreakMode(NSLineBreakMode lineBreakMode) { - switch (lineBreakMode) { - case NSLineBreakByWordWrapping: return kCTLineBreakByWordWrapping; - case NSLineBreakByCharWrapping: return kCTLineBreakByCharWrapping; - case NSLineBreakByClipping: return kCTLineBreakByClipping; - case NSLineBreakByTruncatingHead: return kCTLineBreakByTruncatingHead; - case NSLineBreakByTruncatingTail: return kCTLineBreakByTruncatingTail; - case NSLineBreakByTruncatingMiddle: return kCTLineBreakByTruncatingMiddle; - default: return 0; - } -} - -static inline __attribute__((unused)) UILineBreakMode UILineBreakModeFromNSLineBreakMode(NSLineBreakMode lineBreakMode) { - switch (lineBreakMode) { - case NSLineBreakByWordWrapping: return UILineBreakModeWordWrap; - case NSLineBreakByCharWrapping: return UILineBreakModeCharacterWrap; - case NSLineBreakByClipping: return UILineBreakModeClip; - case NSLineBreakByTruncatingHead: return UILineBreakModeHeadTruncation; - case NSLineBreakByTruncatingTail: return UILineBreakModeTailTruncation; - case NSLineBreakByTruncatingMiddle: return UILineBreakModeMiddleTruncation; - default: return 0; - } -} - -static inline NSTextCheckingType NSTextCheckingTypeFromUIDataDetectorType(UIDataDetectorTypes dataDetectorType) { - NSTextCheckingType textCheckingType = 0; - if (dataDetectorType & UIDataDetectorTypeAddress) { - textCheckingType |= NSTextCheckingTypeAddress; - } - - if (dataDetectorType & UIDataDetectorTypeCalendarEvent) { - textCheckingType |= NSTextCheckingTypeDate; - } - - if (dataDetectorType & UIDataDetectorTypeLink) { - textCheckingType |= NSTextCheckingTypeLink; - } - - if (dataDetectorType & UIDataDetectorTypePhoneNumber) { - textCheckingType |= NSTextCheckingTypePhoneNumber; - } - - return textCheckingType; -} - -static inline NSDictionary * NSAttributedStringAttributesFromLabel(BITAttributedLabel *label) { - NSMutableDictionary *mutableAttributes = [NSMutableDictionary dictionary]; - - CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)label.font.fontName, label.font.pointSize, NULL); - [mutableAttributes setObject:(__bridge id)font forKey:(NSString *)kCTFontAttributeName]; - CFRelease(font); - - [mutableAttributes setObject:(id)[label.textColor CGColor] forKey:(NSString *)kCTForegroundColorAttributeName]; - -#ifdef __IPHONE_6_0 - CTTextAlignment alignment = CTTextAlignmentFromNSTextAlignment(label.textAlignment); -#else - CTTextAlignment alignment = CTTextAlignmentFromUITextAlignment(label.textAlignment); -#endif - CGFloat lineSpacing = label.leading; - CGFloat lineSpacingAdjustment = label.font.lineHeight - label.font.ascender + label.font.descender; - CGFloat lineHeightMultiple = label.lineHeightMultiple; - CGFloat topMargin = label.textInsets.top; - CGFloat bottomMargin = label.textInsets.bottom; - CGFloat leftMargin = label.textInsets.left; - CGFloat rightMargin = label.textInsets.right; - CGFloat firstLineIndent = label.firstLineIndent + leftMargin; - - CTLineBreakMode lineBreakMode; - if (label.numberOfLines != 1) { - lineBreakMode = CTLineBreakModeFromUILineBreakMode(UILineBreakModeWordWrap); - } else { -#ifdef __IPHONE_6_0 - lineBreakMode = CTLineBreakModeFromNSLineBreakMode(label.lineBreakMode); -#else - lineBreakMode = CTLineBreakModeFromUILineBreakMode(label.lineBreakMode); -#endif - } - - CTParagraphStyleSetting paragraphStyles[10] = { - {.spec = kCTParagraphStyleSpecifierAlignment, .valueSize = sizeof(CTTextAlignment), .value = (const void *)&alignment}, - {.spec = kCTParagraphStyleSpecifierLineBreakMode, .valueSize = sizeof(CTLineBreakMode), .value = (const void *)&lineBreakMode}, - {.spec = kCTParagraphStyleSpecifierLineSpacing, .valueSize = sizeof(CGFloat), .value = (const void *)&lineSpacing}, - {.spec = kCTParagraphStyleSpecifierLineSpacingAdjustment, .valueSize = sizeof (CGFloat), .value = (const void *)&lineSpacingAdjustment}, - {.spec = kCTParagraphStyleSpecifierLineHeightMultiple, .valueSize = sizeof(CGFloat), .value = (const void *)&lineHeightMultiple}, - {.spec = kCTParagraphStyleSpecifierFirstLineHeadIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&firstLineIndent}, - {.spec = kCTParagraphStyleSpecifierParagraphSpacingBefore, .valueSize = sizeof(CGFloat), .value = (const void *)&topMargin}, - {.spec = kCTParagraphStyleSpecifierParagraphSpacing, .valueSize = sizeof(CGFloat), .value = (const void *)&bottomMargin}, - {.spec = kCTParagraphStyleSpecifierHeadIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&leftMargin}, - {.spec = kCTParagraphStyleSpecifierTailIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&rightMargin} - }; - - CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphStyles, 10); - [mutableAttributes setObject:(__bridge id)paragraphStyle forKey:(NSString *)kCTParagraphStyleAttributeName]; - CFRelease(paragraphStyle); - - return [NSDictionary dictionaryWithDictionary:mutableAttributes]; -} - -static inline NSAttributedString * NSAttributedStringByScalingFontSize(NSAttributedString *attributedString, CGFloat scale, CGFloat minimumFontSize) { - NSMutableAttributedString *mutableAttributedString = [attributedString mutableCopy]; - [mutableAttributedString enumerateAttribute:(NSString *)kCTFontAttributeName inRange:NSMakeRange(0, [mutableAttributedString length]) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) { - CTFontRef font = (__bridge CTFontRef)value; - if (font) { - CGFloat scaledFontSize = floorf(CTFontGetSize(font) * scale); - CTFontRef scaledFont = CTFontCreateCopyWithAttributes(font, fmaxf(scaledFontSize, minimumFontSize), NULL, NULL); - CFAttributedStringSetAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, CFRangeMake(range.location, range.length), kCTFontAttributeName, scaledFont); - CFRelease(scaledFont); - } - }]; - - return mutableAttributedString; -} - -static inline NSAttributedString * NSAttributedStringBySettingColorFromContext(NSAttributedString *attributedString, UIColor *color) { - if (!color) { - return attributedString; - } - - CGColorRef colorRef = color.CGColor; - NSMutableAttributedString *mutableAttributedString = [attributedString mutableCopy]; - [mutableAttributedString enumerateAttribute:(NSString *)kCTForegroundColorFromContextAttributeName inRange:NSMakeRange(0, [mutableAttributedString length]) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) { - CFBooleanRef usesColorFromContext = (__bridge CFBooleanRef)value; - if (usesColorFromContext && CFBooleanGetValue(usesColorFromContext)) { - CFRange updateRange = CFRangeMake(range.location, range.length); - CFAttributedStringSetAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, updateRange, kCTForegroundColorAttributeName, colorRef); - CFAttributedStringRemoveAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, updateRange, kCTForegroundColorFromContextAttributeName); - } - }]; - - return mutableAttributedString; -} - -@interface BITAttributedLabel () -@property (readwrite, nonatomic, copy) NSAttributedString *inactiveAttributedText; -@property (readwrite, nonatomic, copy) NSAttributedString *renderedAttributedText; -@property (readwrite, nonatomic, assign) CTFramesetterRef framesetter; -@property (readwrite, nonatomic, assign) CTFramesetterRef highlightFramesetter; -@property (readwrite, nonatomic, strong) NSDataDetector *dataDetector; -@property (readwrite, nonatomic, strong) NSArray *links; -@property (readwrite, nonatomic, strong) NSTextCheckingResult *activeLink; - -- (void)commonInit; -- (void)setNeedsFramesetter; -- (NSArray *)detectedLinksInString:(NSString *)string range:(NSRange)range error:(NSError **)error; -- (NSTextCheckingResult *)linkAtCharacterIndex:(CFIndex)idx; -- (NSTextCheckingResult *)linkAtPoint:(CGPoint)p; -- (CFIndex)characterIndexAtPoint:(CGPoint)p; -- (void)drawFramesetter:(CTFramesetterRef)framesetter attributedString:(NSAttributedString *)attributedString textRange:(CFRange)textRange inRect:(CGRect)rect context:(CGContextRef)c; -- (void)drawStrike:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c; -@end - -@implementation BITAttributedLabel { -@private - BOOL _needsFramesetter; -} - -@dynamic text; -@synthesize attributedText = _attributedText; -@synthesize inactiveAttributedText = _inactiveAttributedText; -@synthesize renderedAttributedText = _renderedAttributedText; -@synthesize framesetter = _framesetter; -@synthesize highlightFramesetter = _highlightFramesetter; -@synthesize delegate = _delegate; -@synthesize dataDetectorTypes = _dataDetectorTypes; -@synthesize dataDetector = _dataDetector; -@synthesize links = _links; -@synthesize linkAttributes = _linkAttributes; -@synthesize activeLinkAttributes = _activeLinkAttributes; -@synthesize shadowRadius = _shadowRadius; -@synthesize leading = _leading; -@synthesize lineHeightMultiple = _lineHeightMultiple; -@synthesize firstLineIndent = _firstLineIndent; -@synthesize textInsets = _textInsets; -@synthesize verticalAlignment = _verticalAlignment; -@synthesize activeLink = _activeLink; - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (!self) { - return nil; - } - - [self commonInit]; - - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)coder { - self = [super initWithCoder:coder]; - if (!self) { - return nil; - } - - [self commonInit]; - - return self; -} - -- (void)commonInit { - self.dataDetectorTypes = UIDataDetectorTypeNone; - self.links = [NSArray array]; - - NSMutableDictionary *mutableLinkAttributes = [NSMutableDictionary dictionary]; - [mutableLinkAttributes setValue:(id)[[UIColor blueColor] CGColor] forKey:(NSString*)kCTForegroundColorAttributeName]; - [mutableLinkAttributes setValue:[NSNumber numberWithBool:YES] forKey:(NSString *)kCTUnderlineStyleAttributeName]; - self.linkAttributes = [NSDictionary dictionaryWithDictionary:mutableLinkAttributes]; - - NSMutableDictionary *mutableActiveLinkAttributes = [NSMutableDictionary dictionary]; - [mutableActiveLinkAttributes setValue:(id)[[UIColor redColor] CGColor] forKey:(NSString*)kCTForegroundColorAttributeName]; - [mutableActiveLinkAttributes setValue:[NSNumber numberWithBool:NO] forKey:(NSString *)kCTUnderlineStyleAttributeName]; - - self.activeLinkAttributes = [NSDictionary dictionaryWithDictionary:mutableActiveLinkAttributes]; - - self.textInsets = UIEdgeInsetsZero; - - self.userInteractionEnabled = YES; - self.multipleTouchEnabled = NO; -} - -- (void)dealloc { - if (_framesetter) CFRelease(_framesetter); - if (_highlightFramesetter) CFRelease(_highlightFramesetter); -} - -#pragma mark - - -- (void)setAttributedText:(NSAttributedString *)text { - if ([text isEqualToAttributedString:_attributedText]) { - return; - } - - [self willChangeValueForKey:@"attributedText"]; - _attributedText = [text copy]; - [self didChangeValueForKey:@"attributedText"]; - - [self setNeedsFramesetter]; -} - -- (void)setNeedsFramesetter { - // Reset the rendered attributed text so it has a chance to regenerate - self.renderedAttributedText = nil; - - _needsFramesetter = YES; -} - -- (CTFramesetterRef)framesetter { - if (_needsFramesetter) { - @synchronized(self) { - if (_framesetter) { - CFRelease(_framesetter); - _framesetter = nil; - } - if (_highlightFramesetter) { - CFRelease(_highlightFramesetter); - _highlightFramesetter = nil; - } - - _framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)self.renderedAttributedText); - _needsFramesetter = NO; - } - } - - return _framesetter; -} - -- (NSAttributedString *)renderedAttributedText { - if (!_renderedAttributedText) { - self.renderedAttributedText = NSAttributedStringBySettingColorFromContext(self.attributedText, self.textColor); - } - - return _renderedAttributedText; -} - -#pragma mark - - -- (void)setLinkActive:(BOOL)active withTextCheckingResult:(NSTextCheckingResult *)result { - if (result && [self.activeLinkAttributes count] > 0) { - if (active) { - if (!self.inactiveAttributedText) { - self.inactiveAttributedText = self.attributedText; - } - - NSMutableAttributedString *mutableAttributedString = [self.inactiveAttributedText mutableCopy]; - [mutableAttributedString addAttributes:self.activeLinkAttributes range:result.range]; - self.attributedText = mutableAttributedString; - - [self setNeedsDisplay]; - } else { - if (self.inactiveAttributedText) { - self.attributedText = self.inactiveAttributedText; - self.inactiveAttributedText = nil; - - [self setNeedsDisplay]; - } - } - } -} - -#pragma mark - - -- (void)setDataDetectorTypes:(UIDataDetectorTypes)dataDetectorTypes { - [self willChangeValueForKey:@"dataDetectorTypes"]; - _dataDetectorTypes = dataDetectorTypes; - [self didChangeValueForKey:@"dataDetectorTypes"]; - - if (self.dataDetectorTypes != UIDataDetectorTypeNone) { - self.dataDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeFromUIDataDetectorType(self.dataDetectorTypes) error:nil]; - } -} - -- (NSArray *)detectedLinksInString:(NSString *)string range:(NSRange)range error:(NSError **)error { - if (!string || !self.dataDetector) { - return [NSArray array]; - } - - return [self.dataDetector matchesInString:string options:0 range:range]; -} - -- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result attributes:(NSDictionary *)attributes { - self.links = [self.links arrayByAddingObject:result]; - - if (attributes) { - NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedText]; - [mutableAttributedString addAttributes:attributes range:result.range]; - self.attributedText = mutableAttributedString; - } -} - -- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result { - [self addLinkWithTextCheckingResult:result attributes:self.linkAttributes]; -} - -- (void)addLinkToURL:(NSURL *)url withRange:(NSRange)range { - [self addLinkWithTextCheckingResult:[NSTextCheckingResult linkCheckingResultWithRange:range URL:url]]; -} - -- (void)addLinkToAddress:(NSDictionary *)addressComponents withRange:(NSRange)range { - [self addLinkWithTextCheckingResult:[NSTextCheckingResult addressCheckingResultWithRange:range components:addressComponents]]; -} - -- (void)addLinkToPhoneNumber:(NSString *)phoneNumber withRange:(NSRange)range { - [self addLinkWithTextCheckingResult:[NSTextCheckingResult phoneNumberCheckingResultWithRange:range phoneNumber:phoneNumber]]; -} - -- (void)addLinkToDate:(NSDate *)date withRange:(NSRange)range { - [self addLinkWithTextCheckingResult:[NSTextCheckingResult dateCheckingResultWithRange:range date:date]]; -} - -- (void)addLinkToDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration withRange:(NSRange)range { - [self addLinkWithTextCheckingResult:[NSTextCheckingResult dateCheckingResultWithRange:range date:date timeZone:timeZone duration:duration]]; -} - -#pragma mark - - -- (NSTextCheckingResult *)linkAtCharacterIndex:(CFIndex)idx { - for (NSTextCheckingResult *result in self.links) { - NSRange range = result.range; - if ((CFIndex)range.location <= idx && idx <= (CFIndex)(range.location + range.length - 1)) { - return result; - } - } - - return nil; -} - -- (NSTextCheckingResult *)linkAtPoint:(CGPoint)p { - CFIndex idx = [self characterIndexAtPoint:p]; - return [self linkAtCharacterIndex:idx]; -} - -- (CFIndex)characterIndexAtPoint:(CGPoint)p { - if (!CGRectContainsPoint(self.bounds, p)) { - return NSNotFound; - } - - CGRect textRect = [self textRectForBounds:self.bounds limitedToNumberOfLines:self.numberOfLines]; - if (!CGRectContainsPoint(textRect, p)) { - return NSNotFound; - } - - // Offset tap coordinates by textRect origin to make them relative to the origin of frame - p = CGPointMake(p.x - textRect.origin.x, p.y - textRect.origin.y); - // Convert tap coordinates (start at top left) to CT coordinates (start at bottom left) - p = CGPointMake(p.x, textRect.size.height - p.y); - - CGMutablePathRef path = CGPathCreateMutable(); - CGPathAddRect(path, NULL, textRect); - CTFrameRef frame = CTFramesetterCreateFrame(self.framesetter, CFRangeMake(0, [self.attributedText length]), path, NULL); - if (frame == NULL) { - CFRelease(path); - return NSNotFound; - } - - CFArrayRef lines = CTFrameGetLines(frame); - NSInteger numberOfLines = self.numberOfLines > 0 ? MIN(self.numberOfLines, CFArrayGetCount(lines)) : CFArrayGetCount(lines); - if (numberOfLines == 0) { - CFRelease(frame); - CFRelease(path); - return NSNotFound; - } - - NSUInteger idx = NSNotFound; - - CGPoint lineOrigins[numberOfLines]; - CTFrameGetLineOrigins(frame, CFRangeMake(0, numberOfLines), lineOrigins); - - for (CFIndex lineIndex = 0; lineIndex < numberOfLines; lineIndex++) { - CGPoint lineOrigin = lineOrigins[lineIndex]; - CTLineRef line = CFArrayGetValueAtIndex(lines, lineIndex); - - // Get bounding information of line - CGFloat ascent, descent, leading, width; - width = CTLineGetTypographicBounds(line, &ascent, &descent, &leading); - CGFloat yMin = floor(lineOrigin.y - descent); - CGFloat yMax = ceil(lineOrigin.y + ascent); - - // Check if we've already passed the line - if (p.y > yMax) { - break; - } - // Check if the point is within this line vertically - if (p.y >= yMin) { - // Check if the point is within this line horizontally - if (p.x >= lineOrigin.x && p.x <= lineOrigin.x + width) { - // Convert CT coordinates to line-relative coordinates - CGPoint relativePoint = CGPointMake(p.x - lineOrigin.x, p.y - lineOrigin.y); - idx = CTLineGetStringIndexForPosition(line, relativePoint); - break; - } - } - } - - CFRelease(frame); - CFRelease(path); - - return idx; -} - -- (void)drawFramesetter:(CTFramesetterRef)framesetter attributedString:(NSAttributedString *)attributedString textRange:(CFRange)textRange inRect:(CGRect)rect context:(CGContextRef)c { - CGMutablePathRef path = CGPathCreateMutable(); - CGPathAddRect(path, NULL, rect); - CTFrameRef frame = CTFramesetterCreateFrame(framesetter, textRange, path, NULL); - - [self drawBackground:frame inRect:rect context:c]; - - CFArrayRef lines = CTFrameGetLines(frame); - NSInteger numberOfLines = self.numberOfLines > 0 ? MIN(self.numberOfLines, CFArrayGetCount(lines)) : CFArrayGetCount(lines); - BOOL truncateLastLine = (self.lineBreakMode == UILineBreakModeHeadTruncation || self.lineBreakMode == UILineBreakModeMiddleTruncation || self.lineBreakMode == UILineBreakModeTailTruncation); - - CGPoint lineOrigins[numberOfLines]; - CTFrameGetLineOrigins(frame, CFRangeMake(0, numberOfLines), lineOrigins); - - for (CFIndex lineIndex = 0; lineIndex < numberOfLines; lineIndex++) { - CGPoint lineOrigin = lineOrigins[lineIndex]; - CGContextSetTextPosition(c, lineOrigin.x, lineOrigin.y); - CTLineRef line = CFArrayGetValueAtIndex(lines, lineIndex); - - if (lineIndex == numberOfLines - 1 && truncateLastLine) { - // Check if the range of text in the last line reaches the end of the full attributed string - CFRange lastLineRange = CTLineGetStringRange(line); - - if (!(lastLineRange.length == 0 && lastLineRange.location == 0) && lastLineRange.location + lastLineRange.length < textRange.location + textRange.length) { - // Get correct truncationType and attribute position - CTLineTruncationType truncationType; - NSUInteger truncationAttributePosition = lastLineRange.location; -#ifdef __IPHONE_6_0 - UILineBreakMode lineBreakMode = UILineBreakModeFromNSLineBreakMode(self.lineBreakMode); -#else - UILineBreakMode lineBreakMode = self.lineBreakMode; -#endif - - // Multiple lines, only use UILineBreakModeTailTruncation - if (numberOfLines != 1) { - lineBreakMode = UILineBreakModeTailTruncation; - } - - switch (lineBreakMode) { - case UILineBreakModeHeadTruncation: - truncationType = kCTLineTruncationStart; - break; - case UILineBreakModeMiddleTruncation: - truncationType = kCTLineTruncationMiddle; - truncationAttributePosition += (lastLineRange.length / 2); - break; - case UILineBreakModeTailTruncation: - default: - truncationType = kCTLineTruncationEnd; - truncationAttributePosition += (lastLineRange.length - 1); - break; - } - - // Get the attributes and use them to create the truncation token string - NSDictionary *tokenAttributes = [attributedString attributesAtIndex:truncationAttributePosition effectiveRange:NULL]; - // \u2026 is the Unicode horizontal ellipsis character code - NSAttributedString *tokenString = [[NSAttributedString alloc] initWithString:@"\u2026" attributes:tokenAttributes]; - CTLineRef truncationToken = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)tokenString); - - // Append truncationToken to the string - // because if string isn't too long, CT wont add the truncationToken on it's own - // There is no change of a double truncationToken because CT only add the token if it removes characters (and the one we add will go first) - NSMutableAttributedString *truncationString = [[attributedString attributedSubstringFromRange:NSMakeRange(lastLineRange.location, lastLineRange.length)] mutableCopy]; - if (lastLineRange.length > 0) { - // Remove any newline at the end (we don't want newline space between the text and the truncation token). There can only be one, because the second would be on the next line. - unichar lastCharacter = [[truncationString string] characterAtIndex:lastLineRange.length - 1]; - if ([[NSCharacterSet newlineCharacterSet] characterIsMember:lastCharacter]) { - [truncationString deleteCharactersInRange:NSMakeRange(lastLineRange.length - 1, 1)]; - } - } - [truncationString appendAttributedString:tokenString]; - CTLineRef truncationLine = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)truncationString); - - // Truncate the line in case it is too long. - CTLineRef truncatedLine = CTLineCreateTruncatedLine(truncationLine, rect.size.width, truncationType, truncationToken); - if (!truncatedLine) { - // If the line is not as wide as the truncationToken, truncatedLine is NULL - truncatedLine = CFRetain(truncationToken); - } - - CTLineDraw(truncatedLine, c); - - CFRelease(truncatedLine); - CFRelease(truncationLine); - CFRelease(truncationToken); - } else { - CTLineDraw(line, c); - } - } else { - CTLineDraw(line, c); - } - } - - [self drawStrike:frame inRect:rect context:c]; - - CFRelease(frame); - CFRelease(path); -} - -- (void)drawBackground:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c { - NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame); - CGPoint origins[[lines count]]; - CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), origins); - - CFIndex lineIndex = 0; - for (id line in lines) { - CGRect lineBounds = CTLineGetImageBounds((__bridge CTLineRef)line, c); - lineBounds.origin.x = origins[lineIndex].x; - lineBounds.origin.y = origins[lineIndex].y; - - for (id glyphRun in (__bridge NSArray *)CTLineGetGlyphRuns((__bridge CTLineRef)line)) { - NSDictionary *attributes = (__bridge NSDictionary *)CTRunGetAttributes((__bridge CTRunRef) glyphRun); - CGColorRef strokeColor = (__bridge CGColorRef)[attributes objectForKey:kBITBackgroundStrokeColorAttributeName]; - CGColorRef fillColor = (__bridge CGColorRef)[attributes objectForKey:kBITBackgroundFillColorAttributeName]; - CGFloat cornerRadius = [[attributes objectForKey:kBITBackgroundCornerRadiusAttributeName] floatValue]; - CGFloat lineWidth = [[attributes objectForKey:kBITBackgroundLineWidthAttributeName] floatValue]; - - if (strokeColor || fillColor) { - CGRect runBounds = CGRectZero; - CGFloat ascent = 0.0f; - CGFloat descent = 0.0f; - - runBounds.size.width = CTRunGetTypographicBounds((__bridge CTRunRef)glyphRun, CFRangeMake(0, 0), &ascent, &descent, NULL); - runBounds.size.height = ascent + descent; - - CGFloat xOffset = CTLineGetOffsetForStringIndex((__bridge CTLineRef)line, CTRunGetStringRange((__bridge CTRunRef)glyphRun).location, NULL); - runBounds.origin.x = origins[lineIndex].x + rect.origin.x + xOffset; - runBounds.origin.y = origins[lineIndex].y + rect.origin.y; - runBounds.origin.y -= descent; - - // Don't draw higlightedLinkBackground too far to the right - if (CGRectGetWidth(runBounds) > CGRectGetWidth(lineBounds)) { - runBounds.size.width = CGRectGetWidth(lineBounds); - } - - CGRect newRect = CGRectInset(CGRectInset(runBounds, -1.0f, -3.0f), lineWidth, lineWidth); - CGPathRef path = [[UIBezierPath bezierPathWithRoundedRect:newRect cornerRadius:cornerRadius] CGPath]; - - CGContextSetLineJoin(c, kCGLineJoinRound); - - if (fillColor) { - CGContextSetFillColorWithColor(c, fillColor); - CGContextAddPath(c, path); - CGContextFillPath(c); - } - - if (strokeColor) { - CGContextSetStrokeColorWithColor(c, strokeColor); - CGContextAddPath(c, path); - CGContextStrokePath(c); - } - } - } - - lineIndex++; - } -} - -- (void)drawStrike:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c { - NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame); - CGPoint origins[[lines count]]; - CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), origins); - - CFIndex lineIndex = 0; - for (id line in lines) { - CGRect lineBounds = CTLineGetImageBounds((__bridge CTLineRef)line, c); - lineBounds.origin.x = origins[lineIndex].x; - lineBounds.origin.y = origins[lineIndex].y; - - for (id glyphRun in (__bridge NSArray *)CTLineGetGlyphRuns((__bridge CTLineRef)line)) { - NSDictionary *attributes = (__bridge NSDictionary *)CTRunGetAttributes((__bridge CTRunRef) glyphRun); - BOOL strikeOut = [[attributes objectForKey:kBITStrikeOutAttributeName] boolValue]; - NSInteger superscriptStyle = [[attributes objectForKey:(id)kCTSuperscriptAttributeName] integerValue]; - - if (strikeOut) { - CGRect runBounds = CGRectZero; - CGFloat ascent = 0.0f; - CGFloat descent = 0.0f; - - runBounds.size.width = CTRunGetTypographicBounds((__bridge CTRunRef)glyphRun, CFRangeMake(0, 0), &ascent, &descent, NULL); - runBounds.size.height = ascent + descent; - - CGFloat xOffset = CTLineGetOffsetForStringIndex((__bridge CTLineRef)line, CTRunGetStringRange((__bridge CTRunRef)glyphRun).location, NULL); - runBounds.origin.x = origins[lineIndex].x + rect.origin.x + xOffset; - runBounds.origin.y = origins[lineIndex].y + rect.origin.y; - runBounds.origin.y -= descent; - - // Don't draw strikeout too far to the right - if (CGRectGetWidth(runBounds) > CGRectGetWidth(lineBounds)) { - runBounds.size.width = CGRectGetWidth(lineBounds); - } - - switch (superscriptStyle) { - case 1: - runBounds.origin.y -= ascent * 0.47f; - break; - case -1: - runBounds.origin.y += ascent * 0.25f; - break; - default: - break; - } - - // Use text color, or default to black - id color = [attributes objectForKey:(id)kCTForegroundColorAttributeName]; - - if (color) { - CGContextSetStrokeColorWithColor(c, (__bridge CGColorRef)color); - } else { - CGContextSetGrayStrokeColor(c, 0.0f, 1.0); - } - - CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)self.font.fontName, self.font.pointSize, NULL); - CGContextSetLineWidth(c, CTFontGetUnderlineThickness(font)); - CFRelease(font); - CGFloat y = roundf(runBounds.origin.y + runBounds.size.height / 2.0f); - CGContextMoveToPoint(c, runBounds.origin.x, y); - CGContextAddLineToPoint(c, runBounds.origin.x + runBounds.size.width, y); - - CGContextStrokePath(c); - } - } - - lineIndex++; - } -} - -#pragma mark - TTTAttributedLabel - -- (void)setText:(id)text { - if ([text isKindOfClass:[NSString class]]) { - [self setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:nil]; - return; - } - NSAssert([text isKindOfClass:[NSAttributedString class]], @"TTTAttributedLabel accepts either NSStrings or NSAttributedStrings"); - NSAttributedString *attributedString = text; - self.attributedText = attributedString; - - self.links = [NSArray array]; - if (self.dataDetectorTypes != UIDataDetectorTypeNone) { - for (NSTextCheckingResult *result in [self detectedLinksInString:[self.attributedText string] - range:NSMakeRange(0, [attributedString length]) - error:nil]) { - [self addLinkWithTextCheckingResult:result]; - } - } - - [super setText:[self.attributedText string]]; -} - -- (void)setText:(id)text afterInheritingLabelAttributesAndConfiguringWithBlock:(NSMutableAttributedString *(^)(NSMutableAttributedString *mutableAttributedString))block { - NSMutableAttributedString *mutableAttributedString = nil; - if ([text isKindOfClass:[NSString class]]) { - mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:NSAttributedStringAttributesFromLabel(self)]; - } else { - mutableAttributedString = [[NSMutableAttributedString alloc] initWithAttributedString:text]; - [mutableAttributedString addAttributes:NSAttributedStringAttributesFromLabel(self) range:NSMakeRange(0, [mutableAttributedString length])]; - } - - if (block) { - mutableAttributedString = block(mutableAttributedString); - } - - [self setText:mutableAttributedString]; -} - -#pragma mark - UILabel - -- (void)setHighlighted:(BOOL)highlighted { - [super setHighlighted:highlighted]; - [self setNeedsDisplay]; -} - -// Fixes crash when loading from a UIStoryboard -- (UIColor *)textColor { - UIColor *color = [super textColor]; - if (!color) { - color = [UIColor blackColor]; - } - - return color; -} - -- (void)setTextColor:(UIColor *)textColor { - UIColor *oldTextColor = self.textColor; - [super setTextColor:textColor]; - - // Redraw to allow any ColorFromContext attributes a chance to update - if (textColor != oldTextColor) { - [self setNeedsFramesetter]; - [self setNeedsDisplay]; - } -} - -- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { - if (!self.attributedText) { - return [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; - } - - CGRect textRect = bounds; - - // Adjust the text to be in the center vertically, if the text size is smaller than bounds - CGSize textSize = CTFramesetterSuggestFrameSizeWithConstraints(self.framesetter, CFRangeMake(0, [self.attributedText length]), NULL, bounds.size, NULL); - textSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height)); // Fix for iOS 4, CTFramesetterSuggestFrameSizeWithConstraints sometimes returns fractional sizes - - if (textSize.height < textRect.size.height) { - CGFloat heightChange = (textRect.size.height - textSize.height); - CGFloat yOffset = 0.0f; - switch (self.verticalAlignment) { - case BITAttributedLabelVerticalAlignmentTop: - heightChange = 0.0f; - break; - case BITAttributedLabelVerticalAlignmentCenter: - yOffset = floorf((textRect.size.height - textSize.height) / 2.0f); - break; - case BITAttributedLabelVerticalAlignmentBottom: - yOffset = textRect.size.height - textSize.height; - break; - } - - textRect.origin.y += yOffset; - textRect.size = CGSizeMake(textRect.size.width, textRect.size.height - heightChange + yOffset); - } - - return textRect; -} - -- (void)drawTextInRect:(CGRect)rect { - if (!self.attributedText) { - [super drawTextInRect:rect]; - return; - } - - NSAttributedString *originalAttributedText = nil; - - // Adjust the font size to fit width, if necessary - if (self.adjustsFontSizeToFitWidth && self.numberOfLines > 0) { - CGFloat textWidth = [self sizeThatFits:CGSizeZero].width; - CGFloat availableWidth = self.frame.size.width * self.numberOfLines; - if (self.numberOfLines > 1 && self.lineBreakMode == UILineBreakModeWordWrap) { - textWidth *= kBITLineBreakWordWrapTextWidthScalingFactor; - } - - if (textWidth > availableWidth && textWidth > 0.0f) { - originalAttributedText = [self.attributedText copy]; - self.text = NSAttributedStringByScalingFontSize(self.attributedText, availableWidth / textWidth, self.minimumFontSize); - } - } - - CGContextRef c = UIGraphicsGetCurrentContext(); - CGContextSetTextMatrix(c, CGAffineTransformIdentity); - - // Inverts the CTM to match iOS coordinates (otherwise text draws upside-down; Mac OS's system is different) - CGContextTranslateCTM(c, 0.0f, rect.size.height); - CGContextScaleCTM(c, 1.0f, -1.0f); - - CFRange textRange = CFRangeMake(0, [self.attributedText length]); - - // First, get the text rect (which takes vertical centering into account) - CGRect textRect = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines]; - - // CoreText draws it's text aligned to the bottom, so we move the CTM here to take our vertical offsets into account - CGContextTranslateCTM(c, 0.0f, rect.size.height - textRect.origin.y - textRect.size.height); - - // Second, trace the shadow before the actual text, if we have one - if (self.shadowColor && !self.highlighted) { - CGContextSetShadowWithColor(c, self.shadowOffset, self.shadowRadius, [self.shadowColor CGColor]); - } - - // Finally, draw the text or highlighted text itself (on top of the shadow, if there is one) - if (self.highlightedTextColor && self.highlighted) { - NSMutableAttributedString *highlightAttributedString = [self.renderedAttributedText mutableCopy]; - [highlightAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(id)[self.highlightedTextColor CGColor] range:NSMakeRange(0, highlightAttributedString.length)]; - - if (!_highlightFramesetter) { - _highlightFramesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)highlightAttributedString); - } - - [self drawFramesetter:self.highlightFramesetter attributedString:highlightAttributedString textRange:textRange inRect:textRect context:c]; - } else { - [self drawFramesetter:self.framesetter attributedString:self.renderedAttributedText textRange:textRange inRect:textRect context:c]; - } - - // If we adjusted the font size, set it back to its original size - if (originalAttributedText) { - self.text = originalAttributedText; - } -} - -#pragma mark - UIView - -- (CGSize)sizeThatFits:(CGSize)size { - if (!self.attributedText) { - return [super sizeThatFits:size]; - } - - CFRange rangeToSize = CFRangeMake(0, [self.attributedText length]); - CGSize constraints = CGSizeMake(size.width, CGFLOAT_MAX); - - if (self.numberOfLines == 1) { - // If there is one line, the size that fits is the full width of the line - constraints = CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX); - } else if (self.numberOfLines > 0) { - // If the line count of the label more than 1, limit the range to size to the number of lines that have been set - CGMutablePathRef path = CGPathCreateMutable(); - CGPathAddRect(path, NULL, CGRectMake(0.0f, 0.0f, constraints.width, CGFLOAT_MAX)); - CTFrameRef frame = CTFramesetterCreateFrame(self.framesetter, CFRangeMake(0, 0), path, NULL); - CFArrayRef lines = CTFrameGetLines(frame); - - if (CFArrayGetCount(lines) > 0) { - NSInteger lastVisibleLineIndex = MIN(self.numberOfLines, CFArrayGetCount(lines)) - 1; - CTLineRef lastVisibleLine = CFArrayGetValueAtIndex(lines, lastVisibleLineIndex); - - CFRange rangeToLayout = CTLineGetStringRange(lastVisibleLine); - rangeToSize = CFRangeMake(0, rangeToLayout.location + rangeToLayout.length); - } - - CFRelease(frame); - CFRelease(path); - } - - CGSize suggestedSize = CTFramesetterSuggestFrameSizeWithConstraints(self.framesetter, rangeToSize, NULL, constraints, NULL); - - return CGSizeMake(ceilf(suggestedSize.width), ceilf(suggestedSize.height)); -} - -#pragma mark - UIResponder - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - UITouch *touch = [touches anyObject]; - - self.activeLink = [self linkAtPoint:[touch locationInView:self]]; - - if (self.activeLink) { - [self setLinkActive:YES withTextCheckingResult:self.activeLink]; - } else { - [super touchesBegan:touches withEvent:event]; - } -} - -- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { - if (self.activeLink) { - UITouch *touch = [touches anyObject]; - - if (self.activeLink != [self linkAtPoint:[touch locationInView:self]]) { - [self setLinkActive:NO withTextCheckingResult:self.activeLink]; - } else { - [self setLinkActive:YES withTextCheckingResult:self.activeLink]; - } - } else { - [super touchesMoved:touches withEvent:event]; - } -} - -- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - NSTextCheckingResult *activeLink = self.activeLink; - if (activeLink) { - UITouch *touch = [touches anyObject]; - if (activeLink == [self linkAtPoint:[touch locationInView:self]]) { - [self setLinkActive:NO withTextCheckingResult:activeLink]; - - if (!self.delegate) { - return; - } - - switch (activeLink.resultType) { - case NSTextCheckingTypeLink: - if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithURL:)]) { - [self.delegate attributedLabel:self didSelectLinkWithURL:activeLink.URL]; - return; - } - break; - case NSTextCheckingTypeAddress: - if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithAddress:)]) { - [self.delegate attributedLabel:self didSelectLinkWithAddress:activeLink.addressComponents]; - return; - } - break; - case NSTextCheckingTypePhoneNumber: - if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithPhoneNumber:)]) { - [self.delegate attributedLabel:self didSelectLinkWithPhoneNumber:activeLink.phoneNumber]; - return; - } - break; - case NSTextCheckingTypeDate: - if (activeLink.timeZone && [self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithDate:timeZone:duration:)]) { - [self.delegate attributedLabel:self didSelectLinkWithDate:activeLink.date timeZone:activeLink.timeZone duration:activeLink.duration]; - return; - } else if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithDate:)]) { - [self.delegate attributedLabel:self didSelectLinkWithDate:activeLink.date]; - return; - } - break; - default: - break; - } - - // Fallback to `attributedLabel:didSelectLinkWithTextCheckingResult:` if no other delegate method matched. - if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithTextCheckingResult:)]) { - [self.delegate attributedLabel:self didSelectLinkWithTextCheckingResult:activeLink]; - } - } - } else { - [super touchesEnded:touches withEvent:event]; - } -} - -- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { - if (self.activeLink) { - [self setLinkActive:NO withTextCheckingResult:self.activeLink]; - } else { - [super touchesCancelled:touches withEvent:event]; - } -} - -@end - -#pragma clang diagnostic pop diff --git a/Pods/HockeySDK/Classes/BITAuthenticationViewController.h b/Pods/HockeySDK/Classes/BITAuthenticationViewController.h deleted file mode 100644 index 2eac237..0000000 --- a/Pods/HockeySDK/Classes/BITAuthenticationViewController.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import -@protocol BITAuthenticationViewControllerDelegate; -@class BITAuthenticator; -@class BITHockeyAppClient; - -/** - * View controller handling user interaction for `BITAuthenticator` - */ -@interface BITAuthenticationViewController : UITableViewController - -- (instancetype) initWithDelegate:(id) delegate; - -/** - * can be set to YES to show an additional button + description text - * and allowing to login via external website/UDID. - * if this is set to yes, no further email/password options are shown - * - * defaults to NO - */ -@property (nonatomic, assign) BOOL showsLoginViaWebButton; - -/** - * Description shown on top of view. Should tell why this view - * was presented and what's next. - */ -@property (nonatomic, copy) NSString* tableViewTitle; - -/** - * can be set to YES to also require the users password - * - * defaults to NO - */ -@property (nonatomic, assign) BOOL requirePassword; - -@property (nonatomic, weak) id delegate; - -/** - * allows to pre-fill the email-addy - */ -@property (nonatomic, copy) NSString* email; -@end - -/** - * BITAuthenticationViewController protocol - */ -@protocol BITAuthenticationViewControllerDelegate - -- (void) authenticationViewControllerDidTapWebButton:(UIViewController*) viewController; - -/** - * called when the user wants to login - * - * @param viewController the delegating view controller - * @param email the content of the email-field - * @param password the content of the password-field (if existent) - * @param completion Must be called by the delegate once the auth-task completed - * This view controller shows an activity-indicator in between and blocks - * the UI. if succeeded is NO, it shows an alertView presenting the error - * given by the completion block - */ -- (void) authenticationViewController:(UIViewController*) viewController - handleAuthenticationWithEmail:(NSString*) email - password:(NSString*) password - completion:(void(^)(BOOL succeeded, NSError *error)) completion; - -@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticationViewController.m b/Pods/HockeySDK/Classes/BITAuthenticationViewController.m deleted file mode 100644 index 8493701..0000000 --- a/Pods/HockeySDK/Classes/BITAuthenticationViewController.m +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import "BITAuthenticationViewController.h" -#import "BITAuthenticator_Private.h" -#import "HockeySDKPrivate.h" -#import "HockeySDK.h" -#import "BITHockeyHelper.h" -#import "BITHockeyAppClient.h" - -@interface BITAuthenticationViewController () { - UIStatusBarStyle _statusBarStyle; - __weak UITextField *_emailField; -} - -@property (nonatomic, copy) NSString *password; - -@end - -@implementation BITAuthenticationViewController - -- (instancetype) initWithDelegate:(id)delegate { - self = [super initWithStyle:UITableViewStyleGrouped]; - if (self) { - self.title = BITHockeyLocalizedString(@"HockeyAuthenticatorViewControllerTitle"); - _delegate = delegate; - } - return self; -} - -#pragma mark - view lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; - - [self.tableView setScrollEnabled:NO]; - - [self updateWebLoginButton]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; -#else - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; -#endif - - [self updateBarButtons]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; -} - -#pragma mark - Property overrides - -- (void) updateBarButtons { - if(self.showsLoginViaWebButton) { - self.navigationItem.rightBarButtonItem = nil; - } else { - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone - target:self - action:@selector(saveAction:)]; - } -} - -- (void)setShowsLoginViaWebButton:(BOOL)showsLoginViaWebButton { - if(_showsLoginViaWebButton != showsLoginViaWebButton) { - _showsLoginViaWebButton = showsLoginViaWebButton; - if(self.isViewLoaded) { - [self.tableView reloadData]; - [self updateBarButtons]; - [self updateWebLoginButton]; - } - } -} - -- (void) updateWebLoginButton { - if(self.showsLoginViaWebButton) { - static const CGFloat kFooterHeight = 60.f; - UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, - CGRectGetWidth(self.tableView.bounds), - kFooterHeight)]; - UIButton *button = [UIButton buttonWithType:kBITButtonTypeSystem]; - [button setTitle:BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebLoginButtonTitle") forState:UIControlStateNormal]; - CGSize buttonSize = [button sizeThatFits:CGSizeMake(CGRectGetWidth(self.tableView.bounds), - kFooterHeight)]; - button.frame = CGRectMake(floorf((CGRectGetWidth(containerView.bounds) - buttonSize.width) / 2.f), - floorf((kFooterHeight - buttonSize.height) / 2.f), - buttonSize.width, - buttonSize.height); - button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; - if ([UIButton instancesRespondToSelector:(NSSelectorFromString(@"setTintColor:"))]) { - [button setTitleColor:BIT_RGBCOLOR(0, 122, 255) forState:UIControlStateNormal]; - } - [containerView addSubview:button]; - [button addTarget:self - action:@selector(handleWebLoginButton:) - forControlEvents:UIControlEventTouchUpInside]; - self.tableView.tableFooterView = containerView; - } else { - self.tableView.tableFooterView = nil; - } -} - -- (IBAction) handleWebLoginButton:(id)sender { - [self.delegate authenticationViewControllerDidTapWebButton:self]; -} - -- (void)setEmail:(NSString *)email { - _email = email; - if(self.isViewLoaded) { - _emailField.text = email; - } -} - -- (void)setTableViewTitle:(NSString *)viewDescription { - _tableViewTitle = [viewDescription copy]; - if(self.isViewLoaded) { - [self.tableView reloadData]; - } -} -#pragma mark - UIViewController Rotation - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { - return YES; -} - -#pragma mark - Private methods -- (BOOL)allRequiredFieldsEntered { - if (self.requirePassword && [self.password length] == 0) - return NO; - - if (![self.email length] || !bit_validateEmail(self.email)) - return NO; - - return YES; -} - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 2; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - if (section == 0) return 0; - - if(self.showsLoginViaWebButton) { - return 0; - } else { - NSInteger rows = 1; - - if ([self requirePassword]) rows ++; - - return rows; - } -} - -- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { - if (section == 0) { - return self.tableViewTitle; - } - - return nil; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *CellIdentifier = @"InputCell"; - - UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; - - cell.accessoryType = UITableViewCellAccessoryNone; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - cell.backgroundColor = [UIColor whiteColor]; - - UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(130, 11, self.view.frame.size.width - 130 - 25, 24)]; - if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { - textField.autoresizingMask = UIViewAutoresizingFlexibleWidth; - } - textField.adjustsFontSizeToFitWidth = YES; - textField.textColor = [UIColor blackColor]; - textField.backgroundColor = [UIColor lightGrayColor]; - - if (0 == [indexPath row]) { - textField.placeholder = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerEmailPlaceholder"); - textField.text = self.email; - _emailField = textField; - - textField.keyboardType = UIKeyboardTypeEmailAddress; - if ([self requirePassword]) - textField.returnKeyType = UIReturnKeyNext; - else - textField.returnKeyType = UIReturnKeyDone; - - [textField addTarget:self action:@selector(userEmailEntered:) forControlEvents:UIControlEventEditingChanged]; - [textField becomeFirstResponder]; - } else { - textField.placeholder = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerPasswordPlaceholder"); - textField.text = self.password; - - textField.keyboardType = UIKeyboardTypeDefault; - textField.returnKeyType = UIReturnKeyDone; - textField.secureTextEntry = YES; - [textField addTarget:self action:@selector(userPasswordEntered:) forControlEvents:UIControlEventEditingChanged]; - } - - textField.backgroundColor = [UIColor whiteColor]; - textField.autocorrectionType = UITextAutocorrectionTypeNo; - textField.autocapitalizationType = UITextAutocapitalizationTypeNone; - textField.textAlignment = kBITTextLabelAlignmentLeft; - textField.delegate = self; - textField.tag = indexPath.row; - - textField.clearButtonMode = UITextFieldViewModeWhileEditing; - [textField setEnabled: YES]; - - [cell addSubview:textField]; - } - - if (0 == [indexPath row]) { - cell.textLabel.text = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerEmailDescription"); - } else { - cell.textLabel.text = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerPasswordDescription"); - } - - return cell; -} - - -- (void)userEmailEntered:(id)sender { - self.email = [(UITextField *)sender text]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -- (void)userPasswordEntered:(id)sender { - self.password = [(UITextField *)sender text]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -#pragma mark - UITextFieldDelegate - -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - NSInteger nextTag = textField.tag + 1; - - UIResponder* nextResponder = [self.view viewWithTag:nextTag]; - if (nextResponder) { - [nextResponder becomeFirstResponder]; - } else { - if ([self allRequiredFieldsEntered]) { - if ([textField isFirstResponder]) - [textField resignFirstResponder]; - - [self saveAction:nil]; - } - } - return NO; -} - -#pragma mark - Actions -- (void)saveAction:(id)sender { - [self setLoginUIEnabled:NO]; - - __weak typeof(self) weakSelf = self; - [self.delegate authenticationViewController:self - handleAuthenticationWithEmail:self.email - password:self.password - completion:^(BOOL succeeded, NSError *error) { - if(succeeded) { - //controller should dismiss us shortly.. - } else { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil - message:error.localizedDescription - delegate:nil - cancelButtonTitle:BITHockeyLocalizedString(@"OK") - otherButtonTitles:nil]; - [alertView show]; - typeof(self) strongSelf = weakSelf; - [strongSelf setLoginUIEnabled:YES]; - } - }]; -} - -- (void) setLoginUIEnabled:(BOOL) enabled { - self.navigationItem.rightBarButtonItem.enabled = enabled; - self.tableView.userInteractionEnabled = enabled; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator.h b/Pods/HockeySDK/Classes/BITAuthenticator.h deleted file mode 100644 index e740a2c..0000000 --- a/Pods/HockeySDK/Classes/BITAuthenticator.h +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Author: Stephan Diederich, Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - -#import - -#import "BITHockeyBaseManager.h" - -/** - * Identification Types - */ -typedef NS_ENUM(NSUInteger, BITAuthenticatorIdentificationType) { - /** - * Assigns this app an anonymous user id. - *

- * The user will not be asked anything and an anonymous ID will be generated. - * This helps identifying this installation being unique but HockeyApp won't be able - * to identify who actually is running this installation and on which device - * the app is installed. - */ - BITAuthenticatorIdentificationTypeAnonymous, - /** - * Ask for the HockeyApp account email - *

- * This will present a user interface requesting the user to provide their - * HockeyApp user email address. - *

- * The provided email address has to match an email address of a registered - * HockeyApp user who is a member or tester of the app - */ - BITAuthenticatorIdentificationTypeHockeyAppEmail, - /** - * Ask for the HockeyApp account by email and password - *

- * This will present a user interface requesting the user to provide their - * HockeyApp user credentials. - *

- * The provided user account has to match a registered HockeyApp user who is - * a member or tester of the app - */ - BITAuthenticatorIdentificationTypeHockeyAppUser, - /** - * Identifies the current device - *

- * This will open the HockeyApp web page on the device in Safari and request the user - * to submit the device's unique identifier to the app. If the web page session is not aware - * of the current devices UDID, it will request the user to install the HockeyApp web clip - * which will provide the UDID to users session in the browser. - *

- * This requires the app to register an URL scheme. See the linked property and methods - * for further documentation on this. - */ - BITAuthenticatorIdentificationTypeDevice, - /** - * Ask for the HockeyApp account email. - *

- * This will present a user interface requesting the user to start a Safari based - * flow to login to HockeyApp (if not already logged in) and to share the hockeyapp - * account's email. - *

- * If restrictApplicationUsage is enabled, the provided user account has to match a - * registered HockeyApp user who is a member or tester of the app. - * For identification purpose any HockeyApp user is allowed. - */ - BITAuthenticatorIdentificationTypeWebAuth, -}; - -/** - * Restriction enforcement styles - * - * Specifies how often the Authenticator checks if the user is allowed to use - * this app. - */ -typedef NS_ENUM(NSUInteger, BITAuthenticatorAppRestrictionEnforcementFrequency) { - /** - * Checks if the user is allowed to use the app at the first time a version is started - */ - BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch, - /** - * Checks if the user is allowed to use the app every time the app becomes active - */ - BITAuthenticatorAppRestrictionEnforcementOnAppActive, -}; - -@protocol BITAuthenticatorDelegate; - - -/** - * Identify and authenticate users of Ad-Hoc or Enterprise builds - * - * `BITAuthenticator` serves 2 purposes: - * - * 1. Identifying who is running your Ad-Hoc or Enterprise builds - * `BITAuthenticator` provides an identifier for the rest of the HockeySDK - * to work with, e.g. in-app update checks and crash reports. - * - * 2. Optional regular checking if an identified user is still allowed - * to run this application. The `BITAuthenticator` can be used to make - * sure only users who are testers of your app are allowed to run it. - * - * This module automatically disables itself when running in an App Store build by default! - * - * @warning It is mandatory to call `authenticateInstallation` somewhen after calling - * `[[BITHockeyManager sharedHockeyManager] startManager]` or fully customize the identification - * and validation workflow yourself. - * If your app shows a modal view on startup, make sure to call `authenticateInstallation` - * either once your modal view is fully presented (e.g. its `viewDidLoad:` method is processed) - * or once your modal view is dismissed. - */ -@interface BITAuthenticator : BITHockeyBaseManager - -#pragma mark - Configuration - - -///----------------------------------------------------------------------------- -/// @name Configuration -///----------------------------------------------------------------------------- - - -/** - * Defines the identification mechanism to be used - * - * _Default_: `BITAuthenticatorIdentificationTypeAnonymous` - * - * @see BITAuthenticatorIdentificationType - */ -@property (nonatomic, assign) BITAuthenticatorIdentificationType identificationType; - - -/** - * Enables or disables checking if the user is allowed to run this app - * - * If disabled, the Authenticator never validates, besides initial identification, - * if the user is allowed to run this application. - * - * If enabled, the Authenticator checks depending on `restrictionEnforcementFrequency` - * if the user is allowed to use this application. - * - * Enabling this property and setting `identificationType` to `BITAuthenticatorIdentificationTypeHockeyAppEmail`, - * `BITAuthenticatorIdentificationTypeHockeyAppUser` or `BITAuthenticatorIdentificationTypeWebAuth` also allows - * to remove access for users by removing them from the app's users list on HockeyApp. - * - * _Default_: `NO` - * - * @warning if `identificationType` is set to `BITAuthenticatorIdentificationTypeAnonymous`, - * this property has no effect. - * - * @see BITAuthenticatorIdentificationType - * @see restrictionEnforcementFrequency - */ -@property (nonatomic, assign) BOOL restrictApplicationUsage; - -/** - * Defines how often the BITAuthenticator checks if the user is allowed - * to run this application - * - * This requires `restrictApplicationUsage` to be enabled. - * - * _Default_: `BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch` - * - * @see BITAuthenticatorAppRestrictionEnforcementFrequency - * @see restrictApplicationUsage - */ -@property (nonatomic, assign) BITAuthenticatorAppRestrictionEnforcementFrequency restrictionEnforcementFrequency; - -/** - * The authentication secret from HockeyApp. To find the right secret, - * click on your app on the HockeyApp dashboard, then on Show next to - * "Secret:". - * - * This is only needed if `identificationType` is set to `BITAuthenticatorIdentificationTypeHockeyAppEmail` - * - * @see identificationType - */ -@property (nonatomic, copy) NSString *authenticationSecret; - - -#pragma mark - Device based identification - -///----------------------------------------------------------------------------- -/// @name Device based identification -///----------------------------------------------------------------------------- - - -/** - * The baseURL of the webpage the user is redirected to if `identificationType` is - * set to `BITAuthenticatorIdentificationTypeDevice`; defaults to https://rink.hockeyapp.net. - * - * @see identificationType - */ -@property (nonatomic, strong) NSURL *webpageURL; - -/** - * URL to query the device's id via external webpage - * Built with the baseURL set in `webpageURL`. - */ -- (NSURL*) deviceAuthenticationURL; - -/** - * The url-scheme used to identify via `BITAuthenticatorIdentificationTypeDevice` - * - * Please make sure that the URL scheme is unique and not shared with other apps. - * - * If set to nil, the default scheme is used which is `ha`. - * - * @see identificationType - * @see handleOpenURL:sourceApplication:annotation: - */ -@property (nonatomic, strong) NSString *urlScheme; - -/** - Should be used by the app-delegate to forward handle application:openURL:sourceApplication:annotation: calls. - - This is required if `identificationType` is set to `BITAuthenticatorIdentificationTypeDevice`. - Your app needs to implement the default `ha` URL scheme or register its own scheme - via `urlScheme`. - BITAuthenticator checks if the given URL is actually meant to be parsed by it and will - return NO if it doesn't think so. It does this by checking the 'host'-part of the URL to be 'authorize', as well - as checking the protocol part. - Please make sure that if you're using a custom URL scheme, it does _not_ conflict with BITAuthenticator's. - If BITAuthenticator thinks the URL was meant to be an authorization URL, but could not find a valid token, it will - reset the stored identification token and state. - - Sample usage (in AppDelegate): - - - (BOOL)application:(UIApplication *)application - openURL:(NSURL *)url - sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { - if ([[BITHockeyManager sharedHockeyManager].authenticator handleOpenURL:url - sourceApplication:sourceApplication - annotation:annotation]) { - return YES; - } else { - //do your own URL handling, return appropriate value - } - return NO; - } - - @param url Param `url` that was passed to the app - @param sourceApplication Param `sourceApplication` that was passed to the app - @param annotation Param `annotation` that was passed to the app - - @return YES if the URL request was handled, NO if the URL could not be handled/identified. - - @see identificationType - @see urlScheme - */ -- (BOOL) handleOpenURL:(NSURL *) url - sourceApplication:(NSString *) sourceApplication - annotation:(id) annotation; - -#pragma mark - Authentication - -///----------------------------------------------------------------------------- -/// @name Authentication -///----------------------------------------------------------------------------- - -/** - * Invoked automatic identification and validation - * - * If the `BITAuthenticator` is in automatic mode this will initiate identifying - * the current user according to the type specified in `identificationType` and - * validate if the identified user is allowed to run this application. - * - * If the user is not yet identified it will present a modal view asking the user to - * provide the required information. - * - * If your app provides it's own startup modal screen, e.g. a guide or a login, then - * you might either call this method once that UI is fully presented or once - * the user e.g. did actually login already. - * - * @warning You need to call this method in your code even if automatic mode is enabled! - * - * @see identificationType - */ -- (void) authenticateInstallation; - -/** - * Identifies the user according to the type specified in `identificationType`. - * - * If the `BITAuthenticator` is in manual mode, it's your responsibility to call - * this method. Depending on the `identificationType`, this method - * might present a viewController to let the user enter his/her credentials. - * - * If the Authenticator is in auto-mode, this is called by the authenticator itself - * once needed. - * - * @see identificationType - * @see authenticateInstallation - * @see validateWithCompletion: - * - * @param completion Block being executed once identification completed - */ -- (void) identifyWithCompletion:(void(^)(BOOL identified, NSError *error)) completion; - -/** - * Returns YES if this app is identified according to the setting in `identificationType`. - * - * Since the identification process is done asynchronously (contacting the server), - * you need to observe the value change via KVO. - * - * @see identificationType - */ -@property (nonatomic, assign, readonly, getter = isIdentified) BOOL identified; - -/** - * Validates if the identified user is allowed to run this application. This checks - * with the HockeyApp backend and calls the completion-block once completed. - * - * If the `BITAuthenticator` is in manual mode, it's your responsibility to call - * this method. If the application is not yet identified, validation is not possible - * and the completion-block is called with an error set. - * - * If the `BITAuthenticator` is in auto-mode, this is called by the authenticator itself - * once needed. - * - * @see identificationType - * @see authenticateInstallation - * @see identifyWithCompletion: - * - * @param completion Block being executed once validation completed - */ -- (void) validateWithCompletion:(void(^)(BOOL validated, NSError *error)) completion; - -/** - * Indicates if this installation is validated. - */ -@property (nonatomic, assign, readonly, getter = isValidated) BOOL validated; - -/** - * Removes all previously stored authentication tokens, UDIDs, etc. - */ -- (void) cleanupInternalStorage; - -/** - * Returns different values depending on `identificationType`. This can be used - * by the application to identify the user. - * - * @see identificationType - */ -- (NSString*) publicInstallationIdentifier; -@end - -#pragma mark - Protocol - -/** - * `BITAuthenticator` protocol - */ -@protocol BITAuthenticatorDelegate - -@optional -/** - * If the authentication (or validation) needs to identify the user, - * this delegate method is called with the viewController that we'll present. - * - * @param authenticator `BITAuthenticator` object - * @param viewController `UIViewController` used to identify the user - * - */ -- (void) authenticator:(BITAuthenticator *)authenticator willShowAuthenticationController:(UIViewController*) viewController; -@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator.m b/Pods/HockeySDK/Classes/BITAuthenticator.m deleted file mode 100644 index 3b57c9c..0000000 --- a/Pods/HockeySDK/Classes/BITAuthenticator.m +++ /dev/null @@ -1,910 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - - -#import "BITAuthenticator.h" -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" -#import "BITAuthenticator_Private.h" -#import "BITHTTPOperation.h" -#import "BITHockeyAppClient.h" -#import "BITHockeyHelper.h" - -#include - -static NSString* const kBITAuthenticatorUUIDKey = @"BITAuthenticatorUUIDKey"; -static NSString* const kBITAuthenticatorIdentifierKey = @"BITAuthenticatorIdentifierKey"; -static NSString* const kBITAuthenticatorIdentifierTypeKey = @"BITAuthenticatorIdentifierTypeKey"; -static NSString* const kBITAuthenticatorLastAuthenticatedVersionKey = @"BITAuthenticatorLastAuthenticatedVersionKey"; -static NSString* const kBITAuthenticatorUserEmailKey = @"BITAuthenticatorUserEmailKey"; - -//deprecated -static NSString* const kBITAuthenticatorAuthTokenKey = @"BITAuthenticatorAuthTokenKey"; -static NSString* const kBITAuthenticatorAuthTokenTypeKey = @"BITAuthenticatorAuthTokenTypeKey"; - -typedef unsigned int bit_uint32; -static unsigned char kBITPNGHeader[8] = {137, 80, 78, 71, 13, 10, 26, 10}; -static unsigned char kBITPNGEndChunk[4] = {0x49, 0x45, 0x4e, 0x44}; - -@implementation BITAuthenticator { - id _appDidBecomeActiveObserver; - id _appDidEnterBackgroundObserver; - UIViewController *_authenticationController; - - BOOL _isSetup; -} - -- (void)dealloc { - [self unregisterObservers]; -} - -- (instancetype) initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment { - self = [super initWithAppIdentifier:appIdentifier isAppStoreEnvironment:isAppStoreEnvironment]; - if( self ) { - _webpageURL = [NSURL URLWithString:@"https://rink.hockeyapp.net/"]; - - _identificationType = BITAuthenticatorIdentificationTypeAnonymous; - _isSetup = NO; - _restrictApplicationUsage = NO; - _restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; - } - return self; -} - -#pragma mark - BITHockeyBaseManager overrides -- (void)startManager { - //disabled in the appStore - if([self isAppStoreEnvironment]) return; - - _isSetup = YES; -} - -#pragma mark - -- (void)dismissAuthenticationControllerAnimated:(BOOL)animated completion:(void (^)(void))completion { - if (!_authenticationController) return; - - UIViewController *presentingViewController = [_authenticationController presentingViewController]; - - // If there is no presenting view controller just remove view - if (presentingViewController) { - [_authenticationController dismissViewControllerAnimated:animated completion:completion]; - } else { - [_authenticationController.navigationController.view removeFromSuperview]; - if (completion) { - completion(); - } - } - _authenticationController = nil; -} - -- (void)authenticateInstallation { - //disabled in the appStore - if([self isAppStoreEnvironment]) return; - - // make sure this is called after startManager so all modules are fully setup - if (!_isSetup) { - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(authenticateInstallation) object:nil]; - [self performSelector:@selector(authenticateInstallation) withObject:nil afterDelay:0.1]; - } else { - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: - [self authenticate]; - break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: - // do nothing, wait for active state - break; - } - } - [self registerObservers]; -} - -- (void) authenticate { - [self identifyWithCompletion:^(BOOL identified, NSError *error) { - if(identified) { - if([self needsValidation]) { - [self validate]; - } else { - [self dismissAuthenticationControllerAnimated:YES completion:nil]; - } - } else { - BITHockeyLog(@"Failed to identify. Error: %@", error); - } - }]; -} - -- (BOOL) needsValidation { - if(BITAuthenticatorIdentificationTypeAnonymous == self.identificationType) { - return NO; - } - if(NO == self.restrictApplicationUsage) { - return NO; - } - if(self.restrictionEnforcementFrequency == BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch && - ![self.executableUUID isEqualToString:self.lastAuthenticatedVersion]) { - return YES; - } - if(NO == self.isValidated && self.restrictionEnforcementFrequency == BITAuthenticatorAppRestrictionEnforcementOnAppActive) { - return YES; - } - return NO; -} - -- (void)alertOnFailureStoringTokenInKeychain { - if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { - return; - } - - NSLog(@"[HockeySDK] ERROR: The authentication token could not be stored due to a keychain error. This is most likely a signing or keychain entitlement issue!"); -} - -- (void) identifyWithCompletion:(void (^)(BOOL identified, NSError *))completion { - if(_authenticationController) { - BITHockeyLog(@"Authentication controller already visible. Ignoring identify request"); - if(completion) completion(NO, nil); - return; - } - //first check if the stored identification type matches the one currently configured - NSString *storedTypeString = [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierTypeKey]; - NSString *configuredTypeString = [self.class stringForIdentificationType:self.identificationType]; - if(storedTypeString && ![storedTypeString isEqualToString:configuredTypeString]) { - BITHockeyLog(@"Identification type mismatch for stored auth-token. Resetting."); - [self storeInstallationIdentifier:nil withType:BITAuthenticatorIdentificationTypeAnonymous]; - } - - NSString *identification = [self installationIdentifier]; - - if(identification) { - self.identified = YES; - if(completion) completion(YES, nil); - return; - } - - [self processFullSizeImage]; - if (self.identified) { - if(completion) completion(YES, nil); - return; - } - - //it's not identified yet, do it now - BITAuthenticationViewController *viewController = nil; - switch (self.identificationType) { - case BITAuthenticatorIdentificationTypeAnonymous: - [self storeInstallationIdentifier:bit_UUID() withType:BITAuthenticatorIdentificationTypeAnonymous]; - self.identified = YES; - if(completion) completion(YES, nil); - return; - break; - case BITAuthenticatorIdentificationTypeHockeyAppUser: - viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; - viewController.requirePassword = YES; - viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription"); - break; - case BITAuthenticatorIdentificationTypeDevice: - viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; - viewController.requirePassword = NO; - viewController.showsLoginViaWebButton = YES; - viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebUDIDLoginDescription"); - break; - case BITAuthenticatorIdentificationTypeWebAuth: - viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; - viewController.requirePassword = NO; - viewController.showsLoginViaWebButton = YES; - viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebAuthLoginDescription"); - break; - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - if(nil == self.authenticationSecret) { - NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAuthorizationSecretMissing - userInfo:@{NSLocalizedDescriptionKey : @"For email identification, the authentication secret must be set"}]; - if(completion) completion(NO, error); - return; - } - viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; - viewController.requirePassword = NO; - viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerDataEmailDescription"); - break; - } - - if([self.delegate respondsToSelector:@selector(authenticator:willShowAuthenticationController:)]) { - [self.delegate authenticator:self willShowAuthenticationController:viewController]; - } - - NSAssert(viewController, @"ViewController should've been created"); - - viewController.email = [self stringValueFromKeychainForKey:kBITAuthenticatorUserEmailKey]; - _authenticationController = viewController; - _identificationCompletion = completion; - [self showView:viewController]; -} - -#pragma mark - Validation - -- (void) validate { - [self validateWithCompletion:^(BOOL validated, NSError *error) { - if(validated) { - [self dismissAuthenticationControllerAnimated:YES completion:nil]; - } else { - BITHockeyLog(@"Validation failed with error: %@", error); - - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil - message:error.localizedDescription - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") - otherButtonTitles:nil]; - [alertView setTag:0]; - [alertView show]; - } - }]; -} - -- (void) validateWithCompletion:(void (^)(BOOL validated, NSError *))completion { - BOOL requirementsFulfilled = YES; - NSError *error = nil; - switch(self.identificationType) { - case BITAuthenticatorIdentificationTypeAnonymous: { - error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorErrorUnknown - userInfo:@{NSLocalizedDescriptionKey : @"Anonymous users can't be validated"}]; - requirementsFulfilled = NO; - break; - } - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - if(nil == self.authenticationSecret) { - error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAuthorizationSecretMissing - userInfo:@{NSLocalizedDescriptionKey : @"For email validation, the authentication secret must be set"}]; - requirementsFulfilled = NO; - break; - } - //no break - case BITAuthenticatorIdentificationTypeDevice: - case BITAuthenticatorIdentificationTypeHockeyAppUser: - case BITAuthenticatorIdentificationTypeWebAuth: - if(nil == self.installationIdentifier) { - error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorNotIdentified - userInfo:@{NSLocalizedDescriptionKey : @"Make sure to identify the installation first"}]; - requirementsFulfilled = NO; - } - break; - } - if(NO == requirementsFulfilled) { - if(completion) { - completion(NO, error); - } - return; - } - - NSString *validationPath = [NSString stringWithFormat:@"api/3/apps/%@/identity/validate", self.encodedAppIdentifier]; - __weak typeof (self) weakSelf = self; - [self.hockeyAppClient getPath:validationPath - parameters:[self validationParameters] - completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { - typeof (self) strongSelf = weakSelf; - if(nil == responseData) { - NSDictionary *userInfo = @{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}; - if(error) { - NSMutableDictionary *dict = [userInfo mutableCopy]; - dict[NSUnderlyingErrorKey] = error; - userInfo = dict; - } - NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorNetworkError - userInfo:userInfo]; - strongSelf.validated = NO; - if(completion) completion(NO, error); - } else { - NSError *validationParseError = nil; - BOOL valid = [strongSelf.class isValidationResponseValid:responseData error:&validationParseError]; - strongSelf.validated = valid; - if(valid) { - [self setLastAuthenticatedVersion:self.executableUUID]; - } - if(completion) completion(valid, validationParseError); - } - }]; -} - -- (NSDictionary*) validationParameters { - NSParameterAssert(self.installationIdentifier); - NSParameterAssert(self.installationIdentifierParameterString); - - NSString *installString = bit_appAnonID(); - if (installString) { - return @{self.installationIdentifierParameterString : self.installationIdentifier, @"install_string": installString}; - } - - return @{self.installationIdentifierParameterString : self.installationIdentifier}; -} - -+ (BOOL) isValidationResponseValid:(id) response error:(NSError **) error { - NSParameterAssert(response); - - NSError *jsonParseError = nil; - id jsonObject = [NSJSONSerialization JSONObjectWithData:response - options:0 - error:&jsonParseError]; - if(nil == jsonObject) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - } - return NO; - } - if(![jsonObject isKindOfClass:[NSDictionary class]]) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - } - return NO; - } - - NSString *status = jsonObject[@"status"]; - if([status isEqualToString:@"not authorized"]) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorNotAuthorized - userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationNotMember")}]; - } - return NO; - } else if([status isEqualToString:@"not found"]) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorUnknownApplicationID - userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationContactDeveloper")}]; - } - return NO; - } else if([status isEqualToString:@"validated"]) { - return YES; - } else { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - } - return NO; - } -} - -#pragma mark - AuthenticationViewControllerDelegate -- (void)authenticationViewController:(UIViewController *)viewController - handleAuthenticationWithEmail:(NSString *)email - password:(NSString *)password - completion:(void (^)(BOOL, NSError *))completion { - NSParameterAssert(email && email.length); - NSParameterAssert(self.identificationType == BITAuthenticatorIdentificationTypeHockeyAppEmail || (password && password.length)); - NSURLRequest* request = [self requestForAuthenticationEmail:email password:password]; - __weak typeof (self) weakSelf = self; - BITHTTPOperation *operation = [self.hockeyAppClient operationWithURLRequest:request - completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { - typeof (self) strongSelf = weakSelf; - NSError *authParseError = nil; - NSString *authToken = [strongSelf.class authenticationTokenFromURLResponse:operation.response - data:responseData - error:&authParseError]; - BOOL identified; - if(authToken) { - identified = YES; - [strongSelf storeInstallationIdentifier:authToken withType:strongSelf.identificationType]; - [strongSelf dismissAuthenticationControllerAnimated:YES completion:nil]; - strongSelf->_authenticationController = nil; - BOOL success = [self addStringValueToKeychain:email forKey:kBITAuthenticatorUserEmailKey]; - if (!success) { - [strongSelf alertOnFailureStoringTokenInKeychain]; - } - } else { - identified = NO; - } - strongSelf.identified = identified; - completion(identified, authParseError); - if(strongSelf.identificationCompletion) strongSelf.identificationCompletion(identified, authParseError); - strongSelf.identificationCompletion = nil; - - }]; - [self.hockeyAppClient enqeueHTTPOperation:operation]; -} - -- (NSURLRequest *) requestForAuthenticationEmail:(NSString*) email password:(NSString*) password { - NSString *authenticationPath = [self authenticationPath]; - NSMutableDictionary *params = [NSMutableDictionary dictionary]; - - NSString *installString = bit_appAnonID(); - if (installString) { - params[@"install_string"] = installString; - } - - if(BITAuthenticatorIdentificationTypeHockeyAppEmail == self.identificationType) { - NSString *authCode = BITHockeyMD5([NSString stringWithFormat:@"%@%@", - self.authenticationSecret ? : @"", - email ? : @""]); - - params[@"email"] = email ? : @""; - params[@"authcode"] = authCode.lowercaseString; - } - - NSMutableURLRequest *request = [self.hockeyAppClient requestWithMethod:@"POST" - path:authenticationPath - parameters:params]; - if(BITAuthenticatorIdentificationTypeHockeyAppUser == self.identificationType) { - NSString *authStr = [NSString stringWithFormat:@"%@:%@", email, password]; - NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding]; - NSString *authValue = [NSString stringWithFormat:@"Basic %@", bit_base64String(authData, authData.length)]; - [request setValue:authValue forHTTPHeaderField:@"Authorization"]; - } - - return request; -} - -- (NSString *) authenticationPath { - if(BITAuthenticatorIdentificationTypeHockeyAppUser == self.identificationType) { - return [NSString stringWithFormat:@"api/3/apps/%@/identity/authorize", self.encodedAppIdentifier]; - } else { - return [NSString stringWithFormat:@"api/3/apps/%@/identity/check", self.encodedAppIdentifier]; - } -} - -+ (NSString *) authenticationTokenFromURLResponse:(NSHTTPURLResponse*) urlResponse data:(NSData*) data error:(NSError **) error { - if(nil == urlResponse) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{ NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - } - return nil; - } - - switch (urlResponse.statusCode) { - case 401: - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorNotAuthorized - userInfo:@{ - NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationWrongEmailPassword") - }]; - } - break; - case 200: - case 404: - //Do nothing, handled below - break; - default: - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{ NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - - } - break; - } - if(200 != urlResponse.statusCode && 404 != urlResponse.statusCode) { - //make sure we have an error created if user wanted to have one - NSParameterAssert(nil == error || *error); - return nil; - } - - NSError *jsonParseError = nil; - id jsonObject = [NSJSONSerialization JSONObjectWithData:data - options:0 - error:&jsonParseError]; - //no json or unexpected json - if(nil == jsonObject || ![jsonObject isKindOfClass:[NSDictionary class]]) { - if(error) { - NSDictionary *userInfo = @{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}; - if(jsonParseError) { - NSMutableDictionary *userInfoMutable = [userInfo mutableCopy]; - userInfoMutable[NSUnderlyingErrorKey] = jsonParseError; - userInfo = userInfoMutable; - } - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:userInfo]; - } - return nil; - } - - NSString *status = jsonObject[@"status"]; - NSString *authToken = nil; - if([status isEqualToString:@"identified"]) { - authToken = jsonObject[@"iuid"]; - } else if([status isEqualToString:@"authorized"]) { - authToken = jsonObject[@"auid"]; - } else if([status isEqualToString:@"not authorized"]) { - if(error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorNotAuthorized - userInfo:@{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationNotMember")}]; - - } - } - //if no error is set yet, but error parameter is given, return a generic error - if(nil == authToken && error && nil == *error) { - *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorAPIServerReturnedInvalidResponse - userInfo:@{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; - } - return authToken; -} - -- (NSURL *)deviceAuthenticationURL { - NSString *whatParameter = nil; - switch (self.identificationType) { - case BITAuthenticatorIdentificationTypeWebAuth: - whatParameter = @"email"; - break; - case BITAuthenticatorIdentificationTypeDevice: - whatParameter = @"udid"; - break; - case BITAuthenticatorIdentificationTypeAnonymous: - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - case BITAuthenticatorIdentificationTypeHockeyAppUser: - return nil; - break; - } - NSURL *url = [self.webpageURL URLByAppendingPathComponent:[NSString stringWithFormat:@"apps/%@/authorize", self.encodedAppIdentifier]]; - NSParameterAssert(whatParameter && url.absoluteString); - url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?what=%@", url.absoluteString, whatParameter]]; - return url; -} - -- (void)authenticationViewControllerDidTapWebButton:(UIViewController *)viewController { - NSURL *url = [self deviceAuthenticationURL]; - if(url) { - [[UIApplication sharedApplication] openURL:url]; - } -} - -- (BOOL) handleOpenURL:(NSURL *) url - sourceApplication:(NSString *) sourceApplication - annotation:(id) annotation { - //check if this URL was meant for us, if not return NO so the user can - //handle it - NSString *const kAuthorizationHost = @"authorize"; - NSString *urlScheme = _urlScheme ? : [NSString stringWithFormat:@"ha%@", self.appIdentifier]; - if(!([[url scheme] isEqualToString:urlScheme] && [[url host] isEqualToString:kAuthorizationHost])) { - BITHockeyLog(@"URL scheme for authentication doesn't match!"); - return NO; - } - - NSString *installationIdentifier = nil; - NSString *localizedErrorDescription = nil; - switch (self.identificationType) { - case BITAuthenticatorIdentificationTypeWebAuth: { - NSString *email = nil; - [self.class email:&email andIUID:&installationIdentifier fromOpenURL:url]; - if(email) { - BOOL success = [self addStringValueToKeychain:email forKey:kBITAuthenticatorUserEmailKey]; - if (!success) { - [self alertOnFailureStoringTokenInKeychain]; - } - } else { - BITHockeyLog(@"No email found in URL: %@", url); - } - localizedErrorDescription = @"Failed to retrieve parameters from URL."; - break; - } - case BITAuthenticatorIdentificationTypeDevice: { - installationIdentifier = [self.class UDIDFromOpenURL:url annotation:annotation]; - localizedErrorDescription = @"Failed to retrieve UDID from URL."; - break; - } - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - case BITAuthenticatorIdentificationTypeAnonymous: - case BITAuthenticatorIdentificationTypeHockeyAppUser: - return NO; - } - - if(installationIdentifier){ - BITHockeyLog(@"Authentication succeeded."); - if(NO == self.restrictApplicationUsage) { - [self dismissAuthenticationControllerAnimated:YES completion:nil]; - } - [self storeInstallationIdentifier:installationIdentifier withType:self.identificationType]; - self.identified = YES; - if(self.identificationCompletion) { - self.identificationCompletion(YES, nil); - self.identificationCompletion = nil; - } - } else { - //reset token - BITHockeyLog(@"Resetting authentication token"); - [self storeInstallationIdentifier:nil withType:self.identificationType]; - self.identified = NO; - if(self.identificationCompletion) { - NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain - code:BITAuthenticatorErrorUnknown - userInfo:@{NSLocalizedDescriptionKey : localizedErrorDescription}]; - self.identificationCompletion(NO, error); - self.identificationCompletion = nil; - } - } - return YES; -} - -+ (NSString *) UDIDFromOpenURL:(NSURL *) url annotation:(id) annotation { - NSString *query = [url query]; - NSString *udid = nil; - //there should actually only one - static NSString * const UDIDQuerySpecifier = @"udid"; - for(NSString *queryComponents in [query componentsSeparatedByString:@"&"]) { - NSArray *parameterComponents = [queryComponents componentsSeparatedByString:@"="]; - if(2 == parameterComponents.count && [parameterComponents[0] isEqualToString:UDIDQuerySpecifier]) { - udid = parameterComponents[1]; - break; - } - } - return udid; -} - -+ (void) email:(NSString**) email andIUID:(NSString**) iuid fromOpenURL:(NSURL *) url { - NSString *query = [url query]; - //there should actually only one - static NSString * const EmailQuerySpecifier = @"email"; - static NSString * const IUIDQuerySpecifier = @"iuid"; - for(NSString *queryComponents in [query componentsSeparatedByString:@"&"]) { - NSArray *parameterComponents = [queryComponents componentsSeparatedByString:@"="]; - if(email && 2 == parameterComponents.count && [parameterComponents[0] isEqualToString:EmailQuerySpecifier]) { - *email = parameterComponents[1]; - } else if(iuid && 2 == parameterComponents.count && [parameterComponents[0] isEqualToString:IUIDQuerySpecifier]) { - *iuid = parameterComponents[1]; - } - } -} - -#pragma mark - Private helpers - -- (void) cleanupInternalStorage { - [self removeKeyFromKeychain:kBITAuthenticatorIdentifierTypeKey]; - [self removeKeyFromKeychain:kBITAuthenticatorIdentifierKey]; - [self removeKeyFromKeychain:kBITAuthenticatorUUIDKey]; - [self removeKeyFromKeychain:kBITAuthenticatorUserEmailKey]; - [self setLastAuthenticatedVersion:nil]; - - //cleanup values stored from 3.5 Beta1..Beta3 - [self removeKeyFromKeychain:kBITAuthenticatorAuthTokenKey]; - [self removeKeyFromKeychain:kBITAuthenticatorAuthTokenTypeKey]; -} - -- (void)processFullSizeImage { -#ifdef BIT_INTERNAL_DEBUG - NSString* path = [[NSBundle mainBundle] pathForResource:@"iTunesArtwork" ofType:@"png"]; -#else - NSString* path = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/../iTunesArtwork"]; -#endif - - struct stat fs; - int fd = open([path UTF8String], O_RDONLY, 0); - if (fstat(fd, &fs) < 0) { - // File not found - return; - } - - BITHockeyLog(@"Processing full size image for possible authentication"); - - unsigned char *buffer, *source; - source = (unsigned char *)malloc((unsigned long)fs.st_size); - if (read(fd, source, (unsigned long)fs.st_size) != fs.st_size) { - // Couldn't read file - free(source); - return; - } - - if ((fs.st_size < 20) || (memcmp(source, kBITPNGHeader, 8))) { - // Not a PNG - free(source); - return; - } - - buffer = source + 8; - - NSString *result = nil; - bit_uint32 length; - unsigned char *name; - unsigned char *data; - int chunk_index = 0; - long long bytes_left = fs.st_size - 8; - do { - memcpy(&length, buffer, 4); - length = ntohl(length); - - buffer += 4; - name = (unsigned char *)malloc(5); - name[4] = 0; - memcpy(name, buffer, 4); - - buffer += 4; - data = (unsigned char *)malloc(length + 1); - - if (bytes_left >= length) { - memcpy(data, buffer, length); - - buffer += length; - buffer += 4; - if (!strcmp((const char *)name, "tEXt")) { - data[length] = 0; - NSString *key = [NSString stringWithCString:(char *)data encoding:NSUTF8StringEncoding]; - - if ([key isEqualToString:@"Data"]) { - result = [NSString stringWithCString:(char *)(data + key.length + 1) encoding:NSUTF8StringEncoding]; - } - } - - if (!memcmp(name, kBITPNGEndChunk, 4)){ - chunk_index = 128; - } - } - - free(data); - free(name); - - bytes_left -= (length + 3 * 4); - } while ((chunk_index++ < 128) && (bytes_left > 8)); - - free(source); - - if (result) { - BITHockeyLog(@"Authenticating using full size image information: %@", result); - [self handleOpenURL:[NSURL URLWithString:result] sourceApplication:nil annotation:nil]; - } else { - BITHockeyLog(@"No authentication information found"); - } -} - -#pragma mark - KVO -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - if(nil == _appDidBecomeActiveObserver) { - _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf applicationDidBecomeActive:note]; - }]; - } - if(nil == _appDidEnterBackgroundObserver) { - _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf applicationDidEnterBackground:note]; - }]; - } -} - -- (void) unregisterObservers { - if(_appDidBecomeActiveObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; - _appDidBecomeActiveObserver = nil; - } - if(_appDidEnterBackgroundObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; - _appDidEnterBackgroundObserver = nil; - } -} - -#pragma mark - Property overrides -- (void)storeInstallationIdentifier:(NSString *)installationIdentifier withType:(BITAuthenticatorIdentificationType) type { - if(nil == installationIdentifier) { - [self removeKeyFromKeychain:kBITAuthenticatorIdentifierKey]; - [self removeKeyFromKeychain:kBITAuthenticatorIdentifierTypeKey]; - } else { - BOOL success1 = [self addStringValueToKeychainForThisDeviceOnly:installationIdentifier - forKey:kBITAuthenticatorIdentifierKey]; - NSParameterAssert(success1); - BOOL success2 = [self addStringValueToKeychainForThisDeviceOnly:[self.class stringForIdentificationType:type] - forKey:kBITAuthenticatorIdentifierTypeKey]; - NSParameterAssert(success2); - if (!success1 || !success2) { - [self alertOnFailureStoringTokenInKeychain]; - } - } -} - -- (NSString*) installationIdentifier { - NSString *identifier = [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierKey]; - return identifier; -} - -- (void)setLastAuthenticatedVersion:(NSString *)lastAuthenticatedVersion { - NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; - if(nil == lastAuthenticatedVersion){ - [defaults removeObjectForKey:kBITAuthenticatorLastAuthenticatedVersionKey]; - } else { - [defaults setObject:lastAuthenticatedVersion - forKey:kBITAuthenticatorLastAuthenticatedVersionKey]; - [defaults synchronize]; - } -} - -- (NSString *)lastAuthenticatedVersion { - return [[NSUserDefaults standardUserDefaults] objectForKey:kBITAuthenticatorLastAuthenticatedVersionKey]; -} - -- (NSString *)installationIdentifierParameterString { - switch(self.identificationType) { - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - case BITAuthenticatorIdentificationTypeWebAuth: - return @"iuid"; - case BITAuthenticatorIdentificationTypeHockeyAppUser: return @"auid"; - case BITAuthenticatorIdentificationTypeDevice: return @"udid"; - case BITAuthenticatorIdentificationTypeAnonymous: return @"uuid"; - } -} - -+ (NSString *)stringForIdentificationType:(BITAuthenticatorIdentificationType) identificationType { - switch(identificationType) { - case BITAuthenticatorIdentificationTypeHockeyAppEmail: return @"iuid"; - case BITAuthenticatorIdentificationTypeWebAuth: return @"webAuth"; - case BITAuthenticatorIdentificationTypeHockeyAppUser: return @"auid"; - case BITAuthenticatorIdentificationTypeDevice: return @"udid"; - case BITAuthenticatorIdentificationTypeAnonymous: return @"uuid"; - } -} - -- (void)setIdentificationType:(BITAuthenticatorIdentificationType)identificationType { - if(_identificationType != identificationType) { - _identificationType = identificationType; - self.identified = NO; - self.validated = NO; - } -} - -- (NSString *)publicInstallationIdentifier { - switch (self.identificationType) { - case BITAuthenticatorIdentificationTypeHockeyAppEmail: - case BITAuthenticatorIdentificationTypeHockeyAppUser: - case BITAuthenticatorIdentificationTypeWebAuth: - return [self stringValueFromKeychainForKey:kBITAuthenticatorUserEmailKey]; - case BITAuthenticatorIdentificationTypeAnonymous: - case BITAuthenticatorIdentificationTypeDevice: - return [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierKey]; - } -} - -#pragma mark - Application Lifecycle -- (void)applicationDidBecomeActive:(NSNotification *)note { - [self authenticate]; -} - -- (void)applicationDidEnterBackground:(NSNotification *)note { - if(BITAuthenticatorAppRestrictionEnforcementOnAppActive == self.restrictionEnforcementFrequency) { - self.validated = NO; - } -} - -#pragma mark - UIAlertViewDelegate -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - if (alertView.tag == 0) { - [self validate]; - } -} -@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator_Private.h b/Pods/HockeySDK/Classes/BITAuthenticator_Private.h deleted file mode 100644 index 960279a..0000000 --- a/Pods/HockeySDK/Classes/BITAuthenticator_Private.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - - -#import "BITAuthenticator.h" -#import "BITHockeyBaseManagerPrivate.h" -#import "BITAuthenticationViewController.h" -@class BITHockeyAppClient; - -@interface BITAuthenticator () - -/** - Delegate that can be used to do any last minute configurations on the - presented viewController. - - The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You - should not need to set this delegate individually. - - @see `[BITHockeyManager setDelegate:]` - @see BITAuthenticatorDelegate - */ -@property (nonatomic, weak) id delegate; - -/** - * must be set - */ -@property (nonatomic, strong) BITHockeyAppClient *hockeyAppClient; - -#pragma mark - -/** - * holds the identifier of the last version that was authenticated - * only used if validation is set BITAuthenticatorValidationTypeOnFirstLaunch - */ -@property (nonatomic, copy) NSString *lastAuthenticatedVersion; - -/** - * returns the type of the string stored in installationIdentifierParameterString - */ -@property (nonatomic, copy, readonly) NSString *installationIdentifierParameterString; - -/** - * returns the string used to identify this app against the HockeyApp backend. - */ -@property (nonatomic, copy, readonly) NSString *installationIdentifier; - -/** - * method registered as observer for applicationDidEnterBackground events - * - * @param note NSNotification - */ -- (void) applicationDidEnterBackground:(NSNotification*) note; - -/** - * method registered as observer for applicationsDidBecomeActive events - * - * @param note NSNotification - */ -- (void) applicationDidBecomeActive:(NSNotification*) note; - -@property (nonatomic, copy) void(^identificationCompletion)(BOOL identified, NSError* error); - -#pragma mark - Overrides -@property (nonatomic, assign, readwrite, getter = isIdentified) BOOL identified; -@property (nonatomic, assign, readwrite, getter = isValidated) BOOL validated; - -#pragma mark - Testing -- (void) storeInstallationIdentifier:(NSString*) identifier withType:(BITAuthenticatorIdentificationType) type; -- (BOOL) needsValidation; -- (void) authenticate; -@end diff --git a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h deleted file mode 100644 index cb5a1f3..0000000 --- a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITImageAnnotation.h" - -@interface BITBlurImageAnnotation : BITImageAnnotation - -@end diff --git a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m deleted file mode 100644 index 356b05b..0000000 --- a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITBlurImageAnnotation.h" - -@interface BITBlurImageAnnotation() - -@property (nonatomic, strong) CALayer* imageLayer; -@property (nonatomic, strong) UIImage* scaledImage; -@property (nonatomic, strong) CALayer* selectedLayer; - - -@end - -@implementation BITBlurImageAnnotation - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.clipsToBounds = YES; - self.imageLayer = [CALayer layer]; - [self.layer addSublayer:self.imageLayer]; - - self.selectedLayer = [CALayer layer]; - [self.layer insertSublayer:self.selectedLayer above:self.imageLayer]; - - self.selectedLayer.backgroundColor = [[UIColor redColor] colorWithAlphaComponent:0.5f].CGColor; - self.selectedLayer.opacity = 0.6f; - self.clipsToBounds = YES; - } - return self; -} - -- (void)setSourceImage:(UIImage *)sourceImage { - CGSize size = CGSizeMake(sourceImage.size.width/30, sourceImage.size.height/30); - - UIGraphicsBeginImageContext(size); - - [sourceImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; - self.scaledImage = UIGraphicsGetImageFromCurrentImageContext(); - self.imageLayer.shouldRasterize = YES; - self.imageLayer.rasterizationScale = 1; - self.imageLayer.magnificationFilter = kCAFilterNearest; - self.imageLayer.contents = (id)self.scaledImage.CGImage; - - UIGraphicsEndImageContext(); -} - -- (void)setSelected:(BOOL)selected { - self->_selected = selected; - - if (selected){ - self.selectedLayer.opacity = 0.6f; - } else { - self.selectedLayer.opacity = 0.0f; - } -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - [CATransaction begin]; - [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; - - self.imageLayer.frame = self.imageFrame; - self.imageLayer.masksToBounds = YES; - - self.selectedLayer.frame= self.bounds; - [CATransaction commit]; -} - -- (BOOL)resizable { - return YES; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashAttachment.h b/Pods/HockeySDK/Classes/BITCrashAttachment.h deleted file mode 100644 index 9f7d427..0000000 --- a/Pods/HockeySDK/Classes/BITCrashAttachment.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2014 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. - */ - -#import "BITHockeyAttachment.h" - -/** - Deprecated: Provides support to add binary attachments to crash reports - - This class is not needed any longer and exists for compatibility purposes with - HockeySDK-iOS 3.5.5. - - It is a subclass of `BITHockeyAttachment` which only provides an initializer - that is compatible with the one of HockeySDK-iOS 3.5.5. - - This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]` - - @see BITHockeyAttachment - */ -@interface BITCrashAttachment : BITHockeyAttachment - -/** - Create an BITCrashAttachment instance with a given filename and NSData object - - @param filename The filename the attachment should get - @param crashAttachmentData The attachment data as NSData - @param contentType The content type of your data as MIME type - - @return An instance of BITCrashAttachment - */ -- (instancetype)initWithFilename:(NSString *)filename - crashAttachmentData:(NSData *)crashAttachmentData - contentType:(NSString *)contentType; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashAttachment.m b/Pods/HockeySDK/Classes/BITCrashAttachment.m deleted file mode 100644 index 011c87a..0000000 --- a/Pods/HockeySDK/Classes/BITCrashAttachment.m +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2014 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. - */ - -#import "BITCrashAttachment.h" - -@implementation BITCrashAttachment - -- (instancetype)initWithFilename:(NSString *)filename - crashAttachmentData:(NSData *)crashAttachmentData - contentType:(NSString *)contentType -{ - self = [super initWithFilename:filename hockeyAttachmentData:crashAttachmentData contentType:contentType]; - - return self; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetails.h b/Pods/HockeySDK/Classes/BITCrashDetails.h deleted file mode 100644 index 072ece0..0000000 --- a/Pods/HockeySDK/Classes/BITCrashDetails.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -/** - * Provides details about the crash that occurred in the previous app session - */ -@interface BITCrashDetails : NSObject - -/** - * UUID for the crash report - */ -@property (nonatomic, readonly, strong) NSString *incidentIdentifier; - -/** - * UUID for the app installation on the device - */ -@property (nonatomic, readonly, strong) NSString *reporterKey; - -/** - * Signal that caused the crash - */ -@property (nonatomic, readonly, strong) NSString *signal; - -/** - * Exception name that triggered the crash, nil if the crash was not caused by an exception - */ -@property (nonatomic, readonly, strong) NSString *exceptionName; - -/** - * Exception reason, nil if the crash was not caused by an exception - */ -@property (nonatomic, readonly, strong) NSString *exceptionReason; - -/** - * Date and time the app started, nil if unknown - */ -@property (nonatomic, readonly, strong) NSDate *appStartTime; - -/** - * Date and time the crash occurred, nil if unknown - */ -@property (nonatomic, readonly, strong) NSDate *crashTime; - -/** - * Operation System version string the app was running on when it crashed. - */ -@property (nonatomic, readonly, strong) NSString *osVersion; - -/** - * Operation System build string the app was running on when it crashed - * - * This may be unavailable. - */ -@property (nonatomic, readonly, strong) NSString *osBuild; - -/** - * CFBundleVersion value of the app that crashed - */ -@property (nonatomic, readonly, strong) NSString *appBuild; - -/** - Indicates if the app was killed while being in foreground from the iOS - - If `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` is enabled, use this on startup - to check if the app starts the first time after it was killed by iOS in the previous session. - - This can happen if it consumed too much memory or the watchdog killed the app because it - took too long to startup or blocks the main thread for too long, or other reasons. See Apple - documentation: https://developer.apple.com/library/ios/qa/qa1693/_index.html - - See `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` for more details about which kind of kills can be detected. - - @warning This property only has a correct value, once `[BITHockeyManager startManager]` was - invoked! In addition, it is automatically disabled while a debugger session is active! - - @see `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` - @see `[BITCrashManager didReceiveMemoryWarningInLastSession]` - - @return YES if the details represent an app kill instead of a crash - */ -- (BOOL)isAppKill; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetails.m b/Pods/HockeySDK/Classes/BITCrashDetails.m deleted file mode 100644 index 73cfa80..0000000 --- a/Pods/HockeySDK/Classes/BITCrashDetails.m +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITCrashDetails.h" -#import "BITCrashDetailsPrivate.h" - -NSString *const kBITCrashKillSignal = @"SIGKILL"; - -@implementation BITCrashDetails - -- (instancetype)initWithIncidentIdentifier:(NSString *)incidentIdentifier - reporterKey:(NSString *)reporterKey - signal:(NSString *)signal - exceptionName:(NSString *)exceptionName - exceptionReason:(NSString *)exceptionReason - appStartTime:(NSDate *)appStartTime - crashTime:(NSDate *)crashTime - osVersion:(NSString *)osVersion - osBuild:(NSString *)osBuild - appBuild:(NSString *)appBuild -{ - if ((self = [super init])) { - _incidentIdentifier = incidentIdentifier; - _reporterKey = reporterKey; - _signal = signal; - _exceptionName = exceptionName; - _exceptionReason = exceptionReason; - _appStartTime = appStartTime; - _crashTime = crashTime; - _osVersion = osVersion; - _osBuild = osBuild; - _appBuild = appBuild; - } - return self; -} - -- (BOOL)isAppKill { - BOOL result = NO; - - if (_signal && [[_signal uppercaseString] isEqualToString:kBITCrashKillSignal]) - result = YES; - - return result; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h b/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h deleted file mode 100644 index 1916f22..0000000 --- a/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -extern NSString *const __attribute__((unused)) kBITCrashKillSignal; - -@interface BITCrashDetails () { - -} - -- (instancetype)initWithIncidentIdentifier:(NSString *)incidentIdentifier - reporterKey:(NSString *)reporterKey - signal:(NSString *)signal - exceptionName:(NSString *)exceptionName - exceptionReason:(NSString *)exceptionReason - appStartTime:(NSDate *)appStartTime - crashTime:(NSDate *)crashTime - osVersion:(NSString *)osVersion - osBuild:(NSString *)osBuild - appBuild:(NSString *)appBuild; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashManager.h b/Pods/HockeySDK/Classes/BITCrashManager.h deleted file mode 100644 index e415ce8..0000000 --- a/Pods/HockeySDK/Classes/BITCrashManager.h +++ /dev/null @@ -1,442 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde & Kent Sutherland. - * 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. - */ - -#import - -#import "BITHockeyBaseManager.h" - -@class BITCrashDetails; -@class BITCrashMetaData; - - -/** - * Custom block that handles the alert that prompts the user whether he wants to send crash reports - */ -typedef void(^BITCustomAlertViewHandler)(); - - -/** - * Crash Manager status - */ -typedef NS_ENUM(NSUInteger, BITCrashManagerStatus) { - /** - * Crash reporting is disabled - */ - BITCrashManagerStatusDisabled = 0, - /** - * User is asked each time before sending - */ - BITCrashManagerStatusAlwaysAsk = 1, - /** - * Each crash report is send automatically - */ - BITCrashManagerStatusAutoSend = 2 -}; - - -/** - * Prototype of a callback function used to execute additional user code. Called upon completion of crash - * handling, after the crash report has been written to disk. - * - * @param context The API client's supplied context value. - * - * @see `BITCrashManagerCallbacks` - * @see `[BITCrashManager setCrashCallbacks:]` - */ -typedef void (*BITCrashManagerPostCrashSignalCallback)(void *context); - -/** - * This structure contains callbacks supported by `BITCrashManager` to allow the host application to perform - * additional tasks prior to program termination after a crash has occurred. - * - * @see `BITCrashManagerPostCrashSignalCallback` - * @see `[BITCrashManager setCrashCallbacks:]` - */ -typedef struct BITCrashManagerCallbacks { - /** An arbitrary user-supplied context value. This value may be NULL. */ - void *context; - - /** - * The callback used to report caught signal information. - */ - BITCrashManagerPostCrashSignalCallback handleSignal; -} BITCrashManagerCallbacks; - -/** - * Crash Manager alert user input - */ -typedef NS_ENUM(NSUInteger, BITCrashManagerUserInput) { - /** - * User chose not to send the crash report - */ - BITCrashManagerUserInputDontSend = 0, - /** - * User wants the crash report to be sent - */ - BITCrashManagerUserInputSend = 1, - /** - * User chose to always send crash reports - */ - BITCrashManagerUserInputAlwaysSend = 2 - -}; - - -@protocol BITCrashManagerDelegate; - -/** - The crash reporting module. - - This is the HockeySDK module for handling crash reports, including when distributed via the App Store. - As a foundation it is using the open source, reliable and async-safe crash reporting framework - [PLCrashReporter](https://code.google.com/p/plcrashreporter/). - - This module works as a wrapper around the underlying crash reporting framework and provides functionality to - detect new crashes, queues them if networking is not available, present a user interface to approve sending - the reports to the HockeyApp servers and more. - - It also provides options to add additional meta information to each crash report, like `userName`, `userEmail` - via `BITHockeyManagerDelegate` protocol, and additional textual log information via `BITCrashManagerDelegate` - protocol and a way to detect startup crashes so you can adjust your startup process to get these crash reports - too and delay your app initialization. - - Crashes are send the next time the app starts. If `crashManagerStatus` is set to `BITCrashManagerStatusAutoSend`, - crashes will be send without any user interaction, otherwise an alert will appear allowing the users to decide - whether they want to send the report or not. This module is not sending the reports right when the crash happens - deliberately, because if is not safe to implement such a mechanism while being async-safe (any Objective-C code - is _NOT_ async-safe!) and not causing more danger like a deadlock of the device, than helping. We found that users - do start the app again because most don't know what happened, and you will get by far most of the reports. - - Sending the reports on startup is done asynchronously (non-blocking). This is the only safe way to ensure - that the app won't be possibly killed by the iOS watchdog process, because startup could take too long - and the app could not react to any user input when network conditions are bad or connectivity might be - very slow. - - It is possible to check upon startup if the app crashed before using `didCrashInLastSession` and also how much - time passed between the app launch and the crash using `timeIntervalCrashInLastSessionOccurred`. This allows you - to add additional code to your app delaying the app start until the crash has been successfully send if the crash - occurred within a critical startup timeframe, e.g. after 10 seconds. The `BITCrashManagerDelegate` protocol provides - various delegates to inform the app about it's current status so you can continue the remaining app startup setup - after sending has been completed. The documentation contains a guide - [How to handle Crashes on startup](HowTo-Handle-Crashes-On-Startup) with an example on how to do that. - - More background information on this topic can be found in the following blog post by Landon Fuller, the - developer of [PLCrashReporter](https://www.plcrashreporter.org), about writing reliable and - safe crash reporting: [Reliable Crash Reporting](http://goo.gl/WvTBR) - - @warning If you start the app with the Xcode debugger attached, detecting crashes will _NOT_ be enabled! - */ - -@interface BITCrashManager : BITHockeyBaseManager - - -///----------------------------------------------------------------------------- -/// @name Configuration -///----------------------------------------------------------------------------- - -/** Set the default status of the Crash Manager - - Defines if the crash reporting feature should be disabled, ask the user before - sending each crash report or send crash reports automatically without - asking. - - The default value is `BITCrashManagerStatusAlwaysAsk`. The user can switch to - `BITCrashManagerStatusAutoSend` by choosing "Always" in the dialog (since - `showAlwaysButton` default is _YES_). - - The current value is always stored in User Defaults with the key - `BITCrashManagerStatus`. - - If you intend to implement a user setting to let them enable or disable - crash reporting, this delegate should be used to return that value. You also - have to make sure the new value is stored in the UserDefaults with the key - `BITCrashManagerStatus`. - - @see BITCrashManagerStatus - @see showAlwaysButton - */ -@property (nonatomic, assign) BITCrashManagerStatus crashManagerStatus; - - -/** - * Trap fatal signals via a Mach exception server. - * - * By default the SDK is using the safe and proven in-process BSD Signals for catching crashes. - * This option provides an option to enable catching fatal signals via a Mach exception server - * instead. - * - * We strongly advice _NOT_ to enable Mach exception handler in release versions of your apps! - * - * Default: _NO_ - * - * @warning The Mach exception handler executes in-process, and will interfere with debuggers when - * they attempt to suspend all active threads (which will include the Mach exception handler). - * Mach-based handling should _NOT_ be used when a debugger is attached. The SDK will not - * enabled catching exceptions if the app is started with the debugger running. If you attach - * the debugger during runtime, this may cause issues the Mach exception handler is enabled! - * @see isDebuggerAttached - */ -@property (nonatomic, assign, getter=isMachExceptionHandlerEnabled) BOOL enableMachExceptionHandler; - - -/** - * Enable on device symbolication for system symbols - * - * By default, the SDK does not symbolicate on the device, since this can - * take a few seconds at each crash. Also note that symbolication on the - * device might not be able to retrieve all symbols. - * - * Enable if you want to analyze crashes on unreleased OS versions. - * - * Default: _NO_ - */ -@property (nonatomic, assign, getter=isOnDeviceSymbolicationEnabled) BOOL enableOnDeviceSymbolication; - - -/** - * EXPERIMENTAL: Enable heuristics to detect the app not terminating cleanly - * - * This allows it to get a crash report if the app got killed while being in the foreground - * because of now of the following reasons: - * - The main thread was blocked for too long - * - The app took too long to start up - * - The app tried to allocate too much memory. If iOS did send a memory warning before killing the app because of this reason, `didReceiveMemoryWarningInLastSession` returns `YES`. - * - Permitted background duration if main thread is running in an endless loop - * - App failed to resume in time if main thread is running in an endless loop - * - If `enableMachExceptionHandler` is not activated, crashed due to stack overflow will also be reported - * - * The following kills can _NOT_ be detected: - * - Terminating the app takes too long - * - Permitted background duration too long for all other cases - * - App failed to resume in time for all other cases - * - possibly more cases - * - * Crash reports triggered by this mechanisms do _NOT_ contain any stack traces since the time of the kill - * cannot be intercepted and hence no stack trace of the time of the kill event can't be gathered. - * - * The heuristic is implemented as follows: - * If the app never gets a `UIApplicationDidEnterBackgroundNotification` or `UIApplicationWillTerminateNotification` - * notification, PLCrashReporter doesn't detect a crash itself, and the app starts up again, it is assumed that - * the app got either killed by iOS while being in foreground or a crash occurred that couldn't be detected. - * - * Default: _NO_ - * - * @warning This is a heuristic and it _MAY_ report false positives! It has been tested with iOS 6.1 and iOS 7. - * Depending on Apple changing notification events, new iOS version may cause more false positives! - * - * @see lastSessionCrashDetails - * @see didReceiveMemoryWarningInLastSession - * @see `BITCrashManagerDelegate considerAppNotTerminatedCleanlyReportForCrashManager:` - * @see [Apple Technical Note TN2151](https://developer.apple.com/library/ios/technotes/tn2151/_index.html) - * @see [Apple Technical Q&A QA1693](https://developer.apple.com/library/ios/qa/qa1693/_index.html) - */ -@property (nonatomic, assign, getter = isAppNotTerminatingCleanlyDetectionEnabled) BOOL enableAppNotTerminatingCleanlyDetection; - - -/** - * Set the callbacks that will be executed prior to program termination after a crash has occurred - * - * PLCrashReporter provides support for executing an application specified function in the context - * of the crash reporter's signal handler, after the crash report has been written to disk. - * - * Writing code intended for execution inside of a signal handler is exceptionally difficult, and is _NOT_ recommended! - * - * _Program Flow and Signal Handlers_ - * - * When the signal handler is called the normal flow of the program is interrupted, and your program is an unknown state. Locks may be held, the heap may be corrupt (or in the process of being updated), and your signal handler may invoke a function that was being executed at the time of the signal. This may result in deadlocks, data corruption, and program termination. - * - * _Async-Safe Functions_ - * - * A subset of functions are defined to be async-safe by the OS, and are safely callable from within a signal handler. If you do implement a custom post-crash handler, it must be async-safe. A table of POSIX-defined async-safe functions and additional information is available from the [CERT programming guide - SIG30-C](https://www.securecoding.cert.org/confluence/display/seccode/SIG30-C.+Call+only+asynchronous-safe+functions+within+signal+handlers). - * - * Most notably, the Objective-C runtime itself is not async-safe, and Objective-C may not be used within a signal handler. - * - * Documentation taken from PLCrashReporter: https://www.plcrashreporter.org/documentation/api/v1.2-rc2/async_safety.html - * - * @see BITCrashManagerPostCrashSignalCallback - * @see BITCrashManagerCallbacks - * - * @param callbacks A pointer to an initialized PLCrashReporterCallback structure, see https://www.plcrashreporter.org/documentation/api/v1.2-rc2/struct_p_l_crash_reporter_callbacks.html - */ -- (void)setCrashCallbacks: (BITCrashManagerCallbacks *) callbacks; - - -/** - Flag that determines if an "Always" option should be shown - - If enabled the crash reporting alert will also present an "Always" option, so - the user doesn't have to approve every single crash over and over again. - - If If `crashManagerStatus` is set to `BITCrashManagerStatusAutoSend`, this property - has no effect, since no alert will be presented. - - Default: _YES_ - - @see crashManagerStatus - */ -@property (nonatomic, assign, getter=shouldShowAlwaysButton) BOOL showAlwaysButton; - - -///----------------------------------------------------------------------------- -/// @name Crash Meta Information -///----------------------------------------------------------------------------- - -/** - Indicates if the app crash in the previous session - - Use this on startup, to check if the app starts the first time after it crashed - previously. You can use this also to disable specific events, like asking - the user to rate your app. - - @warning This property only has a correct value, once `[BITHockeyManager startManager]` was - invoked! - - @see lastSessionCrashDetails - */ -@property (nonatomic, readonly) BOOL didCrashInLastSession; - -/** - Provides an interface to pass user input from a custom alert to a crash report - - @param userInput Defines the users action wether to send, always send, or not to send the crash report. - @param userProvidedMetaData The content of this optional BITCrashMetaData instance will be attached to the crash report and allows to ask the user for e.g. additional comments or info. - - @return Returns YES if the input is a valid option and successfully triggered further processing of the crash report - - @see BITCrashManagerUserInput - @see BITCrashMetaData - */ -- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData; - -/** - Lets you set a custom block which handles showing a custom UI and asking the user - whether he wants to send the crash report. - - This replaces the default alert the SDK would show! - - You can use this to present any kind of user interface which asks the user for additional information, - e.g. what they did in the app before the app crashed. - - In addition to this you should always ask your users if they agree to send crash reports, send them - always or not and return the result when calling `handleUserInput:withUserProvidedCrashDescription`. - - @param alertViewHandler A block that is responsible for loading, presenting and and dismissing your custom user interface which prompts the user if he wants to send crash reports. The block is also responsible for triggering further processing of the crash reports. - - @warning Block needs to call the `[BITCrashManager handleUserInput:withUserProvidedMetaData:]` method! - - @warning This needs to be set before calling `[BITHockeyManager startManager]`! - */ -- (void)setAlertViewHandler:(BITCustomAlertViewHandler)alertViewHandler; - -/** - * Provides details about the crash that occurred in the last app session - */ -@property (nonatomic, readonly) BITCrashDetails *lastSessionCrashDetails; - - -/** - Indicates if the app did receive a low memory warning in the last session - - It may happen that low memory warning where send but couldn't be logged, since iOS - killed the app before updating the flag in the filesystem did complete. - - This property may be true in case of low memory kills, but it doesn't have to be! Apps - can also be killed without the app ever receiving a low memory warning. - - Also the app could have received a low memory warning, but the reason for being killed was - actually different. - - @warning This property only has a correct value, once `[BITHockeyManager startManager]` was - invoked! - - @see enableAppNotTerminatingCleanlyDetection - @see lastSessionCrashDetails - */ -@property (nonatomic, readonly) BOOL didReceiveMemoryWarningInLastSession; - - -/** - Provides the time between startup and crash in seconds - - Use this in together with `didCrashInLastSession` to detect if the app crashed very - early after startup. This can be used to delay app initialization until the crash - report has been sent to the server or if you want to do any other actions like - cleaning up some cache data etc. - - Note that sending a crash reports starts as early as 1.5 seconds after the application - did finish launching! - - The `BITCrashManagerDelegate` protocol provides some delegates to inform if sending - a crash report was finished successfully, ended in error or was cancelled by the user. - - *Default*: _-1_ - @see didCrashInLastSession - @see BITCrashManagerDelegate - */ -@property (nonatomic, readonly) NSTimeInterval timeIntervalCrashInLastSessionOccurred; - - -///----------------------------------------------------------------------------- -/// @name Helper -///----------------------------------------------------------------------------- - -/** - * Detect if a debugger is attached to the app process - * - * This is only invoked once on app startup and can not detect if the debugger is being - * attached during runtime! - * - * @return BOOL if the debugger is attached on app startup - */ -- (BOOL)isDebuggerAttached; - - -/** - * Lets the app crash for easy testing of the SDK - * - * The best way to use this is to trigger the crash with a button action. - * - * Make sure not to let the app crash in `applicationDidFinishLaunching` or any other - * startup method! Since otherwise the app would crash before the SDK could process it. - * - * Note that our SDK provides support for handling crashes that happen early on startup. - * Check the documentation for more information on how to use this. - * - * If the SDK detects an App Store environment, it will _NOT_ cause the app to crash! - */ -- (void)generateTestCrash; - -///----------------------------------------------------------------------------- -/// @name Deprecated -///----------------------------------------------------------------------------- - -@property (nonatomic, readonly) NSTimeInterval timeintervalCrashInLastSessionOccured DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled property `timeIntervalCrashInLastSessionOccurred` instead."); - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashManager.m b/Pods/HockeySDK/Classes/BITCrashManager.m deleted file mode 100644 index 9922668..0000000 --- a/Pods/HockeySDK/Classes/BITCrashManager.m +++ /dev/null @@ -1,1535 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde & Kent Sutherland. - * 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - -#import -#import - -#import "HockeySDKPrivate.h" -#import "BITHockeyHelper.h" -#import "BITHockeyAppClient.h" - -#import "BITCrashAttachment.h" -#import "BITHockeyBaseManagerPrivate.h" -#import "BITCrashManagerPrivate.h" -#import "BITCrashReportTextFormatter.h" -#import "BITCrashDetailsPrivate.h" - -#include - -// stores the set of crashreports that have been approved but aren't sent yet -#define kBITCrashApprovedReports @"HockeySDKCrashApprovedReports" - -// keys for meta information associated to each crash -#define kBITCrashMetaUserName @"BITCrashMetaUserName" -#define kBITCrashMetaUserEmail @"BITCrashMetaUserEmail" -#define kBITCrashMetaUserID @"BITCrashMetaUserID" -#define kBITCrashMetaApplicationLog @"BITCrashMetaApplicationLog" -#define kBITCrashMetaAttachment @"BITCrashMetaAttachment" - -// internal keys -NSString *const KBITAttachmentDictIndex = @"index"; -NSString *const KBITAttachmentDictAttachment = @"attachment"; - -NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus"; - -NSString *const kBITAppWentIntoBackgroundSafely = @"BITAppWentIntoBackgroundSafely"; -NSString *const kBITAppDidReceiveLowMemoryNotification = @"BITAppDidReceiveLowMemoryNotification"; -NSString *const kBITAppVersion = @"BITAppVersion"; -NSString *const kBITAppOSVersion = @"BITAppOSVersion"; -NSString *const kBITAppOSBuild = @"BITAppOSBuild"; -NSString *const kBITAppUUIDs = @"BITAppUUIDs"; - -NSString *const kBITFakeCrashUUID = @"BITFakeCrashUUID"; -NSString *const kBITFakeCrashAppVersion = @"BITFakeCrashAppVersion"; -NSString *const kBITFakeCrashAppBundleIdentifier = @"BITFakeCrashAppBundleIdentifier"; -NSString *const kBITFakeCrashOSVersion = @"BITFakeCrashOSVersion"; -NSString *const kBITFakeCrashDeviceModel = @"BITFakeCrashDeviceModel"; -NSString *const kBITFakeCrashAppBinaryUUID = @"BITFakeCrashAppBinaryUUID"; -NSString *const kBITFakeCrashReport = @"BITFakeCrashAppString"; - - -static BITCrashManagerCallbacks bitCrashCallbacks = { - .context = NULL, - .handleSignal = NULL -}; - -// proxy implementation for PLCrashReporter to keep our interface stable while this can change -static void plcr_post_crash_callback (siginfo_t *info, ucontext_t *uap, void *context) { - if (bitCrashCallbacks.handleSignal != NULL) - bitCrashCallbacks.handleSignal(context); -} - -static PLCrashReporterCallbacks plCrashCallbacks = { - .version = 0, - .context = NULL, - .handleSignal = plcr_post_crash_callback -}; - - -@implementation BITCrashManager { - NSMutableDictionary *_approvedCrashReports; - - NSMutableArray *_crashFiles; - NSString *_lastCrashFilename; - NSString *_settingsFile; - NSString *_analyzerInProgressFile; - NSFileManager *_fileManager; - - PLCrashReporterCallbacks *_crashCallBacks; - - BOOL _crashIdenticalCurrentVersion; - - BOOL _sendingInProgress; - BOOL _isSetup; - - BOOL _didLogLowMemoryWarning; - - id _appDidBecomeActiveObserver; - id _appWillTerminateObserver; - id _appDidEnterBackgroundObserver; - id _appWillEnterForegroundObserver; - id _appDidReceiveLowMemoryWarningObserver; - id _networkDidBecomeReachableObserver; -} - - -- (instancetype)init { - if ((self = [super init])) { - _delegate = nil; - _showAlwaysButton = YES; - _isSetup = NO; - - _plCrashReporter = nil; - _exceptionHandler = nil; - _crashCallBacks = nil; - - _crashIdenticalCurrentVersion = YES; - - _didCrashInLastSession = NO; - _timeIntervalCrashInLastSessionOccurred = -1; - _didLogLowMemoryWarning = NO; - - _approvedCrashReports = [[NSMutableDictionary alloc] init]; - _alertViewHandler = nil; - - _fileManager = [[NSFileManager alloc] init]; - _crashFiles = [[NSMutableArray alloc] init]; - - _crashManagerStatus = BITCrashManagerStatusAlwaysAsk; - - NSString *testValue = [[NSUserDefaults standardUserDefaults] stringForKey:kBITCrashManagerStatus]; - if (testValue) { - _crashManagerStatus = (BITCrashManagerStatus) [[NSUserDefaults standardUserDefaults] integerForKey:kBITCrashManagerStatus]; - } else { - // migrate previous setting if available - if ([[NSUserDefaults standardUserDefaults] boolForKey:@"BITCrashAutomaticallySendReports"]) { - _crashManagerStatus = BITCrashManagerStatusAutoSend; - [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"BITCrashAutomaticallySendReports"]; - } - [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; - } - - _crashesDir = bit_settingsDir(); - _settingsFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_SETTINGS]; - _analyzerInProgressFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_ANALYZER]; - - if ([_fileManager fileExistsAtPath:_analyzerInProgressFile]) { - NSError *error = nil; - [_fileManager removeItemAtPath:_analyzerInProgressFile error:&error]; - } - - if (!BITHockeyBundle() && !bit_isRunningInAppExtension()) { - NSLog(@"[HockeySDK] WARNING: %@ is missing, will send reports automatically!", BITHOCKEYSDK_BUNDLE); - } - } - return self; -} - - -- (void) dealloc { - [self unregisterObservers]; -} - - -- (void)setCrashManagerStatus:(BITCrashManagerStatus)crashManagerStatus { - _crashManagerStatus = crashManagerStatus; - - [[NSUserDefaults standardUserDefaults] setInteger:crashManagerStatus forKey:kBITCrashManagerStatus]; -} - - -#pragma mark - Private - -/** - * Save all settings - * - * This saves the list of approved crash reports - */ -- (void)saveSettings { - NSError *error = nil; - - NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:2]; - if (_approvedCrashReports && [_approvedCrashReports count] > 0) { - [rootObj setObject:_approvedCrashReports forKey:kBITCrashApprovedReports]; - } - - NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)rootObj format:NSPropertyListBinaryFormat_v1_0 options:0 error:&error]; - - if (plist) { - [plist writeToFile:_settingsFile atomically:YES]; - } else { - BITHockeyLog(@"ERROR: Writing settings. %@", [error description]); - } -} - -/** - * Load all settings - * - * This contains the list of approved crash reports - */ -- (void)loadSettings { - NSError *error = nil; - NSPropertyListFormat format; - - if (![_fileManager fileExistsAtPath:_settingsFile]) - return; - - NSData *plist = [NSData dataWithContentsOfFile:_settingsFile]; - if (plist) { - NSDictionary *rootObj = (NSDictionary *)[NSPropertyListSerialization - propertyListWithData:plist - options:NSPropertyListMutableContainersAndLeaves - format:&format - error:&error]; - - if ([rootObj objectForKey:kBITCrashApprovedReports]) - [_approvedCrashReports setDictionary:[rootObj objectForKey:kBITCrashApprovedReports]]; - } else { - BITHockeyLog(@"ERROR: Reading crash manager settings."); - } -} - - -/** - * Remove a cached crash report - * - * @param filename The base filename of the crash report - */ -- (void)cleanCrashReportWithFilename:(NSString *)filename { - if (!filename) return; - - NSError *error = NULL; - - [_fileManager removeItemAtPath:filename error:&error]; - [_fileManager removeItemAtPath:[filename stringByAppendingString:@".data"] error:&error]; - [_fileManager removeItemAtPath:[filename stringByAppendingString:@".meta"] error:&error]; - [_fileManager removeItemAtPath:[filename stringByAppendingString:@".desc"] error:&error]; - - NSString *cacheFilename = [filename lastPathComponent]; - [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserName]]; - [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserEmail]]; - [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserID]]; - - [_crashFiles removeObject:filename]; - [_approvedCrashReports removeObjectForKey:filename]; - - [self saveSettings]; -} - -/** - * Remove all crash reports and stored meta data for each from the file system and keychain - * - * This is currently only used as a helper method for tests - */ -- (void)cleanCrashReports { - for (NSUInteger i=0; i < [_crashFiles count]; i++) { - [self cleanCrashReportWithFilename:[_crashFiles objectAtIndex:i]]; - } -} - -- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename { - NSString *attachmentFilename = [filename stringByAppendingString:@".data"]; - NSMutableData *data = [[NSMutableData alloc] init]; - NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; - - [archiver encodeObject:attachment forKey:kBITCrashMetaAttachment]; - - [archiver finishEncoding]; - - [data writeToFile:attachmentFilename atomically:YES]; -} - -- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData { - if (!userProvidedMetaData) return; - - if (userProvidedMetaData.userDescription && [userProvidedMetaData.userDescription length] > 0) { - NSError *error; - [userProvidedMetaData.userDescription writeToFile:[NSString stringWithFormat:@"%@.desc", [_crashesDir stringByAppendingPathComponent: _lastCrashFilename]] atomically:YES encoding:NSUTF8StringEncoding error:&error]; - } - - if (userProvidedMetaData.userName && [userProvidedMetaData.userName length] > 0) { - [self addStringValueToKeychain:userProvidedMetaData.userName forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserName]]; - - } - - if (userProvidedMetaData.userEmail && [userProvidedMetaData.userEmail length] > 0) { - [self addStringValueToKeychain:userProvidedMetaData.userEmail forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserEmail]]; - } - - if (userProvidedMetaData.userID && [userProvidedMetaData.userID length] > 0) { - [self addStringValueToKeychain:userProvidedMetaData.userID forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserID]]; - - } -} - -/** - * Read the attachment data from the stored file - * - * @param filename The crash report file path - * - * @return an BITHockeyAttachment instance or nil - */ -- (BITHockeyAttachment *)attachmentForCrashReport:(NSString *)filename { - NSString *attachmentFilename = [filename stringByAppendingString:@".data"]; - - if (![_fileManager fileExistsAtPath:attachmentFilename]) - return nil; - - - NSData *codedData = [[NSData alloc] initWithContentsOfFile:attachmentFilename]; - if (!codedData) - return nil; - - NSKeyedUnarchiver *unarchiver = nil; - - @try { - unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; - } - @catch (NSException *exception) { - return nil; - } - - if ([unarchiver containsValueForKey:kBITCrashMetaAttachment]) { - BITHockeyAttachment *attachment = [unarchiver decodeObjectForKey:kBITCrashMetaAttachment]; - return attachment; - } - - return nil; -} - -/** - * Extract all app specific UUIDs from the crash reports - * - * This allows us to send the UUIDs in the XML construct to the server, so the server does not need to parse the crash report for this data. - * The app specific UUIDs help to identify which dSYMs are needed to symbolicate this crash report. - * - * @param report The crash report from PLCrashReporter - * - * @return XML structure with the app specific UUIDs - */ -- (NSString *) extractAppUUIDs:(BITPLCrashReport *)report { - NSMutableString *uuidString = [NSMutableString string]; - NSArray *uuidArray = [BITCrashReportTextFormatter arrayOfAppUUIDsForCrashReport:report]; - - for (NSDictionary *element in uuidArray) { - if ([element objectForKey:kBITBinaryImageKeyUUID] && [element objectForKey:kBITBinaryImageKeyArch] && [element objectForKey:kBITBinaryImageKeyUUID]) { - [uuidString appendFormat:@"%@", - [element objectForKey:kBITBinaryImageKeyType], - [element objectForKey:kBITBinaryImageKeyArch], - [element objectForKey:kBITBinaryImageKeyUUID] - ]; - } - } - - return uuidString; -} - -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - - if(nil == _appDidBecomeActiveObserver) { - _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf triggerDelayedProcessing]; - }]; - } - - if(nil == _networkDidBecomeReachableObserver) { - _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf triggerDelayedProcessing]; - }]; - } - - if (nil == _appWillTerminateObserver) { - _appWillTerminateObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillTerminateNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf leavingAppSafely]; - }]; - } - - if (nil == _appDidEnterBackgroundObserver) { - _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf leavingAppSafely]; - }]; - } - - if (nil == _appWillEnterForegroundObserver) { - _appWillEnterForegroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillEnterForegroundNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf appEnteredForeground]; - }]; - } - - if (nil == _appDidReceiveLowMemoryWarningObserver) { - _appDidReceiveLowMemoryWarningObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - // we only need to log this once - if (!_didLogLowMemoryWarning) { - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppDidReceiveLowMemoryNotification]; - [[NSUserDefaults standardUserDefaults] synchronize]; - _didLogLowMemoryWarning = YES; - } - }]; - } -} - -- (void) unregisterObservers { - [self unregisterObserver:_appDidBecomeActiveObserver]; - [self unregisterObserver:_appWillTerminateObserver]; - [self unregisterObserver:_appDidEnterBackgroundObserver]; - [self unregisterObserver:_appWillEnterForegroundObserver]; - [self unregisterObserver:_appDidReceiveLowMemoryWarningObserver]; - - [self unregisterObserver:_networkDidBecomeReachableObserver]; -} - -- (void) unregisterObserver:(id)observer { - if (observer) { - [[NSNotificationCenter defaultCenter] removeObserver:observer]; - observer = nil; - } -} - -- (void)leavingAppSafely { - if (self.isAppNotTerminatingCleanlyDetectionEnabled) - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppWentIntoBackgroundSafely]; -} - -- (void)appEnteredForeground { - // we disable kill detection while the debugger is running, since we'd get only false positives if the app is terminated by the user using the debugger - if (self.isDebuggerAttached) { - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppWentIntoBackgroundSafely]; - } else if (self.isAppNotTerminatingCleanlyDetectionEnabled) { - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:kBITAppWentIntoBackgroundSafely]; - - static dispatch_once_t predAppData; - - dispatch_once(&predAppData, ^{ - id bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; - if (bundleVersion && [bundleVersion isKindOfClass:[NSString class]]) - [[NSUserDefaults standardUserDefaults] setObject:bundleVersion forKey:kBITAppVersion]; - [[NSUserDefaults standardUserDefaults] setObject:[[UIDevice currentDevice] systemVersion] forKey:kBITAppOSVersion]; - [[NSUserDefaults standardUserDefaults] setObject:[self osBuild] forKey:kBITAppOSBuild]; - - NSString *uuidString =[NSString stringWithFormat:@"%@", - [self deviceArchitecture], - [self executableUUID] - ]; - - [[NSUserDefaults standardUserDefaults] setObject:uuidString forKey:kBITAppUUIDs]; - }); - } -} - -- (NSString *)deviceArchitecture { - NSString *archName = @"???"; - - size_t size; - cpu_type_t type; - cpu_subtype_t subtype; - size = sizeof(type); - if (sysctlbyname("hw.cputype", &type, &size, NULL, 0)) - return archName; - - size = sizeof(subtype); - if (sysctlbyname("hw.cpusubtype", &subtype, &size, NULL, 0)) - return archName; - - archName = [BITCrashReportTextFormatter bit_archNameFromCPUType:type subType:subtype] ?: @"???"; - - return archName; -} - -- (NSString *)osBuild { - size_t size; - sysctlbyname("kern.osversion", NULL, &size, NULL, 0); - char *answer = (char*)malloc(size); - if (answer == NULL) - return nil; - sysctlbyname("kern.osversion", answer, &size, NULL, 0); - NSString *osBuild = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding]; - free(answer); - return osBuild; -} - -/** - * Get the userID from the delegate which should be stored with the crash report - * - * @return The userID value - */ -- (NSString *)userIDForCrashReport { - // first check the global keychain storage - NSString *userID = [self stringValueFromKeychainForKey:kBITHockeyMetaUserID] ?: @""; - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - // if we have an identification from BITAuthenticator, use this as a default. - if (( - self.installationIdentificationType == BITAuthenticatorIdentificationTypeAnonymous || - self.installationIdentificationType == BITAuthenticatorIdentificationTypeDevice - ) && - self.installationIdentification) { - userID = self.installationIdentification; - } -#endif - - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) { - userID = [[BITHockeyManager sharedHockeyManager].delegate - userIDForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self] ?: @""; - } - - return userID; -} - -/** - * Get the userName from the delegate which should be stored with the crash report - * - * @return The userName value - */ -- (NSString *)userNameForCrashReport { - // first check the global keychain storage - NSString *username = [self stringValueFromKeychainForKey:kBITHockeyMetaUserName] ?: @""; - - if (self.delegate && [self.delegate respondsToSelector:@selector(userNameForCrashManager:)]) { - username = [self.delegate userNameForCrashManager:self] ?: @""; - } - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) { - username = [[BITHockeyManager sharedHockeyManager].delegate - userNameForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self] ?: @""; - } - - return username; -} - -/** - * Get the userEmail from the delegate which should be stored with the crash report - * - * @return The userEmail value - */ -- (NSString *)userEmailForCrashReport { - // first check the global keychain storage - NSString *useremail = [self stringValueFromKeychainForKey:kBITHockeyMetaUserEmail] ?: @""; - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - // if we have an identification from BITAuthenticator, use this as a default. - if (( - self.installationIdentificationType == BITAuthenticatorIdentificationTypeHockeyAppEmail || - self.installationIdentificationType == BITAuthenticatorIdentificationTypeHockeyAppUser || - self.installationIdentificationType == BITAuthenticatorIdentificationTypeWebAuth - ) && - self.installationIdentification) { - useremail = self.installationIdentification; - } -#endif - - if (self.delegate && [self.delegate respondsToSelector:@selector(userEmailForCrashManager:)]) { - useremail = [self.delegate userEmailForCrashManager:self] ?: @""; - } - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) { - useremail = [[BITHockeyManager sharedHockeyManager].delegate - userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self] ?: @""; - } - - return useremail; -} - - -#pragma mark - Public - - -/** - * Set the callback for PLCrashReporter - * - * @param callbacks BITCrashManagerCallbacks instance - */ -- (void)setCrashCallbacks: (BITCrashManagerCallbacks *) callbacks { - if (!callbacks) return; - - // set our proxy callback struct - bitCrashCallbacks.context = callbacks->context; - bitCrashCallbacks.handleSignal = callbacks->handleSignal; - - // set the PLCrashReporterCallbacks struct - plCrashCallbacks.context = callbacks->context; - - _crashCallBacks = &plCrashCallbacks; -} - - -- (void)setAlertViewHandler:(BITCustomAlertViewHandler)alertViewHandler{ - _alertViewHandler = alertViewHandler; -} - -/** - * Check if the debugger is attached - * - * Taken from https://github.com/plausiblelabs/plcrashreporter/blob/2dd862ce049e6f43feb355308dfc710f3af54c4d/Source/Crash%20Demo/main.m#L96 - * - * @return `YES` if the debugger is attached to the current process, `NO` otherwise - */ -- (BOOL)isDebuggerAttached { - static BOOL debuggerIsAttached = NO; - - static dispatch_once_t debuggerPredicate; - dispatch_once(&debuggerPredicate, ^{ - struct kinfo_proc info; - size_t info_size = sizeof(info); - int name[4]; - - name[0] = CTL_KERN; - name[1] = KERN_PROC; - name[2] = KERN_PROC_PID; - name[3] = getpid(); - - if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) { - NSLog(@"[HockeySDK] ERROR: Checking for a running debugger via sysctl() failed: %s", strerror(errno)); - debuggerIsAttached = false; - } - - if (!debuggerIsAttached && (info.kp_proc.p_flag & P_TRACED) != 0) - debuggerIsAttached = true; - }); - - return debuggerIsAttached; -} - - -- (void)generateTestCrash { - if (![self isAppStoreEnvironment]) { - - if ([self isDebuggerAttached]) { - NSLog(@"[HockeySDK] WARNING: The debugger is attached. The following crash cannot be detected by the SDK!"); - } - - __builtin_trap(); - } -} - -/** - * Write a meta file for a new crash report - * - * @param filename the crash reports temp filename - */ -- (void)storeMetaDataForCrashReportFilename:(NSString *)filename { - NSError *error = NULL; - NSMutableDictionary *metaDict = [NSMutableDictionary dictionaryWithCapacity:4]; - NSString *applicationLog = @""; - - [self addStringValueToKeychain:[self userNameForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserName]]; - [self addStringValueToKeychain:[self userEmailForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserEmail]]; - [self addStringValueToKeychain:[self userIDForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserID]]; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(applicationLogForCrashManager:)]) { - applicationLog = [self.delegate applicationLogForCrashManager:self] ?: @""; - } - [metaDict setObject:applicationLog forKey:kBITCrashMetaApplicationLog]; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(attachmentForCrashManager:)]) { - BITHockeyAttachment *attachment = [self.delegate attachmentForCrashManager:self]; - - if (attachment && attachment.hockeyAttachmentData) { - [self persistAttachment:attachment withFilename:[_crashesDir stringByAppendingPathComponent: filename]]; - } - } - - NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)metaDict - format:NSPropertyListBinaryFormat_v1_0 - options:0 - error:&error]; - if (plist) { - [plist writeToFile:[_crashesDir stringByAppendingPathComponent: [filename stringByAppendingPathExtension:@"meta"]] atomically:YES]; - } else { - BITHockeyLog(@"ERROR: Writing crash meta data failed. %@", error); - } -} - -- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData { - switch (userInput) { - case BITCrashManagerUserInputDontSend: - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { - [self.delegate crashManagerWillCancelSendingCrashReport:self]; - } - - if (_lastCrashFilename) - [self cleanCrashReportWithFilename:[_crashesDir stringByAppendingPathComponent: _lastCrashFilename]]; - - return YES; - - case BITCrashManagerUserInputSend: - if (userProvidedMetaData) - [self persistUserProvidedMetaData:userProvidedMetaData]; - - [self sendNextCrashReport]; - return YES; - - case BITCrashManagerUserInputAlwaysSend: - _crashManagerStatus = BITCrashManagerStatusAutoSend; - [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; - [[NSUserDefaults standardUserDefaults] synchronize]; - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReportsAlways:)]) { - [self.delegate crashManagerWillSendCrashReportsAlways:self]; - } - - if (userProvidedMetaData) - [self persistUserProvidedMetaData:userProvidedMetaData]; - - [self sendNextCrashReport]; - return YES; - - default: - return NO; - } - -} - -#pragma mark - PLCrashReporter - -/** - * Process new crash reports provided by PLCrashReporter - * - * Parse the new crash report and gather additional meta data from the app which will be stored along the crash report - */ -- (void) handleCrashReport { - NSError *error = NULL; - - if (!self.plCrashReporter) return; - - // check if the next call ran successfully the last time - if (![_fileManager fileExistsAtPath:_analyzerInProgressFile]) { - // mark the start of the routine - [_fileManager createFileAtPath:_analyzerInProgressFile contents:nil attributes:nil]; - - [self saveSettings]; - - // Try loading the crash report - NSData *crashData = [[NSData alloc] initWithData:[self.plCrashReporter loadPendingCrashReportDataAndReturnError: &error]]; - - NSString *cacheFilename = [NSString stringWithFormat: @"%.0f", [NSDate timeIntervalSinceReferenceDate]]; - _lastCrashFilename = cacheFilename; - - if (crashData == nil) { - BITHockeyLog(@"ERROR: Could not load crash report: %@", error); - } else { - // get the startup timestamp from the crash report, and the file timestamp to calculate the timeinterval when the crash happened after startup - BITPLCrashReport *report = [[BITPLCrashReport alloc] initWithData:crashData error:&error]; - - if (report == nil) { - BITHockeyLog(@"WARNING: Could not parse crash report"); - } else { - NSDate *appStartTime = nil; - NSDate *appCrashTime = nil; - if ([report.processInfo respondsToSelector:@selector(processStartTime)]) { - if (report.systemInfo.timestamp && report.processInfo.processStartTime) { - appStartTime = report.processInfo.processStartTime; - appCrashTime =report.systemInfo.timestamp; - _timeIntervalCrashInLastSessionOccurred = [report.systemInfo.timestamp timeIntervalSinceDate:report.processInfo.processStartTime]; - } - } - - [crashData writeToFile:[_crashesDir stringByAppendingPathComponent: cacheFilename] atomically:YES]; - - NSString *incidentIdentifier = @"???"; - if (report.uuidRef != NULL) { - incidentIdentifier = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); - } - - NSString *reporterKey = bit_appAnonID() ?: @""; - - _lastSessionCrashDetails = [[BITCrashDetails alloc] initWithIncidentIdentifier:incidentIdentifier - reporterKey:reporterKey - signal:report.signalInfo.name - exceptionName:report.exceptionInfo.exceptionName - exceptionReason:report.exceptionInfo.exceptionReason - appStartTime:appStartTime - crashTime:appCrashTime - osVersion:report.systemInfo.operatingSystemVersion - osBuild:report.systemInfo.operatingSystemBuild - appBuild:report.applicationInfo.applicationVersion - ]; - - // fetch and store the meta data after setting _lastSessionCrashDetails, so the property can be used in the protocol methods - [self storeMetaDataForCrashReportFilename:cacheFilename]; - } - } - } - - // Purge the report - // mark the end of the routine - if ([_fileManager fileExistsAtPath:_analyzerInProgressFile]) { - [_fileManager removeItemAtPath:_analyzerInProgressFile error:&error]; - } - - [self saveSettings]; - - [self.plCrashReporter purgePendingCrashReport]; -} - -/** - Get the filename of the first not approved crash report - - @return NSString Filename of the first found not approved crash report - */ -- (NSString *)firstNotApprovedCrashReport { - if ((!_approvedCrashReports || [_approvedCrashReports count] == 0) && [_crashFiles count] > 0) { - return [_crashFiles objectAtIndex:0]; - } - - for (NSUInteger i=0; i < [_crashFiles count]; i++) { - NSString *filename = [_crashFiles objectAtIndex:i]; - - if (![_approvedCrashReports objectForKey:filename]) return filename; - } - - return nil; -} - -/** - * Check if there are any new crash reports that are not yet processed - * - * @return `YES` if there is at least one new crash report found, `NO` otherwise - */ -- (BOOL)hasPendingCrashReport { - if (_crashManagerStatus == BITCrashManagerStatusDisabled) return NO; - - if ([self.fileManager fileExistsAtPath:_crashesDir]) { - NSError *error = NULL; - - NSArray *dirArray = [self.fileManager contentsOfDirectoryAtPath:_crashesDir error:&error]; - - for (NSString *file in dirArray) { - NSString *filePath = [_crashesDir stringByAppendingPathComponent:file]; - - NSDictionary *fileAttributes = [self.fileManager attributesOfItemAtPath:filePath error:&error]; - if ([[fileAttributes objectForKey:NSFileType] isEqualToString:NSFileTypeRegular] && - [[fileAttributes objectForKey:NSFileSize] intValue] > 0 && - ![file hasSuffix:@".DS_Store"] && - ![file hasSuffix:@".analyzer"] && - ![file hasSuffix:@".plist"] && - ![file hasSuffix:@".data"] && - ![file hasSuffix:@".meta"] && - ![file hasSuffix:@".desc"]) { - [_crashFiles addObject:filePath]; - } - } - } - - if ([_crashFiles count] > 0) { - BITHockeyLog(@"INFO: %lu pending crash reports found.", (unsigned long)[_crashFiles count]); - return YES; - } else { - if (_didCrashInLastSession) { - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { - [self.delegate crashManagerWillCancelSendingCrashReport:self]; - } - - _didCrashInLastSession = NO; - } - - return NO; - } -} - - -#pragma mark - Crash Report Processing - -- (void)triggerDelayedProcessing { - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(invokeDelayedProcessing) object:nil]; - [self performSelector:@selector(invokeDelayedProcessing) withObject:nil afterDelay:0.5]; -} - -/** - * Delayed startup processing for everything that does not to be done in the app startup runloop - * - * - Checks if there is another exception handler installed that may block ours - * - Present UI if the user has to approve new crash reports - * - Send pending approved crash reports - */ -- (void)invokeDelayedProcessing { - if (!bit_isRunningInAppExtension() && - [[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { - return; - } - - BITHockeyLog(@"INFO: Start delayed CrashManager processing"); - - // was our own exception handler successfully added? - if (self.exceptionHandler) { - // get the current top level error handler - NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); - - // If the top level error handler differs from our own, then at least another one was added. - // This could cause exception crashes not to be reported to HockeyApp. See log message for details. - if (self.exceptionHandler != currentHandler) { - BITHockeyLog(@"[HockeySDK] WARNING: Another exception handler was added. If this invokes any kind exit() after processing the exception, which causes any subsequent error handler not to be invoked, these crashes will NOT be reported to HockeyApp!"); - } - } - - if (!_sendingInProgress && [self hasPendingCrashReport]) { - _sendingInProgress = YES; - - NSString *notApprovedReportFilename = [self firstNotApprovedCrashReport]; - - // this can happen in case there is a non approved crash report but it didn't happen in the previous app session - if (notApprovedReportFilename && !_lastCrashFilename) { - _lastCrashFilename = [notApprovedReportFilename lastPathComponent]; - } - - if (!BITHockeyBundle() || bit_isRunningInAppExtension()) { - [self sendNextCrashReport]; - } else if (_crashManagerStatus != BITCrashManagerStatusAutoSend && notApprovedReportFilename) { - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillShowSubmitCrashReportAlert:)]) { - [self.delegate crashManagerWillShowSubmitCrashReportAlert:self]; - } - - NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); - NSString *alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundAnonymousDescription"), appName]; - - // the crash report is not anonymous any more if username or useremail are not nil - NSString *userid = [self userIDForCrashReport]; - NSString *username = [self userNameForCrashReport]; - NSString *useremail = [self userEmailForCrashReport]; - - if ((userid && [userid length] > 0) || - (username && [username length] > 0) || - (useremail && [useremail length] > 0)) { - alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundDescription"), appName]; - } - - if (_alertViewHandler) { - _alertViewHandler(); - } else { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundTitle"), appName] - message:alertDescription - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"CrashDontSendReport") - otherButtonTitles:BITHockeyLocalizedString(@"CrashSendReport"), nil]; - - if (self.shouldShowAlwaysButton) { - [alertView addButtonWithTitle:BITHockeyLocalizedString(@"CrashSendReportAlways")]; - } - - [alertView show]; - } - } else { - [self sendNextCrashReport]; - } - } -} - -/** - * Main startup sequence initializing PLCrashReporter if it wasn't disabled - */ -- (void)startManager { - if (_crashManagerStatus == BITCrashManagerStatusDisabled) return; - - [self registerObservers]; - - [self loadSettings]; - - if (!_isSetup) { - static dispatch_once_t plcrPredicate; - dispatch_once(&plcrPredicate, ^{ - /* Configure our reporter */ - - PLCrashReporterSignalHandlerType signalHandlerType = PLCrashReporterSignalHandlerTypeBSD; - if (self.isMachExceptionHandlerEnabled) { - signalHandlerType = PLCrashReporterSignalHandlerTypeMach; - } - - PLCrashReporterSymbolicationStrategy symbolicationStrategy = PLCrashReporterSymbolicationStrategyNone; - if (self.isOnDeviceSymbolicationEnabled) { - symbolicationStrategy = PLCrashReporterSymbolicationStrategyAll; - } - - BITPLCrashReporterConfig *config = [[BITPLCrashReporterConfig alloc] initWithSignalHandlerType: signalHandlerType - symbolicationStrategy: symbolicationStrategy]; - self.plCrashReporter = [[BITPLCrashReporter alloc] initWithConfiguration: config]; - - // Check if we previously crashed - if ([self.plCrashReporter hasPendingCrashReport]) { - _didCrashInLastSession = YES; - [self handleCrashReport]; - } - - // The actual signal and mach handlers are only registered when invoking `enableCrashReporterAndReturnError` - // So it is safe enough to only disable the following part when a debugger is attached no matter which - // signal handler type is set - // We only check for this if we are not in the App Store environment - - BOOL debuggerIsAttached = NO; - if (![self isAppStoreEnvironment]) { - if ([self isDebuggerAttached]) { - debuggerIsAttached = YES; - NSLog(@"[HockeySDK] WARNING: Detecting crashes is NOT enabled due to running the app with a debugger attached."); - } - } - - if (!debuggerIsAttached) { - // Multiple exception handlers can be set, but we can only query the top level error handler (uncaught exception handler). - // - // To check if PLCrashReporter's error handler is successfully added, we compare the top - // level one that is set before and the one after PLCrashReporter sets up its own. - // - // With delayed processing we can then check if another error handler was set up afterwards - // and can show a debug warning log message, that the dev has to make sure the "newer" error handler - // doesn't exit the process itself, because then all subsequent handlers would never be invoked. - // - // Note: ANY error handler setup BEFORE HockeySDK initialization will not be processed! - - // get the current top level error handler - NSUncaughtExceptionHandler *initialHandler = NSGetUncaughtExceptionHandler(); - - // PLCrashReporter may only be initialized once. So make sure the developer - // can't break this - NSError *error = NULL; - - // set any user defined callbacks, hopefully the users knows what they do - if (_crashCallBacks) { - [self.plCrashReporter setCrashCallbacks:_crashCallBacks]; - } - - // Enable the Crash Reporter - if (![self.plCrashReporter enableCrashReporterAndReturnError: &error]) - NSLog(@"[HockeySDK] WARNING: Could not enable crash reporter: %@", [error localizedDescription]); - - // get the new current top level error handler, which should now be the one from PLCrashReporter - NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); - - // do we have a new top level error handler? then we were successful - if (currentHandler && currentHandler != initialHandler) { - self.exceptionHandler = currentHandler; - - BITHockeyLog(@"INFO: Exception handler successfully initialized."); - } else { - // this should never happen, theoretically only if NSSetUncaugtExceptionHandler() has some internal issues - NSLog(@"[HockeySDK] ERROR: Exception handler could not be set. Make sure there is no other exception handler set up!"); - } - } - _isSetup = YES; - }); - } - - if ([[NSUserDefaults standardUserDefaults] valueForKey:kBITAppDidReceiveLowMemoryNotification]) - _didReceiveMemoryWarningInLastSession = [[NSUserDefaults standardUserDefaults] boolForKey:kBITAppDidReceiveLowMemoryNotification]; - - if (!_didCrashInLastSession && self.isAppNotTerminatingCleanlyDetectionEnabled) { - BOOL didAppSwitchToBackgroundSafely = YES; - - if ([[NSUserDefaults standardUserDefaults] valueForKey:kBITAppWentIntoBackgroundSafely]) - didAppSwitchToBackgroundSafely = [[NSUserDefaults standardUserDefaults] boolForKey:kBITAppWentIntoBackgroundSafely]; - - if (!didAppSwitchToBackgroundSafely) { - BOOL considerReport = YES; - - if (self.delegate && - [self.delegate respondsToSelector:@selector(considerAppNotTerminatedCleanlyReportForCrashManager:)]) { - considerReport = [self.delegate considerAppNotTerminatedCleanlyReportForCrashManager:self]; - } - - if (considerReport) { - [self createCrashReportForAppKill]; - - _didCrashInLastSession = YES; - } - } - } - - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) { - [self appEnteredForeground]; - } - - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:kBITAppDidReceiveLowMemoryNotification]; - [[NSUserDefaults standardUserDefaults] synchronize]; - - [self triggerDelayedProcessing]; -} - -/** - * Creates a fake crash report because the app was killed while being in foreground - */ -- (void)createCrashReportForAppKill { - NSString *fakeReportUUID = bit_UUID(); - NSString *fakeReporterKey = bit_appAnonID() ?: @"???"; - - NSString *fakeReportAppVersion = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppVersion]; - if (!fakeReportAppVersion) - return; - - NSString *fakeReportOSVersion = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppOSVersion] ?: [[UIDevice currentDevice] systemVersion]; - NSString *fakeReportOSVersionString = fakeReportOSVersion; - NSString *fakeReportOSBuild = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppOSBuild] ?: [self osBuild]; - if (fakeReportOSBuild) { - fakeReportOSVersionString = [NSString stringWithFormat:@"%@ (%@)", fakeReportOSVersion, fakeReportOSBuild]; - } - - NSString *fakeReportAppBundleIdentifier = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]; - NSString *fakeReportDeviceModel = [self getDevicePlatform] ?: @"Unknown"; - NSString *fakeReportAppUUIDs = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppUUIDs] ?: @""; - - NSString *fakeSignalName = kBITCrashKillSignal; - - NSMutableString *fakeReportString = [NSMutableString string]; - - [fakeReportString appendFormat:@"Incident Identifier: %@\n", fakeReportUUID]; - [fakeReportString appendFormat:@"CrashReporter Key: %@\n", fakeReporterKey]; - [fakeReportString appendFormat:@"Hardware Model: %@\n", fakeReportDeviceModel]; - [fakeReportString appendFormat:@"Identifier: %@\n", fakeReportAppBundleIdentifier]; - [fakeReportString appendFormat:@"Version: %@\n", fakeReportAppVersion]; - [fakeReportString appendString:@"Code Type: ARM\n"]; - [fakeReportString appendString:@"\n"]; - - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - NSDateFormatter *rfc3339Formatter = [[NSDateFormatter alloc] init]; - [rfc3339Formatter setLocale:enUSPOSIXLocale]; - [rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; - [rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; - NSString *fakeCrashTimestamp = [rfc3339Formatter stringFromDate:[NSDate date]]; - - // we use the current date, since we don't know when the kill actually happened - [fakeReportString appendFormat:@"Date/Time: %@\n", fakeCrashTimestamp]; - [fakeReportString appendFormat:@"OS Version: %@\n", fakeReportOSVersionString]; - [fakeReportString appendString:@"Report Version: 104\n"]; - [fakeReportString appendString:@"\n"]; - [fakeReportString appendFormat:@"Exception Type: %@\n", fakeSignalName]; - [fakeReportString appendString:@"Exception Codes: 00000020 at 0x8badf00d\n"]; - [fakeReportString appendString:@"\n"]; - [fakeReportString appendString:@"Application Specific Information:\n"]; - [fakeReportString appendString:@"The application did not terminate cleanly but no crash occured."]; - if (self.didReceiveMemoryWarningInLastSession) { - [fakeReportString appendString:@" The app received at least one Low Memory Warning."]; - } - [fakeReportString appendString:@"\n\n"]; - - NSString *fakeReportFilename = [NSString stringWithFormat: @"%.0f", [NSDate timeIntervalSinceReferenceDate]]; - - NSError *error = nil; - - NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:2]; - [rootObj setObject:fakeReportUUID forKey:kBITFakeCrashUUID]; - [rootObj setObject:fakeReportAppVersion forKey:kBITFakeCrashAppVersion]; - [rootObj setObject:fakeReportAppBundleIdentifier forKey:kBITFakeCrashAppBundleIdentifier]; - [rootObj setObject:fakeReportOSVersion forKey:kBITFakeCrashOSVersion]; - [rootObj setObject:fakeReportDeviceModel forKey:kBITFakeCrashDeviceModel]; - [rootObj setObject:fakeReportAppUUIDs forKey:kBITFakeCrashAppBinaryUUID]; - [rootObj setObject:fakeReportString forKey:kBITFakeCrashReport]; - - _lastSessionCrashDetails = [[BITCrashDetails alloc] initWithIncidentIdentifier:fakeReportUUID - reporterKey:fakeReporterKey - signal:fakeSignalName - exceptionName:nil - exceptionReason:nil - appStartTime:nil - crashTime:nil - osVersion:fakeReportOSVersion - osBuild:fakeReportOSBuild - appBuild:fakeReportAppVersion - ]; - - NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)rootObj - format:NSPropertyListBinaryFormat_v1_0 - options:0 - error:&error]; - if (plist) { - if ([plist writeToFile:[_crashesDir stringByAppendingPathComponent:[fakeReportFilename stringByAppendingPathExtension:@"fake"]] atomically:YES]) { - [self storeMetaDataForCrashReportFilename:fakeReportFilename]; - } - } else { - BITHockeyLog(@"ERROR: Writing fake crash report. %@", [error description]); - } -} - -/** - * Send all approved crash reports - * - * Gathers all collected data and constructs the XML structure and starts the sending process - */ -- (void)sendNextCrashReport { - NSError *error = NULL; - - _crashIdenticalCurrentVersion = NO; - - if ([_crashFiles count] == 0) - return; - - NSString *crashXML = nil; - BITHockeyAttachment *attachment = nil; - - NSString *filename = [_crashFiles objectAtIndex:0]; - NSString *cacheFilename = [filename lastPathComponent]; - NSData *crashData = [NSData dataWithContentsOfFile:filename]; - - if ([crashData length] > 0) { - BITPLCrashReport *report = nil; - NSString *crashUUID = @""; - NSString *installString = nil; - NSString *crashLogString = nil; - NSString *appBundleIdentifier = nil; - NSString *appBundleVersion = nil; - NSString *osVersion = nil; - NSString *deviceModel = nil; - NSString *appBinaryUUIDs = nil; - NSString *metaFilename = nil; - - NSPropertyListFormat format; - - if ([[cacheFilename pathExtension] isEqualToString:@"fake"]) { - NSDictionary *fakeReportDict = (NSDictionary *)[NSPropertyListSerialization - propertyListWithData:crashData - options:NSPropertyListMutableContainersAndLeaves - format:&format - error:&error]; - - crashLogString = [fakeReportDict objectForKey:kBITFakeCrashReport]; - crashUUID = [fakeReportDict objectForKey:kBITFakeCrashUUID]; - appBundleIdentifier = [fakeReportDict objectForKey:kBITFakeCrashAppBundleIdentifier]; - appBundleVersion = [fakeReportDict objectForKey:kBITFakeCrashAppVersion]; - appBinaryUUIDs = [fakeReportDict objectForKey:kBITFakeCrashAppBinaryUUID]; - deviceModel = [fakeReportDict objectForKey:kBITFakeCrashDeviceModel]; - osVersion = [fakeReportDict objectForKey:kBITFakeCrashOSVersion]; - - metaFilename = [cacheFilename stringByReplacingOccurrencesOfString:@".fake" withString:@".meta"]; - if ([appBundleVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { - _crashIdenticalCurrentVersion = YES; - } - - } else { - report = [[BITPLCrashReport alloc] initWithData:crashData error:&error]; - } - - if (report == nil && crashLogString == nil) { - BITHockeyLog(@"WARNING: Could not parse crash report"); - // we cannot do anything with this report, so delete it - [self cleanCrashReportWithFilename:filename]; - // we don't continue with the next report here, even if there are to prevent calling sendCrashReports from itself again - // the next crash will be automatically send on the next app start/becoming active event - return; - } - - installString = bit_appAnonID() ?: @""; - - if (report) { - if (report.uuidRef != NULL) { - crashUUID = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); - } - metaFilename = [cacheFilename stringByAppendingPathExtension:@"meta"]; - crashLogString = [BITCrashReportTextFormatter stringValueForCrashReport:report crashReporterKey:installString]; - appBundleIdentifier = report.applicationInfo.applicationIdentifier; - appBundleVersion = report.applicationInfo.applicationVersion; - osVersion = report.systemInfo.operatingSystemVersion; - deviceModel = [self getDevicePlatform]; - appBinaryUUIDs = [self extractAppUUIDs:report]; - if ([report.applicationInfo.applicationVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { - _crashIdenticalCurrentVersion = YES; - } - } - - if ([report.applicationInfo.applicationVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { - _crashIdenticalCurrentVersion = YES; - } - - NSString *username = @""; - NSString *useremail = @""; - NSString *userid = @""; - NSString *applicationLog = @""; - NSString *description = @""; - - NSData *plist = [NSData dataWithContentsOfFile:[_crashesDir stringByAppendingPathComponent:metaFilename]]; - if (plist) { - NSDictionary *metaDict = (NSDictionary *)[NSPropertyListSerialization - propertyListWithData:plist - options:NSPropertyListMutableContainersAndLeaves - format:&format - error:&error]; - - username = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserName]] ?: @""; - useremail = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserEmail]] ?: @""; - userid = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserID]] ?: @""; - applicationLog = [metaDict objectForKey:kBITCrashMetaApplicationLog] ?: @""; - description = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@.desc", [_crashesDir stringByAppendingPathComponent: cacheFilename]] encoding:NSUTF8StringEncoding error:&error]; - attachment = [self attachmentForCrashReport:filename]; - } else { - BITHockeyLog(@"ERROR: Reading crash meta data. %@", error); - } - - if ([applicationLog length] > 0) { - if ([description length] > 0) { - description = [NSString stringWithFormat:@"%@\n\nLog:\n%@", description, applicationLog]; - } else { - description = [NSString stringWithFormat:@"Log:\n%@", applicationLog]; - } - } - - crashXML = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@%@", - [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"], - appBinaryUUIDs, - appBundleIdentifier, - osVersion, - deviceModel, - [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"], - appBundleVersion, - crashUUID, - [crashLogString stringByReplacingOccurrencesOfString:@"]]>" withString:@"]]" @"]]>" options:NSLiteralSearch range:NSMakeRange(0,crashLogString.length)], - userid, - username, - useremail, - installString, - [description stringByReplacingOccurrencesOfString:@"]]>" withString:@"]]" @"]]>" options:NSLiteralSearch range:NSMakeRange(0,description.length)]]; - - // store this crash report as user approved, so if it fails it will retry automatically - [_approvedCrashReports setObject:[NSNumber numberWithBool:YES] forKey:filename]; - - [self saveSettings]; - - BITHockeyLog(@"INFO: Sending crash reports:\n%@", crashXML); - [self sendCrashReportWithFilename:filename xml:crashXML attachment:attachment]; - } else { - // we cannot do anything with this report, so delete it - [self cleanCrashReportWithFilename:filename]; - } -} - - -#pragma mark - UIAlertView Delegate - -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - switch (buttonIndex) { - case 0: - [self handleUserInput:BITCrashManagerUserInputDontSend withUserProvidedMetaData:nil]; - break; - case 1: - [self handleUserInput:BITCrashManagerUserInputSend withUserProvidedMetaData:nil]; - break; - case 2: - [self handleUserInput:BITCrashManagerUserInputAlwaysSend withUserProvidedMetaData:nil]; - break; - } -} - - - - -#pragma mark - Networking - -- (NSURLRequest *)requestWithXML:(NSString*)xml attachment:(BITHockeyAttachment *)attachment { - NSString *postCrashPath = [NSString stringWithFormat:@"api/2/apps/%@/crashes", self.encodedAppIdentifier]; - - NSMutableURLRequest *request = [self.hockeyAppClient requestWithMethod:@"POST" - path:postCrashPath - parameters:nil]; - - [request setCachePolicy: NSURLRequestReloadIgnoringLocalCacheData]; - [request setValue:@"HockeySDK/iOS" forHTTPHeaderField:@"User-Agent"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - NSString *boundary = @"----FOO"; - NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; - [request setValue:contentType forHTTPHeaderField:@"Content-type"]; - - NSMutableData *postBody = [NSMutableData data]; - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:BITHOCKEY_NAME - forKey:@"sdk" - boundary:boundary]]; - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:BITHOCKEY_VERSION - forKey:@"sdk_version" - boundary:boundary]]; - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:@"no" - forKey:@"feedbackEnabled" - boundary:boundary]]; - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[xml dataUsingEncoding:NSUTF8StringEncoding] - forKey:@"xml" - contentType:@"text/xml" - boundary:boundary - filename:@"crash.xml"]]; - - if (attachment && attachment.hockeyAttachmentData) { - NSString *attachmentFilename = attachment.filename; - if (!attachmentFilename) { - attachmentFilename = @"Attachment_0"; - } - [postBody appendData:[BITHockeyAppClient dataWithPostValue:attachment.hockeyAttachmentData - forKey:@"attachment0" - contentType:attachment.contentType - boundary:boundary - filename:attachmentFilename]]; - } - - [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; - - [request setHTTPBody:postBody]; - - return request; -} - -/** - * Send the XML data to the server - * - * Wraps the XML structure into a POST body and starts sending the data asynchronously - * - * @param xml The XML data that needs to be send to the server - */ -- (void)sendCrashReportWithFilename:(NSString *)filename xml:(NSString*)xml attachment:(BITHockeyAttachment *)attachment { - - NSURLRequest* request = [self requestWithXML:xml attachment:attachment]; - - __weak typeof (self) weakSelf = self; - BITHTTPOperation *operation = [self.hockeyAppClient - operationWithURLRequest:request - completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { - typeof (self) strongSelf = weakSelf; - - _sendingInProgress = NO; - - NSInteger statusCode = [operation.response statusCode]; - - if (nil == error) { - if (nil == responseData || [responseData length] == 0) { - error = [NSError errorWithDomain:kBITCrashErrorDomain - code:BITCrashAPIReceivedEmptyResponse - userInfo:@{ - NSLocalizedDescriptionKey: @"Sending failed with an empty response!" - } - ]; - } else if (statusCode >= 200 && statusCode < 400) { - [strongSelf cleanCrashReportWithFilename:filename]; - - // HockeyApp uses PList XML format - NSMutableDictionary *response = [NSPropertyListSerialization propertyListWithData:responseData - options:NSPropertyListMutableContainersAndLeaves - format:nil - error:&error]; - BITHockeyLog(@"INFO: Received API response: %@", response); - - if (strongSelf.delegate != nil && - [strongSelf.delegate respondsToSelector:@selector(crashManagerDidFinishSendingCrashReport:)]) { - [strongSelf.delegate crashManagerDidFinishSendingCrashReport:self]; - } - - // only if sending the crash report went successfully, continue with the next one (if there are more) - [strongSelf sendNextCrashReport]; - } else if (statusCode == 400) { - [strongSelf cleanCrashReportWithFilename:filename]; - - error = [NSError errorWithDomain:kBITCrashErrorDomain - code:BITCrashAPIAppVersionRejected - userInfo:@{ - NSLocalizedDescriptionKey: @"The server rejected receiving crash reports for this app version!" - } - ]; - } else { - error = [NSError errorWithDomain:kBITCrashErrorDomain - code:BITCrashAPIErrorWithStatusCode - userInfo:@{ - NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Sending failed with status code: %li", (long)statusCode] - } - ]; - } - } - - if (error) { - if (strongSelf.delegate != nil && - [strongSelf.delegate respondsToSelector:@selector(crashManager:didFailWithError:)]) { - [strongSelf.delegate crashManager:self didFailWithError:error]; - } - - BITHockeyLog(@"ERROR: %@", [error localizedDescription]); - } - - }]; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReport:)]) { - [self.delegate crashManagerWillSendCrashReport:self]; - } - - BITHockeyLog(@"INFO: Sending crash reports started."); - - [self.hockeyAppClient enqeueHTTPOperation:operation]; -} - -- (NSTimeInterval)timeintervalCrashInLastSessionOccured { - return self.timeIntervalCrashInLastSessionOccurred; -} - -@end - -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - diff --git a/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h b/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h deleted file mode 100644 index ab4d7b5..0000000 --- a/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -@class BITCrashManager; -@class BITHockeyAttachment; - -/** - The `BITCrashManagerDelegate` formal protocol defines methods further configuring - the behaviour of `BITCrashManager`. - */ - -@protocol BITCrashManagerDelegate - -@optional - - -///----------------------------------------------------------------------------- -/// @name Additional meta data -///----------------------------------------------------------------------------- - -/** Return any log string based data the crash report being processed should contain - - @param crashManager The `BITCrashManager` instance invoking this delegate - @see attachmentForCrashManager: - @see userNameForCrashManager: - @see userEmailForCrashManager: - */ --(NSString *)applicationLogForCrashManager:(BITCrashManager *)crashManager; - - -/** Return a BITHockeyAttachment object providing an NSData object the crash report - being processed should contain - - Please limit your attachments to reasonable files to avoid high traffic costs for your users. - - Example implementation: - - - (BITHockeyAttachment *)attachmentForCrashManager:(BITCrashManager *)crashManager { - NSData *data = [NSData dataWithContentsOfURL:@"mydatafile"]; - - BITHockeyAttachment *attachment = [[BITHockeyAttachment alloc] initWithFilename:@"myfile.data" - hockeyAttachmentData:data - contentType:@"'application/octet-stream"]; - return attachment; - } - - @param crashManager The `BITCrashManager` instance invoking this delegate - @see BITHockeyAttachment - @see applicationLogForCrashManager: - @see userNameForCrashManager: - @see userEmailForCrashManager: - */ --(BITHockeyAttachment *)attachmentForCrashManager:(BITCrashManager *)crashManager; - - - -/** Return the user name or userid that should be send along each crash report - - @param crashManager The `BITCrashManager` instance invoking this delegate - @see applicationLogForCrashManager: - @see attachmentForCrashManager: - @see userEmailForCrashManager: - @deprecated Please use `BITHockeyManagerDelegate userNameForHockeyManager:componentManager:` instead - @warning When returning a non nil value, crash reports are not anonymous any - more and the alerts will not show the "anonymous" word! - */ --(NSString *)userNameForCrashManager:(BITCrashManager *)crashManager DEPRECATED_ATTRIBUTE; - - - -/** Return the users email address that should be send along each crash report - - @param crashManager The `BITCrashManager` instance invoking this delegate - @see applicationLogForCrashManager: - @see attachmentForCrashManager: - @see userNameForCrashManager: - @deprecated Please use `BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:` instead - @warning When returning a non nil value, crash reports are not anonymous any - more and the alerts will not show the "anonymous" word! - */ --(NSString *)userEmailForCrashManager:(BITCrashManager *)crashManager DEPRECATED_ATTRIBUTE; - - - -///----------------------------------------------------------------------------- -/// @name Alert -///----------------------------------------------------------------------------- - -/** Invoked before the user is asked to send a crash report, so you can do additional actions. - E.g. to make sure not to ask the user for an app rating :) - - @param crashManager The `BITCrashManager` instance invoking this delegate - */ --(void)crashManagerWillShowSubmitCrashReportAlert:(BITCrashManager *)crashManager; - - -/** Invoked after the user did choose _NOT_ to send a crash in the alert - - @param crashManager The `BITCrashManager` instance invoking this delegate - */ --(void)crashManagerWillCancelSendingCrashReport:(BITCrashManager *)crashManager; - - -/** Invoked after the user did choose to send crashes always in the alert - - @param crashManager The `BITCrashManager` instance invoking this delegate - */ --(void)crashManagerWillSendCrashReportsAlways:(BITCrashManager *)crashManager; - - -///----------------------------------------------------------------------------- -/// @name Networking -///----------------------------------------------------------------------------- - -/** Invoked right before sending crash reports will start - - @param crashManager The `BITCrashManager` instance invoking this delegate - */ -- (void)crashManagerWillSendCrashReport:(BITCrashManager *)crashManager; - -/** Invoked after sending crash reports failed - - @param crashManager The `BITCrashManager` instance invoking this delegate - @param error The error returned from the NSURLConnection call or `kBITCrashErrorDomain` - with reason of type `BITCrashErrorReason`. - */ -- (void)crashManager:(BITCrashManager *)crashManager didFailWithError:(NSError *)error; - -/** Invoked after sending crash reports succeeded - - @param crashManager The `BITCrashManager` instance invoking this delegate - */ -- (void)crashManagerDidFinishSendingCrashReport:(BITCrashManager *)crashManager; - -///----------------------------------------------------------------------------- -/// @name Experimental -///----------------------------------------------------------------------------- - -/** Define if a report should be considered as a crash report - - Due to the risk, that these reports may be false positives, this delegates allows the - developer to influence which reports detected by the heuristic should actually be reported. - - The developer can use the following property to get more information about the crash scenario: - - `[BITCrashManager didReceiveMemoryWarningInLastSession]`: Did the app receive a low memory warning - - This allows only reports to be considered where at least one low memory warning notification was - received by the app to reduce to possibility of having false positives. - - @param crashManager The `BITCrashManager` instance invoking this delegate - @return `YES` if the heuristic based detected report should be reported, otherwise `NO` - @see `[BITCrashManager didReceiveMemoryWarningInLastSession]` - */ --(BOOL)considerAppNotTerminatedCleanlyReportForCrashManager:(BITCrashManager *)crashManager; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h b/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h deleted file mode 100644 index c1b6362..0000000 --- a/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - -#import - -@class BITHockeyAppClient; - -@interface BITCrashManager () { -} - - -///----------------------------------------------------------------------------- -/// @name Delegate -///----------------------------------------------------------------------------- - -/** - Sets the optional `BITCrashManagerDelegate` delegate. - - The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You - should not need to set this delegate individually. - - @see `[BITHockeyManager setDelegate:]` - */ -@property (nonatomic, weak) id delegate; - -/** - * must be set - */ -@property (nonatomic, strong) BITHockeyAppClient *hockeyAppClient; - -@property (nonatomic) NSUncaughtExceptionHandler *exceptionHandler; - -@property (nonatomic, strong) NSFileManager *fileManager; - -@property (nonatomic, strong) BITPLCrashReporter *plCrashReporter; - -@property (nonatomic) NSString *lastCrashFilename; - -@property (nonatomic, copy, setter = setAlertViewHandler:) BITCustomAlertViewHandler alertViewHandler; - -@property (nonatomic, strong) NSString *crashesDir; - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - -// Only set via BITAuthenticator -@property (nonatomic, strong) NSString *installationIdentification; - -// Only set via BITAuthenticator -@property (nonatomic) BITAuthenticatorIdentificationType installationIdentificationType; - -// Only set via BITAuthenticator -@property (nonatomic) BOOL installationIdentified; - -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - -- (void)cleanCrashReports; - -- (NSString *)userIDForCrashReport; -- (NSString *)userEmailForCrashReport; -- (NSString *)userNameForCrashReport; - -- (void)handleCrashReport; -- (BOOL)hasPendingCrashReport; -- (NSString *)firstNotApprovedCrashReport; - -- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData; -- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename; - -- (BITHockeyAttachment *)attachmentForCrashReport:(NSString *)filename; - -- (void)invokeDelayedProcessing; -- (void)sendNextCrashReport; - -- (void)setLastCrashFilename:(NSString *)lastCrashFilename; - -@end - - -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ diff --git a/Pods/HockeySDK/Classes/BITCrashMetaData.h b/Pods/HockeySDK/Classes/BITCrashMetaData.h deleted file mode 100644 index a7c5a96..0000000 --- a/Pods/HockeySDK/Classes/BITCrashMetaData.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - - -/** - * This class provides properties that can be attached to a crash report via a custom alert view flow - */ -@interface BITCrashMetaData : NSObject - -/** - * User provided description that should be attached to the crash report as plain text - */ -@property (nonatomic, copy) NSString *userDescription; - -/** - * User name that should be attached to the crash report - */ -@property (nonatomic, copy) NSString *userName; - -/** - * User email that should be attached to the crash report - */ -@property (nonatomic, copy) NSString *userEmail; - -/** - * User ID that should be attached to the crash report - */ -@property (nonatomic, copy) NSString *userID; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashMetaData.m b/Pods/HockeySDK/Classes/BITCrashMetaData.m deleted file mode 100644 index 824d149..0000000 --- a/Pods/HockeySDK/Classes/BITCrashMetaData.m +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITCrashMetaData.h" - - -@implementation BITCrashMetaData - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h deleted file mode 100644 index c75d93c..0000000 --- a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Authors: - * Landon Fuller - * Damian Morris - * Andreas Linde - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * Copyright (c) 2010 MOSO Corporation, Pty Ltd. - * Copyright (c) 2012-2014 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. - */ - - -#import - -@class PLCrashReport; - - -// Dictionary keys for array elements returned by arrayOfAppUUIDsForCrashReport: -#ifndef kBITBinaryImageKeyUUID -#define kBITBinaryImageKeyUUID @"uuid" -#define kBITBinaryImageKeyArch @"arch" -#define kBITBinaryImageKeyType @"type" -#endif - - -/** - * HockeySDK Crash Reporter error domain - */ -typedef NS_ENUM (NSInteger, BITBinaryImageType) { - /** - * App binary - */ - BITBinaryImageTypeAppBinary, - /** - * App provided framework - */ - BITBinaryImageTypeAppFramework, - /** - * Image not related to the app - */ - BITBinaryImageTypeOther -}; - - -@interface BITCrashReportTextFormatter : NSObject { -} - -+ (NSString *)stringValueForCrashReport:(PLCrashReport *)report crashReporterKey:(NSString *)crashReporterKey; -+ (NSArray *)arrayOfAppUUIDsForCrashReport:(PLCrashReport *)report; -+ (NSString *)bit_archNameFromCPUType:(uint64_t)cpuType subType:(uint64_t)subType; -+ (BITBinaryImageType)bit_imageTypeForImagePath:(NSString *)imagePath processPath:(NSString *)processPath; - -@end diff --git a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m deleted file mode 100644 index 3c95c1a..0000000 --- a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m +++ /dev/null @@ -1,852 +0,0 @@ -/* - * Authors: - * Landon Fuller - * Damian Morris - * Andreas Linde - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * Copyright (c) 2010 MOSO Corporation, Pty Ltd. - * Copyright (c) 2012-2014 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. - */ - -#import - -#import -#import -#import -#import -#import - -#if defined(__OBJC2__) -#define SEL_NAME_SECT "__objc_methname" -#else -#define SEL_NAME_SECT "__cstring" -#endif - -#import "BITCrashReportTextFormatter.h" - -/* - * XXX: The ARM64 CPU type, and ARM_V7S and ARM_V8 Mach-O CPU subtypes are not - * defined in the Mac OS X 10.8 headers. - */ -#ifndef CPU_SUBTYPE_ARM_V7S -# define CPU_SUBTYPE_ARM_V7S 11 -#endif - -#ifndef CPU_TYPE_ARM64 -#define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64) -#endif - -#ifndef CPU_SUBTYPE_ARM_V8 -# define CPU_SUBTYPE_ARM_V8 13 -#endif - - -/** - * Sort PLCrashReportBinaryImageInfo instances by their starting address. - */ -static NSInteger bit_binaryImageSort(id binary1, id binary2, void *context) { - uint64_t addr1 = [binary1 imageBaseAddress]; - uint64_t addr2 = [binary2 imageBaseAddress]; - - if (addr1 < addr2) - return NSOrderedAscending; - else if (addr1 > addr2) - return NSOrderedDescending; - else - return NSOrderedSame; -} - -/** - * Validates that the given @a string terminates prior to @a limit. - */ -static const char *safer_string_read (const char *string, const char *limit) { - const char *p = string; - do { - if (p >= limit || p+1 >= limit) { - return NULL; - } - p++; - } while (*p != '\0'); - - return string; -} - -/* - * The relativeAddress should be ` - `, extracted from the crash report's thread - * and binary image list. - * - * For the (architecture-specific) registers to attempt, see: - * http://sealiesoftware.com/blog/archive/2008/09/22/objc_explain_So_you_crashed_in_objc_msgSend.html - */ -static const char *findSEL (const char *imageName, NSString *imageUUID, uint64_t relativeAddress) { - unsigned int images_count = _dyld_image_count(); - for (unsigned int i = 0; i < images_count; ++i) { - intptr_t slide = _dyld_get_image_vmaddr_slide(i); - const struct mach_header *header = _dyld_get_image_header(i); - const struct mach_header_64 *header64 = (const struct mach_header_64 *) header; - const char *name = _dyld_get_image_name(i); - - /* Image disappeared? */ - if (name == NULL || header == NULL) - continue; - - /* Check if this is the correct image. If we were being even more careful, we'd check the LC_UUID */ - if (strcmp(name, imageName) != 0) - continue; - - /* Determine whether this is a 64-bit or 32-bit Mach-O file */ - BOOL m64 = NO; - if (header->magic == MH_MAGIC_64) - m64 = YES; - - NSString *uuidString = nil; - const uint8_t *command; - uint32_t ncmds; - - if (m64) { - command = (const uint8_t *)(header64 + 1); - ncmds = header64->ncmds; - } else { - command = (const uint8_t *)(header + 1); - ncmds = header->ncmds; - } - for (uint32_t idx = 0; idx < ncmds; ++idx) { - const struct load_command *load_command = (const struct load_command *)command; - if (load_command->cmd == LC_UUID) { - const struct uuid_command *uuid_command = (const struct uuid_command *)command; - const uint8_t *uuid = uuid_command->uuid; - uuidString = [[NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", - uuid[0], uuid[1], uuid[2], uuid[3], - uuid[4], uuid[5], uuid[6], uuid[7], - uuid[8], uuid[9], uuid[10], uuid[11], - uuid[12], uuid[13], uuid[14], uuid[15]] - lowercaseString]; - break; - } else { - command += load_command->cmdsize; - } - } - - // Check if this is the correct image by comparing the UUIDs - if (!uuidString || ![uuidString isEqualToString:imageUUID]) - continue; - - /* Fetch the __objc_methname section */ - const char *methname_sect; - uint64_t methname_sect_size; - if (m64) { - methname_sect = getsectdatafromheader_64(header64, SEG_TEXT, SEL_NAME_SECT, &methname_sect_size); - } else { - uint32_t meth_size_32; - methname_sect = getsectdatafromheader(header, SEG_TEXT, SEL_NAME_SECT, &meth_size_32); - methname_sect_size = meth_size_32; - } - - /* Apply the slide, as per getsectdatafromheader(3) */ - methname_sect += slide; - - if (methname_sect == NULL) { - return NULL; - } - - /* Calculate the target address within this image, and verify that it is within __objc_methname */ - const char *target = ((const char *)header) + relativeAddress; - const char *limit = methname_sect + methname_sect_size; - if (target < methname_sect || target >= limit) { - return NULL; - } - - /* Read the actual method name */ - return safer_string_read(target, limit); - } - - return NULL; -} - -/** - * Formats PLCrashReport data as human-readable text. - */ -@implementation BITCrashReportTextFormatter - - -/** - * Formats the provided @a report as human-readable text in the given @a textFormat, and return - * the formatted result as a string. - * - * @param report The report to format. - * @param textFormat The text format to use. - * - * @return Returns the formatted result on success, or nil if an error occurs. - */ -+ (NSString *)stringValueForCrashReport:(BITPLCrashReport *)report crashReporterKey:(NSString *)crashReporterKey { - NSMutableString* text = [NSMutableString string]; - boolean_t lp64 = true; // quiesce GCC uninitialized value warning - - /* Header */ - - /* Map to apple style OS name */ - NSString *osName; - switch (report.systemInfo.operatingSystem) { - case PLCrashReportOperatingSystemMacOSX: - osName = @"Mac OS X"; - break; - case PLCrashReportOperatingSystemiPhoneOS: - osName = @"iPhone OS"; - break; - case PLCrashReportOperatingSystemiPhoneSimulator: - osName = @"Mac OS X"; - break; - default: - osName = [NSString stringWithFormat: @"Unknown (%d)", report.systemInfo.operatingSystem]; - break; - } - - /* Map to Apple-style code type, and mark whether architecture is LP64 (64-bit) */ - NSString *codeType = nil; - { - /* Attempt to derive the code type from the binary images */ - for (BITPLCrashReportBinaryImageInfo *image in report.images) { - /* Skip images with no specified type */ - if (image.codeType == nil) - continue; - - /* Skip unknown encodings */ - if (image.codeType.typeEncoding != PLCrashReportProcessorTypeEncodingMach) - continue; - - switch (image.codeType.type) { - case CPU_TYPE_ARM: - codeType = @"ARM"; - lp64 = false; - break; - - case CPU_TYPE_ARM64: - codeType = @"ARM-64"; - lp64 = true; - break; - - case CPU_TYPE_X86: - codeType = @"X86"; - lp64 = false; - break; - - case CPU_TYPE_X86_64: - codeType = @"X86-64"; - lp64 = true; - break; - - case CPU_TYPE_POWERPC: - codeType = @"PPC"; - lp64 = false; - break; - - default: - // Do nothing, handled below. - break; - } - - /* Stop immediately if code type was discovered */ - if (codeType != nil) - break; - } - - /* If we were unable to determine the code type, fall back on the legacy architecture value. */ - if (codeType == nil) { - switch (report.systemInfo.architecture) { - case PLCrashReportArchitectureARMv6: - case PLCrashReportArchitectureARMv7: - codeType = @"ARM"; - lp64 = false; - break; - case PLCrashReportArchitectureX86_32: - codeType = @"X86"; - lp64 = false; - break; - case PLCrashReportArchitectureX86_64: - codeType = @"X86-64"; - lp64 = true; - break; - case PLCrashReportArchitecturePPC: - codeType = @"PPC"; - lp64 = false; - break; - default: - codeType = [NSString stringWithFormat: @"Unknown (%d)", report.systemInfo.architecture]; - lp64 = true; - break; - } - } - } - - { - NSString *reporterKey = @"???"; - if (crashReporterKey && [crashReporterKey length] > 0) - reporterKey = crashReporterKey; - - NSString *hardwareModel = @"???"; - if (report.hasMachineInfo && report.machineInfo.modelName != nil) - hardwareModel = report.machineInfo.modelName; - - NSString *incidentIdentifier = @"???"; - if (report.uuidRef != NULL) { - incidentIdentifier = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); - } - - [text appendFormat: @"Incident Identifier: %@\n", incidentIdentifier]; - [text appendFormat: @"CrashReporter Key: %@\n", reporterKey]; - [text appendFormat: @"Hardware Model: %@\n", hardwareModel]; - } - - /* Application and process info */ - { - NSString *unknownString = @"???"; - - NSString *processName = unknownString; - NSString *processId = unknownString; - NSString *processPath = unknownString; - NSString *parentProcessName = unknownString; - NSString *parentProcessId = unknownString; - - /* Process information was not available in earlier crash report versions */ - if (report.hasProcessInfo) { - /* Process Name */ - if (report.processInfo.processName != nil) - processName = report.processInfo.processName; - - /* PID */ - processId = [[NSNumber numberWithUnsignedInteger: report.processInfo.processID] stringValue]; - - /* Process Path */ - if (report.processInfo.processPath != nil) { - processPath = report.processInfo.processPath; - - /* Remove username from the path */ - if ([processPath length] > 0) - processPath = [processPath stringByAbbreviatingWithTildeInPath]; - if ([processPath length] > 0 && [[processPath substringToIndex:1] isEqualToString:@"~"]) - processPath = [NSString stringWithFormat:@"/Users/USER%@", [processPath substringFromIndex:1]]; - } - - /* Parent Process Name */ - if (report.processInfo.parentProcessName != nil) - parentProcessName = report.processInfo.parentProcessName; - - /* Parent Process ID */ - parentProcessId = [@(report.processInfo.parentProcessID) stringValue]; - } - - [text appendFormat: @"Process: %@ [%@]\n", processName, processId]; - [text appendFormat: @"Path: %@\n", processPath]; - [text appendFormat: @"Identifier: %@\n", report.applicationInfo.applicationIdentifier]; - [text appendFormat: @"Version: %@\n", report.applicationInfo.applicationVersion]; - [text appendFormat: @"Code Type: %@\n", codeType]; - [text appendFormat: @"Parent Process: %@ [%@]\n", parentProcessName, parentProcessId]; - } - - [text appendString: @"\n"]; - - /* System info */ - { - NSString *osBuild = @"???"; - if (report.systemInfo.operatingSystemBuild != nil) - osBuild = report.systemInfo.operatingSystemBuild; - - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - NSDateFormatter *rfc3339Formatter = [[NSDateFormatter alloc] init]; - [rfc3339Formatter setLocale:enUSPOSIXLocale]; - [rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; - [rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; - - [text appendFormat: @"Date/Time: %@\n", [rfc3339Formatter stringFromDate:report.systemInfo.timestamp]]; - if ([report.processInfo respondsToSelector:@selector(processStartTime)]) { - if (report.systemInfo.timestamp && report.processInfo.processStartTime) { - [text appendFormat: @"Launch Time: %@\n", [rfc3339Formatter stringFromDate:report.processInfo.processStartTime]]; - } - } - [text appendFormat: @"OS Version: %@ %@ (%@)\n", osName, report.systemInfo.operatingSystemVersion, osBuild]; - [text appendFormat: @"Report Version: 104\n"]; - } - - [text appendString: @"\n"]; - - /* Exception code */ - [text appendFormat: @"Exception Type: %@\n", report.signalInfo.name]; - [text appendFormat: @"Exception Codes: %@ at 0x%" PRIx64 "\n", report.signalInfo.code, report.signalInfo.address]; - - for (BITPLCrashReportThreadInfo *thread in report.threads) { - if (thread.crashed) { - [text appendFormat: @"Crashed Thread: %ld\n", (long) thread.threadNumber]; - break; - } - } - - [text appendString: @"\n"]; - - BITPLCrashReportThreadInfo *crashed_thread = nil; - for (BITPLCrashReportThreadInfo *thread in report.threads) { - if (thread.crashed) { - crashed_thread = thread; - break; - } - } - - /* Uncaught Exception */ - if (report.hasExceptionInfo) { - [text appendFormat: @"Application Specific Information:\n"]; - [text appendFormat: @"*** Terminating app due to uncaught exception '%@', reason: '%@'\n", - report.exceptionInfo.exceptionName, report.exceptionInfo.exceptionReason]; - - [text appendString: @"\n"]; - } else if (crashed_thread != nil) { - // try to find the selector in case this was a crash in obj_msgSend - // we search this whether the crash happened in obj_msgSend or not since we don't have the symbol! - - NSString *foundSelector = nil; - - // search the registers value for the current arch -#if TARGET_IPHONE_SIMULATOR - if (lp64) { - foundSelector = [[self class] selectorForRegisterWithName:@"rsi" ofThread:crashed_thread report:report]; - if (foundSelector == NULL) - foundSelector = [[self class] selectorForRegisterWithName:@"rdx" ofThread:crashed_thread report:report]; - } else { - foundSelector = [[self class] selectorForRegisterWithName:@"ecx" ofThread:crashed_thread report:report]; - } -#else - if (lp64) { - foundSelector = [[self class] selectorForRegisterWithName:@"x1" ofThread:crashed_thread report:report]; - } else { - foundSelector = [[self class] selectorForRegisterWithName:@"r1" ofThread:crashed_thread report:report]; - if (foundSelector == NULL) - foundSelector = [[self class] selectorForRegisterWithName:@"r2" ofThread:crashed_thread report:report]; - } -#endif - - if (foundSelector) { - [text appendFormat: @"Application Specific Information:\n"]; - [text appendFormat: @"Selector name found in current argument registers: %@\n", foundSelector]; - [text appendString: @"\n"]; - } - } - - /* If an exception stack trace is available, output an Apple-compatible backtrace. */ - if (report.exceptionInfo != nil && report.exceptionInfo.stackFrames != nil && [report.exceptionInfo.stackFrames count] > 0) { - BITPLCrashReportExceptionInfo *exception = report.exceptionInfo; - - /* Create the header. */ - [text appendString: @"Last Exception Backtrace:\n"]; - - /* Write out the frames. In raw reports, Apple writes this out as a simple list of PCs. In the minimally - * post-processed report, Apple writes this out as full frame entries. We use the latter format. */ - for (NSUInteger frame_idx = 0; frame_idx < [exception.stackFrames count]; frame_idx++) { - BITPLCrashReportStackFrameInfo *frameInfo = [exception.stackFrames objectAtIndex: frame_idx]; - [text appendString: [[self class] bit_formatStackFrame: frameInfo frameIndex: frame_idx report: report lp64: lp64]]; - } - [text appendString: @"\n"]; - } - - /* Threads */ - NSInteger maxThreadNum = 0; - for (BITPLCrashReportThreadInfo *thread in report.threads) { - if (thread.crashed) { - [text appendFormat: @"Thread %ld Crashed:\n", (long) thread.threadNumber]; - } else { - [text appendFormat: @"Thread %ld:\n", (long) thread.threadNumber]; - } - for (NSUInteger frame_idx = 0; frame_idx < [thread.stackFrames count]; frame_idx++) { - BITPLCrashReportStackFrameInfo *frameInfo = [thread.stackFrames objectAtIndex: frame_idx]; - [text appendString: [[self class] bit_formatStackFrame: frameInfo frameIndex: frame_idx report: report lp64: lp64]]; - } - [text appendString: @"\n"]; - - /* Track the highest thread number */ - maxThreadNum = MAX(maxThreadNum, thread.threadNumber); - } - - /* Registers */ - if (crashed_thread != nil) { - [text appendFormat: @"Thread %ld crashed with %@ Thread State:\n", (long) crashed_thread.threadNumber, codeType]; - - int regColumn = 0; - for (BITPLCrashReportRegisterInfo *reg in crashed_thread.registers) { - NSString *reg_fmt; - - /* Use 32-bit or 64-bit fixed width format for the register values */ - if (lp64) - reg_fmt = @"%6s: 0x%016" PRIx64 " "; - else - reg_fmt = @"%6s: 0x%08" PRIx64 " "; - - /* Remap register names to match Apple's crash reports */ - NSString *regName = reg.registerName; - if (report.machineInfo != nil && report.machineInfo.processorInfo.typeEncoding == PLCrashReportProcessorTypeEncodingMach) { - BITPLCrashReportProcessorInfo *pinfo = report.machineInfo.processorInfo; - cpu_type_t arch_type = pinfo.type & ~CPU_ARCH_MASK; - - /* Apple uses 'ip' rather than 'r12' on ARM */ - if (arch_type == CPU_TYPE_ARM && [regName isEqual: @"r12"]) { - regName = @"ip"; - } - } - [text appendFormat: reg_fmt, [regName UTF8String], reg.registerValue]; - - regColumn++; - if (regColumn == 4) { - [text appendString: @"\n"]; - regColumn = 0; - } - } - - if (regColumn != 0) - [text appendString: @"\n"]; - - [text appendString: @"\n"]; - } - - /* Images. The iPhone crash report format sorts these in ascending order, by the base address */ - [text appendString: @"Binary Images:\n"]; - for (BITPLCrashReportBinaryImageInfo *imageInfo in [report.images sortedArrayUsingFunction: bit_binaryImageSort context: nil]) { - NSString *uuid; - /* Fetch the UUID if it exists */ - if (imageInfo.hasImageUUID) - uuid = imageInfo.imageUUID; - else - uuid = @"???"; - - /* Determine the architecture string */ - NSString *archName = [[self class] bit_archNameFromImageInfo:imageInfo]; - - /* Determine if this is the main executable or an app specific framework*/ - NSString *binaryDesignator = @" "; - BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName - processPath:report.processInfo.processPath]; - if (imageType != BITBinaryImageTypeOther) { - binaryDesignator = @"+"; - } - - /* base_address - terminating_address [designator]file_name arch file_path */ - NSString *fmt = nil; - if (lp64) { - fmt = @"%18#" PRIx64 " - %18#" PRIx64 " %@%@ %@ <%@> %@\n"; - } else { - fmt = @"%10#" PRIx64 " - %10#" PRIx64 " %@%@ %@ <%@> %@\n"; - } - - /* Remove username from the image path */ - NSString *imageName = @""; - if (imageInfo.imageName && [imageInfo.imageName length] > 0) - imageName = [imageInfo.imageName stringByAbbreviatingWithTildeInPath]; - if ([imageName length] > 0 && [[imageName substringToIndex:1] isEqualToString:@"~"]) - imageName = [NSString stringWithFormat:@"/Users/USER%@", [imageName substringFromIndex:1]]; - - [text appendFormat: fmt, - imageInfo.imageBaseAddress, - imageInfo.imageBaseAddress + (MAX(1, imageInfo.imageSize) - 1), // The Apple format uses an inclusive range - binaryDesignator, - [imageInfo.imageName lastPathComponent], - archName, - uuid, - imageName]; - } - - - return text; -} - -/** - * Return the selector string of a given register name - * - * @param regName The name of the register to use for getting the address - * @param thread The crashed thread - * @param images NSArray of binary images - * - * @return The selector as a C string or NULL if no selector was found - */ -+ (NSString *)selectorForRegisterWithName:(NSString *)regName ofThread:(BITPLCrashReportThreadInfo *)thread report:(BITPLCrashReport *)report { - // get the address for the register - uint64_t regAddress = 0; - - for (BITPLCrashReportRegisterInfo *reg in thread.registers) { - if ([reg.registerName isEqualToString:regName]) { - regAddress = reg.registerValue; - break; - } - } - - if (regAddress == 0) - return nil; - - BITPLCrashReportBinaryImageInfo *imageForRegAddress = [report imageForAddress:regAddress]; - if (imageForRegAddress) { - // get the SEL - const char *foundSelector = findSEL([imageForRegAddress.imageName UTF8String], imageForRegAddress.imageUUID, regAddress - (uint64_t)imageForRegAddress.imageBaseAddress); - - if (foundSelector != NULL) { - return [NSString stringWithUTF8String:foundSelector]; - } - } - - return nil; -} - - -/** - * Returns an array of app UUIDs and their architecture - * As a dictionary for each element - * - * @param report The report to format. - * - * @return Returns the formatted result on success, or nil if an error occurs. - */ -+ (NSArray *)arrayOfAppUUIDsForCrashReport:(BITPLCrashReport *)report { - NSMutableArray* appUUIDs = [NSMutableArray array]; - - /* Images. The iPhone crash report format sorts these in ascending order, by the base address */ - for (BITPLCrashReportBinaryImageInfo *imageInfo in [report.images sortedArrayUsingFunction: bit_binaryImageSort context: nil]) { - NSString *uuid; - /* Fetch the UUID if it exists */ - if (imageInfo.hasImageUUID) - uuid = imageInfo.imageUUID; - else - uuid = @"???"; - - /* Determine the architecture string */ - NSString *archName = [[self class] bit_archNameFromImageInfo:imageInfo]; - - /* Determine if this is the app executable or app specific framework */ - BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName - processPath:report.processInfo.processPath]; - NSString *imageTypeString = @""; - - if (imageType != BITBinaryImageTypeOther) { - if (imageType == BITBinaryImageTypeAppBinary) { - imageTypeString = @"app"; - } else { - imageTypeString = @"framework"; - } - - [appUUIDs addObject:@{kBITBinaryImageKeyUUID: uuid, - kBITBinaryImageKeyArch: archName, - kBITBinaryImageKeyType: imageTypeString} - ]; - } - } - - return appUUIDs; -} - -/* Determine if in binary image is the app executable or app specific framework */ -+ (BITBinaryImageType)bit_imageTypeForImagePath:(NSString *)imagePath processPath:(NSString *)processPath { - BITBinaryImageType imageType = BITBinaryImageTypeOther; - - NSString *standardizedImagePath = [[imagePath stringByStandardizingPath] lowercaseString]; - imagePath = [imagePath lowercaseString]; - processPath = [processPath lowercaseString]; - - NSRange appRange = [standardizedImagePath rangeOfString: @".app/"]; - - // Exclude iOS swift dylibs. These are provided as part of the app binary by Xcode for now, but we never get a dSYM for those. - NSRange swiftLibRange = [standardizedImagePath rangeOfString:@"frameworks/libswift"]; - BOOL dylibSuffix = [standardizedImagePath hasSuffix:@".dylib"]; - - if (appRange.location != NSNotFound && !(swiftLibRange.location != NSNotFound && dylibSuffix)) { - NSString *appBundleContentsPath = [standardizedImagePath substringToIndex:appRange.location + 5]; - - if ([standardizedImagePath isEqual: processPath] || - // Fix issue with iOS 8 `stringByStandardizingPath` removing leading `/private` path (when not running in the debugger or simulator only) - [imagePath hasPrefix:processPath]) { - imageType = BITBinaryImageTypeAppBinary; - } else if ([standardizedImagePath hasPrefix:appBundleContentsPath] || - // Fix issue with iOS 8 `stringByStandardizingPath` removing leading `/private` path (when not running in the debugger or simulator only) - [imagePath hasPrefix:appBundleContentsPath]) { - imageType = BITBinaryImageTypeAppFramework; - } - } - - return imageType; -} - -+ (NSString *)bit_archNameFromImageInfo:(BITPLCrashReportBinaryImageInfo *)imageInfo -{ - NSString *archName = @"???"; - if (imageInfo.codeType != nil && imageInfo.codeType.typeEncoding == PLCrashReportProcessorTypeEncodingMach) { - archName = [BITCrashReportTextFormatter bit_archNameFromCPUType:imageInfo.codeType.type subType:imageInfo.codeType.subtype]; - } - - return archName; -} - -+ (NSString *)bit_archNameFromCPUType:(uint64_t)cpuType subType:(uint64_t)subType { - NSString *archName = @"???"; - switch (cpuType) { - case CPU_TYPE_ARM: - /* Apple includes subtype for ARM binaries. */ - switch (subType) { - case CPU_SUBTYPE_ARM_V6: - archName = @"armv6"; - break; - - case CPU_SUBTYPE_ARM_V7: - archName = @"armv7"; - break; - - case CPU_SUBTYPE_ARM_V7S: - archName = @"armv7s"; - break; - - default: - archName = @"arm-unknown"; - break; - } - break; - - case CPU_TYPE_ARM64: - /* Apple includes subtype for ARM64 binaries. */ - switch (subType) { - case CPU_SUBTYPE_ARM_ALL: - archName = @"arm64"; - break; - - case CPU_SUBTYPE_ARM_V8: - archName = @"arm64"; - break; - - default: - archName = @"arm64-unknown"; - break; - } - break; - - case CPU_TYPE_X86: - archName = @"i386"; - break; - - case CPU_TYPE_X86_64: - archName = @"x86_64"; - break; - - case CPU_TYPE_POWERPC: - archName = @"powerpc"; - break; - - default: - // Use the default archName value (initialized above). - break; - } - - return archName; -} - - -/** - * Format a stack frame for display in a thread backtrace. - * - * @param frameInfo The stack frame to format - * @param frameIndex The frame's index - * @param report The report from which this frame was acquired. - * @param lp64 If YES, the report was generated by an LP64 system. - * - * @return Returns a formatted frame line. - */ -+ (NSString *)bit_formatStackFrame: (BITPLCrashReportStackFrameInfo *) frameInfo - frameIndex: (NSUInteger) frameIndex - report: (BITPLCrashReport *) report - lp64: (BOOL) lp64 -{ - /* Base image address containing instrumentation pointer, offset of the IP from that base - * address, and the associated image name */ - uint64_t baseAddress = 0x0; - uint64_t pcOffset = 0x0; - NSString *imageName = @"\?\?\?"; - NSString *symbolString = nil; - - BITPLCrashReportBinaryImageInfo *imageInfo = [report imageForAddress: frameInfo.instructionPointer]; - if (imageInfo != nil) { - imageName = [imageInfo.imageName lastPathComponent]; - baseAddress = imageInfo.imageBaseAddress; - pcOffset = frameInfo.instructionPointer - imageInfo.imageBaseAddress; - } - - /* Make sure UTF8/16 characters are handled correctly */ - NSInteger offset = 0; - NSInteger index = 0; - for (index = 0; index < [imageName length]; index++) { - NSRange range = [imageName rangeOfComposedCharacterSequenceAtIndex:index]; - if (range.length > 1) { - offset += range.length - 1; - index += range.length - 1; - } - if (index > 32) { - imageName = [NSString stringWithFormat:@"%@... ", [imageName substringToIndex:index - 1]]; - index += 3; - break; - } - } - if (index-offset < 36) { - imageName = [imageName stringByPaddingToLength:36+offset withString:@" " startingAtIndex:0]; - } - - /* If symbol info is available, the format used in Apple's reports is Sym + OffsetFromSym. Otherwise, - * the format used is imageBaseAddress + offsetToIP */ - BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName - processPath:report.processInfo.processPath]; - if (frameInfo.symbolInfo != nil && imageType == BITBinaryImageTypeOther) { - NSString *symbolName = frameInfo.symbolInfo.symbolName; - - /* Apple strips the _ symbol prefix in their reports. Only OS X makes use of an - * underscore symbol prefix by default. */ - if ([symbolName rangeOfString: @"_"].location == 0 && [symbolName length] > 1) { - switch (report.systemInfo.operatingSystem) { - case PLCrashReportOperatingSystemMacOSX: - case PLCrashReportOperatingSystemiPhoneOS: - case PLCrashReportOperatingSystemiPhoneSimulator: - symbolName = [symbolName substringFromIndex: 1]; - break; - - default: - NSLog(@"Symbol prefix rules are unknown for this OS!"); - break; - } - } - - - uint64_t symOffset = frameInfo.instructionPointer - frameInfo.symbolInfo.startAddress; - symbolString = [NSString stringWithFormat: @"%@ + %" PRId64, symbolName, symOffset]; - } else { - symbolString = [NSString stringWithFormat: @"0x%" PRIx64 " + %" PRId64, baseAddress, pcOffset]; - } - - /* Note that width specifiers are ignored for %@, but work for C strings. - * UTF-8 is not correctly handled with %s (it depends on the system encoding), but - * UTF-16 is supported via %S, so we use it here */ - return [NSString stringWithFormat: @"%-4ld%-35S 0x%0*" PRIx64 " %@\n", - (long) frameIndex, - (const uint16_t *)[imageName cStringUsingEncoding: NSUTF16StringEncoding], - lp64 ? 16 : 8, frameInfo.instructionPointer, - symbolString]; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackActivity.h b/Pods/HockeySDK/Classes/BITFeedbackActivity.h deleted file mode 100644 index f9289c8..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackActivity.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -#import "BITFeedbackComposeViewControllerDelegate.h" - -/** - UIActivity subclass allowing to use the feedback interface to share content with the developer - - This activity can be added into an UIActivityViewController and it will use the activity data - objects to prefill the content of `BITFeedbackComposeViewController`. - - This can be useful if you present some data that users can not only share but also - report back to the developer because they have some problems, e.g. webcams not working - any more. - - The activity provide a default title and image that can be further customized - via `customActivityImage` and `customActivityTitle`. - - */ - -@interface BITFeedbackActivity : UIActivity - -///----------------------------------------------------------------------------- -/// @name BITFeedbackActivity customisation -///----------------------------------------------------------------------------- - - -/** - Define the image shown when using `BITFeedbackActivity` - - If not set a default icon is being used. - - @see customActivityTitle - */ -@property (nonatomic, strong) UIImage *customActivityImage; - - -/** - Define the title shown when using `BITFeedbackActivity` - - If not set, a default string is shown by using the apps name - and adding the localized string "Feedback" to it. - - @see customActivityImage - */ -@property (nonatomic, strong) NSString *customActivityTitle; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackActivity.m b/Pods/HockeySDK/Classes/BITFeedbackActivity.m deleted file mode 100644 index 7d609e4..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackActivity.m +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import "HockeySDKPrivate.h" - -#import "BITFeedbackActivity.h" - -#import "BITHockeyHelper.h" -#import "BITFeedbackManagerPrivate.h" - -#import "BITHockeyBaseManagerPrivate.h" -#import "BITHockeyAttachment.h" - - -@interface BITFeedbackActivity() - -@property (nonatomic, strong) NSMutableArray *items; - -@end - - -@implementation BITFeedbackActivity -{ - UIViewController *_activityViewController; -} - -#pragma mark - NSObject - -- (instancetype)init { - if ((self = [super init])) { - _customActivityImage = nil; - _customActivityTitle = nil; - - _items = [NSMutableArray array]; - } - - return self; -} - - - -#pragma mark - UIActivity - -- (NSString *)activityType { - return @"UIActivityTypePostToHockeySDKFeedback"; -} - -- (NSString *)activityTitle { - if (self.customActivityTitle) - return self.customActivityTitle; - - NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyFeedbackActivityAppPlaceholder")); - - return [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackActivityButtonTitle"), appName]; -} - -- (UIImage *)activityImage { - if (self.customActivityImage) - return self.customActivityImage; - - return bit_imageNamed(@"feedbackActivity.png", BITHOCKEYSDK_BUNDLE); -} - - -- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems { - if ([BITHockeyManager sharedHockeyManager].disableFeedbackManager) return NO; - - for (UIActivityItemProvider *item in activityItems) { - if ([item isKindOfClass:[NSString class]]) { - return YES; - } else if ([item isKindOfClass:[UIImage class]]) { - return YES; - } else if ([item isKindOfClass:[NSData class]]) { - return YES; - } else if ([item isKindOfClass:[BITHockeyAttachment class]]) { - return YES; - } else if ([item isKindOfClass:[NSURL class]]) { - return YES; - } - } - return NO; -} - -- (void)prepareWithActivityItems:(NSArray *)activityItems { - for (id item in activityItems) { - if ([item isKindOfClass:[NSString class]] || - [item isKindOfClass:[UIImage class]] || - [item isKindOfClass:[NSData class]] || - [item isKindOfClass:[BITHockeyAttachment class]] || - [item isKindOfClass:[NSURL class]]) { - [_items addObject:item]; - } else { - BITHockeyLog(@"Unknown item type %@", item); - } - } -} - -- (UIViewController *)activityViewController { - if (!_activityViewController) { - // TODO: return compose controller with activity content added - BITFeedbackManager *manager = [BITHockeyManager sharedHockeyManager].feedbackManager; - - BITFeedbackComposeViewController *composeViewController = [manager feedbackComposeViewController]; - composeViewController.delegate = self; - [composeViewController prepareWithItems:_items]; - - _activityViewController = [manager customNavigationControllerWithRootViewController:composeViewController - presentationStyle:UIModalPresentationFormSheet]; - _activityViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; - } - return _activityViewController; -} - -- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController didFinishWithResult:(BITFeedbackComposeResult)composeResult { - [self activityDidFinish:composeResult == BITFeedbackComposeResultSubmitted]; -} - - -@end - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h deleted file mode 100644 index a10090f..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import - -#import "BITFeedbackComposeViewControllerDelegate.h" - -/** - View controller allowing the user to write and send new feedback - - To add this view controller to your own app and push it onto a navigation stack, - don't create the instance yourself, but use the following code to get a correct instance: - - [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackComposeViewController] - - To show it modally, use the following code instead: - - [[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeView] - - */ - -@interface BITFeedbackComposeViewController : UIViewController - - -///----------------------------------------------------------------------------- -/// @name Delegate -///----------------------------------------------------------------------------- - - -/** - Sets the `BITFeedbackComposeViewControllerDelegate` delegate. - - The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You - should not need to set this delegate individually. - - @see `[BITHockeyManager setDelegate:`] - */ -@property (nonatomic, weak) id delegate; - - -///----------------------------------------------------------------------------- -/// @name Presetting content -///----------------------------------------------------------------------------- - - -/** - An array of data objects that should be used to prefill the compose view content - - The following data object classes are currently supported: - - NSString - - NSURL - - UIImage - - NSData - - `BITHockeyAttachment` - - These are automatically concatenated to one text string, while any images and NSData - objects are added as attachments to the feedback. - - @param items Array of data objects to prefill the feedback text message. - */ -- (void)prepareWithItems:(NSArray *)items; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m deleted file mode 100644 index f49010d..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m +++ /dev/null @@ -1,635 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import "HockeySDKPrivate.h" - -#import "BITFeedbackManagerPrivate.h" -#import "BITFeedbackMessageAttachment.h" -#import "BITFeedbackComposeViewController.h" -#import "BITFeedbackUserDataViewController.h" - -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITHockeyHelper.h" - -#import "BITImageAnnotationViewController.h" -#import "BITHockeyAttachment.h" - - -@interface BITFeedbackComposeViewController () { - UIStatusBarStyle _statusBarStyle; -} - -@property (nonatomic, weak) BITFeedbackManager *manager; -@property (nonatomic, strong) UITextView *textView; -@property (nonatomic, strong) UIView *contentViewContainer; -@property (nonatomic, strong) UIScrollView *attachmentScrollView; -@property (nonatomic, strong) NSMutableArray *attachmentScrollViewImageViews; - -@property (nonatomic, strong) UIButton *addPhotoButton; - -@property (nonatomic, strong) NSString *text; - -@property (nonatomic, strong) NSMutableArray *attachments; -@property (nonatomic, strong) NSMutableArray *imageAttachments; - -@property (nonatomic, strong) UIView *textAccessoryView; -@property (nonatomic) NSInteger selectedAttachmentIndex; -@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; - -/** - * Workaround for UIImagePickerController bug. - * The statusBar shows up when the UIImagePickerController opens. - * The status bar does not disappear again when the UIImagePickerController is dismissed. - * Therefore store the state when UIImagePickerController is shown and restore when viewWillAppear gets called. - */ -@property (nonatomic, strong) NSNumber *isStatusBarHiddenBeforeShowingPhotoPicker; - -@end - - -@implementation BITFeedbackComposeViewController { - BOOL _blockUserDataScreen; - - BOOL _actionSheetVisible; -} - - -#pragma mark - NSObject - -- (instancetype)init { - self = [super init]; - if (self) { - _blockUserDataScreen = NO; - _actionSheetVisible = NO; - _delegate = nil; - _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; - _attachments = [NSMutableArray new]; - _imageAttachments = [NSMutableArray new]; - _attachmentScrollViewImageViews = [NSMutableArray new]; - _tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTapped:)]; - [_attachmentScrollView addGestureRecognizer:self.tapRecognizer]; - - _text = nil; - } - - return self; -} - - -#pragma mark - Public - -- (void)prepareWithItems:(NSArray *)items { - for (id item in items) { - if ([item isKindOfClass:[NSString class]]) { - self.text = [(self.text ? self.text : @"") stringByAppendingFormat:@"%@%@", (self.text ? @" " : @""), item]; - } else if ([item isKindOfClass:[NSURL class]]) { - self.text = [(self.text ? self.text : @"") stringByAppendingFormat:@"%@%@", (self.text ? @" " : @""), [(NSURL *)item absoluteString]]; - } else if ([item isKindOfClass:[UIImage class]]) { - UIImage *image = item; - BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:UIImageJPEGRepresentation(image, 0.7f) contentType:@"image/jpeg"]; - attachment.originalFilename = [NSString stringWithFormat:@"Image_%li.jpg", (unsigned long)[self.attachments count]]; - [self.attachments addObject:attachment]; - [self.imageAttachments addObject:attachment]; - } else if ([item isKindOfClass:[NSData class]]) { - BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:item contentType:@"application/octet-stream"]; - attachment.originalFilename = [NSString stringWithFormat:@"Attachment_%li.data", (unsigned long)[self.attachments count]]; - [self.attachments addObject:attachment]; - } else if ([item isKindOfClass:[BITHockeyAttachment class]]) { - BITHockeyAttachment *sourceAttachment = (BITHockeyAttachment *)item; - - if (!sourceAttachment.hockeyAttachmentData) { - BITHockeyLog(@"BITHockeyAttachment instance doesn't contain any data."); - continue; - } - - NSString *filename = [NSString stringWithFormat:@"Attachment_%li.data", (unsigned long)[self.attachments count]]; - if (sourceAttachment.filename) { - filename = sourceAttachment.filename; - } - - BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:sourceAttachment.hockeyAttachmentData contentType:sourceAttachment.contentType]; - attachment.originalFilename = filename; - [self.attachments addObject:attachment]; - } else { - BITHockeyLog(@"Unknown item type %@", item); - } - } -} - - -#pragma mark - Keyboard - -- (void)keyboardWasShown:(NSNotification*)aNotification { - NSDictionary* info = [aNotification userInfo]; - CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; - - BOOL isPortraitOrientation = NO; - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 - isPortraitOrientation = UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]); -#else - isPortraitOrientation = UIInterfaceOrientationIsPortrait(self.interfaceOrientation); -#endif - - CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); - if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { - if (!bit_isPreiOS8Environment() || isPortraitOrientation) { - frame.size.height -= kbSize.height; - } else { - frame.size.height -= kbSize.width; - } - } else { - CGSize windowSize = [[UIScreen mainScreen] bounds].size; - CGFloat windowHeight = windowSize.height - 20; - CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height; - - if (!bit_isPreiOS8Environment() || isPortraitOrientation) { - CGFloat modalGap = (windowHeight - self.view.bounds.size.height) / 2; - frame.size.height = windowHeight - navBarHeight - kbSize.height; - if (bit_isPreiOS8Environment()) { - frame.size.height -= modalGap; - } - } else { - windowHeight = windowSize.width - 20; - CGFloat modalGap = 0.0f; - if (windowHeight - kbSize.width < self.view.bounds.size.height) { - modalGap = 30; - } else { - modalGap = (windowHeight - self.view.bounds.size.height) / 2; - } - frame.size.height = windowSize.width - navBarHeight - modalGap - kbSize.width; - } - } - [self.contentViewContainer setFrame:frame]; - - [self performSelector:@selector(refreshAttachmentScrollview) withObject:nil afterDelay:0.0f]; - -} - -- (void)keyboardWillBeHidden:(NSNotification*)aNotification { - CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); - [self.contentViewContainer setFrame:frame]; -} - - -#pragma mark - View lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.title = BITHockeyLocalizedString(@"HockeyFeedbackComposeTitle"); - self.view.backgroundColor = [UIColor whiteColor]; - - // Do any additional setup after loading the view. - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(dismissAction:)]; - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackComposeSend") - style:UIBarButtonItemStyleDone - target:self - action:@selector(sendAction:)]; - - // Container that contains both the textfield and eventually the photo scroll view on the right side - self.contentViewContainer = [[UIView alloc] initWithFrame:self.view.bounds]; - self.contentViewContainer.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; - - [self.view addSubview:self.contentViewContainer]; - - // message input textfield - self.textView = [[UITextView alloc] initWithFrame:self.view.bounds]; - self.textView.font = [UIFont systemFontOfSize:17]; - self.textView.delegate = self; - self.textView.backgroundColor = [UIColor whiteColor]; - self.textView.returnKeyType = UIReturnKeyDefault; - self.textView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; - - [self.contentViewContainer addSubview:self.textView]; - - // Add Photo Button + Container that's displayed above the keyboard. - self.textAccessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)]; - self.textAccessoryView.backgroundColor = [UIColor colorWithRed:0.9f green:0.9f blue:0.9f alpha:1.0f]; - self.addPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [self.addPhotoButton setTitle:BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentAddImage") forState:UIControlStateNormal]; - [self.addPhotoButton setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal]; - [self.addPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled]; - self.addPhotoButton.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44); - [self.addPhotoButton addTarget:self action:@selector(addPhotoAction:) forControlEvents:UIControlEventTouchUpInside]; - - [self.textAccessoryView addSubview:self.addPhotoButton]; - - self.textView.inputAccessoryView = self.textAccessoryView; - - // This could be a subclass, yet - self.attachmentScrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; - self.attachmentScrollView.scrollEnabled = YES; - self.attachmentScrollView.bounces = YES; - self.attachmentScrollView.autoresizesSubviews = NO; - self.attachmentScrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleRightMargin; - - [self.contentViewContainer addSubview:self.attachmentScrollView]; -} - -- (void)viewWillAppear:(BOOL)animated { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWasShown:) - name:UIKeyboardDidShowNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWillBeHidden:) - name:UIKeyboardWillHideNotification object:nil]; - - self.manager.currentFeedbackComposeViewController = self; - - [super viewWillAppear:animated]; - - _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; -#else - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; -#endif - - if (_text && self.textView.text.length == 0) { - self.textView.text = _text; - } - - if (self.isStatusBarHiddenBeforeShowingPhotoPicker) { - [[UIApplication sharedApplication] setStatusBarHidden:self.isStatusBarHiddenBeforeShowingPhotoPicker.boolValue]; - } - - self.isStatusBarHiddenBeforeShowingPhotoPicker = nil; - - [self updateBarButtonState]; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; - - if ([self.manager askManualUserDataAvailable] && - ([self.manager requireManualUserDataMissing] || - ![self.manager didAskUserData]) - ) { - if (!_blockUserDataScreen) - [self setUserDataAction]; - } else { - // Invoke delayed to fix iOS 7 iPad landscape bug, where this view will be moved if not called delayed - [self.textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0]; - } -} - -- (void)viewWillDisappear:(BOOL)animated { - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; - - self.manager.currentFeedbackComposeViewController = nil; - - [super viewWillDisappear:animated]; - - [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; -} - -- (void)refreshAttachmentScrollview { - CGFloat scrollViewWidth = 0; - - if (self.imageAttachments.count){ - scrollViewWidth = 100; - } - - CGRect textViewFrame = self.textView.frame; - - CGRect scrollViewFrame = self.attachmentScrollView.frame; - - BOOL alreadySetup = CGRectGetWidth(scrollViewFrame) > 0; - - if (alreadySetup && self.imageAttachments.count == 0) { - textViewFrame.size.width += 100; - self.textView.frame = textViewFrame; - scrollViewFrame.size.width = 0; - self.attachmentScrollView.frame = scrollViewFrame; - return; - } - - if (!alreadySetup) { - textViewFrame.size.width -= scrollViewWidth; - // height has to be identical to the textview! - scrollViewFrame = CGRectMake(CGRectGetMaxX(textViewFrame), self.view.frame.origin.y, scrollViewWidth, CGRectGetHeight(self.textView.bounds)); - self.textView.frame = textViewFrame; - self.attachmentScrollView.frame = scrollViewFrame; - self.attachmentScrollView.contentInset = self.textView.contentInset; - } - - if (self.imageAttachments.count > self.attachmentScrollViewImageViews.count){ - NSInteger numberOfViewsToCreate = self.imageAttachments.count - self.attachmentScrollViewImageViews.count; - for (int i = 0; i 0 ) { - self.navigationItem.rightBarButtonItem.enabled = YES; - } else { - self.navigationItem.rightBarButtonItem.enabled = NO; - } - - if (self.imageAttachments.count > 2){ - [self.addPhotoButton setEnabled:NO]; - } else { - [self.addPhotoButton setEnabled:YES]; - } -} - -- (void)removeAttachmentScrollView { - CGRect frame = self.attachmentScrollView.frame; - frame.size.width = 0; - self.attachmentScrollView.frame = frame; - - frame = self.textView.frame; - frame.size.width += 100; - self.textView.frame = frame; -} - - -#pragma mark - UIViewController Rotation - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { - return YES; -} - -- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { - [self removeAttachmentScrollView]; - - [self refreshAttachmentScrollview]; -} - - -#pragma mark - Private methods - -- (void)setUserDataAction { - BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; - userController.delegate = self; - - UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:userController - presentationStyle:UIModalPresentationFormSheet]; - - [self presentViewController:navController animated:YES completion:nil]; -} - -#pragma mark - Actions - -- (void)dismissAction:(id)sender { - for (BITFeedbackMessageAttachment *attachment in self.attachments){ - [attachment deleteContents]; - } - - [self dismissWithResult:BITFeedbackComposeResultCancelled]; -} - -- (void)sendAction:(id)sender { - if ([self.textView isFirstResponder]) - [self.textView resignFirstResponder]; - - NSString *text = self.textView.text; - - [self.manager submitMessageWithText:text andAttachments:self.attachments]; - - [self dismissWithResult:BITFeedbackComposeResultSubmitted]; -} - -- (void)dismissWithResult:(BITFeedbackComposeResult) result { - if(self.delegate && [self.delegate respondsToSelector:@selector(feedbackComposeViewController:didFinishWithResult:)]) { - [self.delegate feedbackComposeViewController:self didFinishWithResult:result]; - } else if (self.delegate && [self.delegate respondsToSelector:@selector(feedbackComposeViewControllerDidFinish:)]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - [self.delegate feedbackComposeViewControllerDidFinish:self]; -#pragma clang diagnostic pop - } else { - [self dismissViewControllerAnimated:YES completion:nil]; - } -} - -- (void)addPhotoAction:(id)sender { - if (_actionSheetVisible) return; - - self.isStatusBarHiddenBeforeShowingPhotoPicker = @([[UIApplication sharedApplication] isStatusBarHidden]); - - // add photo. - UIImagePickerController *pickerController = [[UIImagePickerController alloc] init]; - pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; - pickerController.delegate = self; - pickerController.editing = NO; - [self presentViewController:pickerController animated:YES completion:nil]; -} - -- (void)scrollViewTapped:(id)unused { - UIMenuController *menuController = [UIMenuController sharedMenuController]; - [menuController setTargetRect:CGRectMake([self.tapRecognizer locationInView:self.view].x, [self.tapRecognizer locationInView:self.view].x, 1, 1) inView:self.view]; - [menuController setMenuVisible:YES animated:YES]; -} - -- (void)paste:(id)sender { - -} - -#pragma mark - UIImagePickerControllerDelegate - -- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { - UIImage *pickedImage = info[UIImagePickerControllerOriginalImage]; - - if (pickedImage){ - NSData *imageData = UIImageJPEGRepresentation(pickedImage, 0.7f); - BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment attachmentWithData:imageData contentType:@"image/jpeg"]; - NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"]; - NSString *imageName = [imagePath lastPathComponent]; - newAttachment.originalFilename = imageName; - [self.attachments addObject:newAttachment]; - [self.imageAttachments addObject:newAttachment]; - } - - [picker dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { - [picker dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)imageButtonAction:(UIButton *)sender { - // determine the index of the feedback - NSInteger index = [self.attachmentScrollViewImageViews indexOfObject:sender]; - - self.selectedAttachmentIndex = (self.attachmentScrollViewImageViews.count - index - 1); - - UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle: nil - delegate: self - cancelButtonTitle: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentCancel") - destructiveButtonTitle: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentDelete") - otherButtonTitles: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentEdit"), nil]; - - [actionSheet showFromRect: sender.frame inView: self.attachmentScrollView animated: YES]; - - _actionSheetVisible = YES; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - [self.textView resignFirstResponder]; - } -} - - -#pragma mark - BITFeedbackUserDataDelegate - -- (void)userDataUpdateCancelled { - _blockUserDataScreen = YES; - - if ([self.manager requireManualUserDataMissing]) { - if ([self.navigationController respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) { - [self.navigationController dismissViewControllerAnimated:YES - completion:^(void) { - [self dismissViewControllerAnimated:YES completion:nil]; - }]; - } else { - [self dismissViewControllerAnimated:YES completion:nil]; - [self performSelector:@selector(dismissAction:) withObject:nil afterDelay:0.4]; - } - } else { - [self.navigationController dismissViewControllerAnimated:YES completion:nil]; - } -} - -- (void)userDataUpdateFinished { - [self.manager saveMessages]; - - [self.navigationController dismissViewControllerAnimated:YES completion:nil]; -} - - -#pragma mark - UITextViewDelegate - -- (void)textViewDidChange:(UITextView *)textView { - [self updateBarButtonState]; -} - - -#pragma mark - UIActionSheet Delegate - -- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { - if (buttonIndex == [actionSheet destructiveButtonIndex]) { - - if (self.selectedAttachmentIndex != NSNotFound){ - UIButton *imageButton = self.attachmentScrollViewImageViews[self.selectedAttachmentIndex]; - BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; - [attachment deleteContents]; // mandatory call to delete the files associated. - [self.imageAttachments removeObject:attachment]; - [self.attachments removeObject:attachment]; - [imageButton removeFromSuperview]; - [self.attachmentScrollViewImageViews removeObject:imageButton]; - } - self.selectedAttachmentIndex = NSNotFound; - - [self refreshAttachmentScrollview]; - - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - [self.textView becomeFirstResponder]; - } - } else if (buttonIndex != [actionSheet cancelButtonIndex]) { - if (self.selectedAttachmentIndex != NSNotFound){ - BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; - BITImageAnnotationViewController *annotationEditor = [[BITImageAnnotationViewController alloc ] init]; - annotationEditor.delegate = self; - UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:annotationEditor]; - annotationEditor.image = attachment.imageRepresentation; - [self presentViewController:navController animated:YES completion:nil]; - } - } else { - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - [self.textView becomeFirstResponder]; - } - } - _actionSheetVisible = NO; -} - - -#pragma mark - Image Annotation Delegate - -- (void)annotationController:(BITImageAnnotationViewController *)annotationController didFinishWithImage:(UIImage *)image { - if (self.selectedAttachmentIndex != NSNotFound){ - BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; - [attachment replaceData:UIImageJPEGRepresentation(image, 0.7f)]; - } - - self.selectedAttachmentIndex = NSNotFound; -} - -- (void)annotationControllerDidCancel:(BITImageAnnotationViewController *)annotationController { - self.selectedAttachmentIndex = NSNotFound; -} - -@end - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h b/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h deleted file mode 100644 index 58438d4..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -/** - * The users action when composing a message - */ -typedef NS_ENUM(NSUInteger, BITFeedbackComposeResult) { - /** - * user hit cancel - */ - BITFeedbackComposeResultCancelled, - /** - * user hit submit - */ - BITFeedbackComposeResultSubmitted, -}; - -@class BITFeedbackComposeViewController; - -/** - * The `BITFeedbackComposeViewControllerDelegate` formal protocol defines methods further configuring - * the behaviour of `BITFeedbackComposeViewController`. - */ - -@protocol BITFeedbackComposeViewControllerDelegate - -@optional - -///----------------------------------------------------------------------------- -/// @name View Controller Management -///----------------------------------------------------------------------------- - -/** - * Invoked once the compose screen is finished via send or cancel - * - * If this is implemented, it's the responsibility of this method to dismiss the presented - * `BITFeedbackComposeViewController` - * - * @param composeViewController The `BITFeedbackComposeViewController` instance invoking this delegate - * @param composeResult The user action the lead to closing the compose view - */ -- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController - didFinishWithResult:(BITFeedbackComposeResult) composeResult; - -#pragma mark - Deprecated methods - -/** - * This method is deprecated. If feedbackComposeViewController:didFinishWithResult: is implemented, this will not be called - * - * @param composeViewController The `BITFeedbackComposeViewController` instance invoking this delegate - */ -- (void)feedbackComposeViewControllerDidFinish:(BITFeedbackComposeViewController *)composeViewController __attribute__((deprecated("Use feedbackComposeViewController:didFinishWithResult: instead"))); -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h deleted file mode 100644 index 4320b27..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import -#import "BITFeedbackMessage.h" -#import "BITAttributedLabel.h" - -@class BITFeedbackMessageAttachment; - -@protocol BITFeedbackListViewCellDelegate - -- (void)listCell:(id)cell didSelectAttachment:(BITFeedbackMessageAttachment *)attachment; - -@end - - -/** - * Cell style depending on the iOS version - */ -typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellPresentationStyle) { - /** - * Default is iOS 6 style - */ - BITFeedbackListViewCellPresentationStyleDefault = 0, - /** - * Draw cells in the iOS 7 style - */ - BITFeedbackListViewCellPresentationStyleOS7 = 1 -}; - -/** - * Cell background style - */ -typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellBackgroundStyle) { - /** - * For even rows - */ - BITFeedbackListViewCellBackgroundStyleNormal = 0, - /** - * For uneven rows - */ - BITFeedbackListViewCellBackgroundStyleAlternate = 1 -}; - - -@interface BITFeedbackListViewCell : UITableViewCell - -@property (nonatomic, strong) BITFeedbackMessage *message; - -@property (nonatomic) BITFeedbackListViewCellPresentationStyle style; - -@property (nonatomic) BITFeedbackListViewCellBackgroundStyle backgroundStyle; - -@property (nonatomic, strong) BITAttributedLabel *labelText; - -@property (nonatomic, weak) id delegate; - -+ (CGFloat) heightForRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width; - -- (void)setAttachments:(NSArray *)attachments; - -///----------------------------------------------------------------------------- -/// @name Deprecated -///----------------------------------------------------------------------------- - -typedef DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled enum `BITFeedbackListViewCellPresentationStyle` instead.") NS_ENUM(NSUInteger, BITFeedbackListViewCellPresentatationStyle) { - BITFeedbackListViewCellPresentatationStyleDefault DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled constant `BITFeedbackListViewCellPresentationStyleDefault` instead.") = 0, - BITFeedbackListViewCellPresentatationStyleOS7 DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled constant `BITFeedbackListViewCellPresentationStyleOS7` instead.") = 1 -}; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m deleted file mode 100644 index b82fe90..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m +++ /dev/null @@ -1,377 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import "HockeySDKPrivate.h" - -#import "BITFeedbackListViewCell.h" -#import "BITFeedbackMessageAttachment.h" -#import "BITActivityIndicatorButton.h" -#import "BITFeedbackManagerPrivate.h" - -#define BACKGROUNDCOLOR_DEFAULT BIT_RGBCOLOR(245, 245, 245) -#define BACKGROUNDCOLOR_ALTERNATE BIT_RGBCOLOR(235, 235, 235) - -#define BACKGROUNDCOLOR_DEFAULT_OS7 BIT_RGBCOLOR(255, 255, 255) -#define BACKGROUNDCOLOR_ALTERNATE_OS7 BIT_RGBCOLOR(255, 255, 255) - -#define TEXTCOLOR_TITLE BIT_RGBCOLOR(75, 75, 75) - -#define TEXTCOLOR_DEFAULT BIT_RGBCOLOR(25, 25, 25) -#define TEXTCOLOR_PENDING BIT_RGBCOLOR(75, 75, 75) - -#define TITLE_FONTSIZE 12 -#define TEXT_FONTSIZE 15 - -#define FRAME_SIDE_BORDER 10 -#define FRAME_TOP_BORDER 8 -#define FRAME_BOTTOM_BORDER 5 -#define FRAME_LEFT_RESPONSE_BORDER 20 - -#define LABEL_TITLE_Y 3 -#define LABEL_TITLE_HEIGHT 15 - -#define LABEL_TEXT_Y 25 - -#define ATTACHMENT_SIZE 45 - - -@interface BITFeedbackListViewCell () - -@property (nonatomic, strong) NSDateFormatter *dateFormatter; -@property (nonatomic, strong) NSDateFormatter *timeFormatter; - -@property (nonatomic, strong) UILabel *labelTitle; - -@property (nonatomic, strong) NSMutableArray *attachmentViews; - -@property (nonatomic, strong) UIView *accessoryBackgroundView; - -@property (nonatomic, strong) id updateAttachmentNotification; - -@end - - -@implementation BITFeedbackListViewCell - - -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { - self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; - if (self) { - // Initialization code - _backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; - _style = BITFeedbackListViewCellPresentationStyleDefault; - - _message = nil; - - _dateFormatter = [[NSDateFormatter alloc] init]; - [_dateFormatter setTimeStyle:NSDateFormatterNoStyle]; - [_dateFormatter setDateStyle:NSDateFormatterMediumStyle]; - [_dateFormatter setLocale:[NSLocale currentLocale]]; - [_dateFormatter setDoesRelativeDateFormatting:YES]; - - _timeFormatter = [[NSDateFormatter alloc] init]; - [_timeFormatter setTimeStyle:NSDateFormatterShortStyle]; - [_timeFormatter setDateStyle:NSDateFormatterNoStyle]; - [_timeFormatter setLocale:[NSLocale currentLocale]]; - [_timeFormatter setDoesRelativeDateFormatting:YES]; - - _labelTitle = [[UILabel alloc] init]; - _labelTitle.font = [UIFont systemFontOfSize:TITLE_FONTSIZE]; - - _labelText = [[BITAttributedLabel alloc] init]; - _labelText.font = [UIFont systemFontOfSize:TEXT_FONTSIZE]; - _labelText.numberOfLines = 0; - _labelText.textAlignment = kBITTextLabelAlignmentLeft; - _labelText.dataDetectorTypes = UIDataDetectorTypeAll; - - _attachmentViews = [NSMutableArray new]; - [self registerObservers]; - } - return self; -} - -- (void)dealloc { - [self unregisterObservers]; -} - - -#pragma mark - Private - -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - if (nil == _updateAttachmentNotification) { - _updateAttachmentNotification = [[NSNotificationCenter defaultCenter] addObserverForName:kBITFeedbackUpdateAttachmentThumbnail - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf updateAttachmentFromNotification:note]; - }]; - } -} - -- (void) unregisterObservers { - if (_updateAttachmentNotification) { - [[NSNotificationCenter defaultCenter] removeObserver:_updateAttachmentNotification]; - _updateAttachmentNotification = nil; - } -} - -- (void) updateAttachmentFromNotification:(NSNotification *)note { - if (!self.message) return; - if (!self.message.attachments) return; - if (self.message.attachments.count == 0) return; - if (!note.object) return; - if (![note.object isKindOfClass:[BITFeedbackMessageAttachment class]]) return; - - BITFeedbackMessageAttachment *attachment = (BITFeedbackMessageAttachment *)note.object; - if (![self.message.attachments containsObject:attachment]) return; - - // The attachment is part of the message used for this cell, so lets update it. - [self setAttachments:self.message.previewableAttachments]; - [self setNeedsLayout]; -} - -- (UIColor *)backgroundColor { - - if (self.backgroundStyle == BITFeedbackListViewCellBackgroundStyleNormal) { - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - return BACKGROUNDCOLOR_DEFAULT; - } else { - return BACKGROUNDCOLOR_DEFAULT_OS7; - } - } else { - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - return BACKGROUNDCOLOR_ALTERNATE; - } else { - return BACKGROUNDCOLOR_ALTERNATE_OS7; - } - } -} - -- (BOOL)isSameDayWithDate1:(NSDate*)date1 date2:(NSDate*)date2 { - NSCalendar* calendar = [NSCalendar currentCalendar]; - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 - unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; -#else - unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; -#endif - - NSDateComponents *dateComponent1 = [calendar components:unitFlags fromDate:date1]; - NSDateComponents *dateComponent2 = [calendar components:unitFlags fromDate:date2]; - - return ([dateComponent1 day] == [dateComponent2 day] && - [dateComponent1 month] == [dateComponent2 month] && - [dateComponent1 year] == [dateComponent2 year]); -} - - -#pragma mark - Layout - -+ (CGFloat) heightForRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width { - - CGFloat baseHeight = [self heightForTextInRowWithMessage:message tableViewWidth:width]; - - CGFloat attachmentsPerRow = floorf(width / (FRAME_SIDE_BORDER + ATTACHMENT_SIZE)); - - CGFloat calculatedHeight = baseHeight + (FRAME_TOP_BORDER + ATTACHMENT_SIZE) * ceil([message previewableAttachments].count / attachmentsPerRow); - - return ceil(calculatedHeight); -} - - - -+ (CGFloat) heightForTextInRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width { - CGFloat calculatedHeight; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - if ([message.text respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { - CGRect calculatedRect = [message.text boundingRectWithSize:CGSizeMake(width - (2 * FRAME_SIDE_BORDER), CGFLOAT_MAX) - options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading - attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:TEXT_FONTSIZE]} - context:nil]; - calculatedHeight = calculatedRect.size.height + FRAME_TOP_BORDER + LABEL_TEXT_Y + FRAME_BOTTOM_BORDER; - - // added to make space for the images. - - - } else { -#endif -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - calculatedHeight = [message.text sizeWithFont:[UIFont systemFontOfSize:TEXT_FONTSIZE] - constrainedToSize:CGSizeMake(width - (2 * FRAME_SIDE_BORDER), CGFLOAT_MAX) - ].height + FRAME_TOP_BORDER + LABEL_TEXT_Y + FRAME_BOTTOM_BORDER; - -#pragma clang diagnostic pop -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - } -#endif - - return ceil(calculatedHeight); -} - -- (void)setAttachments:(NSArray *)attachments { - for (UIView *view in self.attachmentViews){ - [view removeFromSuperview]; - } - - [self.attachmentViews removeAllObjects]; - - for (BITFeedbackMessageAttachment *attachment in attachments){ - if (attachment.localURL || attachment.sourceURL) { - BITActivityIndicatorButton *imageView = [BITActivityIndicatorButton buttonWithType:UIButtonTypeCustom]; - - if (attachment.localURL){ - [imageView setImage:[attachment thumbnailWithSize:CGSizeMake(ATTACHMENT_SIZE, ATTACHMENT_SIZE)] forState:UIControlStateNormal]; - [imageView setShowsActivityIndicator:NO]; - } else { - [imageView setImage:nil forState:UIControlStateNormal]; - [imageView setShowsActivityIndicator:YES]; - } - [imageView setContentMode:UIViewContentModeScaleAspectFit]; - [imageView addTarget:self action:@selector(imageButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; - - [self.attachmentViews addObject:imageView]; - } - } -} - - -- (void)layoutSubviews { - if (!self.accessoryBackgroundView){ - self.accessoryBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 2, self.frame.size.width * 2, self.frame.size.height - 2)]; - self.accessoryBackgroundView.autoresizingMask = UIViewAutoresizingFlexibleHeight; - self.accessoryBackgroundView.clipsToBounds = YES; - - // colors - self.accessoryBackgroundView.backgroundColor = [self backgroundColor]; - } - - if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { - [self addSubview:self.accessoryBackgroundView]; - } else if (self.accessoryBackgroundView.superview){ - [self.accessoryBackgroundView removeFromSuperview]; - } - self.contentView.backgroundColor = [self backgroundColor]; - self.labelTitle.backgroundColor = [self backgroundColor]; - self.labelText.backgroundColor = [self backgroundColor]; - - self.labelTitle.textColor = TEXTCOLOR_TITLE; - if (_message.status == BITFeedbackMessageStatusSendPending || _message.status == BITFeedbackMessageStatusSendInProgress) { - [self.labelText setTextColor:TEXTCOLOR_PENDING]; - } else { - [self.labelText setTextColor:TEXTCOLOR_DEFAULT]; - } - - // background for deletion accessory view - - - // header - NSString *dateString = @""; - if (_message.status == BITFeedbackMessageStatusSendPending || _message.status == BITFeedbackMessageStatusSendInProgress) { - dateString = BITHockeyLocalizedString(@"Pending"); - } else if (_message.date) { - if ([self isSameDayWithDate1:[NSDate date] date2:_message.date]) { - dateString = [self.timeFormatter stringFromDate:_message.date]; - } else { - dateString = [self.dateFormatter stringFromDate:_message.date]; - } - } - [self.labelTitle setText:dateString]; - [self.labelTitle setFrame:CGRectMake(FRAME_SIDE_BORDER, FRAME_TOP_BORDER + LABEL_TITLE_Y, self.frame.size.width - (2 * FRAME_SIDE_BORDER), LABEL_TITLE_HEIGHT)]; - - if (_message.userMessage) { - self.labelTitle.textAlignment = kBITTextLabelAlignmentRight; - self.labelText.textAlignment = kBITTextLabelAlignmentRight; - } else { - self.labelTitle.textAlignment = kBITTextLabelAlignmentLeft; - self.labelText.textAlignment = kBITTextLabelAlignmentLeft; - } - - [self addSubview:self.labelTitle]; - - // text - [self.labelText setText:_message.text]; - CGSize sizeForTextLabel = CGSizeMake(self.frame.size.width - (2 * FRAME_SIDE_BORDER), - [[self class] heightForTextInRowWithMessage:_message tableViewWidth:self.frame.size.width] - LABEL_TEXT_Y - FRAME_BOTTOM_BORDER); - - [self.labelText setFrame:CGRectMake(FRAME_SIDE_BORDER, LABEL_TEXT_Y, sizeForTextLabel.width, sizeForTextLabel.height)]; - - [self addSubview:self.labelText]; - - CGFloat baseOffsetOfText = CGRectGetMaxY(self.labelText.frame); - - - int i = 0; - - CGFloat attachmentsPerRow = floorf(self.frame.size.width / (FRAME_SIDE_BORDER + ATTACHMENT_SIZE)); - - for (BITActivityIndicatorButton *imageButton in self.attachmentViews) { - imageButton.contentMode = UIViewContentModeScaleAspectFit; - imageButton.imageView.contentMode = UIViewContentModeScaleAspectFill; - - if (!_message.userMessage) { - imageButton.frame = CGRectMake(FRAME_SIDE_BORDER + (FRAME_SIDE_BORDER + ATTACHMENT_SIZE) * (i%(int)attachmentsPerRow) , floor(i/attachmentsPerRow)*(FRAME_SIDE_BORDER + ATTACHMENT_SIZE) + baseOffsetOfText , ATTACHMENT_SIZE, ATTACHMENT_SIZE); - } else { - imageButton.frame = CGRectMake(self.frame.size.width - FRAME_SIDE_BORDER - ATTACHMENT_SIZE - ((FRAME_SIDE_BORDER + ATTACHMENT_SIZE) * (i%(int)attachmentsPerRow) ), floor(i/attachmentsPerRow)*(FRAME_SIDE_BORDER + ATTACHMENT_SIZE) + baseOffsetOfText , ATTACHMENT_SIZE, ATTACHMENT_SIZE); - } - - if (!imageButton.superview) { - if (self.accessoryBackgroundView.superview) { - [self insertSubview:imageButton aboveSubview:self.accessoryBackgroundView]; - } else { - [self addSubview:imageButton]; - } - } - - i++; - } - - [super layoutSubviews]; -} - -- (void)imageButtonPressed:(id)sender { - if ([self.delegate respondsToSelector:@selector(listCell:didSelectAttachment:)]) { - NSInteger index = [self.attachmentViews indexOfObject:sender]; - if (index != NSNotFound && [self.message previewableAttachments].count > index) { - BITFeedbackMessageAttachment *attachment = [self.message previewableAttachments][index]; - [self.delegate listCell:self didSelectAttachment:attachment]; - } - } -} - - -@end - -#endif diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewController.h b/Pods/HockeySDK/Classes/BITFeedbackListViewController.h deleted file mode 100644 index 4687d38..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackListViewController.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import -#import - -#import "BITHockeyBaseViewController.h" - -/** - View controller providing a default interface to manage feedback - - The message list interface contains options to locally delete single messages - by swiping over them, or deleting all messages. This will not delete the messages - on the server though! - - It is also integrates actions to invoke the user interface to compose a new messages, - reload the list content from the server and changing the users name or email if these - are allowed to be set. - - To add this view controller to your own app and push it onto a navigation stack, - don't create the instance yourself, but use the following code to get a correct instance: - - [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackListViewController:NO] - - To show it modally, use the following code instead: - - [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackListViewController:YES] - - This ensures that the presentation on iOS 6 and iOS 7 will use the current design on each OS Version. - */ - -@interface BITFeedbackListViewController : BITHockeyBaseViewController { -} - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewController.m b/Pods/HockeySDK/Classes/BITFeedbackListViewController.m deleted file mode 100644 index dbfa2b6..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackListViewController.m +++ /dev/null @@ -1,878 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import "HockeySDKPrivate.h" - -#import "BITFeedbackManagerPrivate.h" -#import "BITFeedbackManager.h" -#import "BITFeedbackListViewController.h" -#import "BITFeedbackListViewCell.h" -#import "BITFeedbackComposeViewController.h" -#import "BITFeedbackUserDataViewController.h" -#import "BITFeedbackMessage.h" -#import "BITFeedbackMessageAttachment.h" -#import "BITAttributedLabel.h" - -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITHockeyHelper.h" -#import -#import - - -#define DEFAULT_BACKGROUNDCOLOR BIT_RGBCOLOR(245, 245, 245) -#define DEFAULT_BACKGROUNDCOLOR_OS7 BIT_RGBCOLOR(255, 255, 255) -#define DEFAULT_TEXTCOLOR BIT_RGBCOLOR(75, 75, 75) - -#define BUTTON_BORDERCOLOR BIT_RGBCOLOR(175, 175, 175) -#define BUTTON_BACKGROUNDCOLOR BIT_RGBCOLOR(225, 225, 225) -#define BUTTON_TEXTCOLOR BIT_RGBCOLOR(58, 58, 58) -#define BUTTON_TEXTCOLOR_SHADOW BIT_RGBCOLOR(255, 255, 255) - -#define BUTTON_DELETE_BORDERCOLOR BIT_RGBCOLOR(61, 61, 61) -#define BUTTON_DELETE_BACKGROUNDCOLOR BIT_RGBCOLOR(225, 0, 0) -#define BUTTON_DELETE_TEXTCOLOR BIT_RGBCOLOR(240, 240, 240) -#define BUTTON_DELETE_TEXTCOLOR_SHADOW BIT_RGBCOLOR(125, 0, 0) - -#define BORDER_COLOR BIT_RGBCOLOR(215, 215, 215) - - -@interface BITFeedbackListViewController () - -@property (nonatomic, weak) BITFeedbackManager *manager; -@property (nonatomic, strong) NSDateFormatter *lastUpdateDateFormatter; -@property (nonatomic) BOOL userDataComposeFlow; -@property (nonatomic, strong) NSArray *cachedPreviewItems; -@property (nonatomic, strong) NSOperationQueue *thumbnailQueue; - -@end - - -@implementation BITFeedbackListViewController { - NSInteger _deleteButtonSection; - NSInteger _userButtonSection; -} - -- (instancetype)initWithStyle:(UITableViewStyle)style { - if ((self = [super initWithStyle:style])) { - _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; - - _deleteButtonSection = -1; - _userButtonSection = -1; - _userDataComposeFlow = NO; - - _lastUpdateDateFormatter = [[NSDateFormatter alloc] init]; - [_lastUpdateDateFormatter setDateStyle:NSDateFormatterShortStyle]; - [_lastUpdateDateFormatter setTimeStyle:NSDateFormatterShortStyle]; - _lastUpdateDateFormatter.locale = [NSLocale currentLocale]; - - _thumbnailQueue = [NSOperationQueue new]; - } - return self; -} - - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self name:BITHockeyFeedbackMessagesLoadingStarted object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:BITHockeyFeedbackMessagesLoadingFinished object:nil]; - - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showDelayedUserDataViewController) object:nil]; -} - - -#pragma mark - View lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(startLoadingIndicator) - name:BITHockeyFeedbackMessagesLoadingStarted - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(updateList) - name:BITHockeyFeedbackMessagesLoadingFinished - object:nil]; - - self.title = BITHockeyLocalizedString(@"HockeyFeedbackListTitle"); - - self.tableView.delegate = self; - self.tableView.dataSource = self; - self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - [self.tableView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; - if ([self.manager isPreiOS7Environment]) { - [self.tableView setBackgroundColor:[UIColor colorWithRed:0.82 green:0.84 blue:0.84 alpha:1]]; - [self.tableView setSeparatorColor:[UIColor colorWithRed:0.79 green:0.79 blue:0.79 alpha:1]]; - } else { - // [self.tableView setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1]]; - } - - if ([self.manager isPreiOS7Environment]) { - self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR; - } else { - // self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; - } - - id refreshClass = NSClassFromString(@"UIRefreshControl"); - if (refreshClass) { - self.refreshControl = [[UIRefreshControl alloc] init]; - [self.refreshControl addTarget:self action:@selector(reloadList) forControlEvents:UIControlEventValueChanged]; - } else { - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh - target:self - action:@selector(reloadList)]; - } -} - -- (void)startLoadingIndicator { - id refreshClass = NSClassFromString(@"UIRefreshControl"); - if (refreshClass) { - [self.refreshControl beginRefreshing]; - } else { - self.navigationItem.rightBarButtonItem.enabled = NO; - } -} - -- (void)stopLoadingIndicator { - id refreshClass = NSClassFromString(@"UIRefreshControl"); - if (refreshClass) { - [self.refreshControl endRefreshing]; - } else { - self.navigationItem.rightBarButtonItem.enabled = YES; - } -} - -- (BOOL)isRefreshingWithNewControl { - id refreshClass = NSClassFromString(@"UIRefreshControl"); - if (refreshClass) { - return [self.refreshControl isRefreshing]; - } - return NO; -} - -- (void)reloadList { - [self startLoadingIndicator]; - - [self.manager updateMessagesList]; -} - -- (void)updateList { - CGSize contentSize = self.tableView.contentSize; - CGPoint contentOffset = self.tableView.contentOffset; - - [self refreshPreviewItems]; - [self.tableView reloadData]; - - if (contentSize.height > 0 && - self.tableView.contentSize.height > self.tableView.frame.size.height && - self.tableView.contentSize.height > contentSize.height && - ![self isRefreshingWithNewControl]) - [self.tableView setContentOffset:CGPointMake(contentOffset.x, self.tableView.contentSize.height - contentSize.height + contentOffset.y) animated:NO]; - - [self stopLoadingIndicator]; - - [self.tableView flashScrollIndicators]; -} - -- (void)viewDidAppear:(BOOL)animated { - if (self.userDataComposeFlow) { - self.userDataComposeFlow = NO; - } - self.manager.currentFeedbackListViewController = self; - - [self.manager updateMessagesListIfRequired]; - - if ([self.manager numberOfMessages] == 0 && - [self.manager askManualUserDataAvailable] && - [self.manager requireManualUserDataMissing] && - ![self.manager didAskUserData] - ) { - self.userDataComposeFlow = YES; - - if ([self.manager showFirstRequiredPresentationModal]) { - [self setUserDataAction:nil]; - } else { - // In case of presenting the feedback in a UIPopoverController it appears - // that the animation is not yet finished (though it should) and pushing - // the user data view on top of the navigation stack right away will - // cause the following warning to appear in the console: - // "nested push animation can result in corrupted navigation bar" - [self performSelector:@selector(showDelayedUserDataViewController) withObject:nil afterDelay:0.0]; - } - } else { - [self.tableView reloadData]; - } - - [super viewDidAppear:animated]; -} - -- (void)viewWillDisappear:(BOOL)animated { - self.manager.currentFeedbackListViewController = nil; - - [super viewWillDisappear:animated]; -} - - -#pragma mark - Private methods - -- (void)showDelayedUserDataViewController { - BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; - userController.delegate = self; - - [self.navigationController pushViewController:userController animated:YES]; -} - -- (void)setUserDataAction:(id)sender { - BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; - userController.delegate = self; - - UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:userController - presentationStyle:UIModalPresentationFormSheet]; - - [self presentViewController:navController animated:YES completion:nil]; -} - -- (void)newFeedbackAction:(id)sender { - BITFeedbackComposeViewController *composeController = [self.manager feedbackComposeViewController]; - - UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:composeController - presentationStyle:UIModalPresentationFormSheet]; - - [self presentViewController:navController animated:YES completion:nil]; -} - -- (void)deleteAllMessages { - [_manager deleteAllMessages]; - [self refreshPreviewItems]; - - [self.tableView reloadData]; -} - -- (void)deleteAllMessagesAction:(id)sender { - if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { - UIActionSheet *deleteAction = [[UIActionSheet alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllTitle") - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllCancel") - destructiveButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllDelete") - otherButtonTitles:nil - ]; - [deleteAction setTag:0]; - [deleteAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; - [deleteAction showInView:[self viewForShowingActionSheetOnPhone]]; - } else { - UIAlertView *deleteAction = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackListButtonDeleteAllMessages") - message:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllTitle") - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllCancel") - otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllDelete"), nil]; - - [deleteAction setTag:0]; - [deleteAction show]; - } -} - -- (UIView*) viewForShowingActionSheetOnPhone { - //find the topmost presented view controller - //and use its view - UIViewController* topMostPresentedViewController = self.view.window.rootViewController; - while(topMostPresentedViewController.presentedViewController) { - topMostPresentedViewController = topMostPresentedViewController.presentedViewController; - } - UIView* view = topMostPresentedViewController.view; - - if(nil == view) { - //hope for the best. Should work - //on simple view(controller) hierarchies - view = self.view; - } - - return view; -} - -#pragma mark - BITFeedbackUserDataDelegate - --(void)userDataUpdateCancelled { - if (self.userDataComposeFlow) { - if ([self.manager showFirstRequiredPresentationModal]) { - __weak typeof(self) weakSelf = self; - [self dismissViewControllerAnimated:YES completion:^(void){ - typeof(self) strongSelf = weakSelf; - [strongSelf.tableView reloadData]; - }]; - } else { - [self.navigationController popToViewController:self animated:YES]; - } - } else { - [self dismissViewControllerAnimated:YES completion:^(void){}]; - } -} - --(void)userDataUpdateFinished { - [self.manager saveMessages]; - [self refreshPreviewItems]; - - if (self.userDataComposeFlow) { - if ([self.manager showFirstRequiredPresentationModal]) { - __weak typeof(self) weakSelf = self; - [self dismissViewControllerAnimated:YES completion:^(void){ - typeof(self) strongSelf = weakSelf; - [strongSelf newFeedbackAction:nil]; - }]; - } else { - BITFeedbackComposeViewController *composeController = [[BITFeedbackComposeViewController alloc] init]; - composeController.delegate = self; - - [self.navigationController pushViewController:composeController animated:YES]; - } - } else { - [self dismissViewControllerAnimated:YES completion:^(void){}]; - } -} - - -#pragma mark - BITFeedbackComposeViewControllerDelegate - -- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController - didFinishWithResult:(BITFeedbackComposeResult)composeResult { - if (self.userDataComposeFlow) { - if ([self.manager showFirstRequiredPresentationModal]) { - __weak typeof(self) weakSelf = self; - [self dismissViewControllerAnimated:YES completion:^(void){ - typeof(self) strongSelf = weakSelf; - [strongSelf.tableView reloadData]; - }]; - } else { - [self.navigationController popToViewController:self animated:YES]; - } - } else { - [self dismissViewControllerAnimated:YES completion:^(void){}]; - } - - if (self.manager.delegate && - [self.manager.delegate respondsToSelector:@selector(feedbackComposeViewController:didFinishWithResult:)]) { - [self.manager.delegate feedbackComposeViewController:composeViewController didFinishWithResult:composeResult]; - } else if (self.manager.delegate && [self.manager.delegate respondsToSelector:@selector(feedbackComposeViewControllerDidFinish:)]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - [self.manager.delegate feedbackComposeViewControllerDidFinish:composeViewController]; -#pragma clang diagnostic pop - } -} - - -#pragma mark - UIViewController Rotation - -- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { - [self.tableView beginUpdates]; - [self.tableView endUpdates]; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { - return YES; -} - - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - NSInteger sections = 2; - _deleteButtonSection = -1; - _userButtonSection = -1; - - if ([self.manager isManualUserDataAvailable] || [self.manager didAskUserData]) { - _userButtonSection = sections; - sections++; - } - - if ([self.manager numberOfMessages] > 0) { - _deleteButtonSection = sections; - sections++; - } - - return sections; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - if (section == 1) { - return [self.manager numberOfMessages]; - } else { - return 1; - } -} - -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { - if (![self.manager isPreiOS7Environment]) { - if (section == 0) { - return 30; - } - } - - return [super tableView:tableView heightForHeaderInSection:section]; -} - -- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { - if (![self.manager isPreiOS7Environment] && section == 0) { - UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30.0f)]; - UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(16.0f, 5.0f, self.view.frame.size.width - 32.0f, 25.0f)]; - textLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), - [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; - textLabel.font = [UIFont systemFontOfSize:10]; - textLabel.textColor = DEFAULT_TEXTCOLOR; - [containerView addSubview:textLabel]; - - return containerView; - } - - return [super tableView:tableView viewForHeaderInSection:section]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *CellIdentifier = @"MessageCell"; - static NSString *LastUpdateIdentifier = @"LastUpdateCell"; - static NSString *ButtonTopIdentifier = @"ButtonTopCell"; - static NSString *ButtonBottomIdentifier = @"ButtonBottomCell"; - static NSString *ButtonDeleteIdentifier = @"ButtonDeleteCell"; - - if (indexPath.section == 0 && indexPath.row == 1 && ![self.manager isPreiOS7Environment]) { - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:LastUpdateIdentifier]; - - if (!cell) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LastUpdateIdentifier]; - cell.textLabel.font = [UIFont systemFontOfSize:10]; - cell.textLabel.textColor = DEFAULT_TEXTCOLOR; - cell.accessoryType = UITableViewCellAccessoryNone; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - cell.textLabel.textAlignment = kBITTextLabelAlignmentCenter; - } - - cell.textLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), - [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; - - return cell; - } else if (indexPath.section == 0 || indexPath.section >= 2) { - CGFloat topGap = 0.0f; - - UITableViewCell *cell = nil; - - NSString *identifier = nil; - - if (indexPath.section == 0) { - identifier = ButtonTopIdentifier; - } else if (indexPath.section == _userButtonSection) { - identifier = ButtonBottomIdentifier; - } else { - identifier = ButtonDeleteIdentifier; - } - - cell = [tableView dequeueReusableCellWithIdentifier:identifier]; - - if (!cell) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; - - cell.textLabel.font = [UIFont systemFontOfSize:14]; - cell.textLabel.numberOfLines = 0; - cell.accessoryType = UITableViewCellAccessoryNone; - - if ([self.manager isPreiOS7Environment]) { - cell.selectionStyle = UITableViewCellSelectionStyleNone; - } else { - cell.selectionStyle = UITableViewCellSelectionStyleGray; - } - } - - // button - NSString *titleString = nil; - SEL actionSelector = nil; - - UIColor *titleColor = BIT_RGBCOLOR(35, 111, 251); - if ([self.view respondsToSelector:@selector(tintColor)]){ - titleColor = self.view.tintColor; - } - - UIButton *button = nil; - if ([self.manager isPreiOS7Environment]) { - button = [UIButton buttonWithType:UIButtonTypeCustom]; - button.autoresizingMask = UIViewAutoresizingFlexibleWidth; - UIImage *stretchableButton = [bit_imageNamed(@"buttonRoundedRegular.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - UIImage *stretchableHighlightedButton = [bit_imageNamed(@"buttonRoundedRegularHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - [button setBackgroundImage:stretchableButton forState:UIControlStateNormal]; - [button setBackgroundImage:stretchableHighlightedButton forState:UIControlStateHighlighted]; - - [[button titleLabel] setShadowOffset:CGSizeMake(0, 1)]; - [[button titleLabel] setFont:[UIFont boldSystemFontOfSize:14.0]]; - - [button setTitleColor:BUTTON_TEXTCOLOR forState:UIControlStateNormal]; - [button setTitleShadowColor:BUTTON_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; - } - - if (indexPath.section == 0) { - topGap = 22; - if ([self.manager numberOfMessages] == 0) { - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteFeedback"); - } else { - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteResponse"); - } - actionSelector = @selector(newFeedbackAction:); - } else if (indexPath.section == _userButtonSection) { - topGap = 6.0f; - if ([self.manager requireUserName] == BITFeedbackUserDataElementRequired || - ([self.manager requireUserName] == BITFeedbackUserDataElementOptional && [self.manager userName] != nil) - ) { - titleString = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataWithName"), [self.manager userName] ?: @"-"]; - } else if ([self.manager requireUserEmail] == BITFeedbackUserDataElementRequired || - ([self.manager requireUserEmail] == BITFeedbackUserDataElementOptional && [self.manager userEmail] != nil) - ) { - titleString = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataWithEmail"), [self.manager userEmail] ?: @"-"]; - } else if ([self.manager requireUserName] == BITFeedbackUserDataElementOptional) { - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataSetName"); - } else { - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataSetEmail"); - } - actionSelector = @selector(setUserDataAction:); - } else { - topGap = 0.0f; - if ([self.manager isPreiOS7Environment]) { - [[button titleLabel] setShadowOffset:CGSizeMake(0, -1)]; - UIImage *stretchableDeleteButton = [bit_imageNamed(@"buttonRoundedDelete.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - UIImage *stretchableDeleteHighlightedButton = [bit_imageNamed(@"buttonRoundedDeleteHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; - [button setBackgroundImage:stretchableDeleteButton forState:UIControlStateNormal]; - [button setBackgroundImage:stretchableDeleteHighlightedButton forState:UIControlStateHighlighted]; - - [button setTitleColor:BUTTON_DELETE_TEXTCOLOR forState:UIControlStateNormal]; - [button setTitleShadowColor:BUTTON_DELETE_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; - } - - titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonDeleteAllMessages"); - titleColor = BIT_RGBCOLOR(251, 35, 35); - actionSelector = @selector(deleteAllMessagesAction:); - } - - if ([self.manager isPreiOS7Environment]) { - if (titleString) - [button setTitle:titleString forState:UIControlStateNormal]; - if (actionSelector) - [button addTarget:self action:actionSelector forControlEvents:UIControlEventTouchUpInside]; - - [button setFrame: CGRectMake( 10.0f, topGap + 12.0f, cell.frame.size.width - 20.0f, 42.0f)]; - [cell addSubview:button]; - } else { - cell.textLabel.text = titleString; - cell.textLabel.textColor = titleColor; - } - - if ([self.manager isPreiOS7Environment]) { - // status label or shadow lines - if (indexPath.section == 0) { - UILabel *statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 6, cell.frame.size.width, 28)]; - - statusLabel.font = [UIFont systemFontOfSize:10]; - statusLabel.textColor = DEFAULT_TEXTCOLOR; - statusLabel.textAlignment = kBITTextLabelAlignmentCenter; - if ([self.manager isPreiOS7Environment]) { - statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR; - } else { - statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; - } - statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; - - statusLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), - [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; - - [cell addSubview:statusLabel]; - } else if (indexPath.section == 2) { - UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; - lineView1.backgroundColor = BORDER_COLOR; - lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [cell addSubview:lineView1]; - } - } - - return cell; - } else { - BITFeedbackListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - - if (!cell) { - cell = [[BITFeedbackListViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; - cell.accessoryType = UITableViewCellAccessoryNone; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - } - - if (indexPath.row == 0 || indexPath.row % 2 == 0) { - cell.backgroundStyle = BITFeedbackListViewCellBackgroundStyleAlternate; - } else { - cell.backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; - } - - if ([self.manager isPreiOS7Environment]) { - cell.style = BITFeedbackListViewCellPresentationStyleDefault; - } else { - cell.style = BITFeedbackListViewCellPresentationStyleOS7; - } - - BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; - cell.message = message; - cell.labelText.delegate = self; - cell.labelText.userInteractionEnabled = YES; - cell.delegate = self; - [cell setAttachments:message.previewableAttachments]; - - for (BITFeedbackMessageAttachment *attachment in message.attachments){ - if (attachment.needsLoadingFromURL && !attachment.isLoading){ - attachment.isLoading = YES; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:attachment.sourceURL]]; - [NSURLConnection sendAsynchronousRequest:request queue:self.thumbnailQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { - attachment.isLoading = NO; - if (responseData.length) { - dispatch_async(dispatch_get_main_queue(), ^{ - [attachment replaceData:responseData]; - [[NSNotificationCenter defaultCenter] postNotificationName:kBITFeedbackUpdateAttachmentThumbnail object:attachment]; - [[BITHockeyManager sharedHockeyManager].feedbackManager saveMessages]; - }); - } - }]; - } - } - - if ( - [self.manager isPreiOS7Environment] || - (![self.manager isPreiOS7Environment] && indexPath.row != 0) - ) { - UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; - lineView1.backgroundColor = BORDER_COLOR; - lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [cell addSubview:lineView1]; - } - - return cell; - } -} - - -- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.section == 1) - return YES; - - return NO; -} - -- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { - if (editingStyle == UITableViewCellEditingStyleDelete) { - BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; - BOOL messageHasAttachments = ([message attachments].count > 0); - - if ([_manager deleteMessageAtIndex:indexPath.row]) { - if ([_manager numberOfMessages] > 0) { - [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; - } else { - [tableView reloadData]; - } - - if (messageHasAttachments) { - [self refreshPreviewItems]; - } - } - } -} - - -#pragma mark - Table view delegate - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.section == 0 ) { - if ([self.manager isPreiOS7Environment]) - return 87; - else - return 44; - } - if (indexPath.section >= 2) { - if ([self.manager isPreiOS7Environment]) - return 65; - else - return 44; - } - - BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; - if (!message) return 44; - - return [BITFeedbackListViewCell heightForRowWithMessage:message tableViewWidth:self.view.frame.size.width]; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if (![self.manager isPreiOS7Environment]) { - if (indexPath.section == 0) { - [self newFeedbackAction:self]; - } else if (indexPath.section == _userButtonSection) { - [self setUserDataAction:self]; - } else if (indexPath.section == _deleteButtonSection) { - [self deleteAllMessagesAction:self]; - } - } -} - -#pragma mark - BITAttributedLabelDelegate - -- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url { - if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { - UIActionSheet *linkAction = [[UIActionSheet alloc] initWithTitle:[url absoluteString] - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCancel") - destructiveButtonTitle:nil - otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionOpen"), BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCopy"), nil - ]; - [linkAction setTag:1]; - [linkAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; - [linkAction showInView:[self viewForShowingActionSheetOnPhone]]; - } else { - UIAlertView *linkAction = [[UIAlertView alloc] initWithTitle:[url absoluteString] - message:nil - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCancel") - otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionOpen"), BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCopy"), nil - ]; - - [linkAction setTag:1]; - [linkAction show]; - } -} - - -#pragma mark - UIAlertViewDelegate - -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - if (buttonIndex == alertView.cancelButtonIndex) { - return; - } - - if ([alertView tag] == 0) { - if (buttonIndex == [alertView firstOtherButtonIndex]) { - [self deleteAllMessages]; - } - } else { - if (buttonIndex == [alertView firstOtherButtonIndex]) { - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:alertView.title]]; - } else { - UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; - pasteboard.URL = [NSURL URLWithString:alertView.title]; - } - } -} - - -#pragma mark - UIActionSheetDelegate - -- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { - if (buttonIndex == actionSheet.cancelButtonIndex) { - return; - } - - if ([actionSheet tag] == 0) { - if (buttonIndex == [actionSheet destructiveButtonIndex]) { - [self deleteAllMessages]; - } - } else { - if (buttonIndex == [actionSheet firstOtherButtonIndex]) { - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:actionSheet.title]]; - } else { - UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; - pasteboard.URL = [NSURL URLWithString:actionSheet.title]; - } - } -} - - -#pragma mark - ListViewCellDelegate - -- (void)listCell:(id)cell didSelectAttachment:(BITFeedbackMessageAttachment *)attachment { - QLPreviewController *previewController = [[QLPreviewController alloc] init]; - previewController.dataSource = self; - - [self presentViewController:previewController animated:YES completion:nil]; - - if (self.cachedPreviewItems.count > [self.cachedPreviewItems indexOfObject:attachment]) { - [previewController setCurrentPreviewItemIndex:[self.cachedPreviewItems indexOfObject:attachment]]; - } -} - -- (void)refreshPreviewItems { - self.cachedPreviewItems = nil; - NSMutableArray *collectedAttachments = [NSMutableArray new]; - - for (int i = 0; i < self.manager.numberOfMessages; i++) { - BITFeedbackMessage *message = [self.manager messageAtIndex:i]; - [collectedAttachments addObjectsFromArray:message.previewableAttachments]; - } - - self.cachedPreviewItems = collectedAttachments; -} - -- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { - if (!self.cachedPreviewItems){ - [self refreshPreviewItems]; - } - - return self.cachedPreviewItems.count; -} - -- (id )previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { - if (index >= 0) { - __weak QLPreviewController* blockController = controller; - BITFeedbackMessageAttachment *attachment = self.cachedPreviewItems[index]; - - if (attachment.needsLoadingFromURL && !attachment.isLoading) { - attachment.isLoading = YES; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:attachment.sourceURL]]; - [NSURLConnection sendAsynchronousRequest:request queue:self.thumbnailQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { - attachment.isLoading = NO; - if (responseData.length) { - [attachment replaceData:responseData]; - [blockController reloadData]; - - [[BITHockeyManager sharedHockeyManager].feedbackManager saveMessages]; - } else { - [blockController reloadData]; - } - }]; - - return attachment; - } else { - return self.cachedPreviewItems[index]; - } - } - - return nil; -} - -@end - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackManager.h b/Pods/HockeySDK/Classes/BITFeedbackManager.h deleted file mode 100644 index 20423e1..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackManager.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import - -#import "BITHockeyBaseManager.h" -#import "BITFeedbackListViewController.h" -#import "BITFeedbackComposeViewController.h" - - -// Notification message which tells that loading messages finished -#define BITHockeyFeedbackMessagesLoadingStarted @"BITHockeyFeedbackMessagesLoadingStarted" - -// Notification message which tells that loading messages finished -#define BITHockeyFeedbackMessagesLoadingFinished @"BITHockeyFeedbackMessagesLoadingFinished" - - -/** - * Defines behavior of the user data field - */ -typedef NS_ENUM(NSInteger, BITFeedbackUserDataElement) { - /** - * don't ask for this user data element at all - */ - BITFeedbackUserDataElementDontShow = 0, - /** - * the user may provide it, but does not have to - */ - BITFeedbackUserDataElementOptional = 1, - /** - * the user has to provide this to continue - */ - BITFeedbackUserDataElementRequired = 2 -}; - -/** - * Available modes for opening the feedback compose interface with a screenshot attached - */ -typedef NS_ENUM(NSInteger, BITFeedbackObservationMode) { - /** - * No SDK provided trigger is active. - */ - BITFeedbackObservationNone = 0, - /** - * Triggers when the user takes a screenshot. This will grab the latest image from the camera roll. Requires iOS 7 or later! - */ - BITFeedbackObservationModeOnScreenshot = 1, - /** - * Triggers when the user taps with three fingers on the screen. - */ - BITFeedbackObservationModeThreeFingerTap = 2 -}; - - -@class BITFeedbackMessage; -@protocol BITFeedbackManagerDelegate; - -/** - The feedback module. - - This is the HockeySDK module for letting your users communicate directly with you via - the app and an integrated user interface. It provides a single threaded - discussion with a user running your app. - - You should never create your own instance of `BITFeedbackManager` but use the one provided - by the `[BITHockeyManager sharedHockeyManager]`: - - [BITHockeyManager sharedHockeyManager].feedbackManager - - The user interface provides a list view than can be presented modally using - `[BITFeedbackManager showFeedbackListView]` or adding - `[BITFeedbackManager feedbackListViewController:]` to push onto a navigation stack. - This list integrates all features to load new messages, write new messages, view messages - and ask the user for additional (optional) data like name and email. - - If the user provides the email address, all responses from the server will also be sent - to the user via email and the user is also able to respond directly via email, too. - - The message list interface also contains options to locally delete single messages - by swiping over them, or deleting all messages. This will not delete the messages - on the server, though! - - It also integrates actions to invoke the user interface to compose a new message, - reload the list content from the server and change the users name or email if these - are allowed to be set. - - It is also possible to invoke the user interface to compose a new message in your - own code, by calling `[BITFeedbackManager showFeedbackComposeView]` modally or adding - `[BITFeedbackManager feedbackComposeViewController]` to push onto a navigation stack. - - If new messages are written while the device is offline, the SDK automatically retries to - send them once the app starts again or gets active again, or if the notification - `BITHockeyNetworkDidBecomeReachableNotification` is fired. - - A third option is to include the `BITFeedbackActivity` into an UIActivityViewController. - This can be useful if you present some data that users can not only share but also - report back to the developer because they have some problems, e.g. webcams not working - any more. The activity provides a default title and image that can also be customized. - - New messages are automatically loaded on startup, when the app becomes active again - or when the notification `BITHockeyNetworkDidBecomeReachableNotification` is fired. This - only happens if the user ever did initiate a conversation by writing the first - feedback message. - - Implementing the `BITFeedbackManagerDelegate` protocol will notify your app when a new - message was received from the server. The `BITFeedbackComposeViewControllerDelegate` - protocol informs your app about events related to sending feedback messages. - - */ - -@interface BITFeedbackManager : BITHockeyBaseManager - -///----------------------------------------------------------------------------- -/// @name General settings -///----------------------------------------------------------------------------- - - -/** - Define if a name has to be provided by the user when providing feedback - - - `BITFeedbackUserDataElementDontShow`: Don't ask for this user data element at all - - `BITFeedbackUserDataElementOptional`: The user may provide it, but does not have to - - `BITFeedbackUserDataElementRequired`: The user has to provide this to continue - - The default value is `BITFeedbackUserDataElementOptional`. - - @warning If you provide a non nil value for the `BITFeedbackManager` class via - `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` then this - property will automatically be set to `BITFeedbackUserDataElementDontShow` - - @see BITFeedbackUserDataElement - @see requireUserEmail - @see `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` - */ -@property (nonatomic, readwrite) BITFeedbackUserDataElement requireUserName; - - -/** - Define if an email address has to be provided by the user when providing feedback - - If the user provides the email address, all responses from the server will also be send - to the user via email and the user is also able to respond directly via email too. - - - `BITFeedbackUserDataElementDontShow`: Don't ask for this user data element at all - - `BITFeedbackUserDataElementOptional`: The user may provide it, but does not have to - - `BITFeedbackUserDataElementRequired`: The user has to provide this to continue - - The default value is `BITFeedbackUserDataElementOptional`. - - @warning If you provide a non nil value for the `BITFeedbackManager` class via - `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` then this - property will automatically be set to `BITFeedbackUserDataElementDontShow` - - @see BITFeedbackUserDataElement - @see requireUserName - @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` - */ -@property (nonatomic, readwrite) BITFeedbackUserDataElement requireUserEmail; - - -/** - Indicates if an alert should be shown when new messages have arrived - - This lets the user view the new feedback by choosing the appropriate option - in the alert sheet, and the `BITFeedbackListViewController` will be shown. - - The alert is only shown, if the newest message didn't originate from the current user. - This requires the users email address to be present! The optional userid property - cannot be used, because users could also answer via email and then this information - is not available. - - Default is `YES` - @see feedbackListViewController: - @see requireUserEmail - @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` - */ -@property (nonatomic, readwrite) BOOL showAlertOnIncomingMessages; - - -/** - Define the trigger that opens the feedback composer and attaches a screenshot - - The following modes are available: - - - `BITFeedbackObservationNone`: No SDK based trigger is active. You can implement your - own trigger and then call `[[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeViewWithGeneratedScreenshot];` to handle your custom events - that should trigger this. - - `BITFeedbackObservationModeOnScreenshot`: Triggers when the user takes a screenshot. - This will grab the latest image from the camera roll. Requires iOS 7 or later! - - `BITFeedbackObservationModeThreeFingerTap`: Triggers when the user taps on the screen for three seconds with three fingers. - - Default is `BITFeedbackObservationNone` - - @see showFeedbackComposeViewWithGeneratedScreenshot - */ -@property (nonatomic, readwrite) BITFeedbackObservationMode feedbackObservationMode; - - -/** - Prefill feedback compose message user interface with the items given. - - All NSString-Content in the array will be concatenated and result in the message, - while all UIImage and NSData-instances will be turned into attachments. - - @param items an NSArray with objects that should be attached - @see `[BITFeedbackComposeViewController prepareWithItems:]` - */ -@property (nonatomic, copy) NSArray *feedbackComposerPreparedItems; - - -///----------------------------------------------------------------------------- -/// @name User Interface -///----------------------------------------------------------------------------- - - -/** - Indicates if a forced user data UI presentation is shown modal - - If `requireUserName` and/or `requireUserEmail` are enabled, the first presentation - of `feedbackListViewController:` and subsequent `feedbackComposeViewController:` - will automatically present a UI that lets the user provide this data and compose - a message. By default this is shown (since SDK 3.1) as a modal sheet. - - If you want the SDK to push this UI onto the navigation stack in this specific scenario, - then change the property to `NO`. - - @warning If you are presenting the `BITFeedbackListViewController` in a popover, this property should not be changed! - - Default is `YES` - @see requireUserName - @see requireUserEmail - @see showFeedbackComposeView - @see feedbackComposeViewController - @see showFeedbackListView - @see feedbackListViewController: - */ -@property (nonatomic, readwrite) BOOL showFirstRequiredPresentationModal; - - -/** - Return a screenshot UIImage instance from the current visible screen - - @return UIImage instance containing a screenshot of the current screen - */ -- (UIImage *)screenshot; - - -/** - Present the modal feedback list user interface. - */ -- (void)showFeedbackListView; - - -/** - Create an feedback list view - - @param modal Return a view ready for modal presentation with integrated navigation bar - @return `BITFeedbackListViewController` The feedback list view controller, - e.g. to push it onto a navigation stack. - */ -- (BITFeedbackListViewController *)feedbackListViewController:(BOOL)modal; - - -/** - Present the modal feedback compose message user interface. - */ -- (void)showFeedbackComposeView; - -/** - Present the modal feedback compose message user interface with the items given. - - All NSString-Content in the array will be concatenated and result in the message, - while all UIImage and NSData-instances will be turned into attachments. - - @param items an NSArray with objects that should be attached - @see `[BITFeedbackComposeViewController prepareWithItems:]` - */ -- (void)showFeedbackComposeViewWithPreparedItems:(NSArray *)items; - -/** - Presents a modal feedback compose interface with a screenshot attached which is taken at the time of calling this method. - - This should be used when your own trigger fires. The following code should be used: - - [[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeViewWithGeneratedScreenshot]; - - @see feedbackObservationMode - */ -- (void)showFeedbackComposeViewWithGeneratedScreenshot; - - -/** - Create a feedback compose view - - Example to show a modal feedback compose UI with prefilled text - - BITFeedbackComposeViewController *feedbackCompose = [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackComposeViewController]; - - [feedbackCompose prepareWithItems: - @[@"Adding some example default text and also adding a link.", - [NSURL URLWithString:@"http://hockeayyp.net/"]]]; - - UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:feedbackCompose]; - navController.modalPresentationStyle = UIModalPresentationFormSheet; - [self presentViewController:navController animated:YES completion:nil]; - - @return `BITFeedbackComposeViewController` The compose feedback view controller, - e.g. to push it onto a navigation stack. - */ -- (BITFeedbackComposeViewController *)feedbackComposeViewController; - - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackManager.m b/Pods/HockeySDK/Classes/BITFeedbackManager.m deleted file mode 100644 index 160ed3f..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackManager.m +++ /dev/null @@ -1,1156 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import - -#import "HockeySDKPrivate.h" - -#import "BITFeedbackManager.h" -#import "BITFeedbackMessageAttachment.h" -#import "BITFeedbackManagerPrivate.h" -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITHockeyHelper.h" -#import "BITHockeyAppClient.h" - -#define kBITFeedbackUserDataAsked @"HockeyFeedbackUserDataAsked" -#define kBITFeedbackDateOfLastCheck @"HockeyFeedbackDateOfLastCheck" -#define kBITFeedbackMessages @"HockeyFeedbackMessages" -#define kBITFeedbackToken @"HockeyFeedbackToken" -#define kBITFeedbackUserID @"HockeyFeedbackuserID" -#define kBITFeedbackName @"HockeyFeedbackName" -#define kBITFeedbackEmail @"HockeyFeedbackEmail" -#define kBITFeedbackLastMessageID @"HockeyFeedbackLastMessageID" -#define kBITFeedbackAppID @"HockeyFeedbackAppID" - -NSString *const kBITFeedbackUpdateAttachmentThumbnail = @"BITFeedbackUpdateAttachmentThumbnail"; - -@interface BITFeedbackManager() - -@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; -@property (nonatomic) BOOL screenshotNotificationEnabled; - -@end - -@implementation BITFeedbackManager { - NSFileManager *_fileManager; - NSString *_settingsFile; - - id _appDidBecomeActiveObserver; - id _appDidEnterBackgroundObserver; - id _networkDidBecomeReachableObserver; - - BOOL _incomingMessagesAlertShowing; - BOOL _didEnterBackgroundState; - BOOL _networkRequestInProgress; - - BITFeedbackObservationMode _observationMode; -} - -#pragma mark - Initialization - -- (instancetype)init { - if ((self = [super init])) { - _currentFeedbackListViewController = nil; - _currentFeedbackComposeViewController = nil; - _didAskUserData = NO; - - _requireUserName = BITFeedbackUserDataElementOptional; - _requireUserEmail = BITFeedbackUserDataElementOptional; - _showAlertOnIncomingMessages = YES; - _showFirstRequiredPresentationModal = YES; - - _disableFeedbackManager = NO; - _networkRequestInProgress = NO; - _incomingMessagesAlertShowing = NO; - _lastCheck = nil; - _token = nil; - _lastMessageID = nil; - - _feedbackList = [NSMutableArray array]; - - _fileManager = [[NSFileManager alloc] init]; - - _settingsFile = [bit_settingsDir() stringByAppendingPathComponent:BITHOCKEY_FEEDBACK_SETTINGS]; - - _userID = nil; - _userName = nil; - _userEmail = nil; - } - return self; -} - -- (void)dealloc { - [self unregisterObservers]; -} - - -- (void)didBecomeActiveActions { - if ([self isFeedbackManagerDisabled]) return; - if (!_didEnterBackgroundState) return; - - _didEnterBackgroundState = NO; - - if ([_feedbackList count] == 0) { - [self loadMessages]; - } else { - [self updateAppDefinedUserData]; - } - [self updateMessagesList]; -} - -- (void)didEnterBackgroundActions { - _didEnterBackgroundState = NO; - - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { - _didEnterBackgroundState = YES; - } -} - -#pragma mark - Observers -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - if(nil == _appDidEnterBackgroundObserver) { - _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didEnterBackgroundActions]; - }]; - } - if(nil == _appDidBecomeActiveObserver) { - _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } - if(nil == _networkDidBecomeReachableObserver) { - _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } -} - -- (void) unregisterObservers { - if(_appDidEnterBackgroundObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; - _appDidEnterBackgroundObserver = nil; - } - if(_appDidBecomeActiveObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; - _appDidBecomeActiveObserver = nil; - } - if(_networkDidBecomeReachableObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; - _networkDidBecomeReachableObserver = nil; - } -} - -#pragma mark - Private methods - -- (NSString *)uuidString { - CFUUIDRef theToken = CFUUIDCreate(NULL); - NSString *stringUUID = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, theToken); - CFRelease(theToken); - - return stringUUID; -} - -- (NSString *)uuidAsLowerCaseAndShortened { - return [[[self uuidString] lowercaseString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; -} - -#pragma mark - Feedback Modal UI - -- (UIImage *)screenshot { - return bit_screenshot(); -} - -- (BITFeedbackListViewController *)feedbackListViewController:(BOOL)modal { - if ([self isPreiOS7Environment]) { - return [[BITFeedbackListViewController alloc] initWithModalStyle:modal]; - } else { - return [[BITFeedbackListViewController alloc] initWithStyle:UITableViewStyleGrouped modal:modal]; - } -} - -- (void)showFeedbackListView { - if (_currentFeedbackListViewController) { - BITHockeyLog(@"INFO: update view already visible, aborting"); - return; - } - - [self showView:[self feedbackListViewController:YES]]; -} - - -- (BITFeedbackComposeViewController *)feedbackComposeViewController { - BITFeedbackComposeViewController *composeViewController = [[BITFeedbackComposeViewController alloc] init]; - [composeViewController prepareWithItems:self.feedbackComposerPreparedItems]; - - // by default set the delegate to be identical to the one of BITFeedbackManager - [composeViewController setDelegate:self.delegate]; - return composeViewController; -} - -- (void)showFeedbackComposeView { - [self showFeedbackComposeViewWithPreparedItems:nil]; -} - -- (void)showFeedbackComposeViewWithPreparedItems:(NSArray *)items{ - if (_currentFeedbackComposeViewController) { - BITHockeyLog(@"INFO: update view already visible, aborting"); - return; - } - BITFeedbackComposeViewController *composeView = [self feedbackComposeViewController]; - [composeView prepareWithItems:items]; - - [self showView:composeView]; - -} - -- (void)showFeedbackComposeViewWithGeneratedScreenshot { - UIImage *screenshot = bit_screenshot(); - [self showFeedbackComposeViewWithPreparedItems:@[screenshot]]; -} - -#pragma mark - Manager Control - -- (void)startManager { - if ([self isFeedbackManagerDisabled]) return; - - [self registerObservers]; - - // we are already delayed, so the notification already came in and this won't invoked twice - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: - // we did startup, so yes we are coming from background - _didEnterBackgroundState = YES; - - [self didBecomeActiveActions]; - break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: - // do nothing, wait for active state - break; - } -} - -- (void)updateMessagesList { - if (_networkRequestInProgress) return; - - NSArray *pendingMessages = [self messagesWithStatus:BITFeedbackMessageStatusSendPending]; - if ([pendingMessages count] > 0) { - [self submitPendingMessages]; - } else { - [self fetchMessageUpdates]; - } -} - -- (void)updateMessagesListIfRequired { - double now = [[NSDate date] timeIntervalSince1970]; - if ((now - [_lastCheck timeIntervalSince1970] > 30)) { - [self updateMessagesList]; - } -} - -- (BOOL)updateUserIDUsingKeychainAndDelegate { - BOOL availableViaDelegate = NO; - - NSString *userID = [self stringValueFromKeychainForKey:kBITHockeyMetaUserID]; - - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) { - userID = [[BITHockeyManager sharedHockeyManager].delegate - userIDForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self]; - } - - if (userID) { - availableViaDelegate = YES; - self.userID = userID; - } - - return availableViaDelegate; -} - -- (BOOL)updateUserNameUsingKeychainAndDelegate { - BOOL availableViaDelegate = NO; - - NSString *userName = [self stringValueFromKeychainForKey:kBITHockeyMetaUserName]; - - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) { - userName = [[BITHockeyManager sharedHockeyManager].delegate - userNameForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self]; - } - - if (userName) { - availableViaDelegate = YES; - self.userName = userName; - self.requireUserName = BITFeedbackUserDataElementDontShow; - } - - return availableViaDelegate; -} - -- (BOOL)updateUserEmailUsingKeychainAndDelegate { - BOOL availableViaDelegate = NO; - - NSString *userEmail = [self stringValueFromKeychainForKey:kBITHockeyMetaUserEmail]; - - if ([BITHockeyManager sharedHockeyManager].delegate && - [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) { - userEmail = [[BITHockeyManager sharedHockeyManager].delegate - userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager] - componentManager:self]; - } - - if (userEmail) { - availableViaDelegate = YES; - self.userEmail = userEmail; - self.requireUserEmail = BITFeedbackUserDataElementDontShow; - } - - return availableViaDelegate; -} - -- (void)updateAppDefinedUserData { - [self updateUserIDUsingKeychainAndDelegate]; - [self updateUserNameUsingKeychainAndDelegate]; - [self updateUserEmailUsingKeychainAndDelegate]; - - // if both values are shown via the delegates, we never ever did ask and will never ever ask for user data - if (self.requireUserName == BITFeedbackUserDataElementDontShow && - self.requireUserEmail == BITFeedbackUserDataElementDontShow) { - self.didAskUserData = NO; - } -} - -#pragma mark - Local Storage - -- (void)loadMessages { - BOOL userIDViaDelegate = [self updateUserIDUsingKeychainAndDelegate]; - BOOL userNameViaDelegate = [self updateUserNameUsingKeychainAndDelegate]; - BOOL userEmailViaDelegate = [self updateUserEmailUsingKeychainAndDelegate]; - - if (![_fileManager fileExistsAtPath:_settingsFile]) - return; - - NSData *codedData = [[NSData alloc] initWithContentsOfFile:_settingsFile]; - if (codedData == nil) return; - - NSKeyedUnarchiver *unarchiver = nil; - - @try { - unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; - } - @catch (NSException *exception) { - return; - } - - if (!userIDViaDelegate) { - if ([unarchiver containsValueForKey:kBITFeedbackUserID]) { - self.userID = [unarchiver decodeObjectForKey:kBITFeedbackUserID]; - [self addStringValueToKeychain:self.userID forKey:kBITFeedbackUserID]; - } - self.userID = [self stringValueFromKeychainForKey:kBITFeedbackUserID]; - } - - if (!userNameViaDelegate) { - if ([unarchiver containsValueForKey:kBITFeedbackName]) { - self.userName = [unarchiver decodeObjectForKey:kBITFeedbackName]; - [self addStringValueToKeychain:self.userName forKey:kBITFeedbackName]; - } - self.userName = [self stringValueFromKeychainForKey:kBITFeedbackName]; - } - - if (!userEmailViaDelegate) { - if ([unarchiver containsValueForKey:kBITFeedbackEmail]) { - self.userEmail = [unarchiver decodeObjectForKey:kBITFeedbackEmail]; - [self addStringValueToKeychain:self.userEmail forKey:kBITFeedbackEmail]; - } - self.userEmail = [self stringValueFromKeychainForKey:kBITFeedbackEmail]; - } - - if ([unarchiver containsValueForKey:kBITFeedbackUserDataAsked]) - _didAskUserData = YES; - - if ([unarchiver containsValueForKey:kBITFeedbackToken]) { - self.token = [unarchiver decodeObjectForKey:kBITFeedbackToken]; - [self addStringValueToKeychain:self.token forKey:kBITFeedbackToken]; - } - self.token = [self stringValueFromKeychainForKey:kBITFeedbackToken]; - - if ([unarchiver containsValueForKey:kBITFeedbackAppID]) { - NSString *appID = [unarchiver decodeObjectForKey:kBITFeedbackAppID]; - - // the stored thread is from another application identifier, so clear the token - // which will cause the new posts to create a new thread on the server for the - // current app identifier - if ([appID compare:self.appIdentifier] != NSOrderedSame) { - self.token = nil; - } - } - - if ([unarchiver containsValueForKey:kBITFeedbackDateOfLastCheck]) - self.lastCheck = [unarchiver decodeObjectForKey:kBITFeedbackDateOfLastCheck]; - - if ([unarchiver containsValueForKey:kBITFeedbackLastMessageID]) - self.lastMessageID = [unarchiver decodeObjectForKey:kBITFeedbackLastMessageID]; - - if ([unarchiver containsValueForKey:kBITFeedbackMessages]) { - [self.feedbackList setArray:[unarchiver decodeObjectForKey:kBITFeedbackMessages]]; - - [self sortFeedbackList]; - - // inform the UI to update its data in case the list is already showing - [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; - } - - [unarchiver finishDecoding]; - - if (!self.lastCheck) { - self.lastCheck = [NSDate distantPast]; - } -} - - -- (void)saveMessages { - [self sortFeedbackList]; - - NSMutableData *data = [[NSMutableData alloc] init]; - NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; - - if (_didAskUserData) - [archiver encodeObject:[NSNumber numberWithBool:YES] forKey:kBITFeedbackUserDataAsked]; - - if (self.token) - [self addStringValueToKeychain:self.token forKey:kBITFeedbackToken]; - - if (self.appIdentifier) - [archiver encodeObject:self.appIdentifier forKey:kBITFeedbackAppID]; - - if (self.userID) - [self addStringValueToKeychain:self.userID forKey:kBITFeedbackUserID]; - - if (self.userName) - [self addStringValueToKeychain:self.userName forKey:kBITFeedbackName]; - - if (self.userEmail) - [self addStringValueToKeychain:self.userEmail forKey:kBITFeedbackEmail]; - - if (self.lastCheck) - [archiver encodeObject:self.lastCheck forKey:kBITFeedbackDateOfLastCheck]; - - if (self.lastMessageID) - [archiver encodeObject:self.lastMessageID forKey:kBITFeedbackLastMessageID]; - - [archiver encodeObject:self.feedbackList forKey:kBITFeedbackMessages]; - - [archiver finishEncoding]; - [data writeToFile:_settingsFile atomically:YES]; -} - - -- (void)updateDidAskUserData { - if (!_didAskUserData) { - _didAskUserData = YES; - - [self saveMessages]; - } -} - -#pragma mark - Messages - -- (void)sortFeedbackList { - [_feedbackList sortUsingComparator:^(BITFeedbackMessage *obj1, BITFeedbackMessage *obj2) { - NSDate *date1 = [obj1 date]; - NSDate *date2 = [obj2 date]; - - // not send, in conflict and send in progress messages on top, sorted by date - // read and unread on bottom, sorted by date - // archived on the very bottom - - if ([obj1 status] >= BITFeedbackMessageStatusSendInProgress && [obj2 status] < BITFeedbackMessageStatusSendInProgress) { - return NSOrderedDescending; - } else if ([obj1 status] < BITFeedbackMessageStatusSendInProgress && [obj2 status] >= BITFeedbackMessageStatusSendInProgress) { - return NSOrderedAscending; - } else if ([obj1 status] == BITFeedbackMessageStatusArchived && [obj2 status] < BITFeedbackMessageStatusArchived) { - return NSOrderedDescending; - } else if ([obj1 status] < BITFeedbackMessageStatusArchived && [obj2 status] == BITFeedbackMessageStatusArchived) { - return NSOrderedAscending; - } else { - return (NSInteger)[date2 compare:date1]; - } - }]; -} - -- (NSUInteger)numberOfMessages { - return [_feedbackList count]; -} - -- (BITFeedbackMessage *)messageAtIndex:(NSUInteger)index { - if ([_feedbackList count] > index) { - return [_feedbackList objectAtIndex:index]; - } - - return nil; -} - -- (BITFeedbackMessage *)messageWithID:(NSNumber *)messageID { - __block BITFeedbackMessage *message = nil; - - [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([[objMessage identifier] isEqualToNumber:messageID]) { - message = objMessage; - *stop = YES; - } - }]; - - return message; -} - -- (NSArray *)messagesWithStatus:(BITFeedbackMessageStatus)status { - NSMutableArray *resultMessages = [[NSMutableArray alloc] initWithCapacity:[_feedbackList count]]; - - [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([objMessage status] == status) { - [resultMessages addObject: objMessage]; - } - }]; - - return [NSArray arrayWithArray:resultMessages];; -} - -- (BITFeedbackMessage *)lastMessageHavingID { - __block BITFeedbackMessage *message = nil; - - [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([[objMessage identifier] integerValue] != 0) { - message = objMessage; - *stop = YES; - } - }]; - - return message; -} - -- (void)markSendInProgressMessagesAsPending { - // make sure message that may have not been send successfully, get back into the right state to be send again - [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) - [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusSendPending]; - }]; -} - -- (void)markSendInProgressMessagesAsInConflict { - // make sure message that may have not been send successfully, get back into the right state to be send again - [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) - [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusInConflict]; - }]; -} - -- (void)updateLastMessageID { - BITFeedbackMessage *lastMessageHavingID = [self lastMessageHavingID]; - if (lastMessageHavingID) { - if (!self.lastMessageID || [self.lastMessageID compare:[lastMessageHavingID identifier]] != NSOrderedSame) - self.lastMessageID = [lastMessageHavingID identifier]; - } -} - -- (BOOL)deleteMessageAtIndex:(NSUInteger)index { - if (_feedbackList && [_feedbackList count] > index && [_feedbackList objectAtIndex:index]) { - BITFeedbackMessage *message = _feedbackList[index]; - [message deleteContents]; - [_feedbackList removeObjectAtIndex:index]; - - [self saveMessages]; - return YES; - } - - return NO; -} - -- (void)deleteAllMessages { - [_feedbackList removeAllObjects]; - - [self saveMessages]; -} - - -#pragma mark - User - -- (BOOL)askManualUserDataAvailable { - [self updateAppDefinedUserData]; - - if (self.requireUserName == BITFeedbackUserDataElementDontShow && - self.requireUserEmail == BITFeedbackUserDataElementDontShow) - return NO; - - return YES; -} - -- (BOOL)requireManualUserDataMissing { - [self updateAppDefinedUserData]; - - if (self.requireUserName == BITFeedbackUserDataElementRequired && !self.userName) - return YES; - - if (self.requireUserEmail == BITFeedbackUserDataElementRequired && !self.userEmail) - return YES; - - return NO; -} - -- (BOOL)isManualUserDataAvailable { - [self updateAppDefinedUserData]; - - if ((self.requireUserName != BITFeedbackUserDataElementDontShow && self.userName) || - (self.requireUserEmail != BITFeedbackUserDataElementDontShow && self.userEmail)) - return YES; - - return NO; -} - - -#pragma mark - Networking - -- (void)updateMessageListFromResponse:(NSDictionary *)jsonDictionary { - if (!jsonDictionary) { - // nil is used when the server returns 404, so we need to mark all existing threads as archives and delete the discussion token - - NSArray *messagesSendInProgress = [self messagesWithStatus:BITFeedbackMessageStatusSendInProgress]; - NSInteger pendingMessagesCount = [messagesSendInProgress count] + [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; - - [self markSendInProgressMessagesAsPending]; - - [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([(BITFeedbackMessage *)objMessage status] != BITFeedbackMessageStatusSendPending) - [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusArchived]; - }]; - - if ([self token]) { - self.token = nil; - } - - NSInteger pendingMessagesCountAfterProcessing = [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; - - [self saveMessages]; - - // check if this request was successful and we have more messages pending and continue if positive - if (pendingMessagesCount > pendingMessagesCountAfterProcessing && pendingMessagesCountAfterProcessing > 0) { - [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:0.1]; - } - - return; - } - - NSDictionary *feedback = [jsonDictionary objectForKey:@"feedback"]; - NSString *token = [jsonDictionary objectForKey:@"token"]; - NSDictionary *feedbackObject = [jsonDictionary objectForKey:@"feedback"]; - if (feedback && token && feedbackObject) { - // update the thread token, which is not available until the 1st message was successfully sent - self.token = token; - - self.lastCheck = [NSDate date]; - - // add all new messages - NSArray *feedMessages = [feedbackObject objectForKey:@"messages"]; - - // get the message that was currently sent if available - NSArray *messagesSendInProgress = [self messagesWithStatus:BITFeedbackMessageStatusSendInProgress]; - - NSInteger pendingMessagesCount = [messagesSendInProgress count] + [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; - - __block BOOL newMessage = NO; - NSMutableSet *returnedMessageIDs = [[NSMutableSet alloc] init]; - - [feedMessages enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([(NSDictionary *)objMessage objectForKey:@"id"]) { - NSNumber *messageID = [(NSDictionary *)objMessage objectForKey:@"id"]; - [returnedMessageIDs addObject:messageID]; - - BITFeedbackMessage *thisMessage = [self messageWithID:messageID]; - if (!thisMessage) { - // check if this is a message that was sent right now - __block BITFeedbackMessage *matchingSendInProgressOrInConflictMessage = nil; - - // TODO: match messages in state conflict - - [messagesSendInProgress enumerateObjectsUsingBlock:^(id objSendInProgressMessage, NSUInteger messagesSendInProgressIdx, BOOL *stop2) { - if ([[(NSDictionary *)objMessage objectForKey:@"token"] isEqualToString:[(BITFeedbackMessage *)objSendInProgressMessage token]]) { - matchingSendInProgressOrInConflictMessage = objSendInProgressMessage; - *stop2 = YES; - } - }]; - - if (matchingSendInProgressOrInConflictMessage) { - matchingSendInProgressOrInConflictMessage.date = [self parseRFC3339Date:[(NSDictionary *)objMessage objectForKey:@"created_at"]]; - matchingSendInProgressOrInConflictMessage.identifier = messageID; - matchingSendInProgressOrInConflictMessage.status = BITFeedbackMessageStatusRead; - NSArray *feedbackAttachments =[(NSDictionary *)objMessage objectForKey:@"attachments"]; - if (matchingSendInProgressOrInConflictMessage.attachments.count == feedbackAttachments.count) { - int attachmentIndex = 0; - for (BITFeedbackMessageAttachment* attachment in matchingSendInProgressOrInConflictMessage.attachments){ - attachment.identifier =feedbackAttachments[attachmentIndex][@"id"]; - attachmentIndex++; - } - } - } else { - if ([(NSDictionary *)objMessage objectForKey:@"clean_text"] || [(NSDictionary *)objMessage objectForKey:@"text"] || [(NSDictionary *)objMessage objectForKey:@"attachments"]) { - BITFeedbackMessage *message = [[BITFeedbackMessage alloc] init]; - message.text = [(NSDictionary *)objMessage objectForKey:@"clean_text"] ?: [(NSDictionary *)objMessage objectForKey:@"text"] ?: @""; - message.name = [(NSDictionary *)objMessage objectForKey:@"name"] ?: @""; - message.email = [(NSDictionary *)objMessage objectForKey:@"email"] ?: @""; - - message.date = [self parseRFC3339Date:[(NSDictionary *)objMessage objectForKey:@"created_at"]] ?: [NSDate date]; - message.identifier = [(NSDictionary *)objMessage objectForKey:@"id"]; - message.status = BITFeedbackMessageStatusUnread; - - for (NSDictionary *attachmentData in objMessage[@"attachments"]) { - BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment new]; - newAttachment.originalFilename = attachmentData[@"file_name"]; - newAttachment.identifier = attachmentData[@"id"]; - newAttachment.sourceURL = attachmentData[@"url"]; - newAttachment.contentType = attachmentData[@"content_type"]; - [message addAttachmentsObject:newAttachment]; - } - - [_feedbackList addObject:message]; - - newMessage = YES; - } - } - } else { - // we should never get any messages back that are already stored locally, - // since we add the last_message_id to the request - } - } - }]; - - [self markSendInProgressMessagesAsPending]; - - [self sortFeedbackList]; - [self updateLastMessageID]; - - // we got a new incoming message, trigger user notification system - if (newMessage) { - // check if the latest message is from the users own email address, then don't show an alert since he answered using his own email - BOOL latestMessageFromUser = NO; - - BITFeedbackMessage *latestMessage = [self lastMessageHavingID]; - if (self.userEmail && latestMessage.email && [self.userEmail compare:latestMessage.email] == NSOrderedSame) - latestMessageFromUser = YES; - - if (!latestMessageFromUser) { - if([self.delegate respondsToSelector:@selector(feedbackManagerDidReceiveNewFeedback:)]) { - [self.delegate feedbackManagerDidReceiveNewFeedback:self]; - } - - if(self.showAlertOnIncomingMessages && !self.currentFeedbackListViewController && !self.currentFeedbackComposeViewController) { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageTitle") - message:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageText") - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackIgnore") - otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackShow"), nil - ]; - [alertView setTag:0]; - [alertView show]; - _incomingMessagesAlertShowing = YES; - } - } - } - - NSInteger pendingMessagesCountAfterProcessing = [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; - - // check if this request was successful and we have more messages pending and continue if positive - if (pendingMessagesCount > pendingMessagesCountAfterProcessing && pendingMessagesCountAfterProcessing > 0) { - [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:0.1]; - } - - } else { - [self markSendInProgressMessagesAsPending]; - } - - [self saveMessages]; - - return; -} - - -- (void)sendNetworkRequestWithHTTPMethod:(NSString *)httpMethod withMessage:(BITFeedbackMessage *)message completionHandler:(void (^)(NSError *err))completionHandler { - NSString *boundary = @"----FOO"; - - _networkRequestInProgress = YES; - // inform the UI to update its data in case the list is already showing - [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingStarted object:nil]; - - NSString *tokenParameter = @""; - if ([self token]) { - tokenParameter = [NSString stringWithFormat:@"/%@", [self token]]; - } - NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@/feedback%@", [self encodedAppIdentifier], tokenParameter]; - - NSString *lastMessageID = @""; - if (!self.lastMessageID) { - [self updateLastMessageID]; - } - if (self.lastMessageID) { - lastMessageID = [NSString stringWithFormat:@"&last_message_id=%li", (long)[self.lastMessageID integerValue]]; - } - - [parameter appendFormat:@"?format=json&bundle_version=%@&sdk=%@&sdk_version=%@%@", - bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]), - BITHOCKEY_NAME, - BITHOCKEY_VERSION, - lastMessageID - ]; - - // build request & send - NSString *url = [NSString stringWithFormat:@"%@%@", self.serverURL, parameter]; - BITHockeyLog(@"INFO: sending api request to %@", url); - - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; - [request setHTTPMethod:httpMethod]; - [request setValue:@"Hockey/iOS" forHTTPHeaderField:@"User-Agent"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - if (message) { - NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; - [request setValue:contentType forHTTPHeaderField:@"Content-type"]; - - NSMutableData *postBody = [NSMutableData data]; - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:@"Apple" forKey:@"oem" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[UIDevice currentDevice] systemVersion] forKey:@"os_version" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[self getDevicePlatform] forKey:@"model" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0] forKey:@"lang" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] forKey:@"bundle_version" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[message text] forKey:@"text" boundary:boundary]]; - [postBody appendData:[BITHockeyAppClient dataWithPostValue:[message token] forKey:@"message_token" boundary:boundary]]; - - NSString *installString = bit_appAnonID(); - if (installString) { - [postBody appendData:[BITHockeyAppClient dataWithPostValue:installString forKey:@"install_string" boundary:boundary]]; - } - - if (self.userID) { - [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userID forKey:@"user_string" boundary:boundary]]; - } - if (self.userName) { - [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userName forKey:@"name" boundary:boundary]]; - } - if (self.userEmail) { - [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userEmail forKey:@"email" boundary:boundary]]; - } - - - NSInteger photoIndex = 0; - - for (BITFeedbackMessageAttachment *attachment in message.attachments){ - NSString *key = [NSString stringWithFormat:@"attachment%ld", (long)photoIndex]; - - NSString *filename = attachment.originalFilename; - - if (!filename) { - filename = [NSString stringWithFormat:@"Attachment %ld", (long)photoIndex]; - } - - [postBody appendData:[BITHockeyAppClient dataWithPostValue:attachment.data forKey:key contentType:attachment.contentType boundary:boundary filename:filename]]; - - photoIndex++; - } - - [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; - - - [request setHTTPBody:postBody]; - } - - [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { - _networkRequestInProgress = NO; - - if (err) { - [self reportError:err]; - [self markSendInProgressMessagesAsPending]; - completionHandler(err); - } else { - NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode]; - if (statusCode == 404) { - // thread has been deleted, we archive it - [self updateMessageListFromResponse:nil]; - } else if (statusCode == 409) { - // we submitted a message that is already on the server, mark it as being in conflict and resolve it with another fetch - - if (!self.token) { - // set the token to the first message token, since this is identical - __block NSString *token = nil; - - [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { - if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) { - token = [(BITFeedbackMessage *)objMessage token]; - *stop = YES; - } - }]; - - if (token) { - self.token = token; - } - } - - [self markSendInProgressMessagesAsInConflict]; - [self saveMessages]; - [self performSelector:@selector(fetchMessageUpdates) withObject:nil afterDelay:0.2]; - } else if ([responseData length]) { - NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding]; - BITHockeyLog(@"INFO: Received API response: %@", responseString); - - if (responseString && [responseString dataUsingEncoding:NSUTF8StringEncoding]) { - NSError *error = NULL; - - NSDictionary *feedDict = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error]; - - // server returned empty response? - if (error) { - [self reportError:error]; - } else if (![feedDict count]) { - [self reportError:[NSError errorWithDomain:kBITFeedbackErrorDomain - code:BITFeedbackAPIServerReturnedEmptyResponse - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned empty response.", NSLocalizedDescriptionKey, nil]]]; - } else { - BITHockeyLog(@"INFO: Received API response: %@", responseString); - NSString *status = [feedDict objectForKey:@"status"]; - if ([status compare:@"success"] != NSOrderedSame) { - [self reportError:[NSError errorWithDomain:kBITFeedbackErrorDomain - code:BITFeedbackAPIServerReturnedInvalidStatus - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned invalid status.", NSLocalizedDescriptionKey, nil]]]; - } else { - [self updateMessageListFromResponse:feedDict]; - } - } - } - } - - [self markSendInProgressMessagesAsPending]; - completionHandler(err); - } - }]; -} - -- (void)fetchMessageUpdates { - if ([_feedbackList count] == 0 && !self.token) { - // inform the UI to update its data in case the list is already showing - [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; - - return; - } - - [self sendNetworkRequestWithHTTPMethod:@"GET" - withMessage:nil - completionHandler:^(NSError *err){ - // inform the UI to update its data in case the list is already showing - [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; - }]; -} - -- (void)submitPendingMessages { - if (_networkRequestInProgress) { - [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(submitPendingMessages) object:nil]; - [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:2.0f]; - return; - } - - // app defined user data may have changed, update it - [self updateAppDefinedUserData]; - [self saveMessages]; - - NSArray *pendingMessages = [self messagesWithStatus:BITFeedbackMessageStatusSendPending]; - - if ([pendingMessages count] > 0) { - // we send one message at a time - BITFeedbackMessage *messageToSend = [pendingMessages objectAtIndex:0]; - - [messageToSend setStatus:BITFeedbackMessageStatusSendInProgress]; - if (self.userID) - [messageToSend setUserID:self.userID]; - if (self.userName) - [messageToSend setName:self.userName]; - if (self.userEmail) - [messageToSend setEmail:self.userEmail]; - - NSString *httpMethod = @"POST"; - if ([self token]) { - httpMethod = @"PUT"; - } - - [self sendNetworkRequestWithHTTPMethod:httpMethod - withMessage:messageToSend - completionHandler:^(NSError *err){ - if (err) { - [self markSendInProgressMessagesAsPending]; - [self saveMessages]; - } - - // inform the UI to update its data in case the list is already showing - [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; - }]; - } -} - -- (void)submitMessageWithText:(NSString *)text andAttachments:(NSArray *)attachments { - BITFeedbackMessage *message = [[BITFeedbackMessage alloc] init]; - message.text = text; - [message setStatus:BITFeedbackMessageStatusSendPending]; - [message setToken:[self uuidAsLowerCaseAndShortened]]; - [message setAttachments:attachments]; - [message setUserMessage:YES]; - - [_feedbackList addObject:message]; - - [self submitPendingMessages]; -} - - -#pragma mark - UIAlertViewDelegate - -// invoke the selected action from the action sheet for a location element -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - - _incomingMessagesAlertShowing = NO; - if (buttonIndex == [alertView firstOtherButtonIndex]) { - // Show button has been clicked - [self showFeedbackListView]; - } -} - -#pragma mark - Observation Handling - -- (void)setFeedbackObservationMode:(BITFeedbackObservationMode)feedbackObservationMode { - if (feedbackObservationMode != _feedbackObservationMode) { - _feedbackObservationMode = feedbackObservationMode; - - if (feedbackObservationMode == BITFeedbackObservationModeOnScreenshot){ - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1){ - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotNotificationReceived:) name:UIApplicationUserDidTakeScreenshotNotification object:nil]; - } else { - BITHockeyLog("WARNING: BITFeedbackObservationModeOnScreenshot requires iOS 7 or later."); - } - - self.screenshotNotificationEnabled = YES; - - if (self.tapRecognizer){ - [[[UIApplication sharedApplication] keyWindow] removeGestureRecognizer:self.tapRecognizer]; - self.tapRecognizer = nil; - } - } - - if (feedbackObservationMode == BITFeedbackObservationModeThreeFingerTap){ - if (!self.tapRecognizer){ - self.tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(screenshotTripleTap:)]; - self.tapRecognizer.numberOfTouchesRequired = 3; - self.tapRecognizer.delegate = self; - - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.tapRecognizer) { - [[UIApplication sharedApplication].keyWindow addGestureRecognizer:self.tapRecognizer]; - } - }); - } - - if (self.screenshotNotificationEnabled){ - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1){ - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil]; - self.screenshotNotificationEnabled = NO; - } - } - } - } -} - --(void)screenshotNotificationReceived:(NSNotification *)notification { - double amountOfSeconds = 0.5; - dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(amountOfSeconds * NSEC_PER_SEC)); - - dispatch_after(delayTime, dispatch_get_main_queue(), ^{ - [self extractLastPictureFromLibraryAndLaunchFeedback]; - }); -} - --(void)extractLastPictureFromLibraryAndLaunchFeedback { - ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; - - [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) { - - [group setAssetsFilter:[ALAssetsFilter allPhotos]]; - - [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) { - - if (alAsset) { - ALAssetRepresentation *representation = [alAsset defaultRepresentation]; - UIImage *latestPhoto = [UIImage imageWithCGImage:[representation fullScreenImage]]; - - *stop = YES; - *innerStop = YES; - - [self showFeedbackComposeViewWithPreparedItems:@[latestPhoto]]; - } - }]; - } failureBlock: nil]; -} - -- (void)screenshotTripleTap:(UITapGestureRecognizer *)tapRecognizer { - if (tapRecognizer.state == UIGestureRecognizerStateRecognized){ - [self showFeedbackComposeViewWithGeneratedScreenshot]; - } -} - -- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { - return YES; -} - -@end - - - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h b/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h deleted file mode 100644 index 61b4c39..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import - -@class BITFeedbackManager; -@protocol BITFeedbackComposeViewControllerDelegate; - -/** - * Delegate protocol which is notified about changes in the feedbackManager - * @TODO - * * move shouldShowUpdateAlert from feedbackManager here - */ -@protocol BITFeedbackManagerDelegate - -@optional - -/** - * can be implemented to know when new feedback from the server arrived - * - * @param feedbackManager The feedbackManager which did detect the new messages - */ -- (void) feedbackManagerDidReceiveNewFeedback:(BITFeedbackManager*) feedbackManager; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h b/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h deleted file mode 100644 index 54c5ded..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde & Kent Sutherland. - * 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. - */ - -#if HOCKEYSDK_FEATURE_FEEDBACK - -extern NSString *const kBITFeedbackUpdateAttachmentThumbnail; - -#import "BITFeedbackMessage.h" - -@interface BITFeedbackManager () { -} - - -///----------------------------------------------------------------------------- -/// @name Delegate -///----------------------------------------------------------------------------- - -/** - Sets the `BITFeedbackManagerDelegate` delegate. - - Can be set to be notified when new feedback is received from the server. - - The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You - should not need to set this delegate individually. - - @see `[BITHockeyManager setDelegate:]` - */ -@property (nonatomic, weak) id delegate; - - -@property (nonatomic, strong) NSMutableArray *feedbackList; -@property (nonatomic, strong) NSString *token; - - -// used by BITHockeyManager if disable status is changed -@property (nonatomic, getter = isFeedbackManagerDisabled) BOOL disableFeedbackManager; - -@property (nonatomic, strong) BITFeedbackListViewController *currentFeedbackListViewController; -@property (nonatomic, strong) BITFeedbackComposeViewController *currentFeedbackComposeViewController; -@property (nonatomic) BOOL didAskUserData; - -@property (nonatomic, strong) NSDate *lastCheck; - -@property (nonatomic, strong) NSNumber *lastMessageID; - -@property (nonatomic, copy) NSString *userID; -@property (nonatomic, copy) NSString *userName; -@property (nonatomic, copy) NSString *userEmail; - - -// Fetch user meta data -- (BOOL)updateUserIDUsingKeychainAndDelegate; -- (BOOL)updateUserNameUsingKeychainAndDelegate; -- (BOOL)updateUserEmailUsingKeychainAndDelegate; - -// load new messages from the server -- (void)updateMessagesList; - -// load new messages from the server if the last request is too long ago -- (void)updateMessagesListIfRequired; - -- (NSUInteger)numberOfMessages; -- (BITFeedbackMessage *)messageAtIndex:(NSUInteger)index; - -- (void)submitMessageWithText:(NSString *)text andAttachments:(NSArray *)photos; -- (void)submitPendingMessages; - -// Returns YES if manual user data can be entered, required or optional -- (BOOL)askManualUserDataAvailable; - -// Returns YES if required user data is missing? -- (BOOL)requireManualUserDataMissing; - -// Returns YES if user data is available and can be edited -- (BOOL)isManualUserDataAvailable; - -// used in the user data screen -- (void)updateDidAskUserData; - - -- (BITFeedbackMessage *)messageWithID:(NSNumber *)messageID; - -- (NSArray *)messagesWithStatus:(BITFeedbackMessageStatus)status; - -- (void)saveMessages; - -- (void)fetchMessageUpdates; -- (void)updateMessageListFromResponse:(NSDictionary *)jsonDictionary; - -- (BOOL)deleteMessageAtIndex:(NSUInteger)index; -- (void)deleteAllMessages; - -@end - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessage.h b/Pods/HockeySDK/Classes/BITFeedbackMessage.h deleted file mode 100644 index c33caa9..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackMessage.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import - -@class BITFeedbackMessageAttachment; - -/** - * Status for each feedback message - */ -typedef NS_ENUM(NSInteger, BITFeedbackMessageStatus) { - /** - * default and new messages from SDK per default - */ - BITFeedbackMessageStatusSendPending = 0, - /** - * message is in conflict, happens if the message is already stored on the server and tried sending it again - */ - BITFeedbackMessageStatusInConflict = 1, - /** - * sending of message is in progress - */ - BITFeedbackMessageStatusSendInProgress = 2, - /** - * new messages from server - */ - BITFeedbackMessageStatusUnread = 3, - /** - * messages from server once read and new local messages once successful send from SDK - */ - BITFeedbackMessageStatusRead = 4, - /** - * message is archived, happens if the thread is deleted from the server - */ - BITFeedbackMessageStatusArchived = 5 -}; - -/** - * An individual feedback message - */ -@interface BITFeedbackMessage : NSObject { -} - -@property (nonatomic, copy) NSString *text; -@property (nonatomic, copy) NSString *userID; -@property (nonatomic, copy) NSString *name; -@property (nonatomic, copy) NSString *email; -@property (nonatomic, copy) NSDate *date; -@property (nonatomic, copy) NSNumber *identifier; -@property (nonatomic, copy) NSString *token; -@property (nonatomic, strong) NSArray *attachments; -@property (nonatomic) BITFeedbackMessageStatus status; -@property (nonatomic) BOOL userMessage; - -/** - Delete local cached attachment data - - @warning This method must be called before a feedback message is deleted. - */ -- (void)deleteContents; - -/** - Add an attachment to a message - - @param object BITFeedbackMessageAttachment instance representing the attachment that should be added - */ -- (void)addAttachmentsObject:(BITFeedbackMessageAttachment *)object; - -/** - Return the attachments that can be viewed - - @return NSArray containing the attachment objects that can be previewed - */ -- (NSArray *)previewableAttachments; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessage.m b/Pods/HockeySDK/Classes/BITFeedbackMessage.m deleted file mode 100644 index 820bc9c..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackMessage.m +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "BITFeedbackMessage.h" -#import "BITFeedbackMessageAttachment.h" - -@implementation BITFeedbackMessage - - -#pragma mark - NSObject - -- (instancetype) init { - if ((self = [super init])) { - _text = nil; - _userID = nil; - _name = nil; - _email = nil; - _date = [[NSDate alloc] init]; - _token = nil; - _attachments = nil; - _identifier = [[NSNumber alloc] initWithInteger:0]; - _status = BITFeedbackMessageStatusSendPending; - _userMessage = NO; - } - return self; -} - - -#pragma mark - NSCoder - -- (void)encodeWithCoder:(NSCoder *)encoder { - [encoder encodeObject:self.text forKey:@"text"]; - [encoder encodeObject:self.userID forKey:@"userID"]; - [encoder encodeObject:self.name forKey:@"name"]; - [encoder encodeObject:self.email forKey:@"email"]; - [encoder encodeObject:self.date forKey:@"date"]; - [encoder encodeObject:self.identifier forKey:@"id"]; - [encoder encodeObject:self.attachments forKey:@"attachments"]; - [encoder encodeInteger:self.status forKey:@"status"]; - [encoder encodeBool:self.userMessage forKey:@"userMessage"]; - [encoder encodeObject:self.token forKey:@"token"]; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder { - if ((self = [self init])) { - self.text = [decoder decodeObjectForKey:@"text"]; - self.userID = [decoder decodeObjectForKey:@"userID"]; - self.name = [decoder decodeObjectForKey:@"name"]; - self.email = [decoder decodeObjectForKey:@"email"]; - self.date = [decoder decodeObjectForKey:@"date"]; - self.identifier = [decoder decodeObjectForKey:@"id"]; - self.attachments = [decoder decodeObjectForKey:@"attachments"]; - self.status = (BITFeedbackMessageStatus)[decoder decodeIntegerForKey:@"status"]; - self.userMessage = [decoder decodeBoolForKey:@"userMessage"]; - self.token = [decoder decodeObjectForKey:@"token"]; - } - return self; -} - -#pragma mark - Deletion - -- (void)deleteContents { - for (BITFeedbackMessageAttachment *attachment in self.attachments){ - [attachment deleteContents]; - } -} - -- (NSArray *)previewableAttachments { - NSMutableArray *returnArray = [NSMutableArray new]; - - for (BITFeedbackMessageAttachment *attachment in self.attachments){ - if ([QLPreviewController canPreviewItem:attachment ]){ - [returnArray addObject:attachment]; - } - } - - return returnArray; -} - -- (void)addAttachmentsObject:(BITFeedbackMessageAttachment *)object{ - if (!self.attachments){ - self.attachments = [NSArray array]; - } - self.attachments = [self.attachments arrayByAddingObject:object]; -} - - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h deleted file mode 100644 index 6654c79..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import -#import - -/** - * An individual feedback message attachment - */ -@interface BITFeedbackMessageAttachment : NSObject - -@property (nonatomic, copy) NSNumber *identifier; -@property (nonatomic, copy) NSString *originalFilename; -@property (nonatomic, copy) NSString *contentType; -@property (nonatomic, copy) NSString *sourceURL; -@property (nonatomic) BOOL isLoading; -@property (nonatomic, readonly) NSData *data; - - -@property (readonly) UIImage *imageRepresentation; - - -+ (BITFeedbackMessageAttachment *)attachmentWithData:(NSData *)data contentType:(NSString *)contentType; - -- (UIImage *)thumbnailWithSize:(CGSize)size; - -- (void)replaceData:(NSData *)data; - -- (void)deleteContents; - -- (BOOL)needsLoadingFromURL; - -- (BOOL)isImage; - -- (NSURL *)localURL; - -/** - Used to determine whether QuickLook can preview this file or not. If not, we don't download it. - */ -- (NSString*)possibleFilename; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m deleted file mode 100644 index 51b41ae..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - - -#import "BITFeedbackMessageAttachment.h" -#import "BITHockeyHelper.h" -#import "HockeySDKPrivate.h" -#import - -#define kCacheFolderName @"attachments" - -@interface BITFeedbackMessageAttachment() - -@property (nonatomic, strong) NSMutableDictionary *thumbnailRepresentations; -@property (nonatomic, strong) NSData *internalData; -@property (nonatomic, copy) NSString *filename; - - -@end - -@implementation BITFeedbackMessageAttachment { - NSString *_tempFilename; - - NSString *_cachePath; - - NSFileManager *_fm; -} - - -+ (BITFeedbackMessageAttachment *)attachmentWithData:(NSData *)data contentType:(NSString *)contentType { - - static NSDateFormatter *formatter; - - if(!formatter) { - formatter = [NSDateFormatter new]; - formatter.dateStyle = NSDateFormatterShortStyle; - formatter.timeStyle = NSDateFormatterShortStyle; - } - - BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment new]; - newAttachment.contentType = contentType; - newAttachment.data = data; - newAttachment.originalFilename = [NSString stringWithFormat:@"Attachment: %@", [formatter stringFromDate:[NSDate date]]]; - - return newAttachment; -} - -- (instancetype)init { - if ((self = [super init])) { - _isLoading = NO; - _thumbnailRepresentations = [NSMutableDictionary new]; - - _fm = [[NSFileManager alloc] init]; - _cachePath = [bit_settingsDir() stringByAppendingPathComponent:kCacheFolderName]; - - BOOL isDirectory; - - if (![_fm fileExistsAtPath:_cachePath isDirectory:&isDirectory]){ - [_fm createDirectoryAtPath:_cachePath withIntermediateDirectories:YES attributes:nil error:nil]; - } - - } - return self; -} - -- (void)setData:(NSData *)data { - self->_internalData = data; - self.filename = [self possibleFilename]; - [self->_internalData writeToFile:self.filename atomically:NO]; -} - -- (NSData *)data { - if (!self->_internalData && self.filename) { - self.internalData = [NSData dataWithContentsOfFile:self.filename]; - } - - if (self.internalData) { - return self.internalData; - } - - return nil; -} - -- (void)replaceData:(NSData *)data { - self.data = data; - self.thumbnailRepresentations = [NSMutableDictionary new]; -} - -- (BOOL)needsLoadingFromURL { - return (self.sourceURL && ![_fm fileExistsAtPath:[self.localURL path]]); -} - -- (BOOL)isImage { - return ([self.contentType rangeOfString:@"image"].location != NSNotFound); -} - -- (NSURL *)localURL { - if (self.filename && [_fm fileExistsAtPath:self.filename]) { - return [NSURL fileURLWithPath:self.filename]; - } - - return nil; -} - - -#pragma mark NSCoding - -- (void)encodeWithCoder:(NSCoder *)aCoder { - [aCoder encodeObject:self.contentType forKey:@"contentType"]; - [aCoder encodeObject:self.filename forKey:@"filename"]; - [aCoder encodeObject:self.originalFilename forKey:@"originalFilename"]; - [aCoder encodeObject:self.sourceURL forKey:@"url"]; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - if ((self = [self init])) { - self.contentType = [aDecoder decodeObjectForKey:@"contentType"]; - self.filename = [aDecoder decodeObjectForKey:@"filename"]; - self.thumbnailRepresentations = [NSMutableDictionary new]; - self.originalFilename = [aDecoder decodeObjectForKey:@"originalFilename"]; - self.sourceURL = [aDecoder decodeObjectForKey:@"url"]; - } - - return self; -} - - -#pragma mark - Thumbnails / Image Representation - -- (UIImage *)imageRepresentation { - if ([self.contentType rangeOfString:@"image"].location != NSNotFound && self.filename ) { - return [UIImage imageWithData:self.data]; - } else { - // Create a Icon .. - UIDocumentInteractionController* docController = [[UIDocumentInteractionController alloc] init]; - docController.name = self.originalFilename; - NSArray* icons = docController.icons; - if (icons.count){ - return icons[0]; - } else { - return nil; - } - } -} - -- (UIImage *)thumbnailWithSize:(CGSize)size { - id cacheKey = [NSValue valueWithCGSize:size]; - - if (!self.thumbnailRepresentations[cacheKey]) { - UIImage *image = self.imageRepresentation; - // consider the scale. - if (!image) { - return nil; - } - - CGFloat scale = [UIScreen mainScreen].scale; - - if (scale != image.scale) { - - CGSize scaledSize = CGSizeApplyAffineTransform(size, CGAffineTransformMakeScale(scale, scale)); - UIImage *thumbnail = bit_imageToFitSize(image, scaledSize, YES) ; - - UIImage *scaledThumbnail = [UIImage imageWithCGImage:thumbnail.CGImage scale:scale orientation:thumbnail.imageOrientation]; - if (thumbnail) { - [self.thumbnailRepresentations setObject:scaledThumbnail forKey:cacheKey]; - } - - } else { - UIImage *thumbnail = bit_imageToFitSize(image, size, YES) ; - - [self.thumbnailRepresentations setObject:thumbnail forKey:cacheKey]; - - } - - } - - return self.thumbnailRepresentations[cacheKey]; -} - - -#pragma mark - Persistence Helpers - -- (NSString *)possibleFilename { - if (_tempFilename) { - return _tempFilename; - } - - NSString *uniqueString = bit_UUID(); - _tempFilename = [_cachePath stringByAppendingPathComponent:uniqueString]; - - // File extension that suits the Content type. - - CFStringRef mimeType = (__bridge CFStringRef)self.contentType; - CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL); - CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension); - if (extension) { - _tempFilename = [_tempFilename stringByAppendingPathExtension:(__bridge NSString *)(extension)]; - CFRelease(extension); - } - - CFRelease(uti); - - return _tempFilename; -} - -- (void)deleteContents { - if (self.filename) { - [_fm removeItemAtPath:self.filename error:nil]; - self.filename = nil; - } -} - - -#pragma mark - QLPreviewItem - -- (NSString *)previewItemTitle { - return self.originalFilename; -} - -- (NSURL *)previewItemURL { - if (self.localURL){ - return self.localURL; - } else if (self.sourceURL) { - NSString *filename = self.possibleFilename; - if (filename) { - return [NSURL fileURLWithPath:filename]; - } - } - - return nil; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h deleted file mode 100644 index 84128d0..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import - -@protocol BITFeedbackUserDataDelegate; - -@interface BITFeedbackUserDataViewController : UITableViewController - -@property (nonatomic, weak) id delegate; - -@end - -/////////////////////////////////////////////////////////////////////////////////////////////////// -@protocol BITFeedbackUserDataDelegate - -@required - -// cancel action is invoked -- (void)userDataUpdateCancelled; - -// save action is invoked and all required data available -- (void)userDataUpdateFinished; - -@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m deleted file mode 100644 index cc80d83..0000000 --- a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_FEEDBACK - -#import "HockeySDKPrivate.h" -#import "BITHockeyHelper.h" - -#import "BITFeedbackUserDataViewController.h" -#import "BITFeedbackManagerPrivate.h" - -@interface BITFeedbackUserDataViewController () { - UIStatusBarStyle _statusBarStyle; -} - -@property (nonatomic, weak) BITFeedbackManager *manager; - -@property (nonatomic, copy) NSString *name; -@property (nonatomic, copy) NSString *email; -@end - - -@implementation BITFeedbackUserDataViewController - - -- (instancetype)initWithStyle:(UITableViewStyle)style { - self = [super initWithStyle:style]; - if (self) { - _delegate = nil; - - _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; - _name = @""; - _email = @""; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.title = BITHockeyLocalizedString(@"HockeyFeedbackUserDataTitle"); - - [self.tableView setScrollEnabled:NO]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; -#else - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; -#endif - - // Do any additional setup after loading the view. - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(dismissAction:)]; - - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave - target:self - action:@selector(saveAction:)]; - - if ([self.manager userName]) - self.name = [self.manager userName]; - - if ([self.manager userEmail]) - self.email = [self.manager userEmail]; - - [self.manager updateDidAskUserData]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; -} - -#pragma mark - UIViewController Rotation - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { - return YES; -} - -#pragma mark - Private methods -- (BOOL)allRequiredFieldsEntered { - if ([self.manager requireUserName] == BITFeedbackUserDataElementRequired && [self.name length] == 0) - return NO; - - if ([self.manager requireUserEmail] == BITFeedbackUserDataElementRequired && [self.email length] == 0) - return NO; - - if ([self.email length] > 0 && !bit_validateEmail(self.email)) - return NO; - - return YES; -} - -- (void)userNameEntered:(id)sender { - self.name = [(UITextField *)sender text]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -- (void)userEmailEntered:(id)sender { - self.email = [(UITextField *)sender text]; - - self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; -} - -- (void)dismissAction:(id)sender { - [self.delegate userDataUpdateCancelled]; -} - -- (void)saveAction:(id)sender { - - if ([self.manager requireUserName]) { - [self.manager setUserName:self.name]; - } - - if ([self.manager requireUserEmail]) { - [self.manager setUserEmail:self.email]; - } - - [self.delegate userDataUpdateFinished]; -} - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - NSInteger rows = 0; - - if ([self.manager requireUserName] != BITFeedbackUserDataElementDontShow) - rows ++; - - if ([self.manager requireUserEmail] != BITFeedbackUserDataElementDontShow) - rows ++; - - return rows; -} - -- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { - if (section == 0) { - return BITHockeyLocalizedString(@"HockeyFeedbackUserDataDescription"); - } - - return nil; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *CellIdentifier = @"InputCell"; - - UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; - - cell.accessoryType = UITableViewCellAccessoryNone; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - cell.backgroundColor = [UIColor whiteColor]; - - UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(110, 11, self.view.frame.size.width - 110 - 35, 24)]; - if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { - textField.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; - } - textField.adjustsFontSizeToFitWidth = YES; - textField.textColor = [UIColor blackColor]; - textField.backgroundColor = [UIColor lightGrayColor]; - - if ([indexPath row] == 0 && [self.manager requireUserName] != BITFeedbackUserDataElementDontShow) { - textField.placeholder = BITHockeyLocalizedString(@"HockeyFeedbackUserDataNamePlaceHolder"); - textField.text = self.name; - - textField.keyboardType = UIKeyboardTypeDefault; - if ([self.manager requireUserEmail]) - textField.returnKeyType = UIReturnKeyNext; - else - textField.returnKeyType = UIReturnKeyDone; - textField.autocapitalizationType = UITextAutocapitalizationTypeWords; - [textField addTarget:self action:@selector(userNameEntered:) forControlEvents:UIControlEventEditingChanged]; - [textField becomeFirstResponder]; - } else { - textField.placeholder = BITHockeyLocalizedString(@"HockeyFeedbackUserDataEmailPlaceholder"); - textField.text = self.email; - - textField.keyboardType = UIKeyboardTypeEmailAddress; - textField.returnKeyType = UIReturnKeyDone; - textField.autocapitalizationType = UITextAutocapitalizationTypeNone; - [textField addTarget:self action:@selector(userEmailEntered:) forControlEvents:UIControlEventEditingChanged]; - if (![self.manager requireUserName]) - [textField becomeFirstResponder]; - } - - textField.backgroundColor = [UIColor whiteColor]; - textField.autocorrectionType = UITextAutocorrectionTypeNo; - textField.textAlignment = kBITTextLabelAlignmentLeft; - textField.delegate = self; - textField.tag = indexPath.row; - - textField.clearButtonMode = UITextFieldViewModeWhileEditing; - [textField setEnabled: YES]; - - [cell addSubview:textField]; - } - - if ([indexPath row] == 0 && [self.manager requireUserName] != BITFeedbackUserDataElementDontShow) { - cell.textLabel.text = BITHockeyLocalizedString(@"HockeyFeedbackUserDataName"); - } else { - cell.textLabel.text = BITHockeyLocalizedString(@"HockeyFeedbackUserDataEmail"); - } - - return cell; -} - - -#pragma mark - UITextFieldDelegate - -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - NSInteger nextTag = textField.tag + 1; - - UIResponder* nextResponder = [self.view viewWithTag:nextTag]; - if (nextResponder) { - [nextResponder becomeFirstResponder]; - } else { - if ([self allRequiredFieldsEntered]) { - if ([textField isFirstResponder]) - [textField resignFirstResponder]; - - [self saveAction:nil]; - } - } - return NO; -} - - -@end - -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITHTTPOperation.h b/Pods/HockeySDK/Classes/BITHTTPOperation.h deleted file mode 100644 index e1b3f95..0000000 --- a/Pods/HockeySDK/Classes/BITHTTPOperation.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import - -@class BITHTTPOperation; -typedef void (^BITNetworkCompletionBlock)(BITHTTPOperation* operation, NSData* data, NSError* error); - -@interface BITHTTPOperation : NSOperation - -+ (instancetype) operationWithRequest:(NSURLRequest *) urlRequest; - -@property (nonatomic, readonly) NSURLRequest *URLRequest; - -//the completion is only called if the operation wasn't cancelled -- (void) setCompletion:(BITNetworkCompletionBlock) completionBlock; - -@property (nonatomic, readonly) NSHTTPURLResponse *response; -@property (nonatomic, readonly) NSData *data; -@property (nonatomic, readonly) NSError *error; - -@end diff --git a/Pods/HockeySDK/Classes/BITHTTPOperation.m b/Pods/HockeySDK/Classes/BITHTTPOperation.m deleted file mode 100644 index a9a95ff..0000000 --- a/Pods/HockeySDK/Classes/BITHTTPOperation.m +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import "BITHTTPOperation.h" - -@interface BITHTTPOperation() -@end - -@implementation BITHTTPOperation { - NSURLRequest *_URLRequest; - NSURLConnection *_connection; - NSMutableData *_data; - - BOOL _isExecuting; - BOOL _isFinished; -} - - -+ (instancetype)operationWithRequest:(NSURLRequest *)urlRequest { - BITHTTPOperation *op = [[self class] new]; - op->_URLRequest = urlRequest; - return op; -} - -#pragma mark - NSOperation overrides -- (BOOL)isConcurrent { - return YES; -} - -- (void)cancel { - [_connection cancel]; - [super cancel]; -} - -- (void) start { - if(self.isCancelled) { - [self finish]; - return; - } - - if (![[NSThread currentThread] isMainThread]) { - [self performSelector:@selector(start) onThread:NSThread.mainThread withObject:nil waitUntilDone:NO]; - return; - } - - if(self.isCancelled) { - [self finish]; - return; - } - - [self willChangeValueForKey:@"isExecuting"]; - _isExecuting = YES; - [self didChangeValueForKey:@"isExecuting"]; - - _connection = [[NSURLConnection alloc] initWithRequest:_URLRequest - delegate:self - startImmediately:YES]; -} - -- (void) finish { - [self willChangeValueForKey:@"isExecuting"]; - [self willChangeValueForKey:@"isFinished"]; - _isExecuting = NO; - _isFinished = YES; - [self didChangeValueForKey:@"isExecuting"]; - [self didChangeValueForKey:@"isFinished"]; -} - -#pragma mark - NSURLConnectionDelegate --(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { - _data = [[NSMutableData alloc] init]; - _response = (id)response; -} - --(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { - [_data appendData:data]; -} - --(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { - //FINISHED and failed - _error = error; - _data = nil; - - [self finish]; -} - --(void)connectionDidFinishLoading:(NSURLConnection*)connection { - [self finish]; -} - -#pragma mark - Public interface -- (NSData *)data { - return _data; -} - -- (void)setCompletion:(BITNetworkCompletionBlock)completion { - if(!completion) { - [super setCompletionBlock:nil]; - } else { - __weak typeof(self) weakSelf = self; - [super setCompletionBlock:^{ - typeof(self) strongSelf = weakSelf; - if(strongSelf) { - dispatch_async(dispatch_get_main_queue(), ^{ - if(!strongSelf.isCancelled) { - completion(strongSelf, strongSelf->_data, strongSelf->_error); - } - [strongSelf setCompletionBlock:nil]; - }); - } - }]; - } -} - -- (BOOL)isFinished { - return _isFinished; -} - -- (BOOL)isExecuting { - return _isExecuting; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAppClient.h b/Pods/HockeySDK/Classes/BITHockeyAppClient.h deleted file mode 100644 index b4abe93..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyAppClient.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ - -#import - -#import "BITHTTPOperation.h" //needed for typedef - -/** - * Generic Hockey API client - */ -@interface BITHockeyAppClient : NSObject - -/** - * designated initializer - * - * @param baseURL the baseURL of the HockeyApp instance - */ -- (instancetype) initWithBaseURL:(NSURL*) baseURL; - -/** - * baseURL to which relative paths are appended - */ -@property (nonatomic, strong) NSURL *baseURL; - -/** - * creates an NRURLRequest for the given method and path by using - * the internally stored baseURL. - * - * @param method the HTTPMethod to check, must not be nil - * @param params parameters for the request (only supported for GET and POST for now) - * @param path path to append to baseURL. can be nil in which case "/" is appended - * - * @return an NSMutableURLRequest for further configuration - */ -- (NSMutableURLRequest *) requestWithMethod:(NSString*) method - path:(NSString *) path - parameters:(NSDictionary *) params; -/** - * Creates an operation for the given NSURLRequest - * - * @param request the request that should be handled - * @param completion completionBlock that is called once the operation finished - * - * @return operation, which can be queued via enqueueHTTPOperation: - */ -- (BITHTTPOperation*) operationWithURLRequest:(NSURLRequest*) request - completion:(BITNetworkCompletionBlock) completion; - -/** - * Creates an operation for the given path, and enqueues it - * - * @param path the request path to check - * @param params parameters for the request - * @param completion completionBlock that is called once the operation finished - * - */ -- (void) getPath:(NSString*) path - parameters:(NSDictionary *) params - completion:(BITNetworkCompletionBlock) completion; - -/** - * Creates an operation for the given path, and enqueues it - * - * @param path the request path to check - * @param params parameters for the request - * @param completion completionBlock that is called once the operation finished - * - */ -- (void) postPath:(NSString*) path - parameters:(NSDictionary *) params - completion:(BITNetworkCompletionBlock) completion; -/** - * adds the given operation to the internal queue - * - * @param operation operation to add - */ -- (void) enqeueHTTPOperation:(BITHTTPOperation *) operation; - -/** - * cancels the specified operations - * - * @param path the path which operation should be cancelled. Can be nil to match all - * @param method the method which operations to cancel. Can be nil to match all - * @return number of operations cancelled - */ -- (NSUInteger) cancelOperationsWithPath:(NSString*) path - method:(NSString*) method; - -/** - * Access to the internal operation queue - */ -@property (nonatomic, strong) NSOperationQueue *operationQueue; - -#pragma mark - Helpers -/** - * create a post body from the given value, key and boundary. This is a convenience call to - * dataWithPostValue:forKey:contentType:boundary and aimed at NSString-content. - * - * @param value - - * @param key - - * @param boundary - - * - * @return NSData instance configured to be attached on a (post) URLRequest - */ -+ (NSData *)dataWithPostValue:(NSString *)value forKey:(NSString *)key boundary:(NSString *) boundary; - -/** - * create a post body from the given value, key and boundary and content type. - * - * @param value - - * @param key - - *@param contentType - - * @param boundary - - * @param filename - - * - * @return NSData instance configured to be attached on a (post) URLRequest - */ -+ (NSData *)dataWithPostValue:(NSData *)value forKey:(NSString *)key contentType:(NSString *)contentType boundary:(NSString *) boundary filename:(NSString *)filename; - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAppClient.m b/Pods/HockeySDK/Classes/BITHockeyAppClient.m deleted file mode 100644 index 3994428..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyAppClient.m +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Author: Stephan Diederich - * - * Copyright (c) 2013-2014 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. - */ -#import "BITHockeyAppClient.h" - -@implementation BITHockeyAppClient -- (void)dealloc { - [self cancelOperationsWithPath:nil method:nil]; -} - -- (instancetype)initWithBaseURL:(NSURL *)baseURL { - self = [super init]; - if ( self ) { - NSParameterAssert(baseURL); - _baseURL = baseURL; - } - return self; -} - -#pragma mark - Networking -- (NSMutableURLRequest *) requestWithMethod:(NSString*) method - path:(NSString *) path - parameters:(NSDictionary *)params { - NSParameterAssert(self.baseURL); - NSParameterAssert(method); - NSParameterAssert(params == nil || [method isEqualToString:@"POST"] || [method isEqualToString:@"GET"]); - path = path ? : @""; - - NSURL *endpoint = [self.baseURL URLByAppendingPathComponent:path]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:endpoint]; - request.HTTPMethod = method; - - if (params) { - if ([method isEqualToString:@"GET"]) { - NSString *absoluteURLString = [endpoint absoluteString]; - //either path already has parameters, or not - NSString *appenderFormat = [path rangeOfString:@"?"].location == NSNotFound ? @"?%@" : @"&%@"; - - endpoint = [NSURL URLWithString:[absoluteURLString stringByAppendingFormat:appenderFormat, - [self.class queryStringFromParameters:params withEncoding:NSUTF8StringEncoding]]]; - [request setURL:endpoint]; - } else { - //TODO: this is crap. Boundary must be the same as the one in appendData - //unify this! - NSString *boundary = @"----FOO"; - NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; - [request setValue:contentType forHTTPHeaderField:@"Content-type"]; - - NSMutableData *postBody = [NSMutableData data]; - [params enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) { - [postBody appendData:[[self class] dataWithPostValue:value forKey:key boundary:boundary]]; - }]; - - [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; - - [request setHTTPBody:postBody]; - } - } - - return request; -} - -+ (NSData *)dataWithPostValue:(NSString *)value forKey:(NSString *)key boundary:(NSString *) boundary { - return [self dataWithPostValue:[value dataUsingEncoding:NSUTF8StringEncoding] forKey:key contentType:@"text" boundary:boundary filename:nil]; -} - -+ (NSData *)dataWithPostValue:(NSData *)value forKey:(NSString *)key contentType:(NSString *)contentType boundary:(NSString *) boundary filename:(NSString *)filename { - NSMutableData *postBody = [NSMutableData data]; - - [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; - - // There's certainly a better way to check if we are supposed to send binary data here. - if (filename){ - [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", key, filename] dataUsingEncoding:NSUTF8StringEncoding]]; - [postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n", contentType] dataUsingEncoding:NSUTF8StringEncoding]]; - [postBody appendData:[[NSString stringWithFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; - } else { - [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]]; - [postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", contentType] dataUsingEncoding:NSUTF8StringEncoding]]; - } - - [postBody appendData:value]; - [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; - - return postBody; -} - - -+ (NSString *) queryStringFromParameters:(NSDictionary *) params withEncoding:(NSStringEncoding) encoding { - NSMutableString *queryString = [NSMutableString new]; - [params enumerateKeysAndObjectsUsingBlock:^(NSString* key, NSString* value, BOOL *stop) { - NSAssert([key isKindOfClass:[NSString class]], @"Query parameters can only be string-string pairs"); - NSAssert([value isKindOfClass:[NSString class]], @"Query parameters can only be string-string pairs"); - - [queryString appendFormat:queryString.length ? @"&%@=%@" : @"%@=%@", key, value]; - }]; - return queryString; -} - -- (BITHTTPOperation*) operationWithURLRequest:(NSURLRequest*) request - completion:(BITNetworkCompletionBlock) completion { - BITHTTPOperation *operation = [BITHTTPOperation operationWithRequest:request - ]; - [operation setCompletion:completion]; - - return operation; -} - -- (void)getPath:(NSString *)path parameters:(NSDictionary *)params completion:(BITNetworkCompletionBlock)completion { - NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:params]; - BITHTTPOperation *op = [self operationWithURLRequest:request - completion:completion]; - [self enqeueHTTPOperation:op]; -} - -- (void)postPath:(NSString *)path parameters:(NSDictionary *)params completion:(BITNetworkCompletionBlock)completion { - NSURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:params]; - BITHTTPOperation *op = [self operationWithURLRequest:request - completion:completion]; - [self enqeueHTTPOperation:op]; -} - -- (void) enqeueHTTPOperation:(BITHTTPOperation *) operation { - [self.operationQueue addOperation:operation]; -} - -- (NSUInteger) cancelOperationsWithPath:(NSString*) path - method:(NSString*) method { - NSUInteger cancelledOperations = 0; - for(BITHTTPOperation *operation in self.operationQueue.operations) { - NSURLRequest *request = operation.URLRequest; - - BOOL matchedMethod = YES; - if(method && ![request.HTTPMethod isEqualToString:method]) { - matchedMethod = NO; - } - - BOOL matchedPath = YES; - if(path) { - //method is not interesting here, we' just creating it to get the URL - NSURL *url = [self requestWithMethod:@"GET" path:path parameters:nil].URL; - matchedPath = [request.URL isEqual:url]; - } - - if(matchedPath && matchedMethod) { - ++cancelledOperations; - [operation cancel]; - } - } - return cancelledOperations; -} - -- (NSOperationQueue *)operationQueue { - if(nil == _operationQueue) { - _operationQueue = [[NSOperationQueue alloc] init]; - _operationQueue.maxConcurrentOperationCount = 1; - } - return _operationQueue; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAttachment.h b/Pods/HockeySDK/Classes/BITHockeyAttachment.h deleted file mode 100644 index b788ed9..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyAttachment.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2014 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. - */ - -#import - -/** - Provides support to add binary attachments to crash reports and feedback messages - - This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]`, - `[BITFeedbackComposeViewController prepareWithItems:]` and - `[BITFeedbackManager showFeedbackComposeViewWithPreparedItems:]` - */ -@interface BITHockeyAttachment : NSObject - -/** - The filename the attachment should get - */ -@property (nonatomic, readonly, strong) NSString *filename; - -/** - The attachment data as NSData object - */ -@property (nonatomic, readonly, strong) NSData *hockeyAttachmentData; - -/** - The content type of your data as MIME type - */ -@property (nonatomic, readonly, strong) NSString *contentType; - -/** - Create an BITHockeyAttachment instance with a given filename and NSData object - - @param filename The filename the attachment should get. If nil will get a automatically generated filename - @param hockeyAttachmentData The attachment data as NSData. The instance will be ignore if this is set to nil! - @param contentType The content type of your data as MIME type. If nil will be set to "application/octet-stream" - - @return An instance of BITHockeyAttachment. - */ -- (instancetype)initWithFilename:(NSString *)filename - hockeyAttachmentData:(NSData *)hockeyAttachmentData - contentType:(NSString *)contentType; - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAttachment.m b/Pods/HockeySDK/Classes/BITHockeyAttachment.m deleted file mode 100644 index 4dc6424..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyAttachment.m +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2014 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. - */ - -#import "BITHockeyAttachment.h" - -@implementation BITHockeyAttachment - -- (instancetype)initWithFilename:(NSString *)filename - hockeyAttachmentData:(NSData *)hockeyAttachmentData - contentType:(NSString *)contentType -{ - if (self = [super init]) { - _filename = filename; - - _hockeyAttachmentData = hockeyAttachmentData; - - if (contentType) { - _contentType = contentType; - } else { - _contentType = @"application/octet-stream"; - } - - } - - return self; -} - - -#pragma mark - NSCoder - -- (void)encodeWithCoder:(NSCoder *)encoder { - if (self.filename) { - [encoder encodeObject:self.filename forKey:@"filename"]; - } - if (self.hockeyAttachmentData) { - [encoder encodeObject:self.hockeyAttachmentData forKey:@"data"]; - } - [encoder encodeObject:self.contentType forKey:@"contentType"]; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder { - if ((self = [super init])) { - _filename = [decoder decodeObjectForKey:@"filename"]; - _hockeyAttachmentData = [decoder decodeObjectForKey:@"data"]; - _contentType = [decoder decodeObjectForKey:@"contentType"]; - } - return self; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManager.h b/Pods/HockeySDK/Classes/BITHockeyBaseManager.h deleted file mode 100644 index ed5284d..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyBaseManager.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import - - -/** - The internal superclass for all component managers - - */ - -@interface BITHockeyBaseManager : NSObject - -///----------------------------------------------------------------------------- -/// @name Modules -///----------------------------------------------------------------------------- - - -/** - Defines the server URL to send data to or request data from - - By default this is set to the HockeyApp servers and there rarely should be a - need to modify that. - */ -@property (nonatomic, copy) NSString *serverURL; - - -///----------------------------------------------------------------------------- -/// @name User Interface -///----------------------------------------------------------------------------- - -/** - The UIBarStyle of the update user interface navigation bar. - - Default is UIBarStyleBlackOpaque - @see navigationBarTintColor - */ -@property (nonatomic, assign) UIBarStyle barStyle; - -/** - The navigationbar tint color of the update user interface navigation bar. - - The navigationBarTintColor is used by default, you can either overwrite it `navigationBarTintColor` - or define another `barStyle` instead. - - Default is RGB(25, 25, 25) - @see barStyle - */ -@property (nonatomic, strong) UIColor *navigationBarTintColor; - -/** - The UIModalPresentationStyle for showing the update user interface when invoked - with the update alert. - */ -@property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle; - - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManager.m b/Pods/HockeySDK/Classes/BITHockeyBaseManager.m deleted file mode 100644 index 96b3463..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyBaseManager.m +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" - -#import "BITHockeyHelper.h" - -#import "BITHockeyBaseManager.h" -#import "BITHockeyBaseManagerPrivate.h" -#if HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_FEEDBACK -#import "BITHockeyBaseViewController.h" -#endif - -#import "BITKeychainUtils.h" - -#import -#import -#import - -#ifndef __IPHONE_6_1 -#define __IPHONE_6_1 60100 -#endif - -@implementation BITHockeyBaseManager { - UINavigationController *_navController; - - NSDateFormatter *_rfc3339Formatter; - - BOOL _isAppStoreEnvironment; -} - - -- (instancetype)init { - if ((self = [super init])) { - _serverURL = BITHOCKEYSDK_URL; - - if ([self isPreiOS7Environment]) { - _barStyle = UIBarStyleBlackOpaque; - self.navigationBarTintColor = BIT_RGBCOLOR(25, 25, 25); - } else { - _barStyle = UIBarStyleDefault; - } - _modalPresentationStyle = UIModalPresentationFormSheet; - - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - _rfc3339Formatter = [[NSDateFormatter alloc] init]; - [_rfc3339Formatter setLocale:enUSPOSIXLocale]; - [_rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; - [_rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; - } - return self; -} - -- (instancetype)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment { - if ((self = [self init])) { - _appIdentifier = appIdentifier; - _isAppStoreEnvironment = isAppStoreEnvironment; - } - return self; -} - - -#pragma mark - Private - -- (void)reportError:(NSError *)error { - BITHockeyLog(@"ERROR: %@", [error localizedDescription]); -} - -- (BOOL)isAppStoreEnvironment { - return _isAppStoreEnvironment; -} - -- (NSString *)encodedAppIdentifier { - return bit_encodeAppIdentifier(_appIdentifier); -} - -- (BOOL)isPreiOS7Environment { - return bit_isPreiOS7Environment(); -} - -- (NSString *)getDevicePlatform { - size_t size; - sysctlbyname("hw.machine", NULL, &size, NULL, 0); - char *answer = (char*)malloc(size); - if (answer == NULL) - return @""; - sysctlbyname("hw.machine", answer, &size, NULL, 0); - NSString *platform = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding]; - free(answer); - return platform; -} - -- (NSString *)executableUUID { - const struct mach_header *executableHeader = NULL; - for (uint32_t i = 0; i < _dyld_image_count(); i++) { - const struct mach_header *header = _dyld_get_image_header(i); - if (header->filetype == MH_EXECUTE) { - executableHeader = header; - break; - } - } - - if (!executableHeader) - return @""; - - BOOL is64bit = executableHeader->magic == MH_MAGIC_64 || executableHeader->magic == MH_CIGAM_64; - uintptr_t cursor = (uintptr_t)executableHeader + (is64bit ? sizeof(struct mach_header_64) : sizeof(struct mach_header)); - const struct segment_command *segmentCommand = NULL; - for (uint32_t i = 0; i < executableHeader->ncmds; i++, cursor += segmentCommand->cmdsize) { - segmentCommand = (struct segment_command *)cursor; - if (segmentCommand->cmd == LC_UUID) { - const struct uuid_command *uuidCommand = (const struct uuid_command *)segmentCommand; - const uint8_t *uuid = uuidCommand->uuid; - return [[NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", - uuid[0], uuid[1], uuid[2], uuid[3], - uuid[4], uuid[5], uuid[6], uuid[7], - uuid[8], uuid[9], uuid[10], uuid[11], - uuid[12], uuid[13], uuid[14], uuid[15]] - lowercaseString]; - } - } - - return @""; -} - -- (UIWindow *)findVisibleWindow { - UIWindow *visibleWindow = [UIApplication sharedApplication].keyWindow; - - if (!(visibleWindow.hidden)) { - return visibleWindow; - } - - // if the rootViewController property (available >= iOS 4.0) of the main window is set, we present the modal view controller on top of the rootViewController - NSArray *windows = [[UIApplication sharedApplication] windows]; - for (UIWindow *window in windows) { - if (!window.hidden && !visibleWindow) { - visibleWindow = window; - } - if ([UIWindow instancesRespondToSelector:@selector(rootViewController)]) { - if (!(window.hidden) && ([window rootViewController])) { - visibleWindow = window; - BITHockeyLog(@"INFO: UIWindow with rootViewController found: %@", visibleWindow); - break; - } - } - } - - return visibleWindow; -} - -/** - * Provide a custom UINavigationController with customized appearance settings - * - * @param viewController The root viewController - * @param modalPresentationStyle The modal presentation style - * - * @return A UINavigationController - */ -- (UINavigationController *)customNavigationControllerWithRootViewController:(UIViewController *)viewController presentationStyle:(UIModalPresentationStyle)modalPresentationStyle { - UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; - navController.navigationBar.barStyle = self.barStyle; - if (self.navigationBarTintColor) { - navController.navigationBar.tintColor = self.navigationBarTintColor; - } else { - // in case of iOS 7 we overwrite the tint color on the navigation bar - if (![self isPreiOS7Environment]) { - if ([UIWindow instancesRespondToSelector:NSSelectorFromString(@"tintColor")]) { - [navController.navigationBar setTintColor:BIT_RGBCOLOR(0, 122, 255)]; - } - } - } - navController.modalPresentationStyle = self.modalPresentationStyle; - - return navController; -} - -- (void)showView:(UIViewController *)viewController { - // if we compile Crash only, then BITHockeyBaseViewController is not included - // in the headers and will cause a warning with the modulemap file -#if HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_FEEDBACK - UIViewController *parentViewController = nil; - - if ([[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(viewControllerForHockeyManager:componentManager:)]) { - parentViewController = [[BITHockeyManager sharedHockeyManager].delegate viewControllerForHockeyManager:[BITHockeyManager sharedHockeyManager] componentManager:self]; - } - - UIWindow *visibleWindow = [self findVisibleWindow]; - - if (parentViewController == nil) { - parentViewController = [visibleWindow rootViewController]; - } - - // use topmost modal view - while (parentViewController.presentedViewController) { - parentViewController = parentViewController.presentedViewController; - } - - // as per documentation this only works if called from within viewWillAppear: or viewDidAppear: - // in tests this also worked fine on iOS 6 and 7 but not on iOS 5 so we are still trying this - if ([parentViewController isBeingPresented]) { - BITHockeyLog(@"WARNING: There is already a view controller being presented onto the parentViewController. Delaying presenting the new view controller by 0.5s."); - [self performSelector:@selector(showView:) withObject:viewController afterDelay:0.5]; - return; - } - - // special addition to get rootViewController from three20 which has it's own controller handling - if (NSClassFromString(@"TTNavigator")) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - UIViewController *ttParentViewController = nil; - ttParentViewController = [[NSClassFromString(@"TTNavigator") performSelector:(NSSelectorFromString(@"navigator"))] visibleViewController]; - if (ttParentViewController) - parentViewController = ttParentViewController; -#pragma clang diagnostic pop - } - - if (_navController != nil) _navController = nil; - - _navController = [self customNavigationControllerWithRootViewController:viewController presentationStyle:_modalPresentationStyle]; - - if (parentViewController) { - _navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - - // page sheet for the iPad - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - _navController.modalPresentationStyle = UIModalPresentationFormSheet; - } - - if ([viewController isKindOfClass:[BITHockeyBaseViewController class]]) - [(BITHockeyBaseViewController *)viewController setModalAnimated:YES]; - - [parentViewController presentViewController:_navController animated:YES completion:nil]; - } else { - // if not, we add a subview to the window. A bit hacky but should work in most circumstances. - // Also, we don't get a nice animation for free, but hey, this is for beta not production users ;) - BITHockeyLog(@"INFO: No rootViewController found, using UIWindow-approach: %@", visibleWindow); - if ([viewController isKindOfClass:[BITHockeyBaseViewController class]]) - [(BITHockeyBaseViewController *)viewController setModalAnimated:NO]; - [visibleWindow addSubview:_navController.view]; - } -#endif -} - -- (BOOL)addStringValueToKeychain:(NSString *)stringValue forKey:(NSString *)key { - if (!key || !stringValue) - return NO; - - NSError *error = nil; - return [BITKeychainUtils storeUsername:key - andPassword:stringValue - forServiceName:bit_keychainHockeySDKServiceName() - updateExisting:YES - error:&error]; -} - -- (BOOL)addStringValueToKeychainForThisDeviceOnly:(NSString *)stringValue forKey:(NSString *)key { - if (!key || !stringValue) - return NO; - - NSError *error = nil; - return [BITKeychainUtils storeUsername:key - andPassword:stringValue - forServiceName:bit_keychainHockeySDKServiceName() - updateExisting:YES - accessibility:kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly - error:&error]; -} - -- (NSString *)stringValueFromKeychainForKey:(NSString *)key { - if (!key) - return nil; - - NSError *error = nil; - return [BITKeychainUtils getPasswordForUsername:key - andServiceName:bit_keychainHockeySDKServiceName() - error:&error]; -} - -- (BOOL)removeKeyFromKeychain:(NSString *)key { - NSError *error = nil; - return [BITKeychainUtils deleteItemForUsername:key - andServiceName:bit_keychainHockeySDKServiceName() - error:&error]; -} - - -#pragma mark - Manager Control - -- (void)startManager { -} - -#pragma mark - Helpers - -- (NSDate *)parseRFC3339Date:(NSString *)dateString { - NSDate *date = nil; - NSError *error = nil; - if (![_rfc3339Formatter getObjectValue:&date forString:dateString range:nil error:&error]) { - BITHockeyLog(@"INFO: Invalid date '%@' string: %@", dateString, error); - } - - return date; -} - - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h b/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h deleted file mode 100644 index 8508374..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import - -@class BITHockeyBaseManager; -@class BITHockeyBaseViewController; - -@interface BITHockeyBaseManager() - -@property (nonatomic, strong) NSString *appIdentifier; - -- (instancetype)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment; - -- (void)startManager; - -/** the value this object was initialized with */ -- (BOOL)isAppStoreEnvironment; - -/** Check if the device is running an iOS version previous to iOS 7 */ -- (BOOL)isPreiOS7Environment; - -/** - * by default, just logs the message - * - * can be overridden by subclasses to do their own error handling, - * e.g. to show UI - * - * @param error NSError - */ -- (void)reportError:(NSError *)error; - -/** url encoded version of the appIdentifier - - where appIdentifier is either the value this object was initialized with, - or the main bundles CFBundleIdentifier if appIdentifier is nil - */ -- (NSString *)encodedAppIdentifier; - -// device / application helpers -- (NSString *)getDevicePlatform; -- (NSString *)executableUUID; - -// UI helpers -- (UIWindow *)findVisibleWindow; -- (UINavigationController *)customNavigationControllerWithRootViewController:(UIViewController *)viewController presentationStyle:(UIModalPresentationStyle)presentationStyle; -- (void)showView:(UIViewController *)viewController; - -// Date helpers -- (NSDate *)parseRFC3339Date:(NSString *)dateString; - -// keychain helpers -- (BOOL)addStringValueToKeychain:(NSString *)stringValue forKey:(NSString *)key; -- (BOOL)addStringValueToKeychainForThisDeviceOnly:(NSString *)stringValue forKey:(NSString *)key; -- (NSString *)stringValueFromKeychainForKey:(NSString *)key; -- (BOOL)removeKeyFromKeychain:(NSString *)key; - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h deleted file mode 100644 index d770103..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -@interface BITHockeyBaseViewController : UITableViewController - -@property (nonatomic, readwrite) BOOL modalAnimated; - -- (instancetype)initWithModalStyle:(BOOL)modal; -- (instancetype)initWithStyle:(UITableViewStyle)style modal:(BOOL)modal; - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m deleted file mode 100644 index 99611a5..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITHockeyBaseViewController.h" -#import "HockeySDKPrivate.h" - - -@implementation BITHockeyBaseViewController { - BOOL _modal; - UIStatusBarStyle _statusBarStyle; -} - - -- (instancetype)initWithStyle:(UITableViewStyle)style { - self = [super initWithStyle:style]; - if (self) { - _modalAnimated = YES; - _modal = NO; - } - return self; -} - -- (instancetype)initWithStyle:(UITableViewStyle)style modal:(BOOL)modal { - self = [self initWithStyle:style]; - if (self) { - _modal = modal; - - //might be better in viewDidLoad, but to workaround rdar://12214613 and as it doesn't - //hurt, we do it here - if (_modal) { - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone - target:self - action:@selector(onDismissModal:)]; - } - } - return self; -} - -- (instancetype)initWithModalStyle:(BOOL)modal { - self = [self initWithStyle:UITableViewStylePlain modal:modal]; - return self; -} - - -#pragma mark - View lifecycle - -- (void)onDismissModal:(id)sender { - if (_modal) { - UIViewController *presentingViewController = [self presentingViewController]; - - // If there is no presenting view controller just remove view - if (presentingViewController && self.modalAnimated) { - [presentingViewController dismissViewControllerAnimated:YES completion:nil]; - } else { - [self.navigationController.view removeFromSuperview]; - } - } else { - [self.navigationController popViewControllerAnimated:YES]; - } - - [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; -} - - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; - if ([self.navigationController.navigationBar.tintColor isEqual:BIT_RGBCOLOR(25, 25, 25)]) { -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; -#else - [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; -#endif - } -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - if ([self.navigationController.navigationBar.tintColor isEqual:BIT_RGBCOLOR(25, 25, 25)]) { - [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; - } -} - - -#pragma mark - Rotation - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - BOOL shouldAutorotate; - - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { - shouldAutorotate = (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || - interfaceOrientation == UIInterfaceOrientationLandscapeRight || - interfaceOrientation == UIInterfaceOrientationPortrait); - } else { - shouldAutorotate = YES; - } - - return shouldAutorotate; -} - - -#pragma mark - Modal presentation - - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyHelper.h b/Pods/HockeySDK/Classes/BITHockeyHelper.h deleted file mode 100644 index f4d8e9f..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyHelper.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import - -/* NSString helpers */ -NSString *bit_URLEncodedString(NSString *inputString); -NSString *bit_URLDecodedString(NSString *inputString); -NSString *bit_base64String(NSData * data, unsigned long length); - -NSString *bit_settingsDir(void); - -BOOL bit_validateEmail(NSString *email); -NSString *bit_keychainHockeySDKServiceName(void); - -NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB); -NSString *bit_mainBundleIdentifier(void); -NSString *bit_encodeAppIdentifier(NSString *inputString); -NSString *bit_appName(NSString *placeHolderString); -NSString *bit_UUIDPreiOS6(void); -NSString *bit_UUID(void); -NSString *bit_appAnonID(void); -BOOL bit_isPreiOS7Environment(void); -BOOL bit_isPreiOS8Environment(void); -BOOL bit_isRunningInAppExtension(void); - -NSString *bit_validAppIconStringFromIcons(NSBundle *resourceBundle, NSArray *icons); -NSString *bit_validAppIconFilename(NSBundle *bundle, NSBundle *resourceBundle); - -/* UIImage helpers */ -UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize); -UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor); -UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha); - -UIImage *bit_newWithContentsOfResolutionIndependentFile(NSString * path); -UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString * path); -UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName); -UIImage *bit_screenshot(void); -UIImage *bit_appIcon(void); diff --git a/Pods/HockeySDK/Classes/BITHockeyHelper.m b/Pods/HockeySDK/Classes/BITHockeyHelper.m deleted file mode 100644 index 60511d6..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyHelper.m +++ /dev/null @@ -1,805 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - - -#import "BITHockeyHelper.h" -#import "BITKeychainUtils.h" -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" -#import - - -#if __IPHONE_OS_VERSION_MAX_ALLOWED < 70000 -@interface NSData (BITHockeySDKiOS7) -- (NSString *)base64Encoding; -@end -#endif - - -#pragma mark NSString helpers - -NSString *bit_URLEncodedString(NSString *inputString) { - return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, - (__bridge CFStringRef)inputString, - NULL, - CFSTR("!*'();:@&=+$,/?%#[]"), - kCFStringEncodingUTF8) - ); -} - -NSString *bit_URLDecodedString(NSString *inputString) { - return CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, - (__bridge CFStringRef)inputString, - CFSTR(""), - kCFStringEncodingUTF8) - ); -} - -NSString *bit_base64String(NSData * data, unsigned long length) { -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - SEL base64EncodingSelector = NSSelectorFromString(@"base64EncodedStringWithOptions:"); - if ([data respondsToSelector:base64EncodingSelector]) { - return [data base64EncodedStringWithOptions:0]; - } else { -#endif -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [data base64Encoding]; -#pragma clang diagnostic pop -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - } -#endif -} - -NSString *bit_settingsDir(void) { - static NSString *settingsDir = nil; - static dispatch_once_t predSettingsDir; - - dispatch_once(&predSettingsDir, ^{ - NSFileManager *fileManager = [[NSFileManager alloc] init]; - - // temporary directory for crashes grabbed from PLCrashReporter - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); - settingsDir = [[paths objectAtIndex:0] stringByAppendingPathComponent:BITHOCKEY_IDENTIFIER]; - - if (![fileManager fileExistsAtPath:settingsDir]) { - NSDictionary *attributes = [NSDictionary dictionaryWithObject: [NSNumber numberWithUnsignedLong: 0755] forKey: NSFilePosixPermissions]; - NSError *theError = NULL; - - [fileManager createDirectoryAtPath:settingsDir withIntermediateDirectories: YES attributes: attributes error: &theError]; - } - }); - - return settingsDir; -} - -BOOL bit_validateEmail(NSString *email) { - NSString *emailRegex = - @"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}" - @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" - @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-" - @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5" - @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-" - @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21" - @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; - NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", emailRegex]; - - return [emailTest evaluateWithObject:email]; -} - -NSString *bit_keychainHockeySDKServiceName(void) { - static NSString *serviceName = nil; - static dispatch_once_t predServiceName; - - dispatch_once(&predServiceName, ^{ - serviceName = [NSString stringWithFormat:@"%@.HockeySDK", bit_mainBundleIdentifier()]; - }); - - return serviceName; -} - -NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB) { - // Extract plain version number from self - NSString *plainSelf = stringA; - NSRange letterRange = [plainSelf rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]]; - if (letterRange.length) - plainSelf = [plainSelf substringToIndex: letterRange.location]; - - // Extract plain version number from other - NSString *plainOther = stringB; - letterRange = [plainOther rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]]; - if (letterRange.length) - plainOther = [plainOther substringToIndex: letterRange.location]; - - // Compare plain versions - NSComparisonResult result = [plainSelf compare:plainOther options:NSNumericSearch]; - - // If plain versions are equal, compare full versions - if (result == NSOrderedSame) - result = [stringA compare:stringB options:NSNumericSearch]; - - // Done - return result; -} - -NSString *bit_mainBundleIdentifier(void) { - return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]; -} - -NSString *bit_encodeAppIdentifier(NSString *inputString) { - return (inputString ? bit_URLEncodedString(inputString) : bit_URLEncodedString(bit_mainBundleIdentifier())); -} - -NSString *bit_appName(NSString *placeHolderString) { - NSString *appName = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleDisplayName"]; - if (!appName) - appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"] ?: placeHolderString; - - return appName; -} - -NSString *bit_UUIDPreiOS6(void) { - // Create a new UUID - CFUUIDRef uuidObj = CFUUIDCreate(nil); - - // Get the string representation of the UUID - NSString *resultUUID = (NSString*)CFBridgingRelease(CFUUIDCreateString(nil, uuidObj)); - CFRelease(uuidObj); - - return resultUUID; -} - -NSString *bit_UUID(void) { - NSString *resultUUID = nil; - - id uuidClass = NSClassFromString(@"NSUUID"); - if (uuidClass) { - resultUUID = [[NSUUID UUID] UUIDString]; - } else { - resultUUID = bit_UUIDPreiOS6(); - } - - return resultUUID; -} - -NSString *bit_appAnonID(void) { - static NSString *appAnonID = nil; - static dispatch_once_t predAppAnonID; - - dispatch_once(&predAppAnonID, ^{ - // first check if we already have an install string in the keychain - NSString *appAnonIDKey = @"appAnonID"; - - __block NSError *error = nil; - appAnonID = [BITKeychainUtils getPasswordForUsername:appAnonIDKey andServiceName:bit_keychainHockeySDKServiceName() error:&error]; - - if (!appAnonID) { - appAnonID = bit_UUID(); - // store this UUID in the keychain (on this device only) so we can be sure to always have the same ID upon app startups - if (appAnonID) { - // add to keychain in a background thread, since we got reports that storing to the keychain may take several seconds sometimes and cause the app to be killed - // and we don't care about the result anyway - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ - [BITKeychainUtils storeUsername:appAnonIDKey - andPassword:appAnonID - forServiceName:bit_keychainHockeySDKServiceName() - updateExisting:YES - accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly - error:&error]; - }); - } - } - }); - - return appAnonID; -} - -BOOL bit_isPreiOS7Environment(void) { - static BOOL isPreiOS7Environment = YES; - static dispatch_once_t checkOS; - - dispatch_once(&checkOS, ^{ - // NSFoundationVersionNumber_iOS_6_1 = 993.00 - // We hardcode this, so compiling with iOS 6 is possible while still being able to detect the correct environment - - // runtime check according to - // https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html - if (floor(NSFoundationVersionNumber) <= 993.00) { - isPreiOS7Environment = YES; - } else { - isPreiOS7Environment = NO; - } - }); - - return isPreiOS7Environment; -} - -BOOL bit_isPreiOS8Environment(void) { - static BOOL isPreiOS8Environment = YES; - static dispatch_once_t checkOS8; - - dispatch_once(&checkOS8, ^{ - // NSFoundationVersionNumber_iOS_7_1 = 1047.25 - // We hardcode this, so compiling with iOS 7 is possible while still being able to detect the correct environment - - // runtime check according to - // https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html - if (floor(NSFoundationVersionNumber) <= 1047.25) { - isPreiOS8Environment = YES; - } else { - isPreiOS8Environment = NO; - } - }); - - return isPreiOS8Environment; -} - -BOOL bit_isRunningInAppExtension(void) { - static BOOL isRunningInAppExtension = NO; - static dispatch_once_t checkAppExtension; - - dispatch_once(&checkAppExtension, ^{ - isRunningInAppExtension = ([[[NSBundle mainBundle] executablePath] rangeOfString:@".appex/"].location != NSNotFound); - }); - - return isRunningInAppExtension; -} - -/** - Find a valid app icon filename that points to a proper app icon image - - @param icons NSArray with app icon filenames - - @return NSString with the valid app icon or nil if none found - */ -NSString *bit_validAppIconStringFromIcons(NSBundle *resourceBundle, NSArray *icons) { - if (!icons) return nil; - if (![icons isKindOfClass:[NSArray class]]) return nil; - - BOOL useHighResIcon = NO; - BOOL useiPadIcon = NO; - if ([UIScreen mainScreen].scale == 2.0f) useHighResIcon = YES; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) useiPadIcon = YES; - - NSString *currentBestMatch = nil; - float currentBestMatchHeight = 0; - float bestMatchHeight = 0; - - if (bit_isPreiOS7Environment()) { - bestMatchHeight = useiPadIcon ? (useHighResIcon ? 144 : 72) : (useHighResIcon ? 114 : 57); - } else { - bestMatchHeight = useiPadIcon ? (useHighResIcon ? 152 : 76) : 120; - } - - for(NSString *icon in icons) { - // Don't use imageNamed, otherwise unit tests won't find the fixture icon - // and using imageWithContentsOfFile doesn't load @2x files with absolut paths (required in tests) - - NSString *iconPathExtension = ([[icon pathExtension] length] > 0) ? [icon pathExtension] : @"png"; - NSMutableArray *iconFilenameVariants = [NSMutableArray new]; - - [iconFilenameVariants addObject:[icon stringByDeletingPathExtension]]; - [iconFilenameVariants addObject:[NSString stringWithFormat:@"%@@2x", [icon stringByDeletingPathExtension]]]; - - for (NSString *iconFilename in iconFilenameVariants) { - // this call already covers "~ipad" files - NSString *iconPath = [resourceBundle pathForResource:iconFilename ofType:iconPathExtension]; - - NSData *imgData = [[NSData alloc] initWithContentsOfFile:iconPath]; - - UIImage *iconImage = [[UIImage alloc] initWithData:imgData]; - - if (iconImage) { - if (iconImage.size.height == bestMatchHeight) { - return iconFilename; - } else if (iconImage.size.height < bestMatchHeight && - iconImage.size.height > currentBestMatchHeight) { - currentBestMatchHeight = iconImage.size.height; - currentBestMatch = iconFilename; - } - } - } - } - - return currentBestMatch; -} - -NSString *bit_validAppIconFilename(NSBundle *bundle, NSBundle *resourceBundle) { - NSString *iconFilename = nil; - NSArray *icons = nil; - - icons = [bundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]; - iconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); - - if (!iconFilename) { - icons = [bundle objectForInfoDictionaryKey:@"CFBundleIcons"]; - if (icons && [icons isKindOfClass:[NSDictionary class]]) { - icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; - } - iconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); - } - - // we test iPad structure anyway and use it if we find a result and don't have another one yet - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - icons = [bundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]; - if (icons && [icons isKindOfClass:[NSDictionary class]]) { - icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; - } - NSString *iPadIconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); - if (iPadIconFilename && !iconFilename) { - iconFilename = iPadIconFilename; - } - } - - if (!iconFilename) { - NSString *tempFilename = [bundle objectForInfoDictionaryKey:@"CFBundleIconFile"]; - if (tempFilename) { - iconFilename = bit_validAppIconStringFromIcons(resourceBundle, @[tempFilename]); - } - } - - if (!iconFilename) { - iconFilename = bit_validAppIconStringFromIcons(resourceBundle, @[@"Icon.png"]); - } - - return iconFilename; -} - -#pragma mark UIImage private helpers - -static void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight); -static CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh); -static CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha); -static BOOL bit_hasAlpha(UIImage *inputImage); -UIImage *bit_imageWithAlpha(UIImage *inputImage); -UIImage *bit_addGlossToImage(UIImage *inputImage); - -// Adds a rectangular path to the given context and rounds its corners by the given extents -// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/ -void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight) { - if (ovalWidth == 0 || ovalHeight == 0) { - CGContextAddRect(context, rect); - return; - } - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect)); - CGContextScaleCTM(context, ovalWidth, ovalHeight); - CGFloat fw = CGRectGetWidth(rect) / ovalWidth; - CGFloat fh = CGRectGetHeight(rect) / ovalHeight; - CGContextMoveToPoint(context, fw, fh/2); - CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1); - CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); - CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); - CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); - CGContextClosePath(context); - CGContextRestoreGState(context); -} - -CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha) { - CGImageRef theCGImage = NULL; - - // gradient is always black-white and the mask must be in the gray colorspace - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); - - // create the bitmap context - CGContextRef gradientBitmapContext = CGBitmapContextCreate(NULL, pixelsWide, pixelsHigh, - 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaNone); - - // define the start and end grayscale values (with the alpha, even though - // our bitmap context doesn't support alpha the gradient requires it) - CGFloat colors[] = {toAlpha, 1.0, fromAlpha, 1.0}; - - // create the CGGradient and then release the gray color space - CGGradientRef grayScaleGradient = CGGradientCreateWithColorComponents(colorSpace, colors, NULL, 2); - CGColorSpaceRelease(colorSpace); - - // create the start and end points for the gradient vector (straight down) - CGPoint gradientEndPoint = CGPointZero; - CGPoint gradientStartPoint = CGPointMake(0, pixelsHigh); - - // draw the gradient into the gray bitmap context - CGContextDrawLinearGradient(gradientBitmapContext, grayScaleGradient, gradientStartPoint, - gradientEndPoint, kCGGradientDrawsAfterEndLocation); - CGGradientRelease(grayScaleGradient); - - // convert the context into a CGImageRef and release the context - theCGImage = CGBitmapContextCreateImage(gradientBitmapContext); - CGContextRelease(gradientBitmapContext); - - // return the imageref containing the gradient - return theCGImage; -} - -CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh) { - CGSize size = CGSizeMake(pixelsWide, pixelsHigh); - UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); - - return UIGraphicsGetCurrentContext(); -} - - -// Returns true if the image has an alpha layer -BOOL bit_hasAlpha(UIImage *inputImage) { - CGImageAlphaInfo alpha = CGImageGetAlphaInfo(inputImage.CGImage); - return (alpha == kCGImageAlphaFirst || - alpha == kCGImageAlphaLast || - alpha == kCGImageAlphaPremultipliedFirst || - alpha == kCGImageAlphaPremultipliedLast); -} - -// Returns a copy of the given image, adding an alpha channel if it doesn't already have one -UIImage *bit_imageWithAlpha(UIImage *inputImage) { - if (bit_hasAlpha(inputImage)) { - return inputImage; - } - - CGImageRef imageRef = inputImage.CGImage; - size_t width = CGImageGetWidth(imageRef) * inputImage.scale; - size_t height = CGImageGetHeight(imageRef) * inputImage.scale; - - // The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error - CGContextRef offscreenContext = CGBitmapContextCreate(NULL, - width, - height, - 8, - 0, - CGImageGetColorSpace(imageRef), - kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst); - - // Draw the image into the context and retrieve the new image, which will now have an alpha layer - CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef); - CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext); - UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha]; - - // Clean up - CGContextRelease(offscreenContext); - CGImageRelease(imageRefWithAlpha); - - return imageWithAlpha; -} - -UIImage *bit_addGlossToImage(UIImage *inputImage) { - UIGraphicsBeginImageContextWithOptions(inputImage.size, NO, 0.0); - - [inputImage drawAtPoint:CGPointZero]; - UIImage *iconGradient = bit_imageNamed(@"IconGradient.png", BITHOCKEYSDK_BUNDLE); - [iconGradient drawInRect:CGRectMake(0, 0, inputImage.size.width, inputImage.size.height) blendMode:kCGBlendModeNormal alpha:0.5]; - - UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - return result; -} - -#pragma mark UIImage helpers - -UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor) { - - if (!inputImage){ - return nil; - } - - float imageScaleFactor = 1.0; - if (honorScaleFactor) { - if ([inputImage respondsToSelector:@selector(scale)]) { - imageScaleFactor = [inputImage scale]; - } - } - - float sourceWidth = [inputImage size].width * imageScaleFactor; - float sourceHeight = [inputImage size].height * imageScaleFactor; - float targetWidth = fitSize.width; - float targetHeight = fitSize.height; - - // Calculate aspect ratios - float sourceRatio = sourceWidth / sourceHeight; - float targetRatio = targetWidth / targetHeight; - - // Determine what side of the source image to use for proportional scaling - BOOL scaleWidth = (sourceRatio <= targetRatio); - // Deal with the case of just scaling proportionally to fit, without cropping - scaleWidth = !scaleWidth; - - // Proportionally scale source image - float scalingFactor, scaledWidth, scaledHeight; - if (scaleWidth) { - scalingFactor = 1.0 / sourceRatio; - scaledWidth = targetWidth; - scaledHeight = round(targetWidth * scalingFactor); - } else { - scalingFactor = sourceRatio; - scaledWidth = round(targetHeight * scalingFactor); - scaledHeight = targetHeight; - } - - // Calculate compositing rectangles - CGRect sourceRect, destRect; - sourceRect = CGRectMake(0, 0, sourceWidth, sourceHeight); - destRect = CGRectMake(0, 0, scaledWidth, scaledHeight); - - // Create appropriately modified image. - UIImage *image = nil; - UIGraphicsBeginImageContextWithOptions(destRect.size, NO, honorScaleFactor ? 0.0 : 1.0); // 0.0 for scale means "correct scale for device's main screen". - CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect); // cropping happens here. - image = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage. - [image drawInRect:destRect]; // the actual scaling happens here, and orientation is taken care of automatically. - CGImageRelease(sourceImg); - image = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - if (!image) { - // Try older method. - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(NULL, scaledWidth, scaledHeight, 8, (fitSize.width * 4), - colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast); - sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect); - CGContextDrawImage(context, destRect, sourceImg); - CGImageRelease(sourceImg); - CGImageRef finalImage = CGBitmapContextCreateImage(context); - CGContextRelease(context); - CGColorSpaceRelease(colorSpace); - image = [UIImage imageWithCGImage:finalImage]; - CGImageRelease(finalImage); - } - - return image; -} - - -UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha) { - if(height == 0) - return nil; - - // create a bitmap graphics context the size of the image - CGContextRef mainViewContentContext = bit_MyOpenBitmapContext(inputImage.size.width, (int)height); - - // create a 2 bit CGImage containing a gradient that will be used for masking the - // main view content to create the 'fade' of the reflection. The CGImageCreateWithMask - // function will stretch the bitmap image as required, so we can create a 1 pixel wide gradient - CGImageRef gradientMaskImage = bit_CreateGradientImage(1, (int)height, fromAlpha, toAlpha); - - // create an image by masking the bitmap of the mainView content with the gradient view - // then release the pre-masked content bitmap and the gradient bitmap - CGContextClipToMask(mainViewContentContext, CGRectMake(0.0, 0.0, inputImage.size.width, height), gradientMaskImage); - CGImageRelease(gradientMaskImage); - - // draw the image into the bitmap context - CGContextDrawImage(mainViewContentContext, CGRectMake(0, 0, inputImage.size.width, inputImage.size.height), inputImage.CGImage); - - // convert the finished reflection image to a UIImage - UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); // returns autoreleased - UIGraphicsEndImageContext(); - - return theImage; -} - - -UIImage *bit_newWithContentsOfResolutionIndependentFile(NSString * path) { - if ([UIScreen instancesRespondToSelector:@selector(scale)] && (int)[[UIScreen mainScreen] scale] == 2.0) { - NSString *path2x = [[path stringByDeletingLastPathComponent] - stringByAppendingPathComponent:[NSString stringWithFormat:@"%@@2x.%@", - [[path lastPathComponent] stringByDeletingPathExtension], - [path pathExtension]]]; - - if ([[NSFileManager defaultManager] fileExistsAtPath:path2x]) { - return [[UIImage alloc] initWithContentsOfFile:path2x]; - } - } - - return [[UIImage alloc] initWithContentsOfFile:path]; -} - - -UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString *path) { - return bit_newWithContentsOfResolutionIndependentFile(path); -} - - -UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName) { - NSString *resourcePath = [[NSBundle bundleForClass:[BITHockeyManager class]] resourcePath]; - NSString *bundlePath = [resourcePath stringByAppendingPathComponent:bundleName]; - NSString *imagePath = [bundlePath stringByAppendingPathComponent:imageName]; - return bit_imageWithContentsOfResolutionIndependentFile(imagePath); -} - - - -// Creates a copy of this image with rounded corners -// If borderSize is non-zero, a transparent border of the given size will also be added -// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/ -UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize) { - // If the image does not have an alpha layer, add one - - UIImage *roundedImage = nil; - UIGraphicsBeginImageContextWithOptions(inputImage.size, NO, 0.0); // 0.0 for scale means "correct scale for device's main screen". - CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], CGRectMake(0, 0, inputImage.size.width * inputImage.scale, inputImage.size.height * inputImage.scale)); // cropping happens here. - - // Create a clipping path with rounded corners - CGContextRef context = UIGraphicsGetCurrentContext(); - CGContextBeginPath(context); - bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, inputImage.size.width - borderSize * 2, inputImage.size.height - borderSize * 2), context, cornerSize, cornerSize); - CGContextClosePath(context); - CGContextClip(context); - - roundedImage = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage. - [roundedImage drawInRect:CGRectMake(0, 0, inputImage.size.width, inputImage.size.height)]; // the actual scaling happens here, and orientation is taken care of automatically. - CGImageRelease(sourceImg); - roundedImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - if (!roundedImage) { - // Try older method. - UIImage *image = bit_imageWithAlpha(inputImage); - - // Build a context that's the same dimensions as the new size - context = CGBitmapContextCreate(NULL, - image.size.width, - image.size.height, - CGImageGetBitsPerComponent(image.CGImage), - 0, - CGImageGetColorSpace(image.CGImage), - CGImageGetBitmapInfo(image.CGImage)); - - // Create a clipping path with rounded corners - CGContextBeginPath(context); - bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, image.size.width - borderSize * 2, image.size.height - borderSize * 2), context, cornerSize, cornerSize); - CGContextClosePath(context); - CGContextClip(context); - - // Draw the image to the context; the clipping path will make anything outside the rounded rect transparent - CGContextDrawImage(context, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage); - - // Create a CGImage from the context - CGImageRef clippedImage = CGBitmapContextCreateImage(context); - CGContextRelease(context); - - // Create a UIImage from the CGImage - roundedImage = [UIImage imageWithCGImage:clippedImage]; - CGImageRelease(clippedImage); - } - - return roundedImage; -} - -UIImage *bit_appIcon() { - NSString *iconString = nil; - NSArray *icons = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIconFiles"]; - if (!icons) { - icons = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIcons"]; - if ((icons) && ([icons isKindOfClass:[NSDictionary class]])) { - icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; - } - - if (!icons) { - iconString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIconFile"]; - if (!iconString) { - iconString = @"Icon.png"; - } - } - } - - if (icons) { - BOOL useHighResIcon = NO; - if ([UIScreen mainScreen].scale == 2.0f) useHighResIcon = YES; - - for(NSString *icon in icons) { - iconString = icon; - UIImage *iconImage = [UIImage imageNamed:icon]; - - if (iconImage.size.height == 57 && !useHighResIcon) { - // found! - break; - } - if (iconImage.size.height == 114 && useHighResIcon) { - // found! - break; - } - } - } - - BOOL addGloss = YES; - NSNumber *prerendered = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIPrerenderedIcon"]; - if (prerendered) { - addGloss = ![prerendered boolValue]; - } - - if (addGloss) { - return bit_addGlossToImage([UIImage imageNamed:iconString]); - } else { - return [UIImage imageNamed:iconString]; - } -} - -UIImage *bit_screenshot(void) { - // Create a graphics context with the target size - CGSize imageSize = [[UIScreen mainScreen] bounds].size; - BOOL isLandscapeLeft = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft; - BOOL isLandscapeRight = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight; - BOOL isUpsideDown = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown; - - BOOL needsRotation = NO; - - if ((isLandscapeLeft ||isLandscapeRight) && imageSize.height > imageSize.width) { - needsRotation = YES; - CGFloat temp = imageSize.width; - imageSize.width = imageSize.height; - imageSize.height = temp; - } - - UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); - - CGContextRef context = UIGraphicsGetCurrentContext(); - - // Iterate over every window from back to front - //NSInteger count = 0; - for (UIWindow *window in [[UIApplication sharedApplication] windows]) { - if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) { - // -renderInContext: renders in the coordinate space of the layer, - // so we must first apply the layer's geometry to the graphics context - CGContextSaveGState(context); - - // Center the context around the window's anchor point - CGContextTranslateCTM(context, [window center].x, [window center].y); - - // Apply the window's transform about the anchor point - CGContextConcatCTM(context, [window transform]); - - // Offset by the portion of the bounds left of and above the anchor point - CGContextTranslateCTM(context, - -[window bounds].size.width * [[window layer] anchorPoint].x, - -[window bounds].size.height * [[window layer] anchorPoint].y); - - if (needsRotation) { - if (isLandscapeLeft) { - CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( imageSize.width, 0), M_PI / 2.0)); - } else if (isLandscapeRight) { - CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( 0, imageSize.height), 3 * M_PI / 2.0)); - } - } else if (isUpsideDown) { - CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( imageSize.width, imageSize.height), M_PI)); - } - - if ([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) { - [window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO]; - } else { - // Render the layer hierarchy to the current context - [[window layer] renderInContext:context]; - } - - // Restore the context - CGContextRestoreGState(context); - } - } - - // Retrieve the screenshot image - UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); - - UIGraphicsEndImageContext(); - - return image; -} diff --git a/Pods/HockeySDK/Classes/BITHockeyManager.h b/Pods/HockeySDK/Classes/BITHockeyManager.h deleted file mode 100644 index 4278d93..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyManager.h +++ /dev/null @@ -1,531 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import - -#import "HockeySDKFeatureConfig.h" - - -@protocol BITHockeyManagerDelegate; - -@class BITHockeyBaseManager; -#if HOCKEYSDK_FEATURE_CRASH_REPORTER -@class BITCrashManager; -#endif -#if HOCKEYSDK_FEATURE_UPDATES -@class BITUpdateManager; -#endif -#if HOCKEYSDK_FEATURE_STORE_UPDATES -@class BITStoreUpdateManager; -#endif -#if HOCKEYSDK_FEATURE_FEEDBACK -@class BITFeedbackManager; -#endif -#if HOCKEYSDK_FEATURE_AUTHENTICATOR -@class BITAuthenticator; -#endif - -/** - The HockeySDK manager. Responsible for setup and management of all components - - This is the principal SDK class. It represents the entry point for the HockeySDK. The main promises of the class are initializing the SDK modules, providing access to global properties and to all modules. Initialization is divided into several distinct phases: - - 1. Setup the [HockeyApp](http://hockeyapp.net/) app identifier and the optional delegate: This is the least required information on setting up the SDK and using it. It does some simple validation of the app identifier and checks if the app is running from the App Store or not. - 2. Provides access to the SDK modules `BITCrashManager`, `BITUpdateManager`, and `BITFeedbackManager`. This way all modules can be further configured to personal needs, if the defaults don't fit the requirements. - 3. Configure each module. - 4. Start up all modules. - - The SDK is optimized to defer everything possible to a later time while making sure e.g. crashes on startup can also be caught and each module executes other code with a delay some seconds. This ensures that applicationDidFinishLaunching will process as fast as possible and the SDK will not block the startup sequence resulting in a possible kill by the watchdog process. - - All modules do **NOT** show any user interface if the module is not activated or not integrated. - `BITCrashManager`: Shows an alert on startup asking the user if he/she agrees on sending the crash report, if `[BITCrashManager crashManagerStatus]` is set to `BITCrashManagerStatusAlwaysAsk` (default) - `BITUpdateManager`: Is automatically deactivated when the SDK detects it is running from a build distributed via the App Store. Otherwise if it is not deactivated manually, it will show an alert after startup informing the user about a pending update, if one is available. If the user then decides to view the update another screen is presented with further details and an option to install the update. - `BITFeedbackManager`: If this module is deactivated or the user interface is nowhere added into the app, this module will not do anything. It will not fetch the server for data or show any user interface. If it is integrated, activated, and the user already used it to provide feedback, it will show an alert after startup if a new answer has been received from the server with the option to view it. - - Example: - - [[BITHockeyManager sharedHockeyManager] - configureWithIdentifier:@"" - delegate:nil]; - [[BITHockeyManager sharedHockeyManager] startManager]; - - @warning The SDK is **NOT** thread safe and has to be set up on the main thread! - - @warning Most properties of all components require to be set **BEFORE** calling`startManager`! - - */ - -@interface BITHockeyManager : NSObject - -#pragma mark - Public Methods - -///----------------------------------------------------------------------------- -/// @name Initialization -///----------------------------------------------------------------------------- - -/** - Returns a shared BITHockeyManager object - - @return A singleton BITHockeyManager instance ready use - */ -+ (BITHockeyManager *)sharedHockeyManager; - - -/** - Initializes the manager with a particular app identifier - - Initialize the manager with a HockeyApp app identifier. - - [[BITHockeyManager sharedHockeyManager] - configureWithIdentifier:@""]; - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @param appIdentifier The app identifier that should be used. - */ -- (void)configureWithIdentifier:(NSString *)appIdentifier; - - -/** - Initializes the manager with a particular app identifier and delegate - - Initialize the manager with a HockeyApp app identifier and assign the class that - implements the optional protocols `BITHockeyManagerDelegate`, `BITCrashManagerDelegate` or - `BITUpdateManagerDelegate`. - - [[BITHockeyManager sharedHockeyManager] - configureWithIdentifier:@"" - delegate:nil]; - - @see configureWithIdentifier: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @see BITHockeyManagerDelegate - @see BITCrashManagerDelegate - @see BITUpdateManagerDelegate - @see BITFeedbackManagerDelegate - @param appIdentifier The app identifier that should be used. - @param delegate `nil` or the class implementing the option protocols - */ -- (void)configureWithIdentifier:(NSString *)appIdentifier delegate:(id)delegate; - - -/** - Initializes the manager with an app identifier for beta, one for live usage and delegate - - Initialize the manager with different HockeyApp app identifiers for beta and live usage. - All modules will automatically detect if the app is running in the App Store and use - the live app identifier for that. In all other cases it will use the beta app identifier. - And also assign the class that implements the optional protocols `BITHockeyManagerDelegate`, - `BITCrashManagerDelegate` or `BITUpdateManagerDelegate` - - [[BITHockeyManager sharedHockeyManager] - configureWithBetaIdentifier:@"" - liveIdentifier:@"" - delegate:nil]; - - We recommend using one app entry on HockeyApp for your beta versions and another one for - your live versions. The reason is that you will have way more beta versions than live - versions, but on the other side get way more crash reports on the live version. Separating - them into two different app entries makes it easier to work with the data. In addition - you will likely end up having the same version number for a beta and live version which - would mix different data into the same version. Also the live version does not require - you to upload any IPA files, uploading only the dSYM package for crash reporting is - just fine. - - @see configureWithIdentifier: - @see configureWithIdentifier:delegate: - @see startManager - @see BITHockeyManagerDelegate - @see BITCrashManagerDelegate - @see BITUpdateManagerDelegate - @see BITFeedbackManagerDelegate - @param betaIdentifier The app identifier for the _non_ app store (beta) configurations - @param liveIdentifier The app identifier for the app store configurations. - @param delegate `nil` or the class implementing the optional protocols - */ -- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate; - - -/** - Starts the manager and runs all modules - - Call this after configuring the manager and setting up all modules. - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - */ -- (void)startManager; - - -#pragma mark - Public Properties - -///----------------------------------------------------------------------------- -/// @name Modules -///----------------------------------------------------------------------------- - - -/** - Set the delegate - - Defines the class that implements the optional protocol `BITHockeyManagerDelegate`. - - The delegate will automatically be propagated to all components. There is no need to set the delegate - for each component individually. - - @warning This property needs to be set before calling `startManager` - - @see BITHockeyManagerDelegate - @see BITCrashManagerDelegate - @see BITUpdateManagerDelegate - @see BITFeedbackManagerDelegate - */ -@property (nonatomic, weak) id delegate; - - -/** - Defines the server URL to send data to or request data from - - By default this is set to the HockeyApp servers and there rarely should be a - need to modify that. - - @warning This property needs to be set before calling `startManager` - */ -@property (nonatomic, strong) NSString *serverURL; - - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - -/** - Reference to the initialized BITCrashManager module - - Returns the BITCrashManager instance initialized by BITHockeyManager - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @see disableCrashManager - */ -@property (nonatomic, strong, readonly) BITCrashManager *crashManager; - - -/** - Flag the determines whether the Crash Manager should be disabled - - If this flag is enabled, then crash reporting is disabled and no crashes will - be send. - - Please note that the Crash Manager instance will be initialized anyway, but crash report - handling (signal and uncaught exception handlers) will **not** be registered. - - @warning This property needs to be set before calling `startManager` - - *Default*: _NO_ - @see crashManager - */ -@property (nonatomic, getter = isCrashManagerDisabled) BOOL disableCrashManager; - -#endif - - -#if HOCKEYSDK_FEATURE_UPDATES - -/** - Reference to the initialized BITUpdateManager module - - Returns the BITUpdateManager instance initialized by BITHockeyManager - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @see disableUpdateManager - */ -@property (nonatomic, strong, readonly) BITUpdateManager *updateManager; - - -/** - Flag the determines whether the Update Manager should be disabled - - If this flag is enabled, then checking for updates and submitting beta usage - analytics will be turned off! - - Please note that the Update Manager instance will be initialized anyway! - - @warning This property needs to be set before calling `startManager` - - *Default*: _NO_ - @see updateManager - */ -@property (nonatomic, getter = isUpdateManagerDisabled) BOOL disableUpdateManager; - -#endif - - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - -/** - Reference to the initialized BITStoreUpdateManager module - - Returns the BITStoreUpdateManager instance initialized by BITHockeyManager - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @see enableStoreUpdateManager - */ -@property (nonatomic, strong, readonly) BITStoreUpdateManager *storeUpdateManager; - - -/** - Flag the determines whether the App Store Update Manager should be enabled - - If this flag is enabled, then checking for updates when the app runs from the - app store will be turned on! - - Please note that the Store Update Manager instance will be initialized anyway! - - @warning This property needs to be set before calling `startManager` - - *Default*: _NO_ - @see storeUpdateManager - */ -@property (nonatomic, getter = isStoreUpdateManagerEnabled) BOOL enableStoreUpdateManager; - -#endif - - -#if HOCKEYSDK_FEATURE_FEEDBACK - -/** - Reference to the initialized BITFeedbackManager module - - Returns the BITFeedbackManager instance initialized by BITHockeyManager - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - @see disableFeedbackManager - */ -@property (nonatomic, strong, readonly) BITFeedbackManager *feedbackManager; - - -/** - Flag the determines whether the Feedback Manager should be disabled - - If this flag is enabled, then letting the user give feedback and - get responses will be turned off! - - Please note that the Feedback Manager instance will be initialized anyway! - - @warning This property needs to be set before calling `startManager` - - *Default*: _NO_ - @see feedbackManager - */ -@property (nonatomic, getter = isFeedbackManagerDisabled) BOOL disableFeedbackManager; - -#endif - - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - -/** - Reference to the initialized BITAuthenticator module - - Returns the BITAuthenticator instance initialized by BITHockeyManager - - @see configureWithIdentifier:delegate: - @see configureWithBetaIdentifier:liveIdentifier:delegate: - @see startManager - */ -@property (nonatomic, strong, readonly) BITAuthenticator *authenticator; - -#endif - - -///----------------------------------------------------------------------------- -/// @name Environment -///----------------------------------------------------------------------------- - -/** - Flag that determines whether the application is installed and running - from an App Store installation. - - Returns _YES_ if the app is installed and running from the App Store - Returns _NO_ if the app is installed via debug, ad-hoc or enterprise distribution - */ -@property (nonatomic, readonly, getter=isAppStoreEnvironment) BOOL appStoreEnvironment; - - -/** - Returns the app installation specific anonymous UUID - - The value returned by this method is unique and persisted per app installation - in the keychain. It is also being used in crash reports as `CrashReporter Key` - and internally when sending crash reports and feedback messages. - - This is not identical to the `[ASIdentifierManager advertisingIdentifier]` or - the `[UIDevice identifierForVendor]`! - */ -@property (nonatomic, readonly) NSString *installString; - - -///----------------------------------------------------------------------------- -/// @name Debug Logging -///----------------------------------------------------------------------------- - -/** - Flag that determines whether additional logging output should be generated - by the manager and all modules. - - This is ignored if the app is running in the App Store and reverts to the - default value in that case. - - @warning This property needs to be set before calling `startManager` - - *Default*: _NO_ - */ -@property (nonatomic, assign, getter=isDebugLogEnabled) BOOL debugLogEnabled; - - -///----------------------------------------------------------------------------- -/// @name Integration test -///----------------------------------------------------------------------------- - -/** - Pings the server with the HockeyApp app identifiers used for initialization - - Call this method once for debugging purposes to test if your SDK setup code - reaches the server successfully. - - Once invoked, check the apps page on HockeyApp for a verification. - - If you setup the SDK with a beta and live identifier, a call to both app IDs will be done. - - This call is ignored if the app is running in the App Store!. - */ -- (void)testIdentifier; - - -///----------------------------------------------------------------------------- -/// @name Additional meta data -///----------------------------------------------------------------------------- - -/** Set the userid that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - The value can be set at any time and will be stored in the keychain on the current - device only! To delete the value from the keychain set the value to `nil`. - - This property is optional and can be used as an alternative to the delegate. If you - want to define specific data for each component, use the delegate instead which does - overwrite the values set by this property. - - @warning When returning a non nil value, crash reports are not anonymous any more - and the crash alerts will not show the word "anonymous"! - - @warning This property needs to be set before calling `startManager` to be considered - for being added to crash reports as meta data. - - @see userName - @see userEmail - @see `[BITHockeyManagerDelegate userIDForHockeyManager:componentManager:]` - */ -@property (nonatomic, retain) NSString *userID; - - -/** Set the user name that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - The value can be set at any time and will be stored in the keychain on the current - device only! To delete the value from the keychain set the value to `nil`. - - This property is optional and can be used as an alternative to the delegate. If you - want to define specific data for each component, use the delegate instead which does - overwrite the values set by this property. - - @warning When returning a non nil value, crash reports are not anonymous any more - and the crash alerts will not show the word "anonymous"! - - @warning This property needs to be set before calling `startManager` to be considered - for being added to crash reports as meta data. - - @see userID - @see userEmail - @see `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` - */ -@property (nonatomic, retain) NSString *userName; - - -/** Set the users email address that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - The value can be set at any time and will be stored in the keychain on the current - device only! To delete the value from the keychain set the value to `nil`. - - This property is optional and can be used as an alternative to the delegate. If you - want to define specific data for each component, use the delegate instead which does - overwrite the values set by this property. - - @warning When returning a non nil value, crash reports are not anonymous any more - and the crash alerts will not show the word "anonymous"! - - @warning This property needs to be set before calling `startManager` to be considered - for being added to crash reports as meta data. - - @see userID - @see userName - @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` - */ -@property (nonatomic, retain) NSString *userEmail; - - -///----------------------------------------------------------------------------- -/// @name SDK meta data -///----------------------------------------------------------------------------- - -/** - Returns the SDK Version (CFBundleShortVersionString). - */ -- (NSString *)version; - -/** - Returns the SDK Build (CFBundleVersion) as a string. - */ -- (NSString *)build; - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyManager.m b/Pods/HockeySDK/Classes/BITHockeyManager.m deleted file mode 100644 index f8b6b7b..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyManager.m +++ /dev/null @@ -1,664 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2014 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. - */ - -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER || HOCKEYSDK_FEATURE_FEEDBACK || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_STORE_UPDATES -#import "BITHockeyBaseManagerPrivate.h" -#endif - -#import "BITHockeyHelper.h" -#import "BITHockeyAppClient.h" -#import "BITKeychainUtils.h" - -#include - -typedef struct { - uint8_t info_version; - const char hockey_version[16]; - const char hockey_build[16]; -} bitstadium_info_t; - -bitstadium_info_t bitstadium_library_info __attribute__((section("__TEXT,__bit_hockey,regular,no_dead_strip"))) = { - .info_version = 1, - .hockey_version = BITHOCKEY_C_VERSION, - .hockey_build = BITHOCKEY_C_BUILD -}; - - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER -#import "BITCrashManagerPrivate.h" -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - -#if HOCKEYSDK_FEATURE_UPDATES -#import "BITUpdateManagerPrivate.h" -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - -#if HOCKEYSDK_FEATURE_STORE_UPDATES -#import "BITStoreUpdateManagerPrivate.h" -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - -#if HOCKEYSDK_FEATURE_FEEDBACK -#import "BITFeedbackManagerPrivate.h" -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR -#import "BITAuthenticator_Private.h" -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - -@interface BITHockeyManager () - -- (BOOL)shouldUseLiveIdentifier; - -@end - - -@implementation BITHockeyManager { - NSString *_appIdentifier; - NSString *_liveIdentifier; - - BOOL _validAppIdentifier; - - BOOL _startManagerIsInvoked; - - BOOL _startUpdateManagerIsInvoked; - - BOOL _managersInitialized; - - BITHockeyAppClient *_hockeyAppClient; -} - -#pragma mark - Private Class Methods - -- (BOOL)checkValidityOfAppIdentifier:(NSString *)identifier { - BOOL result = NO; - - if (identifier) { - NSCharacterSet *hexSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789abcdef"]; - NSCharacterSet *inStringSet = [NSCharacterSet characterSetWithCharactersInString:identifier]; - result = ([identifier length] == 32) && ([hexSet isSupersetOfSet:inStringSet]); - } - - return result; -} - -- (void)logInvalidIdentifier:(NSString *)environment { - if (!_appStoreEnvironment) { - if ([environment isEqualToString:@"liveIdentifier"]) { - NSLog(@"[HockeySDK] WARNING: The liveIdentifier is invalid! The SDK will be disabled when deployed to the App Store without setting a valid app identifier!"); - } else { - NSLog(@"[HockeySDK] ERROR: The %@ is invalid! Please use the HockeyApp app identifier you find on the apps website on HockeyApp! The SDK is disabled!", environment); - } - } -} - - -#pragma mark - Public Class Methods - -+ (BITHockeyManager *)sharedHockeyManager { - static BITHockeyManager *sharedInstance = nil; - static dispatch_once_t pred; - - dispatch_once(&pred, ^{ - sharedInstance = [BITHockeyManager alloc]; - sharedInstance = [sharedInstance init]; - }); - - return sharedInstance; -} - -- (id) init { - if ((self = [super init])) { - _serverURL = nil; - _delegate = nil; - _managersInitialized = NO; - - _hockeyAppClient = nil; - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - _disableCrashManager = NO; -#endif -#if HOCKEYSDK_FEATURE_UPDATES - _disableUpdateManager = NO; -#endif -#if HOCKEYSDK_FEATURE_FEEDBACK - _disableFeedbackManager = NO; -#endif - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - _enableStoreUpdateManager = NO; -#endif - - _appStoreEnvironment = NO; - _startManagerIsInvoked = NO; - _startUpdateManagerIsInvoked = NO; - - _liveIdentifier = nil; - _installString = bit_appAnonID(); - -#if !TARGET_IPHONE_SIMULATOR - // check if we are really in an app store environment - if (![[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) { - _appStoreEnvironment = YES; - } -#endif - - [self performSelector:@selector(validateStartManagerIsInvoked) withObject:nil afterDelay:0.0f]; - } - return self; -} - -- (void)dealloc { -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - // start Authenticator - if (![self isAppStoreEnvironment]) { - [_authenticator removeObserver:self forKeyPath:@"identified"]; - } -#endif -} - - -#pragma mark - Public Instance Methods (Configuration) - -- (void)configureWithIdentifier:(NSString *)appIdentifier { - _appIdentifier = [appIdentifier copy]; - - [self initializeModules]; -} - -- (void)configureWithIdentifier:(NSString *)appIdentifier delegate:(id)delegate { - _delegate = delegate; - _appIdentifier = [appIdentifier copy]; - - [self initializeModules]; -} - -- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate { - _delegate = delegate; - - // check the live identifier now, because otherwise invalid identifier would only be logged when the app is already in the store - if (![self checkValidityOfAppIdentifier:liveIdentifier]) { - [self logInvalidIdentifier:@"liveIdentifier"]; - _liveIdentifier = [liveIdentifier copy]; - } - - if ([self shouldUseLiveIdentifier]) { - _appIdentifier = [liveIdentifier copy]; - } - else { - _appIdentifier = [betaIdentifier copy]; - } - - [self initializeModules]; -} - - -- (void)startManager { - if (!_validAppIdentifier) return; - if (_startManagerIsInvoked) { - NSLog(@"[HockeySDK] Warning: startManager should only be invoked once! This call is ignored."); - return; - } - - if (![self isSetUpOnMainThread]) return; - - BITHockeyLog(@"INFO: Starting HockeyManager"); - _startManagerIsInvoked = YES; - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - // start CrashManager - if (![self isCrashManagerDisabled]) { - BITHockeyLog(@"INFO: Start CrashManager"); - if (_serverURL) { - [_crashManager setServerURL:_serverURL]; - } - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - if (_authenticator) { - [_crashManager setInstallationIdentification:[self.authenticator publicInstallationIdentifier]]; - [_crashManager setInstallationIdentificationType:[self.authenticator identificationType]]; - [_crashManager setInstallationIdentified:[self.authenticator isIdentified]]; - } -#endif - - [_crashManager startManager]; - } -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - - // App Extensions can only use BITCrashManager, so ignore all others automatically - if (bit_isRunningInAppExtension()) { - return; - } - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - // start StoreUpdateManager - if ([self isStoreUpdateManagerEnabled]) { - BITHockeyLog(@"INFO: Start StoreUpdateManager"); - if (_serverURL) { - [_storeUpdateManager setServerURL:_serverURL]; - } - [_storeUpdateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; - } -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - -#if HOCKEYSDK_FEATURE_FEEDBACK - // start FeedbackManager - if (![self isFeedbackManagerDisabled]) { - BITHockeyLog(@"INFO: Start FeedbackManager"); - if (_serverURL) { - [_feedbackManager setServerURL:_serverURL]; - } - [_feedbackManager performSelector:@selector(startManager) withObject:nil afterDelay:1.0f]; - } -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - // start Authenticator - if (![self isAppStoreEnvironment]) { - // hook into manager with kvo! - [_authenticator addObserver:self forKeyPath:@"identified" options:0 context:nil]; - - BITHockeyLog(@"INFO: Start Authenticator"); - if (_serverURL) { - [_authenticator setServerURL:_serverURL]; - } - [_authenticator performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; - } -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - -#if HOCKEYSDK_FEATURE_UPDATES - BOOL isIdentified = NO; - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - if (![self isAppStoreEnvironment]) - isIdentified = [self.authenticator isIdentified]; -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - - // Setup UpdateManager - if (![self isUpdateManagerDisabled] && isIdentified) { - [self invokeStartUpdateManager]; - } -#endif /* HOCKEYSDK_FEATURE_UPDATES */ -} - - -#if HOCKEYSDK_FEATURE_UPDATES -- (void)setDisableUpdateManager:(BOOL)disableUpdateManager { - if (_updateManager) { - [_updateManager setDisableUpdateManager:disableUpdateManager]; - } - _disableUpdateManager = disableUpdateManager; -} -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - - -#if HOCKEYSDK_FEATURE_STORE_UPDATES -- (void)setEnableStoreUpdateManager:(BOOL)enableStoreUpdateManager { - if (_storeUpdateManager) { - [_storeUpdateManager setEnableStoreUpdateManager:enableStoreUpdateManager]; - } - _enableStoreUpdateManager = enableStoreUpdateManager; -} -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - - -#if HOCKEYSDK_FEATURE_FEEDBACK -- (void)setDisableFeedbackManager:(BOOL)disableFeedbackManager { - if (_feedbackManager) { - [_feedbackManager setDisableFeedbackManager:disableFeedbackManager]; - } - _disableFeedbackManager = disableFeedbackManager; -} -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - - -- (void)setServerURL:(NSString *)aServerURL { - // ensure url ends with a trailing slash - if (![aServerURL hasSuffix:@"/"]) { - aServerURL = [NSString stringWithFormat:@"%@/", aServerURL]; - } - - if (_serverURL != aServerURL) { - _serverURL = [aServerURL copy]; - - if (_hockeyAppClient) { - _hockeyAppClient.baseURL = [NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]; - } - } -} - - -- (void)setDelegate:(id)delegate { - if (![self isAppStoreEnvironment]) { - if (_startManagerIsInvoked) { - NSLog(@"[HockeySDK] ERROR: The `delegate` property has to be set before calling [[BITHockeyManager sharedHockeyManager] startManager] !"); - } - } - - if (_delegate != delegate) { - _delegate = delegate; - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - if (_crashManager) { - _crashManager.delegate = _delegate; - } -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - -#if HOCKEYSDK_FEATURE_UPDATES - if (_updateManager) { - _updateManager.delegate = _delegate; - } -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - -#if HOCKEYSDK_FEATURE_FEEDBACK - if (_feedbackManager) { - _feedbackManager.delegate = _delegate; - } -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - if (_authenticator) { - _authenticator.delegate = _delegate; - } -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - } -} - -- (void)modifyKeychainUserValue:(NSString *)value forKey:(NSString *)key { - NSError *error = nil; - BOOL success = YES; - NSString *updateType = @"update"; - - if (value) { - success = [BITKeychainUtils storeUsername:key - andPassword:value - forServiceName:bit_keychainHockeySDKServiceName() - updateExisting:YES - accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly - error:&error]; - } else { - updateType = @"delete"; - if ([BITKeychainUtils getPasswordForUsername:key - andServiceName:bit_keychainHockeySDKServiceName() - error:&error]) { - success = [BITKeychainUtils deleteItemForUsername:key - andServiceName:bit_keychainHockeySDKServiceName() - error:&error]; - } - } - - if (!success) { - NSString *errorDescription = [error description] ?: @""; - BITHockeyLog(@"ERROR: Couldn't %@ key %@ in the keychain. %@", updateType, key, errorDescription); - } -} - -- (void)setUserID:(NSString *)userID { - // always set it, since nil value will trigger removal of the keychain entry - _userID = userID; - - [self modifyKeychainUserValue:userID forKey:kBITHockeyMetaUserID]; -} - -- (void)setUserName:(NSString *)userName { - // always set it, since nil value will trigger removal of the keychain entry - _userName = userName; - - [self modifyKeychainUserValue:userName forKey:kBITHockeyMetaUserName]; -} - -- (void)setUserEmail:(NSString *)userEmail { - // always set it, since nil value will trigger removal of the keychain entry - _userEmail = userEmail; - - [self modifyKeychainUserValue:userEmail forKey:kBITHockeyMetaUserEmail]; -} - -- (void)testIdentifier { - if (!_appIdentifier || [self isAppStoreEnvironment]) { - return; - } - - NSDate *now = [NSDate date]; - NSString *timeString = [NSString stringWithFormat:@"%.0f", [now timeIntervalSince1970]]; - [self pingServerForIntegrationStartWorkflowWithTimeString:timeString appIdentifier:_appIdentifier]; - - if (_liveIdentifier) { - [self pingServerForIntegrationStartWorkflowWithTimeString:timeString appIdentifier:_liveIdentifier]; - } -} - - -- (NSString *)version { - return [NSString stringWithUTF8String:bitstadium_library_info.hockey_version]; -} - -- (NSString *)build { - return [NSString stringWithUTF8String:bitstadium_library_info.hockey_build]; -} - - -#pragma mark - KVO - -#if HOCKEYSDK_FEATURE_UPDATES -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { - if ([keyPath isEqualToString:@"identified"] && - [object valueForKey:@"isIdentified"] ) { - if (![self isAppStoreEnvironment]) { - BOOL identified = [(NSNumber *)[object valueForKey:@"isIdentified"] boolValue]; - if (identified && ![self isUpdateManagerDisabled]) { - [self invokeStartUpdateManager]; - } - } - } -} -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - - -#pragma mark - Private Instance Methods - -- (BITHockeyAppClient *)hockeyAppClient { - if (!_hockeyAppClient) { - _hockeyAppClient = [[BITHockeyAppClient alloc] initWithBaseURL:[NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]]; - - _hockeyAppClient.baseURL = [NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]; - } - - return _hockeyAppClient; -} - -- (NSString *)integrationFlowTimeString { - NSString *timeString = [[NSBundle mainBundle] objectForInfoDictionaryKey:BITHOCKEY_INTEGRATIONFLOW_TIMESTAMP]; - - return timeString; -} - -- (BOOL)integrationFlowStartedWithTimeString:(NSString *)timeString { - if (timeString == nil || [self isAppStoreEnvironment]) { - return NO; - } - - NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - [dateFormatter setLocale:enUSPOSIXLocale]; - [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; - NSDate *integrationFlowStartDate = [dateFormatter dateFromString:timeString]; - - if (integrationFlowStartDate && [integrationFlowStartDate timeIntervalSince1970] > [[NSDate date] timeIntervalSince1970] - (60 * 10) ) { - return YES; - } - - return NO; -} - -- (void)pingServerForIntegrationStartWorkflowWithTimeString:(NSString *)timeString appIdentifier:(NSString *)appIdentifier { - if (!appIdentifier || [self isAppStoreEnvironment]) { - return; - } - - NSString *integrationPath = [NSString stringWithFormat:@"api/3/apps/%@/integration", bit_encodeAppIdentifier(appIdentifier)]; - - BITHockeyLog(@"INFO: Sending integration workflow ping to %@", integrationPath); - - [[self hockeyAppClient] postPath:integrationPath - parameters:@{@"timestamp": timeString, - @"sdk": BITHOCKEY_NAME, - @"sdk_version": BITHOCKEY_VERSION, - @"bundle_version": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] - } - completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { - switch (operation.response.statusCode) { - case 400: - BITHockeyLog(@"ERROR: App ID not found"); - break; - case 201: - BITHockeyLog(@"INFO: Ping accepted."); - break; - case 200: - BITHockeyLog(@"INFO: Ping accepted. Server already knows."); - break; - default: - BITHockeyLog(@"ERROR: Unknown error"); - break; - } - }]; -} - -- (void)validateStartManagerIsInvoked { - if (_validAppIdentifier && !_appStoreEnvironment) { - if (!_startManagerIsInvoked) { - NSLog(@"[HockeySDK] ERROR: You did not call [[BITHockeyManager sharedHockeyManager] startManager] to startup the HockeySDK! Please do so after setting up all properties. The SDK is NOT running."); - } - } -} - -#if HOCKEYSDK_FEATURE_UPDATES -- (void)invokeStartUpdateManager { - if (_startUpdateManagerIsInvoked) return; - - _startUpdateManagerIsInvoked = YES; - BITHockeyLog(@"INFO: Start UpdateManager"); - if (_serverURL) { - [_updateManager setServerURL:_serverURL]; - } -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - if (_authenticator) { - [_updateManager setInstallationIdentification:[self.authenticator installationIdentifier]]; - [_updateManager setInstallationIdentificationType:[self.authenticator installationIdentifierParameterString]]; - [_updateManager setInstallationIdentified:[self.authenticator isIdentified]]; - } -#endif - [_updateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; -} -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - -- (BOOL)isSetUpOnMainThread { - NSString *errorString = @"ERROR: HockeySDK has to be setup on the main thread!"; - - if (!NSThread.isMainThread) { - if (self.isAppStoreEnvironment) { - BITHockeyLog(@"%@", errorString); - } else { - NSLog(@"%@", errorString); - NSAssert(NSThread.isMainThread, errorString); - } - - return NO; - } - - return YES; -} - -- (BOOL)shouldUseLiveIdentifier { - BOOL delegateResult = NO; - if ([_delegate respondsToSelector:@selector(shouldUseLiveIdentifierForHockeyManager:)]) { - delegateResult = [(NSObject *)_delegate shouldUseLiveIdentifierForHockeyManager:self]; - } - - return (delegateResult) || (_appStoreEnvironment); -} - -- (void)initializeModules { - if (_managersInitialized) { - NSLog(@"[HockeySDK] Warning: The SDK should only be initialized once! This call is ignored."); - return; - } - - _validAppIdentifier = [self checkValidityOfAppIdentifier:_appIdentifier]; - - if (![self isSetUpOnMainThread]) return; - - _startManagerIsInvoked = NO; - - if (_validAppIdentifier) { -#if HOCKEYSDK_FEATURE_CRASH_REPORTER - BITHockeyLog(@"INFO: Setup CrashManager"); - _crashManager = [[BITCrashManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; - _crashManager.hockeyAppClient = [self hockeyAppClient]; - _crashManager.delegate = _delegate; -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - -#if HOCKEYSDK_FEATURE_UPDATES - BITHockeyLog(@"INFO: Setup UpdateManager"); - _updateManager = [[BITUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; - _updateManager.delegate = _delegate; -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - BITHockeyLog(@"INFO: Setup StoreUpdateManager"); - _storeUpdateManager = [[BITStoreUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - -#if HOCKEYSDK_FEATURE_FEEDBACK - BITHockeyLog(@"INFO: Setup FeedbackManager"); - _feedbackManager = [[BITFeedbackManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; - _feedbackManager.delegate = _delegate; -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR - BITHockeyLog(@"INFO: Setup Authenticator"); - _authenticator = [[BITAuthenticator alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; - _authenticator.hockeyAppClient = [self hockeyAppClient]; - _authenticator.delegate = _delegate; -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - - if (![self isAppStoreEnvironment]) { - NSString *integrationFlowTime = [self integrationFlowTimeString]; - if (integrationFlowTime && [self integrationFlowStartedWithTimeString:integrationFlowTime]) { - [self pingServerForIntegrationStartWorkflowWithTimeString:integrationFlowTime appIdentifier:_appIdentifier]; - } - } - _managersInitialized = YES; - } else { - [self logInvalidIdentifier:@"app identifier"]; - } -} - -@end diff --git a/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h b/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h deleted file mode 100644 index c4f099b..0000000 --- a/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import -#import "HockeySDKFeatureConfig.h" - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER -#import "BITCrashManagerDelegate.h" -#endif - -#if HOCKEYSDK_FEATURE_UPDATES -#import "BITUpdateManagerDelegate.h" -#endif - -#if HOCKEYSDK_FEATURE_FEEDBACK -#import "BITFeedbackManagerDelegate.h" -#endif - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR -#import "BITAuthenticator.h" -#endif - -@class BITHockeyManager; -@class BITHockeyBaseManager; - -/** - The `BITHockeyManagerDelegate` formal protocol defines methods further configuring - the behaviour of `BITHockeyManager`, as well as the delegate of the modules it manages. - */ - -@protocol BITHockeyManagerDelegate - -@optional - - -///----------------------------------------------------------------------------- -/// @name App Identifier usage -///----------------------------------------------------------------------------- - -/** - Implement to force the usage of the live identifier - - This is useful if you are e.g. distributing an enterprise app inside your company - and want to use the `liveIdentifier` for that even though it is not running from - the App Store. - - Example: - - - (BOOL)shouldUseLiveIdentifierForHockeyManager:(BITHockeyManager *)hockeyManager { - #ifdef (CONFIGURATION_AppStore) - return YES; - #endif - return NO; - } - - @param hockeyManager BITHockeyManager instance - */ -- (BOOL)shouldUseLiveIdentifierForHockeyManager:(BITHockeyManager *)hockeyManager; - - -///----------------------------------------------------------------------------- -/// @name UI presentation -///----------------------------------------------------------------------------- - - -// optional parent view controller for the feedback screen when invoked via the alert view, default is the root UIWindow instance -/** - Return a custom parent view controller for presenting modal sheets - - By default the SDK is using the root UIWindow instance to present any required - view controllers. Overwrite this if this doesn't result in a satisfying - behavior or if you want to define any other parent view controller. - - @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate - @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` - */ -- (UIViewController *)viewControllerForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; - - -///----------------------------------------------------------------------------- -/// @name Additional meta data -///----------------------------------------------------------------------------- - - -/** Return the userid that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - In addition, if this returns not nil for `BITFeedbackManager` the user will - not be asked for any user details by the component, including userName or userEmail. - - You can find out the component requesting the userID like this: - - - (NSString *)userIDForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { - if (componentManager == hockeyManager.feedbackManager) { - return UserIDForFeedback; - } else if (componentManager == hockeyManager.crashManager) { - return UserIDForCrashReports; - } else { - return nil; - } - } - - For crash reports, this delegate is invoked on the startup after the crash! - - Alternatively you can also use `[BITHockeyManager userID]` which will cache the value in the keychain. - - @warning When returning a non nil value for the `BITCrashManager` component, crash reports - are not anonymous any more and the crash alerts will not show the word "anonymous"! - - @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate - @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` - @see userNameForHockeyManager:componentManager: - @see userEmailForHockeyManager:componentManager: - @see [BITHockeyManager userID] - */ -- (NSString *)userIDForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; - - -/** Return the user name that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - In addition, if this returns not nil for `BITFeedbackManager` the user will - not be asked for any user details by the component, including userName or userEmail. - - You can find out the component requesting the user name like this: - - - (NSString *)userNameForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { - if (componentManager == hockeyManager.feedbackManager) { - return UserNameForFeedback; - } else if (componentManager == hockeyManager.crashManager) { - return UserNameForCrashReports; - } else { - return nil; - } - } - - For crash reports, this delegate is invoked on the startup after the crash! - - Alternatively you can also use `[BITHockeyManager userName]` which will cache the value in the keychain. - - @warning When returning a non nil value for the `BITCrashManager` component, crash reports - are not anonymous any more and the crash alerts will not show the word "anonymous"! - - @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate - @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` - @see userIDForHockeyManager:componentManager: - @see userEmailForHockeyManager:componentManager: - @see [BITHockeyManager userName] - */ -- (NSString *)userNameForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; - - -/** Return the users email address that should used in the SDK components - - Right now this is used by the `BITCrashManager` to attach to a crash report. - `BITFeedbackManager` uses it too for assigning the user to a discussion thread. - - In addition, if this returns not nil for `BITFeedbackManager` the user will - not be asked for any user details by the component, including userName or userEmail. - - You can find out the component requesting the user email like this: - - - (NSString *)userEmailForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { - if (componentManager == hockeyManager.feedbackManager) { - return UserEmailForFeedback; - } else if (componentManager == hockeyManager.crashManager) { - return UserEmailForCrashReports; - } else { - return nil; - } - } - - For crash reports, this delegate is invoked on the startup after the crash! - - Alternatively you can also use `[BITHockeyManager userEmail]` which will cache the value in the keychain. - - @warning When returning a non nil value for the `BITCrashManager` component, crash reports - are not anonymous any more and the crash alerts will not show the word "anonymous"! - - @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate - @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` - @see userIDForHockeyManager:componentManager: - @see userNameForHockeyManager:componentManager: - @see [BITHockeyManager userEmail] - */ -- (NSString *)userEmailForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; - -@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotation.h b/Pods/HockeySDK/Classes/BITImageAnnotation.h deleted file mode 100644 index 563ccc6..0000000 --- a/Pods/HockeySDK/Classes/BITImageAnnotation.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import - -@interface BITImageAnnotation : UIView { - BOOL _selected; -} - -@property (nonatomic) CGSize movedDelta; -@property (nonatomic, weak) UIImage *sourceImage; -@property (nonatomic) CGRect imageFrame; - -- (BOOL)resizable; - -- (void)setSelected:(BOOL)selected; -- (BOOL)isSelected; - -@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotation.m b/Pods/HockeySDK/Classes/BITImageAnnotation.m deleted file mode 100644 index 4870c8e..0000000 --- a/Pods/HockeySDK/Classes/BITImageAnnotation.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITImageAnnotation.h" - -@implementation BITImageAnnotation - --(BOOL)resizable { - return NO; -} - -- (void)setSelected:(BOOL)selected { - self->_selected = selected; -} - -- (BOOL)isSelected { - return self->_selected; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h deleted file mode 100644 index 026968c..0000000 --- a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import - -@class BITImageAnnotationViewController; - -@protocol BITImageAnnotationDelegate - -- (void)annotationControllerDidCancel:(BITImageAnnotationViewController *)annotationController; -- (void)annotationController:(BITImageAnnotationViewController *)annotationController didFinishWithImage:(UIImage *)image; - -@end - -@interface BITImageAnnotationViewController : UIViewController - -@property (nonatomic, strong) UIImage *image; -@property (nonatomic, weak) id delegate; - -@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m deleted file mode 100644 index 0332fc3..0000000 --- a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m +++ /dev/null @@ -1,407 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITImageAnnotationViewController.h" -#import "BITImageAnnotation.h" -#import "BITRectangleImageAnnotation.h" -#import "BITArrowImageAnnotation.h" -#import "BITBlurImageAnnotation.h" -#import "BITHockeyHelper.h" -#import "HockeySDKPrivate.h" - -typedef NS_ENUM(NSInteger, BITImageAnnotationViewControllerInteractionMode) { - BITImageAnnotationViewControllerInteractionModeNone, - BITImageAnnotationViewControllerInteractionModeDraw, - BITImageAnnotationViewControllerInteractionModeMove -}; - -@interface BITImageAnnotationViewController () - -@property (nonatomic, strong) UIImageView *imageView; -@property (nonatomic, strong) UISegmentedControl *editingControls; -@property (nonatomic, strong) NSMutableArray *objects; - -@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; -@property (nonatomic, strong) UIPanGestureRecognizer *panRecognizer; -@property (nonatomic, strong) UIPinchGestureRecognizer *pinchRecognizer; - -@property (nonatomic) CGFloat scaleFactor; - -@property (nonatomic) CGPoint panStart; -@property (nonatomic,strong) BITImageAnnotation *currentAnnotation; - -@property (nonatomic) BITImageAnnotationViewControllerInteractionMode currentInteraction; - -@property (nonatomic) CGRect pinchStartingFrame; - -@end - -@implementation BITImageAnnotationViewController - -#pragma mark - UIViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; - - NSArray *icons = @[@"Arrow.png",@"Rectangle.png", @"Blur.png"]; - - self.editingControls = [[UISegmentedControl alloc] initWithItems:@[@"Rectangle", @"Arrow", @"Blur"]]; - int i=0; - for (NSString *imageName in icons){ - [self.editingControls setImage:bit_imageNamed(imageName, BITHOCKEYSDK_BUNDLE) forSegmentAtIndex:i++]; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [self.editingControls setSegmentedControlStyle:UISegmentedControlStyleBar]; -#pragma clang diagnostic pop - - self.navigationItem.titleView = self.editingControls; - - self.objects = [NSMutableArray new]; - - [self.editingControls addTarget:self action:@selector(editingAction:) forControlEvents:UIControlEventTouchUpInside]; - [self.editingControls setSelectedSegmentIndex:0]; - - self.imageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; - - self.imageView.clipsToBounds = YES; - - self.imageView.image = self.image; - self.imageView.contentMode = UIViewContentModeScaleToFill; - - self.view.frame = UIScreen.mainScreen.applicationFrame; - - [self.view addSubview:self.imageView]; - // Erm. - self.imageView.frame = [UIScreen mainScreen].bounds; - - self.panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panned:)]; - self.pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinched:)]; - self.tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; - - [self.imageView addGestureRecognizer:self.pinchRecognizer]; - [self.imageView addGestureRecognizer:self.panRecognizer]; - [self.view addGestureRecognizer:self.tapRecognizer]; - - self.imageView.userInteractionEnabled = YES; - -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStylePlain target:self action:@selector(discard:)]; - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStylePlain target:self action:@selector(save:)]; -#else - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStyleBordered target:self action:@selector(discard:)]; - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStyleBordered target:self action:@selector(save:)]; -#endif - - self.view.autoresizesSubviews = NO; -} - - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; - - [self fitImageViewFrame]; - -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; -} - -- (BOOL)prefersStatusBarHidden { - return self.navigationController.navigationBarHidden || self.navigationController.navigationBar.alpha == 0.0f; -} - -- (void)orientationDidChange:(NSNotification *)notification { - [self fitImageViewFrame]; -} - - -- (void)fitImageViewFrame { - - CGSize size = [UIScreen mainScreen].bounds.size; - if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation) && size.height > size.width){ - size = CGSizeMake(size.height, size.width); - } - - CGFloat heightScaleFactor = size.height / self.image.size.height; - CGFloat widthScaleFactor = size.width / self.image.size.width; - - CGFloat factor = MIN(heightScaleFactor, widthScaleFactor); - self.scaleFactor = factor; - CGSize scaledImageSize = CGSizeMake(self.image.size.width * factor, self.image.size.height * factor); - - CGRect baseFrame = CGRectMake(self.view.frame.size.width/2 - scaledImageSize.width/2, self.view.frame.size.height/2 - scaledImageSize.height/2, scaledImageSize.width, scaledImageSize.height); - - self.imageView.frame = baseFrame; -} - -- (void)editingAction:(id)sender { - -} - -- (BITImageAnnotation *)annotationForCurrentMode { - if (self.editingControls.selectedSegmentIndex == 0){ - return [[BITArrowImageAnnotation alloc] initWithFrame:CGRectZero]; - } else if(self.editingControls.selectedSegmentIndex==1){ - return [[BITRectangleImageAnnotation alloc] initWithFrame:CGRectZero]; - } else { - return [[BITBlurImageAnnotation alloc] initWithFrame:CGRectZero]; - } -} - -#pragma mark - Actions - -- (void)discard:(id)sender { - [self.delegate annotationControllerDidCancel:self]; - [self dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)save:(id)sender { - UIImage *image = [self extractImage]; - [self.delegate annotationController:self didFinishWithImage:image]; - [self dismissViewControllerAnimated:YES completion:nil]; -} - -- (UIImage *)extractImage { - UIGraphicsBeginImageContextWithOptions(self.image.size, YES, 0.0); - CGContextRef ctx = UIGraphicsGetCurrentContext(); - [self.image drawInRect:CGRectMake(0, 0, self.image.size.width, self.image.size.height)]; - CGContextScaleCTM(ctx,1.0/self.scaleFactor,1.0f/self.scaleFactor); - - // Drawing all the annotations onto the final image. - for (BITImageAnnotation *annotation in self.objects){ - CGContextTranslateCTM(ctx, annotation.frame.origin.x, annotation.frame.origin.y); - [annotation.layer renderInContext:ctx]; - CGContextTranslateCTM(ctx,-1 * annotation.frame.origin.x,-1 * annotation.frame.origin.y); - } - - UIImage *renderedImageOfMyself = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return renderedImageOfMyself; -} - -#pragma mark - UIGestureRecognizers - -- (void)panned:(UIPanGestureRecognizer *)gestureRecognizer { - BITImageAnnotation *annotationAtLocation = (BITImageAnnotation *)[self.view hitTest:[gestureRecognizer locationInView:self.view] withEvent:nil]; - - if (![annotationAtLocation isKindOfClass:[BITImageAnnotation class]]){ - annotationAtLocation = nil; - } - - // determine the interaction mode if none is set so far. - - if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeNone){ - if (annotationAtLocation){ - self.currentInteraction = BITImageAnnotationViewControllerInteractionModeMove; - } else if ([self canDrawNewAnnotation]){ - self.currentInteraction = BITImageAnnotationViewControllerInteractionModeDraw; - } - } - - if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeNone){ - return; - } - - - if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeDraw){ - if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ - self.currentAnnotation = [self annotationForCurrentMode]; - [self.objects addObject:self.currentAnnotation]; - self.currentAnnotation.sourceImage = self.image; - - if (self.imageView.subviews.count > 0 && [self.currentAnnotation isKindOfClass:[BITBlurImageAnnotation class]]){ - [self.imageView insertSubview:self.currentAnnotation belowSubview:[self firstAnnotationThatIsNotBlur]]; - } else { - [self.imageView addSubview:self.currentAnnotation]; - } - - self.panStart = [gestureRecognizer locationInView:self.imageView]; - - } else if (gestureRecognizer.state == UIGestureRecognizerStateChanged){ - CGPoint bla = [gestureRecognizer locationInView:self.imageView]; - self.currentAnnotation.frame = CGRectMake(self.panStart.x, self.panStart.y, bla.x - self.panStart.x, bla.y - self.panStart.y); - self.currentAnnotation.movedDelta = CGSizeMake(bla.x - self.panStart.x, bla.y - self.panStart.y); - self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; - [self.currentAnnotation setNeedsLayout]; - [self.currentAnnotation layoutIfNeeded]; - } else { - [self.currentAnnotation setSelected:NO]; - self.currentAnnotation = nil; - self.currentInteraction = BITImageAnnotationViewControllerInteractionModeNone; - } - } else if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeMove){ - if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ - // find and possibly move an existing annotation. - - - if ([self.objects indexOfObject:annotationAtLocation] != NSNotFound){ - self.currentAnnotation = annotationAtLocation; - [annotationAtLocation setSelected:YES]; - } - - - } else if (gestureRecognizer.state == UIGestureRecognizerStateChanged && self.currentAnnotation){ - CGPoint delta = [gestureRecognizer translationInView:self.view]; - - CGRect annotationFrame = self.currentAnnotation.frame; - annotationFrame.origin.x += delta.x; - annotationFrame.origin.y += delta.y; - self.currentAnnotation.frame = annotationFrame; - self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; - - [self.currentAnnotation setNeedsLayout]; - [self.currentAnnotation layoutIfNeeded]; - - [gestureRecognizer setTranslation:CGPointZero inView:self.view]; - - } else { - [self.currentAnnotation setSelected:NO]; - self.currentAnnotation = nil; - self.currentInteraction = BITImageAnnotationViewControllerInteractionModeNone; - } - } -} - -- (void)pinched:(UIPinchGestureRecognizer *)gestureRecognizer { - if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ - // try to figure out which view we are talking about. - BITImageAnnotation *candidate = nil; - BOOL validView = YES; - - for ( int i = 0; i1){ - CGRect newFrame= (self.pinchStartingFrame); - - // upper point? - CGPoint point1 = [gestureRecognizer locationOfTouch:0 inView:self.view]; - CGPoint point2 = [gestureRecognizer locationOfTouch:1 inView:self.view]; - - - newFrame.origin.x = point1.x; - newFrame.origin.y = point1.y; - - newFrame.origin.x = (point1.x > point2.x) ? point2.x : point1.x; - newFrame.origin.y = (point1.y > point2.y) ? point2.y : point1.y; - - newFrame.size.width = (point1.x > point2.x) ? point1.x - point2.x : point2.x - point1.x; - newFrame.size.height = (point1.y > point2.y) ? point1.y - point2.y : point2.y - point1.y; - - - self.currentAnnotation.frame = newFrame; - self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; - } else { - [self.currentAnnotation setSelected:NO]; - self.currentAnnotation = nil; - } -} - -- (void)tapped:(UIGestureRecognizer *)tapRecognizer { - // This toggles the nav and status bar. Since iOS7 and pre-iOS7 behave weirdly different, - // this might look rather hacky, but hiding the navbar under iOS6 leads to some ugly - // animation effect which is avoided by simply hiding the navbar setting it's alpha to 0. // moritzh - - if (self.navigationController.navigationBar.alpha == 0 || self.navigationController.navigationBarHidden ){ - - [UIView animateWithDuration:0.35f animations:^{ - - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { - [self.navigationController setNavigationBarHidden:NO animated:NO]; - } else { - self.navigationController.navigationBar.alpha = 1.0; - } - - [[UIApplication sharedApplication] setStatusBarHidden:NO]; - - } completion:^(BOOL finished) { - [self fitImageViewFrame]; - - }]; - } else { - [UIView animateWithDuration:0.35f animations:^{ - - if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { - [self.navigationController setNavigationBarHidden:YES animated:NO]; - } else { - self.navigationController.navigationBar.alpha = 0.0; - } - - [[UIApplication sharedApplication] setStatusBarHidden:YES]; - - } completion:^(BOOL finished) { - [self fitImageViewFrame]; - - }]; - } - -} - -#pragma mark - Helpers - -- (UIView *)firstAnnotationThatIsNotBlur { - for (BITImageAnnotation *annotation in self.imageView.subviews){ - if (![annotation isKindOfClass:[BITBlurImageAnnotation class]]){ - return annotation; - } - } - - return self.imageView; -} - -- (BOOL)canDrawNewAnnotation { - return [self.editingControls selectedSegmentIndex] != UISegmentedControlNoSegment; -} -@end diff --git a/Pods/HockeySDK/Classes/BITKeychainUtils.h b/Pods/HockeySDK/Classes/BITKeychainUtils.h deleted file mode 100644 index b7d7981..0000000 --- a/Pods/HockeySDK/Classes/BITKeychainUtils.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// SFHFKeychainUtils.h -// -// Created by Buzz Andersen on 10/20/08. -// Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. -// Copyright 2008 Sci-Fi Hi-Fi. 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. -// - -#import - - -@interface BITKeychainUtils : NSObject { - -} - -+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; -//uses the default kSecAttrAccessibleWhenUnlocked -+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error; -+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting accessibility:(CFTypeRef) accessibility error: (NSError **) error; -+ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; -+ (BOOL) purgeItemsForServiceName:(NSString *) serviceName error: (NSError **) error; - -@end diff --git a/Pods/HockeySDK/Classes/BITKeychainUtils.m b/Pods/HockeySDK/Classes/BITKeychainUtils.m deleted file mode 100644 index b3cbea2..0000000 --- a/Pods/HockeySDK/Classes/BITKeychainUtils.m +++ /dev/null @@ -1,307 +0,0 @@ -// -// SFHFKeychainUtils.m -// -// Created by Buzz Andersen on 10/20/08. -// Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. -// Copyright 2008 Sci-Fi Hi-Fi. 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. -// - -#import "BITKeychainUtils.h" -#import - -static NSString *BITKeychainUtilsErrorDomain = @"BITKeychainUtilsErrorDomain"; - -@implementation BITKeychainUtils - -+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { - if (!username || !serviceName) { - if (error != nil) { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; - } - return nil; - } - - if (error != nil) { - *error = nil; - } - - // Set up a query dictionary with the base query attributes: item type (generic), username, and service - - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, nil]; - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, nil]; - - NSMutableDictionary *query = [[NSMutableDictionary alloc] initWithObjects: objects forKeys: keys]; - - // First do a query for attributes, in case we already have a Keychain item with no password data set. - // One likely way such an incorrect item could have come about is due to the previous (incorrect) - // version of this code (which set the password as a generic attribute instead of password data). - - NSMutableDictionary *attributeQuery = [query mutableCopy]; - [attributeQuery setObject: (id) kCFBooleanTrue forKey:(__bridge_transfer id) kSecReturnAttributes]; - CFTypeRef attrResult = NULL; - OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery, &attrResult); -// NSDictionary *attributeResult = (__bridge_transfer NSDictionary *)attrResult; - if (attrResult) - CFRelease(attrResult); - - if (status != noErr) { - // No existing item found--simply return nil for the password - if (error != nil && status != errSecItemNotFound) { - //Only return an error if a real exception happened--not simply for "not found." - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; - } - - return nil; - } - - // We have an existing item, now query for the password data associated with it. - - NSMutableDictionary *passwordQuery = [query mutableCopy]; - [passwordQuery setObject: (id) kCFBooleanTrue forKey: (__bridge_transfer id) kSecReturnData]; - CFTypeRef resData = NULL; - status = SecItemCopyMatching((__bridge CFDictionaryRef) passwordQuery, (CFTypeRef *) &resData); - NSData *resultData = (__bridge_transfer NSData *)resData; - - if (status != noErr) { - if (status == errSecItemNotFound) { - // We found attributes for the item previously, but no password now, so return a special error. - // Users of this API will probably want to detect this error and prompt the user to - // re-enter their credentials. When you attempt to store the re-entered credentials - // using storeUsername:andPassword:forServiceName:updateExisting:error - // the old, incorrect entry will be deleted and a new one with a properly encrypted - // password will be added. - if (error != nil) { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -1999 userInfo: nil]; - } - } - else { - // Something else went wrong. Simply return the normal Keychain API error code. - if (error != nil) { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; - } - } - - return nil; - } - - NSString *password = nil; - - if (resultData) { - password = [[NSString alloc] initWithData: resultData encoding: NSUTF8StringEncoding]; - } - else { - // There is an existing item, but we weren't able to get password data for it for some reason, - // Possibly as a result of an item being incorrectly entered by the previous code. - // Set the -1999 error so the code above us can prompt the user again. - if (error != nil) { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -1999 userInfo: nil]; - } - } - - return password; -} - -+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error { - return [self storeUsername:username andPassword:password forServiceName:serviceName updateExisting:updateExisting accessibility:kSecAttrAccessibleAlways error:error]; -} - -+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting accessibility:(CFTypeRef) accessibility error: (NSError **) error -{ - if (!username || !password || !serviceName) - { - if (error != nil) - { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; - } - return NO; - } - - // See if we already have a password entered for these credentials. - NSError *getError = nil; - NSString *existingPassword = [BITKeychainUtils getPasswordForUsername: username andServiceName: serviceName error:&getError]; - - if ([getError code] == -1999) - { - // There is an existing entry without a password properly stored (possibly as a result of the previous incorrect version of this code. - // Delete the existing item before moving on entering a correct one. - - getError = nil; - - [self deleteItemForUsername: username andServiceName: serviceName error: &getError]; - - if ([getError code] != noErr) - { - if (error != nil) - { - *error = getError; - } - return NO; - } - } - else if ([getError code] != noErr) - { - if (error != nil) - { - *error = getError; - } - return NO; - } - - if (error != nil) - { - *error = nil; - } - - OSStatus status = noErr; - - if (existingPassword) - { - // We have an existing, properly entered item with a password. - // Update the existing item. - - if (![existingPassword isEqualToString:password] && updateExisting) - { - //Only update if we're allowed to update existing. If not, simply do nothing. - - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, - kSecAttrService, - kSecAttrLabel, - kSecAttrAccount, - kSecAttrAccessible, - nil]; - - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, - serviceName, - serviceName, - username, - accessibility, - nil]; - - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; - - status = SecItemUpdate((__bridge CFDictionaryRef) query, (__bridge CFDictionaryRef) [NSDictionary dictionaryWithObject: [password dataUsingEncoding: NSUTF8StringEncoding] forKey: (__bridge_transfer NSString *) kSecValueData]); - } - } - else - { - // No existing entry (or an existing, improperly entered, and therefore now - // deleted, entry). Create a new entry. - - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, - kSecAttrService, - kSecAttrLabel, - kSecAttrAccount, - kSecValueData, - kSecAttrAccessible, - nil]; - - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, - serviceName, - serviceName, - username, - [password dataUsingEncoding: NSUTF8StringEncoding], - accessibility, - nil]; - - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; - - status = SecItemAdd((__bridge CFDictionaryRef) query, NULL); - } - - if (error != nil && status != noErr) - { - // Something went wrong with adding the new item. Return the Keychain error code. - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; - - return NO; - } - - return YES; -} - -+ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error -{ - if (!username || !serviceName) - { - if (error != nil) - { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; - } - return NO; - } - - if (error != nil) - { - *error = nil; - } - - NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, kSecReturnAttributes, nil]; - NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, kCFBooleanTrue, nil]; - - NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; - - OSStatus status = SecItemDelete((__bridge CFDictionaryRef) query); - - if (error != nil && status != noErr) - { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; - - return NO; - } - - return YES; -} - -+ (BOOL) purgeItemsForServiceName:(NSString *) serviceName error: (NSError **) error { - if (!serviceName) - { - if (error != nil) - { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; - } - return NO; - } - - if (error != nil) - { - *error = nil; - } - - NSMutableDictionary *searchData = [NSMutableDictionary new]; - [searchData setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; - [searchData setObject:serviceName forKey:(__bridge id)kSecAttrService]; - - OSStatus status = SecItemDelete((__bridge CFDictionaryRef)searchData); - - if (error != nil && status != noErr) - { - *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; - - return NO; - } - - return YES; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h deleted file mode 100644 index 0249579..0000000 --- a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITImageAnnotation.h" - -@interface BITRectangleImageAnnotation : BITImageAnnotation - -@end diff --git a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m deleted file mode 100644 index 60e1230..0000000 --- a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Author: Moritz Haarmann - * - * Copyright (c) 2012-2014 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. - */ - -#import "BITRectangleImageAnnotation.h" - -@interface BITRectangleImageAnnotation() - -@property (nonatomic, strong) CAShapeLayer *shapeLayer; -@property (nonatomic, strong) CAShapeLayer *strokeLayer; - - -@end - -@implementation BITRectangleImageAnnotation - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.shapeLayer = [CAShapeLayer layer]; - self.shapeLayer.strokeColor = [UIColor redColor].CGColor; - self.shapeLayer.lineWidth = 5; - self.shapeLayer.fillColor = [UIColor clearColor].CGColor; - - self.strokeLayer = [CAShapeLayer layer]; - self.strokeLayer.strokeColor = [UIColor whiteColor].CGColor; - self.strokeLayer.lineWidth = 10; - self.strokeLayer.fillColor = [UIColor clearColor].CGColor; - [self.layer addSublayer:self.strokeLayer]; - - [self.layer addSublayer:self.shapeLayer]; - - } - return self; -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - self.shapeLayer.frame = self.bounds; - self.shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10].CGPath; - - - self.strokeLayer.frame = self.bounds; - self.strokeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10].CGPath; - - CGFloat lineWidth = MAX(self.frame.size.width / 10.0f,10); - - [CATransaction begin]; - [CATransaction setAnimationDuration:0]; - self.strokeLayer.lineWidth = lineWidth/1.5f; - self.shapeLayer.lineWidth = lineWidth / 3.0f; - - [CATransaction commit]; -} - -- (BOOL)resizable { - return YES; -} - - -@end diff --git a/Pods/HockeySDK/Classes/BITStoreButton.h b/Pods/HockeySDK/Classes/BITStoreButton.h deleted file mode 100644 index eb60781..0000000 --- a/Pods/HockeySDK/Classes/BITStoreButton.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - - -#import - -// defines a button action set (data container) -@interface BITStoreButtonData : NSObject - -+ (id)dataWithLabel:(NSString*)aLabel enabled:(BOOL)flag; - -@property (nonatomic, copy) NSString *label; -@property (nonatomic, assign, getter=isEnabled) BOOL enabled; - -@end - - -@class BITStoreButton; -@protocol BITStoreButtonDelegate -- (void)storeButtonFired:(BITStoreButton *)button; -@end - - -#ifndef __IPHONE_6_1 -#define __IPHONE_6_1 60100 -#endif - -/** - * Button style depending on the iOS version - */ -typedef NS_ENUM(NSUInteger, BITStoreButtonStyle) { - /** - * Default is iOS 6 style - */ - BITStoreButtonStyleDefault = 0, - /** - * Draw buttons in the iOS 7 style - */ - BITStoreButtonStyleOS7 = 1 -}; - - -// Simulate the Payment Button from the AppStore -// The interface is flexible, so there is now fixed order -@interface BITStoreButton : UIButton - -- (instancetype)initWithFrame:(CGRect)frame; -- (instancetype)initWithPadding:(CGPoint)padding style:(BITStoreButtonStyle)style; - -// action delegate -@property (nonatomic, weak) id buttonDelegate; - -// change the button layer -@property (nonatomic, strong) BITStoreButtonData *buttonData; -- (void)setButtonData:(BITStoreButtonData *)aButtonData animated:(BOOL)animated; - -// align helper -@property (nonatomic, assign) CGPoint customPadding; - -// align helper -@property (nonatomic, assign) BITStoreButtonStyle style; - - -- (void)alignToSuperview; - -@end diff --git a/Pods/HockeySDK/Classes/BITStoreButton.m b/Pods/HockeySDK/Classes/BITStoreButton.m deleted file mode 100644 index b27281d..0000000 --- a/Pods/HockeySDK/Classes/BITStoreButton.m +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - - -#import "BITStoreButton.h" -#import "HockeySDKPrivate.h" -#import - -#define BIT_MIN_HEIGHT 25.0f -#define BIT_MAX_WIDTH 120.0f -#define BIT_PADDING 12.0f -#define kDefaultButtonAnimationTime 0.25f - - -@implementation BITStoreButtonData - -#pragma mark - NSObject - -- (instancetype)initWithLabel:(NSString*)aLabel enabled:(BOOL)flag { - if ((self = [super init])) { - self.label = aLabel; - self.enabled = flag; - } - return self; -} - -+ (id)dataWithLabel:(NSString*)aLabel enabled:(BOOL)flag { - return [[[self class] alloc] initWithLabel:aLabel enabled:flag]; -} - -@end - - -@implementation BITStoreButton { - CALayer *_defaultBorderLayer; - CALayer *_inActiveBorderLayer; -} - -#pragma mark - private - -- (void)buttonPressed:(id)sender { - [_buttonDelegate storeButtonFired:self]; -} - -- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { - // show text again, but only if animation did finish (or else another animation is on the way) - if ([finished boolValue]) { - [self setTitle:self.buttonData.label forState:UIControlStateNormal]; - } -} - -- (void)updateButtonAnimated:(BOOL)animated { - if (animated) { - // hide text, then start animation - [self setTitle:@"" forState:UIControlStateNormal]; - [UIView beginAnimations:@"storeButtonUpdate" context:nil]; - [UIView setAnimationBeginsFromCurrentState:YES]; - [UIView setAnimationDuration:kDefaultButtonAnimationTime]; - [UIView setAnimationDelegate:self]; - [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; - } else { - [self setTitle:self.buttonData.label forState:UIControlStateNormal]; - } - - self.enabled = self.buttonData.isEnabled; - - // show white or gray text, depending on the state - if (self.buttonData.isEnabled) { - if (self.style == BITStoreButtonStyleDefault) { - [self setTitleColor:BIT_RGBCOLOR(106, 106, 106) forState:UIControlStateNormal]; - } else { - [self setTitleColor:BIT_RGBCOLOR(35, 111, 251) forState:UIControlStateNormal]; - [_defaultBorderLayer setHidden:NO]; - [_inActiveBorderLayer setHidden:YES]; - } - } else { - [self setTitleColor:BIT_RGBCOLOR(148, 150, 151) forState:UIControlStateNormal]; - if (self.style == BITStoreButtonStyleOS7) { - [_defaultBorderLayer setHidden:YES]; - [_inActiveBorderLayer setHidden:NO]; - } - } - - // calculate optimal new size - CGSize sizeThatFits = [self sizeThatFits:CGSizeZero]; - - // move sublayer (can't be animated explcitely) - for (CALayer *aLayer in self.layer.sublayers) { - [CATransaction begin]; - - if (animated) { - [CATransaction setAnimationDuration:kDefaultButtonAnimationTime]; - [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; - } else { - // frame is calculated and explicitly animated. so we absolutely need kCATransactionDisableActions - [CATransaction setValue:[NSNumber numberWithBool:YES] forKey:kCATransactionDisableActions]; - } - - CGRect newFrame = aLayer.frame; - newFrame.size.width = sizeThatFits.width; - aLayer.frame = newFrame; - - [CATransaction commit]; - } - - // set outer frame changes - self.titleEdgeInsets = UIEdgeInsetsMake(2.0, self.titleEdgeInsets.left, 0.0, 0.0); - [self alignToSuperview]; - - if (animated) { - [UIView commitAnimations]; - } -} - -- (void)alignToSuperview { - [self sizeToFit]; - if (self.superview) { - CGRect cr = self.frame; - cr.origin.y = _customPadding.y; - cr.origin.x = self.superview.frame.size.width - cr.size.width - _customPadding.x * 2; - self.frame = cr; - } -} - - -#pragma mark - NSObject - -- (instancetype)initWithFrame:(CGRect)frame { - if ((self = [super initWithFrame:frame])) { - self.layer.needsDisplayOnBoundsChange = YES; - - // setup title label - [self.titleLabel setFont:[UIFont boldSystemFontOfSize:13.0]]; - - // register for touch events - [self addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; - - [self bringSubviewToFront:self.titleLabel]; - } - return self; -} - -- (instancetype)initWithPadding:(CGPoint)padding style:(BITStoreButtonStyle)style { - CGRect frame = CGRectMake(0, 0, 40, BIT_MIN_HEIGHT); - if ((self = [self initWithFrame:frame])) { - _customPadding = padding; - _style = style; - - if (style == BITStoreButtonStyleDefault) { - // main gradient layer - CAGradientLayer *gradient = [CAGradientLayer layer]; - gradient.colors = @[(id)BIT_RGBCOLOR(243, 243, 243).CGColor, (id)BIT_RGBCOLOR(222, 222, 222).CGColor]; - gradient.locations = @[[NSNumber numberWithFloat:0.0], [NSNumber numberWithFloat:1.0]]; - gradient.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); - gradient.cornerRadius = 2.5; - gradient.needsDisplayOnBoundsChange = YES; - [self.layer addSublayer:gradient]; - } - - // border layers for more sex! - _defaultBorderLayer = [CALayer layer]; - if (style == BITStoreButtonStyleDefault) { - _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(191, 191, 191) CGColor]; - } else { - _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(35, 111, 251) CGColor]; - } - _defaultBorderLayer.borderWidth = 1.0; - _defaultBorderLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); - _defaultBorderLayer.cornerRadius = 2.5; - _defaultBorderLayer.needsDisplayOnBoundsChange = YES; - [self.layer addSublayer:_defaultBorderLayer]; - - if (style == BITStoreButtonStyleOS7) { - _inActiveBorderLayer = [CALayer layer]; - _inActiveBorderLayer.borderColor = [BIT_RGBCOLOR(148, 150, 151) CGColor]; - _inActiveBorderLayer.borderWidth = 1.0; - _inActiveBorderLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); - _inActiveBorderLayer.cornerRadius = 2.5; - _inActiveBorderLayer.needsDisplayOnBoundsChange = YES; - [self.layer addSublayer:_inActiveBorderLayer]; - [_inActiveBorderLayer setHidden:YES]; - } - - [self bringSubviewToFront:self.titleLabel]; - } - return self; -} - - - -#pragma mark - UIView - -- (CGSize)sizeThatFits:(CGSize)size { - CGSize constr = (CGSize){.height = self.frame.size.height, .width = BIT_MAX_WIDTH}; - CGSize newSize; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - if ([self.buttonData.label respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { - CGRect calculatedRect = [self.buttonData.label boundingRectWithSize:constr - options:NSStringDrawingUsesFontLeading - attributes:@{NSFontAttributeName:self.titleLabel.font} - context:nil]; - newSize = calculatedRect.size; - } else { -#endif -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - newSize = [self.buttonData.label sizeWithFont:self.titleLabel.font - constrainedToSize:constr - lineBreakMode:kBITLineBreakModeMiddleTruncation]; -#pragma clang diagnostic pop -#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - } -#endif - - CGFloat newWidth = newSize.width + (BIT_PADDING * 2); - CGFloat newHeight = BIT_MIN_HEIGHT > newSize.height ? BIT_MIN_HEIGHT : newSize.height; - - CGSize sizeThatFits = CGSizeMake(newWidth, newHeight); - return sizeThatFits; -} - -- (void)setFrame:(CGRect)aRect { - [super setFrame:aRect]; - - // copy frame changes to sublayers (but watch out for NaN's) - for (CALayer *aLayer in self.layer.sublayers) { - CGRect rect = aLayer.frame; - rect.size.width = self.frame.size.width; - rect.size.height = self.frame.size.height; - aLayer.frame = rect; - [aLayer layoutIfNeeded]; - } -} - - -#pragma mark - Properties - -- (void)setButtonData:(BITStoreButtonData *)aButtonData { - [self setButtonData:aButtonData animated:NO]; -} - -- (void)setButtonData:(BITStoreButtonData *)aButtonData animated:(BOOL)animated { - if (_buttonData != aButtonData) { - _buttonData = aButtonData; - } - - [self updateButtonAnimated:animated]; -} - -@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManager.h b/Pods/HockeySDK/Classes/BITStoreUpdateManager.h deleted file mode 100644 index 1b081b7..0000000 --- a/Pods/HockeySDK/Classes/BITStoreUpdateManager.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - - -#import -#import "BITHockeyBaseManager.h" - - -/** - * Defines the update check intervals - */ -typedef NS_ENUM(NSInteger, BITStoreUpdateSetting) { - /** - * Check every day - */ - BITStoreUpdateCheckDaily = 0, - /** - * Check every week - */ - BITStoreUpdateCheckWeekly = 1, - /** - * Check manually - */ - BITStoreUpdateCheckManually = 2 -}; - -@protocol BITStoreUpdateManagerDelegate; - -/** - The store update manager module. - - This is the HockeySDK module for handling app updates when having your app released in the App Store. - By default the module uses the current users locale to define the app store to check for updates. You - can modify this using the `countryCode` property. See the property documentation for details on its usage. - - When an update is detected, this module will show an alert asking the user if he/she wants to update or - ignore this version. If update was chosen, it will open the apps page in the app store app. - - You need to enable this module using `[BITHockeyManager enableStoreUpdateManager]` if you want to use this - feature. By default this module is disabled! - - When this module is enabled and **NOT** running in an App Store build/environment, it won't do any checks! - - The `BITStoreUpdateManagerDelegate` protocol informs the app about new detected app versions. - - @warning This module can **NOT** check if the current device and OS version match the minimum requirements of - the new app version! - - */ - -@interface BITStoreUpdateManager : BITHockeyBaseManager - -///----------------------------------------------------------------------------- -/// @name Update Checking -///----------------------------------------------------------------------------- - -/** - When to check for new updates. - - Defines when a the SDK should check if there is a new update available on the - server. This must be assigned one of the following, see `BITStoreUpdateSetting`: - - - `BITStoreUpdateCheckDaily`: Once a day - - `BITStoreUpdateCheckWeekly`: Once a week - - `BITStoreUpdateCheckManually`: Manually - - **Default**: BITStoreUpdateCheckWeekly - - @warning When setting this to `BITStoreUpdateCheckManually` you need to either - invoke the update checking process yourself with `checkForUpdate` somehow, e.g. by - proving an update check button for the user or integrating the Update View into your - user interface. - @see BITStoreUpdateSetting - @see countryCode - @see checkForUpdateOnLaunch - @see checkForUpdate - */ -@property (nonatomic, assign) BITStoreUpdateSetting updateSetting; - - -/** - Defines the store country the app is always available in, otherwise uses the users locale - - If this value is not defined, then it uses the device country if the current locale. - - If you are pre-defining a country and are releasing a new version on a specific date, - it can happen that users get an alert but the update is not yet available in their country! - - But if a user downloaded the app from another appstore than the locale is set and the app is not - available in the locales app store, then the user will never receive an update notification! - - More information about possible country codes is available here: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 - - @see updateSetting - @see checkForUpdateOnLaunch - @see checkForUpdate - */ -@property (nonatomic, strong) NSString *countryCode; - - -/** - Flag that determines whether the automatic update checks should be done. - - If this is enabled the update checks will be performed automatically depending on the - `updateSetting` property. If this is disabled the `updateSetting` property will have - no effect, and checking for updates is totally up to be done by yourself. - - *Default*: _YES_ - - @warning When setting this to `NO` you need to invoke update checks yourself! - @see updateSetting - @see countryCode - @see checkForUpdate - */ -@property (nonatomic, assign, getter=isCheckingForUpdateOnLaunch) BOOL checkForUpdateOnLaunch; - - -///----------------------------------------------------------------------------- -/// @name User Interface -///----------------------------------------------------------------------------- - - -/** - Flag that determines if the integrated update alert should be used - - If enabled, the integrated UIAlert based update notification will be used to inform - the user about a new update being available in the App Store. - - If disabled, you need to implement the `BITStoreUpdateManagerDelegate` protocol with - the method `[BITStoreUpdateManagerDelegate detectedUpdateFromStoreUpdateManager:newVersion:storeURL:]` - to be notified about new version and proceed yourself. - The manager will consider this identical to an `Ignore` user action using the alert - and not inform about this particular version any more, unless the app is updated - and this very same version shows up at a later time again as a new version. - - *Default*: _YES_ - - @warning If the HockeySDKResources bundle is missing in the application package, then the internal - update alert is also disabled and be treated identical to manually disabling this - property. - @see updateSetting - */ -@property (nonatomic, assign, getter=isUpdateUIEnabled) BOOL updateUIEnabled; - -///----------------------------------------------------------------------------- -/// @name Manual update checking -///----------------------------------------------------------------------------- - -/** - Check for an update - - Call this to trigger a check if there is a new update available on the HockeyApp servers. - - @see updateSetting - @see countryCode - @see checkForUpdateOnLaunch - */ -- (void)checkForUpdate; - - -@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManager.m b/Pods/HockeySDK/Classes/BITStoreUpdateManager.m deleted file mode 100644 index e420908..0000000 --- a/Pods/HockeySDK/Classes/BITStoreUpdateManager.m +++ /dev/null @@ -1,466 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - -#import - -#import "HockeySDKPrivate.h" -#import "BITHockeyHelper.h" - -#import "BITHockeyBaseManagerPrivate.h" -#import "BITStoreUpdateManagerPrivate.h" - - -@implementation BITStoreUpdateManager { - NSString *_newStoreVersion; - NSString *_appStoreURLString; - NSString *_currentUUID; - - BOOL _updateAlertShowing; - BOOL _lastCheckFailed; - - id _appDidBecomeActiveObserver; - id _networkDidBecomeReachableObserver; -} - - -#pragma mark - private - -- (void)reportError:(NSError *)error { - BITHockeyLog(@"ERROR: %@", [error localizedDescription]); - _lastCheckFailed = YES; -} - - -- (void)didBecomeActiveActions { - if ([self shouldCancelProcessing]) return; - - if ([self isCheckingForUpdateOnLaunch] && [self shouldAutoCheckForUpdates]) { - [self performSelector:@selector(checkForUpdateDelayed) withObject:nil afterDelay:1.0f]; - } -} - -#pragma mark - Observers - -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - if(nil == _appDidBecomeActiveObserver) { - _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } - if(nil == _networkDidBecomeReachableObserver) { - _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } -} - -- (void) unregisterObservers { - if(_appDidBecomeActiveObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; - _appDidBecomeActiveObserver = nil; - } - if(_networkDidBecomeReachableObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; - _networkDidBecomeReachableObserver = nil; - } -} - - -#pragma mark - Init - -- (instancetype)init { - if ((self = [super init])) { - _checkInProgress = NO; - _updateAvailable = NO; - _lastCheckFailed = NO; - _enableStoreUpdateManager = NO; - _updateAlertShowing = NO; - _updateUIEnabled = YES; - _newStoreVersion = nil; - _appStoreURLString = nil; - _currentUUID = [[self executableUUID] copy]; - _countryCode = nil; - - _mainBundle = [NSBundle mainBundle]; - _currentLocale = [NSLocale currentLocale]; - _userDefaults = [NSUserDefaults standardUserDefaults]; - - // set defaults - self.checkForUpdateOnLaunch = YES; - self.updateSetting = BITStoreUpdateCheckWeekly; - - if (!BITHockeyBundle()) { - NSLog(@"[HockeySDK] WARNING: %@ is missing, built in UI is deactivated!", BITHOCKEYSDK_BUNDLE); - } - } - return self; -} - -- (void)dealloc { - [self unregisterObservers]; -} - - -#pragma mark - Version - -- (NSString *)lastStoreVersion { - NSString *versionString = nil; - - if ([self.userDefaults objectForKey:kBITStoreUpdateLastStoreVersion]) { - // get the last saved version string from the app store - versionString = [self.userDefaults objectForKey:kBITStoreUpdateLastStoreVersion]; - } - - // if there is a UUID saved which doesn't match the current binary UUID - // then there is possibly a newer version in the store - NSString *lastSavedUUID = nil; - if ([self.userDefaults objectForKey:kBITStoreUpdateLastUUID]) { - lastSavedUUID = [self.userDefaults objectForKey:kBITStoreUpdateLastUUID]; - - if (lastSavedUUID && [lastSavedUUID length] > 0 && ![lastSavedUUID isEqualToString:_currentUUID]) { - // the UUIDs don't match, store the new one - [self.userDefaults setObject:_currentUUID forKey:kBITStoreUpdateLastUUID]; - - if (versionString) { - // a new version has been installed, reset everything - // so we set versionString to nil to simulate that this is the very run - [self.userDefaults removeObjectForKey:kBITStoreUpdateLastStoreVersion]; - versionString = nil; - } - - [self.userDefaults synchronize]; - } - } - - return versionString; -} - -- (BOOL)hasNewVersion:(NSDictionary *)dictionary { - _lastCheckFailed = YES; - - NSString *lastStoreVersion = [self lastStoreVersion]; - - if ([[dictionary objectForKey:@"results"] isKindOfClass:[NSArray class]] && - [(NSArray *)[dictionary objectForKey:@"results"] count] > 0 ) { - _lastCheckFailed = NO; - - _newStoreVersion = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"version"]; - _appStoreURLString = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"trackViewUrl"]; - - NSString *ignoredVersion = nil; - if ([self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]) { - ignoredVersion = [self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]; - BITHockeyLog(@"INFO: Ignored version: %@", ignoredVersion); - } - - if (!_newStoreVersion || !_appStoreURLString) { - return NO; - } else if (ignoredVersion && [ignoredVersion isEqualToString:_newStoreVersion]) { - return NO; - } else if (!lastStoreVersion) { - // this is the very first time we get a valid response and - // set the reference of the store result to be equal to the current installed version - // even though the current installed version could be older than the one in the app store - // but this ensures that we never have false alerts, since the version string in - // iTunes Connect doesn't have to match CFBundleVersion or CFBundleShortVersionString - // and even if it matches it is hard/impossible to 100% determine which one it is, - // since they could change at any time - [self.userDefaults setObject:_currentUUID forKey:kBITStoreUpdateLastUUID]; - [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateLastStoreVersion]; - [self.userDefaults synchronize]; - return NO; - } else { - BITHockeyLog(@"INFO: Compare new version string %@ with %@", _newStoreVersion, lastStoreVersion); - - NSComparisonResult comparisonResult = bit_versionCompare(_newStoreVersion, lastStoreVersion); - - if (comparisonResult == NSOrderedDescending) { - return YES; - } else { - return NO; - } - - } - } - - return NO; -} - - -#pragma mark - Time - -- (BOOL)shouldAutoCheckForUpdates { - BOOL checkForUpdate = NO; - - switch (self.updateSetting) { - case BITStoreUpdateCheckDaily: { - NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); - if (dateDiff != 0) - dateDiff = dateDiff / (60*60*24); - - checkForUpdate = (dateDiff >= 1); - break; - } - case BITStoreUpdateCheckWeekly: { - NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); - if (dateDiff != 0) - dateDiff = dateDiff / (60*60*24); - - checkForUpdate = (dateDiff >= 7); - break; - } - case BITStoreUpdateCheckManually: - checkForUpdate = NO; - break; - default: - break; - } - - return checkForUpdate; -} - - -#pragma mark - Private - -- (BOOL)shouldCancelProcessing { - if (![self isAppStoreEnvironment]) return YES; - if (![self isStoreUpdateManagerEnabled]) return YES; - return NO; -} - - -- (BOOL)processStoreResponseWithString:(NSString *)responseString { - if (!responseString) return NO; - - NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding]; - - NSError *error = nil; - NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; - - if (error) { - BITHockeyLog(@"ERROR: Invalid JSON string. %@", [error localizedDescription]); - return NO; - } - - // remember that we just checked the server - self.lastCheck = [NSDate date]; - - self.updateAvailable = [self hasNewVersion:json]; - - BITHockeyLog(@"INFO: Update available: %i", self.updateAvailable); - - if (_lastCheckFailed) { - BITHockeyLog(@"ERROR: Last check failed"); - return NO; - } - - if ([self isUpdateAvailable]) { - if (self.delegate && [self.delegate respondsToSelector:@selector(detectedUpdateFromStoreUpdateManager:newVersion:storeURL:)]) { - [self.delegate detectedUpdateFromStoreUpdateManager:self newVersion:_newStoreVersion storeURL:[NSURL URLWithString:_appStoreURLString]]; - } - - if (self.updateUIEnabled && BITHockeyBundle()) { - [self showUpdateAlert]; - } else { - // Ignore this version - [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; - [self.userDefaults synchronize]; - } - } - - return YES; -} - - -#pragma mark - Update Check - -- (void)checkForUpdateManual:(BOOL)manual { - if ([self shouldCancelProcessing]) return; - - if (self.isCheckInProgress) return; - self.checkInProgress = YES; - - // do we need to update? - if (!manual && ![self shouldAutoCheckForUpdates]) { - BITHockeyLog(@"INFO: Update check not needed right now"); - self.checkInProgress = NO; - return; - } - - NSString *country = @""; - if (self.countryCode) { - country = [NSString stringWithFormat:@"&country=%@", self.countryCode]; - } else { - // if the local is by any chance the systemLocale, it could happen that the NSLocaleCountryCode returns nil! - if ([(NSDictionary *)self.currentLocale objectForKey:NSLocaleCountryCode]) { - country = [NSString stringWithFormat:@"&country=%@", [(NSDictionary *)self.currentLocale objectForKey:NSLocaleCountryCode]]; - } else { - // don't check, just to be save - BITHockeyLog(@"ERROR: Locale returned nil, can't determine the store to use!"); - self.checkInProgress = NO; - return; - } - } - - NSString *appBundleIdentifier = [self.mainBundle objectForInfoDictionaryKey:@"CFBundleIdentifier"]; - - NSString *url = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@%@", - bit_URLEncodedString(appBundleIdentifier), - country]; - - BITHockeyLog(@"INFO: Sending request to %@", url); - - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; - [request setHTTPMethod:@"GET"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *error){ - self.checkInProgress = NO; - - if (error) { - [self reportError:error]; - } else if ([responseData length]) { - NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding]; - BITHockeyLog(@"INFO: Received API response: %@", responseString); - - if (!responseString || ![responseString dataUsingEncoding:NSUTF8StringEncoding]) { - return; - } - - [self processStoreResponseWithString:responseString]; - } - }]; -} - -- (void)checkForUpdateDelayed { - [self checkForUpdateManual:NO]; -} - -- (void)checkForUpdate { - [self checkForUpdateManual:YES]; -} - - -// begin the startup process -- (void)startManager { - if ([self shouldCancelProcessing]) return; - - BITHockeyLog(@"INFO: Start UpdateManager"); - - if ([self.userDefaults objectForKey:kBITStoreUpdateDateOfLastCheck]) { - self.lastCheck = [self.userDefaults objectForKey:kBITStoreUpdateDateOfLastCheck]; - } - - if (!_lastCheck) { - self.lastCheck = [NSDate distantPast]; - } - - [self registerObservers]; - - // we are already delayed, so the notification already came in and this won't invoked twice - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: - [self didBecomeActiveActions]; - break; - case UIApplicationStateBackground: - case UIApplicationStateInactive: - // do nothing, wait for active state - break; - } -} - - -#pragma mark - Alert - -- (void)showUpdateAlert { - if (!_updateAlertShowing) { - NSString *versionString = [NSString stringWithFormat:@"%@ %@", BITHockeyLocalizedString(@"UpdateVersion"), _newStoreVersion]; - - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") - message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertTextWithAppVersion"), versionString] - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"UpdateIgnore") - otherButtonTitles:BITHockeyLocalizedString(@"UpdateRemindMe"), BITHockeyLocalizedString(@"UpdateShow"), nil - ]; - [alertView show]; - _updateAlertShowing = YES; - } -} - - -#pragma mark - Properties - -- (void)setLastCheck:(NSDate *)aLastCheck { - if (_lastCheck != aLastCheck) { - _lastCheck = aLastCheck; - - [self.userDefaults setObject:self.lastCheck forKey:kBITStoreUpdateDateOfLastCheck]; - [self.userDefaults synchronize]; - } -} - -#pragma mark - UIAlertViewDelegate - -// invoke the selected action from the action sheet for a location element -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - _updateAlertShowing = NO; - if (buttonIndex == [alertView cancelButtonIndex]) { - // Ignore - [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; - [self.userDefaults synchronize]; - } else if (buttonIndex == [alertView firstOtherButtonIndex]) { - // Remind button - } else if (buttonIndex == [alertView firstOtherButtonIndex] + 1) { - // Show button - [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; - [self.userDefaults synchronize]; - - if (_appStoreURLString) { - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_appStoreURLString]]; - } else { - BITHockeyLog(@"WARNING: The app store page couldn't be opened, since we did not get a valid URL from the store API."); - } - } -} - -@end - -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h b/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h deleted file mode 100644 index 0d629dc..0000000 --- a/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - -#import - -@class BITStoreUpdateManager; - -/** - The `BITStoreUpdateManagerDelegate` formal protocol defines methods for - more interaction with `BITStoreUpdateManager`. - */ - -@protocol BITStoreUpdateManagerDelegate - -@optional - - -///----------------------------------------------------------------------------- -/// @name Update information -///----------------------------------------------------------------------------- - -/** Informs which new version has been reported to be available - - @warning If this is invoked with a simulated new version, the storeURL could be _NIL_ if the current builds - bundle identifier is different to the bundle identifier used in the app store build. - @param storeUpdateManager The `BITStoreUpdateManager` instance invoking this delegate - @param newVersion The new version string reported by the App Store - @param storeURL The App Store URL for this app that could be invoked to let them perform the update. - */ --(void)detectedUpdateFromStoreUpdateManager:(BITStoreUpdateManager *)storeUpdateManager newVersion:(NSString *)newVersion storeURL:(NSURL *)storeURL; - - - -@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h b/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h deleted file mode 100644 index c614f55..0000000 --- a/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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. - */ - - -#if HOCKEYSDK_FEATURE_STORE_UPDATES - -@interface BITStoreUpdateManager () { -} - -///----------------------------------------------------------------------------- -/// @name Delegate -///----------------------------------------------------------------------------- - -/** - Sets the optional `BITStoreUpdateManagerDelegate` delegate. - */ -@property (nonatomic, weak) id delegate; - - -// is an update available? -@property (nonatomic, assign, getter=isUpdateAvailable) BOOL updateAvailable; - -// are we currently checking for updates? -@property (nonatomic, assign, getter=isCheckInProgress) BOOL checkInProgress; - -@property (nonatomic, strong) NSDate *lastCheck; - -// used by BITHockeyManager if disable status is changed -@property (nonatomic, getter = isStoreUpdateManagerEnabled) BOOL enableStoreUpdateManager; - -#pragma mark - For Testing - -@property (nonatomic, strong) NSBundle *mainBundle; -@property (nonatomic, strong) NSLocale *currentLocale; -@property (nonatomic, strong) NSUserDefaults *userDefaults; - -- (BOOL)shouldAutoCheckForUpdates; -- (BOOL)hasNewVersion:(NSDictionary *)dictionary; -- (BOOL)processStoreResponseWithString:(NSString *)responseString; -- (void)checkForUpdateDelayed; - -@end - -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateManager.h b/Pods/HockeySDK/Classes/BITUpdateManager.h deleted file mode 100644 index 8a4e9ba..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateManager.h +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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. - */ - - -#import "BITHockeyBaseManager.h" - - -/** - * Update check interval - */ -typedef NS_ENUM (NSUInteger, BITUpdateSetting) { - /** - * On every startup or or when the app comes to the foreground - */ - BITUpdateCheckStartup = 0, - /** - * Once a day - */ - BITUpdateCheckDaily = 1, - /** - * Manually - */ - BITUpdateCheckManually = 2 -}; - -@protocol BITUpdateManagerDelegate; - -@class BITAppVersionMetaInfo; -@class BITUpdateViewController; - -/** - The update manager module. - - This is the HockeySDK module for handling app updates when using Ad-Hoc or Enterprise provisioning profiles. - This module handles version updates, presents update and version information in a App Store like user interface, - collects usage information and provides additional authorization options when using Ad-Hoc provisioning profiles. - - This module automatically disables itself when running in an App Store build by default! - - The protocol `BITUpdateManagerDelegate` provides delegates to inform about events and adjust a few behaviors. - - To use the server side restriction feature, to provide updates only to specific users, you need to setup the - `BITAuthenticator` class. This allows the update request to tell the server which user is using the app on the - current device and then let the server decide which updates the device may see. - - */ - -@interface BITUpdateManager : BITHockeyBaseManager - -///----------------------------------------------------------------------------- -/// @name Update Checking -///----------------------------------------------------------------------------- - -// see HockeyUpdateSetting-enum. Will be saved in user defaults. -// default value: HockeyUpdateCheckStartup -/** - When to check for new updates. - - Defines when a the SDK should check if there is a new update available on the - server. This must be assigned one of the following, see `BITUpdateSetting`: - - - `BITUpdateCheckStartup`: On every startup or or when the app comes to the foreground - - `BITUpdateCheckDaily`: Once a day - - `BITUpdateCheckManually`: Manually - - When running the app from the App Store, this setting is ignored. - - **Default**: BITUpdateCheckStartup - - @warning When setting this to `BITUpdateCheckManually` you need to either - invoke the update checking process yourself with `checkForUpdate` somehow, e.g. by - proving an update check button for the user or integrating the Update View into your - user interface. - @see BITUpdateSetting - @see checkForUpdateOnLaunch - @see checkForUpdate - */ -@property (nonatomic, assign) BITUpdateSetting updateSetting; - - -/** - Flag that determines whether the automatic update checks should be done. - - If this is enabled the update checks will be performed automatically depending on the - `updateSetting` property. If this is disabled the `updateSetting` property will have - no effect, and checking for updates is totally up to be done by yourself. - - When running the app from the App Store, this setting is ignored. - - *Default*: _YES_ - - @warning When setting this to `NO` you need to invoke update checks yourself! - @see updateSetting - @see checkForUpdate - */ -@property (nonatomic, assign, getter=isCheckForUpdateOnLaunch) BOOL checkForUpdateOnLaunch; - - -// manually start an update check -/** - Check for an update - - Call this to trigger a check if there is a new update available on the HockeyApp servers. - - When running the app from the App Store, this setting is ignored. - - @see updateSetting - @see checkForUpdateOnLaunch - */ -- (void)checkForUpdate; - - -///----------------------------------------------------------------------------- -/// @name Update Notification -///----------------------------------------------------------------------------- - -/** - Flag that determines if updates alert should be repeatedly shown - - If enabled the update alert shows on every startup and whenever the app becomes active, - until the update is installed. - If disabled the update alert is only shown once ever and it is up to you to provide an - alternate way for the user to navigate to the update UI or update in another way. - - When running the app from the App Store, this setting is ignored. - - *Default*: _YES_ - */ -@property (nonatomic, assign) BOOL alwaysShowUpdateReminder; - - -/** - Flag that determines if the update alert should show an direct install option - - If enabled the update alert shows an additional option which allows to invoke the update - installation process directly, instead of viewing the update UI first. - By default the alert only shows a `Show` and `Ignore` option. - - When running the app from the App Store, this setting is ignored. - - *Default*: _NO_ - */ -@property (nonatomic, assign, getter=isShowingDirectInstallOption) BOOL showDirectInstallOption; - - -///----------------------------------------------------------------------------- -/// @name Expiry -///----------------------------------------------------------------------------- - -/** - Expiry date of the current app version - - If set, the app will get unusable at the given date by presenting a blocking view on - top of the apps UI so that no interaction is possible. To present a custom you, check - the documentation of the - `[BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:]` delegate. - - Once the expiry date is reached, the app will no longer check for updates or - send any usage data to the server! - - When running the app from the App Store, this setting is ignored. - - *Default*: nil - @see disableUpdateCheckOptionWhenExpired - @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] - @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] - @warning This only works when using Ad-Hoc provisioning profiles! - */ -@property (nonatomic, strong) NSDate *expiryDate; - -/** - Disable the update check button from expiry screen or alerts - - If do not want your users to be able to check for updates once a version is expired, - then enable this property. - - If this is not enabled, the users will be able to check for updates and install them - if any is available for the current device. - - *Default*: NO - @see expiryDate - @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] - @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] - @warning This only works when using Ad-Hoc provisioning profiles! -*/ -@property (nonatomic) BOOL disableUpdateCheckOptionWhenExpired; - - -///----------------------------------------------------------------------------- -/// @name User Interface -///----------------------------------------------------------------------------- - - -/** - Present the modal update user interface. - */ -- (void)showUpdateView; - - -/** - Create an update view - - @param modal Return a view ready for modal presentation with integrated navigation bar - @return BITUpdateViewController The update user interface view controller, - e.g. to push it onto a navigation stack. - */ -- (BITUpdateViewController *)hockeyViewController:(BOOL)modal; - - -@end diff --git a/Pods/HockeySDK/Classes/BITUpdateManager.m b/Pods/HockeySDK/Classes/BITUpdateManager.m deleted file mode 100644 index 4767b76..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateManager.m +++ /dev/null @@ -1,1079 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_UPDATES - -#import - -#import "HockeySDKPrivate.h" -#import "BITHockeyHelper.h" - -#import "BITHockeyBaseManagerPrivate.h" -#import "BITUpdateManagerPrivate.h" -#import "BITUpdateViewControllerPrivate.h" -#import "BITAppVersionMetaInfo.h" - -typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) { - BITUpdateAlertViewTagDefaultUpdate = 0, - BITUpdateAlertViewTagNeverEndingAlertView = 1, - BITUpdateAlertViewTagMandatoryUpdate = 2, -}; - -@implementation BITUpdateManager { - NSString *_currentAppVersion; - - BITUpdateViewController *_currentHockeyViewController; - - BOOL _dataFound; - BOOL _showFeedback; - BOOL _updateAlertShowing; - BOOL _lastCheckFailed; - BOOL _sendUsageData; - - NSFileManager *_fileManager; - NSString *_updateDir; - NSString *_usageDataFile; - - id _appDidBecomeActiveObserver; - id _appDidEnterBackgroundObserver; - id _networkDidBecomeReachableObserver; - - BOOL _didStartUpdateProcess; - BOOL _didEnterBackgroundState; - - BOOL _firstStartAfterInstall; - - NSNumber *_versionID; - NSString *_versionUUID; - NSString *_uuid; - - NSString *_blockingScreenMessage; - NSDate *_lastUpdateCheckFromBlockingScreen; -} - - -#pragma mark - private - -- (void)reportError:(NSError *)error { - BITHockeyLog(@"ERROR: %@", [error localizedDescription]); - _lastCheckFailed = YES; - - // only show error if we enable that - if (_showFeedback) { - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateError") - message:[error localizedDescription] - delegate:nil - cancelButtonTitle:BITHockeyLocalizedString(@"OK") otherButtonTitles:nil]; - [alert show]; - _showFeedback = NO; - } -} - - -- (void)didBecomeActiveActions { - if ([self isUpdateManagerDisabled]) return; - - // this is a special iOS 8 case for handling the case that the app is not moved to background - // once the users accepts the iOS install alert button. Without this, the install process doesn't start. - // - // Important: The iOS dialog offers the user to deny installation, we can't find out which button - // was tapped, so we assume the user agreed - if (_didStartUpdateProcess) { - _didStartUpdateProcess = NO; - - // we only care about iOS 8 or later - if (bit_isPreiOS8Environment()) return; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(updateManagerWillExitApp:)]) { - [self.delegate updateManagerWillExitApp:self]; - } - - // for now we simply exit the app, later SDK versions might optionally show an alert with localized text - // describing the user to press the home button to start the update process - exit(0); - } - - if (!_didEnterBackgroundState) return; - - _didEnterBackgroundState = NO; - - [self checkExpiryDateReached]; - if ([self expiryDateReached]) return; - - [self startUsage]; - - if ([self isCheckForUpdateOnLaunch] && [self shouldCheckForUpdates]) { - [self checkForUpdate]; - } -} - -- (void)didEnterBackgroundActions { - _didEnterBackgroundState = NO; - - if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { - _didEnterBackgroundState = YES; - } -} - - -#pragma mark - Observers -- (void) registerObservers { - __weak typeof(self) weakSelf = self; - if(nil == _appDidEnterBackgroundObserver) { - _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didEnterBackgroundActions]; - }]; - } - if(nil == _appDidBecomeActiveObserver) { - _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } - if(nil == _networkDidBecomeReachableObserver) { - _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification - object:nil - queue:NSOperationQueue.mainQueue - usingBlock:^(NSNotification *note) { - typeof(self) strongSelf = weakSelf; - [strongSelf didBecomeActiveActions]; - }]; - } -} - -- (void) unregisterObservers { - if(_appDidEnterBackgroundObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; - _appDidEnterBackgroundObserver = nil; - } - if(_appDidBecomeActiveObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; - _appDidBecomeActiveObserver = nil; - } - if(_networkDidBecomeReachableObserver) { - [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; - _networkDidBecomeReachableObserver = nil; - } -} - - -#pragma mark - Expiry - -- (BOOL)expiryDateReached { - if ([self isAppStoreEnvironment]) return NO; - - if (_expiryDate) { - NSDate *currentDate = [NSDate date]; - if ([currentDate compare:_expiryDate] != NSOrderedAscending) - return YES; - } - - return NO; -} - -- (void)checkExpiryDateReached { - if (![self expiryDateReached]) return; - - BOOL shouldShowDefaultAlert = YES; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(shouldDisplayExpiryAlertForUpdateManager:)]) { - shouldShowDefaultAlert = [self.delegate shouldDisplayExpiryAlertForUpdateManager:self]; - } - - if (shouldShowDefaultAlert) { - NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); - if (!_blockingScreenMessage) - _blockingScreenMessage = [NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateExpired"), appName]; - [self showBlockingScreen:_blockingScreenMessage image:@"authorize_denied.png"]; - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(didDisplayExpiryAlertForUpdateManager:)]) { - [self.delegate didDisplayExpiryAlertForUpdateManager:self]; - } - - // the UI is now blocked, make sure we don't add our UI on top of it over and over again - [self unregisterObservers]; - } -} - -#pragma mark - Usage - -- (void)loadAppVersionUsageData { - self.currentAppVersionUsageTime = @0; - - if ([self expiryDateReached]) return; - - BOOL newVersion = NO; - - if (![[NSUserDefaults standardUserDefaults] valueForKey:kBITUpdateUsageTimeForUUID]) { - newVersion = YES; - } else { - if ([(NSString *)[[NSUserDefaults standardUserDefaults] valueForKey:kBITUpdateUsageTimeForUUID] compare:_uuid] != NSOrderedSame) { - newVersion = YES; - } - } - - if (newVersion) { - [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithDouble:[[NSDate date] timeIntervalSinceReferenceDate]] forKey:kBITUpdateDateOfVersionInstallation]; - [[NSUserDefaults standardUserDefaults] setObject:_uuid forKey:kBITUpdateUsageTimeForUUID]; - [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:0]]; - } else { - if (![_fileManager fileExistsAtPath:_usageDataFile]) - return; - - NSData *codedData = [[NSData alloc] initWithContentsOfFile:_usageDataFile]; - if (codedData == nil) return; - - NSKeyedUnarchiver *unarchiver = nil; - - @try { - unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; - } - @catch (NSException *exception) { - return; - } - - if ([unarchiver containsValueForKey:kBITUpdateUsageTimeOfCurrentVersion]) { - self.currentAppVersionUsageTime = [unarchiver decodeObjectForKey:kBITUpdateUsageTimeOfCurrentVersion]; - } - - [unarchiver finishDecoding]; - } -} - -- (void)startUsage { - if ([self expiryDateReached]) return; - - self.usageStartTimestamp = [NSDate date]; -} - -- (void)stopUsage { - if ([self isAppStoreEnvironment]) return; - if ([self expiryDateReached]) return; - - double timeDifference = [[NSDate date] timeIntervalSinceReferenceDate] - [_usageStartTimestamp timeIntervalSinceReferenceDate]; - double previousTimeDifference = [self.currentAppVersionUsageTime doubleValue]; - - [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:previousTimeDifference + timeDifference]]; -} - -- (void) storeUsageTimeForCurrentVersion:(NSNumber *)usageTime { - if ([self isAppStoreEnvironment]) return; - - NSMutableData *data = [[NSMutableData alloc] init]; - NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; - - [archiver encodeObject:usageTime forKey:kBITUpdateUsageTimeOfCurrentVersion]; - - [archiver finishEncoding]; - [data writeToFile:_usageDataFile atomically:YES]; - - self.currentAppVersionUsageTime = usageTime; -} - -- (NSString *)currentUsageString { - double currentUsageTime = [self.currentAppVersionUsageTime doubleValue]; - - if (currentUsageTime > 0) { - // round (up) to 1 minute - return [NSString stringWithFormat:@"%.0f", ceil(currentUsageTime / 60.0)*60]; - } else { - return @"0"; - } -} - -- (NSString *)installationDateString { - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - [formatter setDateFormat:@"MM/dd/yyyy"]; - double installationTimeStamp = [[NSUserDefaults standardUserDefaults] doubleForKey:kBITUpdateDateOfVersionInstallation]; - if (installationTimeStamp == 0.0f) { - return [formatter stringFromDate:[NSDate date]]; - } else { - return [formatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:installationTimeStamp]]; - } -} - - -#pragma mark - Cache - -- (void)checkUpdateAvailable { - // check if there is an update available - NSComparisonResult comparisonResult = bit_versionCompare(self.newestAppVersion.version, self.currentAppVersion); - - if (comparisonResult == NSOrderedDescending) { - self.updateAvailable = YES; - } else if (comparisonResult == NSOrderedSame) { - // compare using the binary UUID and stored version id - self.updateAvailable = NO; - if (_firstStartAfterInstall) { - if ([self.newestAppVersion hasUUID:_uuid]) { - _versionUUID = [_uuid copy]; - _versionID = [self.newestAppVersion.versionID copy]; - [self saveAppCache]; - } else { - [self.appVersions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - if (idx > 0 && [obj isKindOfClass:[BITAppVersionMetaInfo class]]) { - NSComparisonResult compareVersions = bit_versionCompare([(BITAppVersionMetaInfo *)obj version], self.currentAppVersion); - BOOL uuidFound = [(BITAppVersionMetaInfo *)obj hasUUID:_uuid]; - - if (uuidFound) { - _versionUUID = [_uuid copy]; - _versionID = [[(BITAppVersionMetaInfo *)obj versionID] copy]; - [self saveAppCache]; - - self.updateAvailable = YES; - } - - if (compareVersions != NSOrderedSame || uuidFound) { - *stop = YES; - } - } - }]; - } - } else { - if ([self.newestAppVersion.versionID compare:_versionID] == NSOrderedDescending) - self.updateAvailable = YES; - } - } -} - -- (void)loadAppCache { - _firstStartAfterInstall = NO; - _versionUUID = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateInstalledUUID]; - if (!_versionUUID) { - _firstStartAfterInstall = YES; - } else { - if ([_uuid compare:_versionUUID] != NSOrderedSame) - _firstStartAfterInstall = YES; - } - _versionID = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateInstalledVersionID]; - _companyName = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateCurrentCompanyName]; - - NSData *savedHockeyData = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateArrayOfLastCheck]; - NSArray *savedHockeyCheck = nil; - if (savedHockeyData) { - savedHockeyCheck = [NSKeyedUnarchiver unarchiveObjectWithData:savedHockeyData]; - } - if (savedHockeyCheck) { - self.appVersions = [NSArray arrayWithArray:savedHockeyCheck]; - [self checkUpdateAvailable]; - } else { - self.appVersions = nil; - } -} - -- (void)saveAppCache { - if (_companyName) - [[NSUserDefaults standardUserDefaults] setObject:_companyName forKey:kBITUpdateCurrentCompanyName]; - if (_versionUUID) - [[NSUserDefaults standardUserDefaults] setObject:_versionUUID forKey:kBITUpdateInstalledUUID]; - if (_versionID) - [[NSUserDefaults standardUserDefaults] setObject:_versionID forKey:kBITUpdateInstalledVersionID]; - NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.appVersions]; - [[NSUserDefaults standardUserDefaults] setObject:data forKey:kBITUpdateArrayOfLastCheck]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - - -#pragma mark - Init - -- (instancetype)init { - if ((self = [super init])) { - _delegate = nil; - _expiryDate = nil; - _checkInProgress = NO; - _dataFound = NO; - _updateAvailable = NO; - _lastCheckFailed = NO; - _currentAppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; - _blockingView = nil; - _lastCheck = nil; - _uuid = [[self executableUUID] copy]; - _versionUUID = nil; - _versionID = nil; - _sendUsageData = YES; - _disableUpdateManager = NO; - _firstStartAfterInstall = NO; - _companyName = nil; - _currentAppVersionUsageTime = @0; - - // set defaults - self.showDirectInstallOption = NO; - self.alwaysShowUpdateReminder = YES; - self.checkForUpdateOnLaunch = YES; - self.updateSetting = BITUpdateCheckStartup; - - if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateDateOfLastCheck]) { - // we did write something else in the past, so for compatibility reasons do this - id tempLastCheck = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateDateOfLastCheck]; - if ([tempLastCheck isKindOfClass:[NSDate class]]) { - self.lastCheck = tempLastCheck; - } - } - - if (!_lastCheck) { - self.lastCheck = [NSDate distantPast]; - } - - if (!BITHockeyBundle()) { - NSLog(@"[HockeySDK] WARNING: %@ is missing, make sure it is added!", BITHOCKEYSDK_BUNDLE); - } - - _fileManager = [[NSFileManager alloc] init]; - - _usageDataFile = [bit_settingsDir() stringByAppendingPathComponent:BITHOCKEY_USAGE_DATA]; - - [self loadAppCache]; - - _installationIdentification = [self stringValueFromKeychainForKey:kBITUpdateInstallationIdentification]; - - [self loadAppVersionUsageData]; - [self startUsage]; - - NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter]; - [dnc addObserver:self selector:@selector(stopUsage) name:UIApplicationWillTerminateNotification object:nil]; - [dnc addObserver:self selector:@selector(stopUsage) name:UIApplicationWillResignActiveNotification object:nil]; - } - return self; -} - -- (void)dealloc { - [self unregisterObservers]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillResignActiveNotification object:nil]; - - [_urlConnection cancel]; -} - - -#pragma mark - BetaUpdateUI - -- (BITUpdateViewController *)hockeyViewController:(BOOL)modal { - if ([self isAppStoreEnvironment]) { - NSLog(@"[HockeySDK] This should not be called from an app store build!"); - // return an empty view controller instead - BITHockeyBaseViewController *blankViewController = [[BITHockeyBaseViewController alloc] initWithModalStyle:modal]; - return (BITUpdateViewController *)blankViewController; - } - return [[BITUpdateViewController alloc] initWithModalStyle:modal]; -} - -- (void)showUpdateView { - if ([self isAppStoreEnvironment]) { - NSLog(@"[HockeySDK] This should not be called from an app store build!"); - return; - } - - if (_currentHockeyViewController) { - BITHockeyLog(@"INFO: Update view already visible, aborting"); - return; - } - - if ([self isPreiOS7Environment]) - self.barStyle = UIBarStyleBlack; - - BITUpdateViewController *updateViewController = [self hockeyViewController:YES]; - if ([self hasNewerMandatoryVersion] || [self expiryDateReached]) { - [updateViewController setMandatoryUpdate: YES]; - } - [self showView:updateViewController]; -} - - -- (void)showCheckForUpdateAlert { - if ([self isAppStoreEnvironment]) return; - if ([self isUpdateManagerDisabled]) return; - - if (!_updateAlertShowing) { - if ([self hasNewerMandatoryVersion]) { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") - message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertMandatoryTextWithAppVersion"), [self.newestAppVersion nameAndVersionString]] - delegate:self - cancelButtonTitle:nil - otherButtonTitles:BITHockeyLocalizedString(@"UpdateShow"), BITHockeyLocalizedString(@"UpdateInstall"), nil - ]; - [alertView setTag:BITUpdateAlertViewTagMandatoryUpdate]; - [alertView show]; - _updateAlertShowing = YES; - } else { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") - message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertTextWithAppVersion"), [self.newestAppVersion nameAndVersionString]] - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"UpdateIgnore") - otherButtonTitles:BITHockeyLocalizedString(@"UpdateShow"), nil - ]; - if (self.isShowingDirectInstallOption) { - [alertView addButtonWithTitle:BITHockeyLocalizedString(@"UpdateInstall")]; - } - [alertView setTag:BITUpdateAlertViewTagDefaultUpdate]; - [alertView show]; - _updateAlertShowing = YES; - } - } -} - - -// open an authorization screen -- (void)showBlockingScreen:(NSString *)message image:(NSString *)image { - self.blockingView = nil; - - UIWindow *visibleWindow = [self findVisibleWindow]; - if (visibleWindow == nil) { - [self alertFallback:message]; - return; - } - - CGRect frame = [visibleWindow frame]; - - self.blockingView = [[UIView alloc] initWithFrame:frame]; - UIImageView *backgroundView = [[UIImageView alloc] initWithImage:bit_imageNamed(@"bg.png", BITHOCKEYSDK_BUNDLE)]; - backgroundView.contentMode = UIViewContentModeScaleAspectFill; - backgroundView.frame = frame; - [self.blockingView addSubview:backgroundView]; - - if (image != nil) { - UIImageView *imageView = [[UIImageView alloc] initWithImage:bit_imageNamed(image, BITHOCKEYSDK_BUNDLE)]; - imageView.contentMode = UIViewContentModeCenter; - imageView.frame = frame; - [self.blockingView addSubview:imageView]; - } - - if (!self.disableUpdateCheckOptionWhenExpired) { - UIButton *checkForUpdateButton = [UIButton buttonWithType:kBITButtonTypeSystem]; - checkForUpdateButton.frame = CGRectMake((frame.size.width - 140) / 2.f, frame.size.height - 100, 140, 25); - [checkForUpdateButton setTitle:BITHockeyLocalizedString(@"UpdateButtonCheck") forState:UIControlStateNormal]; - [checkForUpdateButton addTarget:self - action:@selector(checkForUpdateForExpiredVersion) - forControlEvents:UIControlEventTouchUpInside]; - [self.blockingView addSubview:checkForUpdateButton]; - } - - if (message != nil) { - frame.origin.x = 20; - frame.origin.y = frame.size.height - 180; - frame.size.width -= 40; - frame.size.height = 70; - - UILabel *label = [[UILabel alloc] initWithFrame:frame]; - label.text = message; - label.textAlignment = kBITTextLabelAlignmentCenter; - label.numberOfLines = 3; - label.adjustsFontSizeToFitWidth = YES; - label.backgroundColor = [UIColor clearColor]; - - [self.blockingView addSubview:label]; - } - - [visibleWindow addSubview:self.blockingView]; -} - -- (void)checkForUpdateForExpiredVersion { - if (!self.checkInProgress) { - - if (!_lastUpdateCheckFromBlockingScreen || - fabs([NSDate timeIntervalSinceReferenceDate] - [_lastUpdateCheckFromBlockingScreen timeIntervalSinceReferenceDate]) > 60) { - _lastUpdateCheckFromBlockingScreen = [NSDate date]; - [self checkForUpdateShowFeedback:NO]; - } - } -} - -// nag the user with neverending alerts if we cannot find out the window for presenting the covering sheet -- (void)alertFallback:(NSString *)message { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil - message:message - delegate:self - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") - otherButtonTitles:nil - ]; - - if (!self.disableUpdateCheckOptionWhenExpired && [message isEqualToString:_blockingScreenMessage]) { - [alertView addButtonWithTitle:BITHockeyLocalizedString(@"UpdateButtonCheck")]; - } - - [alertView setTag:BITUpdateAlertViewTagNeverEndingAlertView]; - [alertView show]; -} - -#pragma mark - RequestComments - -- (BOOL)shouldCheckForUpdates { - BOOL checkForUpdate = NO; - - switch (self.updateSetting) { - case BITUpdateCheckStartup: - checkForUpdate = YES; - break; - case BITUpdateCheckDaily: { - NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); - if (dateDiff != 0) - dateDiff = dateDiff / (60*60*24); - - checkForUpdate = (dateDiff >= 1); - break; - } - case BITUpdateCheckManually: - checkForUpdate = NO; - break; - default: - break; - } - - return checkForUpdate; -} - -- (void)checkForUpdate { - if (![self isAppStoreEnvironment] && ![self isUpdateManagerDisabled]) { - if ([self expiryDateReached]) return; - if (![self installationIdentified]) return; - - if (self.isUpdateAvailable && [self hasNewerMandatoryVersion]) { - [self showCheckForUpdateAlert]; - } - - [self checkForUpdateShowFeedback:NO]; - } -} - -- (void)checkForUpdateShowFeedback:(BOOL)feedback { - if ([self isAppStoreEnvironment]) return; - if (self.isCheckInProgress) return; - - _showFeedback = feedback; - self.checkInProgress = YES; - - // do we need to update? - if (!_currentHockeyViewController && ![self shouldCheckForUpdates] && _updateSetting != BITUpdateCheckManually) { - BITHockeyLog(@"INFO: Update not needed right now"); - self.checkInProgress = NO; - return; - } - - NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@?format=json&extended=true%@&sdk=%@&sdk_version=%@&uuid=%@", - bit_URLEncodedString([self encodedAppIdentifier]), - ([self isAppStoreEnvironment] ? @"&udid=appstore" : @""), - BITHOCKEY_NAME, - BITHOCKEY_VERSION, - _uuid]; - - // add installationIdentificationType and installationIdentifier if available - if (self.installationIdentification && self.installationIdentificationType) { - [parameter appendFormat:@"&%@=%@", - bit_URLEncodedString(self.installationIdentificationType), - bit_URLEncodedString(self.installationIdentification) - ]; - } - - // add additional statistics if user didn't disable flag - if (_sendUsageData) { - [parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@&usage_time=%@", - bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]), - bit_URLEncodedString([[UIDevice currentDevice] systemVersion]), - bit_URLEncodedString([self getDevicePlatform]), - bit_URLEncodedString([[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]), - bit_URLEncodedString([self installationDateString]), - bit_URLEncodedString([self currentUsageString]) - ]; - } - - // build request & send - NSString *url = [NSString stringWithFormat:@"%@%@", self.serverURL, parameter]; - BITHockeyLog(@"INFO: Sending api request to %@", url); - - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; - [request setHTTPMethod:@"GET"]; - [request setValue:@"Hockey/iOS" forHTTPHeaderField:@"User-Agent"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - self.urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; - if (!_urlConnection) { - self.checkInProgress = NO; - [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain - code:BITUpdateAPIClientCannotCreateConnection - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Url Connection could not be created.", NSLocalizedDescriptionKey, nil]]]; - } -} - -- (BOOL)initiateAppDownload { - if ([self isAppStoreEnvironment]) return NO; - - if (!self.isUpdateAvailable) { - BITHockeyLog(@"WARNING: No update available. Aborting."); - return NO; - } - -#if TARGET_IPHONE_SIMULATOR - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateWarning") message:BITHockeyLocalizedString(@"UpdateSimulatorMessage") delegate:nil cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") otherButtonTitles:nil]; - [alert show]; - return NO; - -#else - - NSString *extraParameter = [NSString string]; - if (_sendUsageData && self.installationIdentification && self.installationIdentificationType) { - extraParameter = [NSString stringWithFormat:@"&%@=%@", - bit_URLEncodedString(self.installationIdentificationType), - bit_URLEncodedString(self.installationIdentification) - ]; - } - - NSString *hockeyAPIURL = [NSString stringWithFormat:@"%@api/2/apps/%@/app_versions/%@?format=plist%@", self.serverURL, [self encodedAppIdentifier], [self.newestAppVersion.versionID stringValue], extraParameter]; - NSString *iOSUpdateURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@", bit_URLEncodedString(hockeyAPIURL)]; - - // Notify delegate of update intent before placing the call - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(willStartDownloadAndUpdate:)]) { - [self.delegate willStartDownloadAndUpdate:self]; - } - - BITHockeyLog(@"INFO: API Server Call: %@, calling iOS with %@", hockeyAPIURL, iOSUpdateURL); - BOOL success = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iOSUpdateURL]]; - BITHockeyLog(@"INFO: System returned: %d", success); - - _didStartUpdateProcess = success; - - return success; - -#endif -} - - -// begin the startup process -- (void)startManager { - if (![self isAppStoreEnvironment]) { - if ([self isUpdateManagerDisabled]) return; - - BITHockeyLog(@"INFO: Starting UpdateManager"); - - if (self.delegate != nil && [self.delegate respondsToSelector:@selector(updateManagerShouldSendUsageData:)]) { - _sendUsageData = [self.delegate updateManagerShouldSendUsageData:self]; - } - - [self checkExpiryDateReached]; - if (![self expiryDateReached]) { - if ([self isCheckForUpdateOnLaunch] && [self shouldCheckForUpdates]) { - if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) return; - - [self performSelector:@selector(checkForUpdate) withObject:nil afterDelay:1.0f]; - } - } - } - [self registerObservers]; -} - - -#pragma mark - NSURLRequest - -- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse { - NSURLRequest *newRequest = request; - if (redirectResponse) { - newRequest = nil; - } - return newRequest; -} - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { - if ([response respondsToSelector:@selector(statusCode)]) { - NSInteger statusCode = [((NSHTTPURLResponse *)response) statusCode]; - if (statusCode == 404) { - [connection cancel]; // stop connecting; no more delegate messages - NSString *errorStr = [NSString stringWithFormat:@"Hockey API received HTTP Status Code %ld", (long)statusCode]; - [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain - code:BITUpdateAPIServerReturnedInvalidStatus - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:errorStr, NSLocalizedDescriptionKey, nil]]]; - return; - } - } - - self.receivedData = [NSMutableData data]; - [_receivedData setLength:0]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { - [_receivedData appendData:data]; -} - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { - self.receivedData = nil; - self.urlConnection = nil; - self.checkInProgress = NO; - if ([self expiryDateReached]) { - if (!self.blockingView) { - [self alertFallback:_blockingScreenMessage]; - } - } else { - [self reportError:error]; - } -} - -// api call returned, parsing -- (void)connectionDidFinishLoading:(NSURLConnection *)connection { - self.checkInProgress = NO; - - if ([self.receivedData length]) { - NSString *responseString = [[NSString alloc] initWithBytes:[_receivedData bytes] length:[_receivedData length] encoding: NSUTF8StringEncoding]; - BITHockeyLog(@"INFO: Received API response: %@", responseString); - - if (!responseString || ![responseString dataUsingEncoding:NSUTF8StringEncoding]) { - self.receivedData = nil; - self.urlConnection = nil; - return; - } - - NSError *error = nil; - NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error]; - - self.companyName = (([[json valueForKey:@"company"] isKindOfClass:[NSString class]]) ? [json valueForKey:@"company"] : nil); - - if (![self isAppStoreEnvironment]) { - NSArray *feedArray = (NSArray *)[json valueForKey:@"versions"]; - - // remember that we just checked the server - self.lastCheck = [NSDate date]; - - // server returned empty response? - if (![feedArray count]) { - BITHockeyLog(@"WARNING: No versions available for download on HockeyApp."); - self.receivedData = nil; - self.urlConnection = nil; - return; - } else { - _lastCheckFailed = NO; - } - - - NSString *currentAppCacheVersion = [[self newestAppVersion].version copy]; - - // clear cache and reload with new data - NSMutableArray *tmpAppVersions = [NSMutableArray arrayWithCapacity:[feedArray count]]; - for (NSDictionary *dict in feedArray) { - BITAppVersionMetaInfo *appVersionMetaInfo = [BITAppVersionMetaInfo appVersionMetaInfoFromDict:dict]; - if ([appVersionMetaInfo isValid]) { - // check if minOSVersion is set and this device qualifies - BOOL deviceOSVersionQualifies = YES; - if ([appVersionMetaInfo minOSVersion] && ![[appVersionMetaInfo minOSVersion] isKindOfClass:[NSNull class]]) { - NSComparisonResult comparisonResult = bit_versionCompare(appVersionMetaInfo.minOSVersion, [[UIDevice currentDevice] systemVersion]); - if (comparisonResult == NSOrderedDescending) { - deviceOSVersionQualifies = NO; - } - } - - if (deviceOSVersionQualifies) - [tmpAppVersions addObject:appVersionMetaInfo]; - } else { - [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain - code:BITUpdateAPIServerReturnedInvalidData - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Invalid data received from server.", NSLocalizedDescriptionKey, nil]]]; - } - } - // only set if different! - if (![self.appVersions isEqualToArray:tmpAppVersions]) { - self.appVersions = [tmpAppVersions copy]; - } - [self saveAppCache]; - - [self checkUpdateAvailable]; - BOOL newVersionDiffersFromCachedVersion = ![self.newestAppVersion.version isEqualToString:currentAppCacheVersion]; - - // show alert if we are on the latest & greatest - if (_showFeedback && !self.isUpdateAvailable) { - // use currentVersionString, as version still may differ (e.g. server: 1.2, client: 1.3) - NSString *versionString = [self currentAppVersion]; - NSString *shortVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; - shortVersionString = shortVersionString ? [NSString stringWithFormat:@"%@ ", shortVersionString] : @""; - versionString = [shortVersionString length] ? [NSString stringWithFormat:@"(%@)", versionString] : versionString; - NSString *currentVersionString = [NSString stringWithFormat:@"%@ %@ %@%@", self.newestAppVersion.name, BITHockeyLocalizedString(@"UpdateVersion"), shortVersionString, versionString]; - NSString *alertMsg = [NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateNoUpdateAvailableMessage"), currentVersionString]; - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateNoUpdateAvailableTitle") - message:alertMsg - delegate:nil - cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") - otherButtonTitles:nil]; - [alert show]; - } - - if (self.isUpdateAvailable && (self.alwaysShowUpdateReminder || newVersionDiffersFromCachedVersion || [self hasNewerMandatoryVersion])) { - if (_updateAvailable && !_currentHockeyViewController) { - [self showCheckForUpdateAlert]; - } - } - _showFeedback = NO; - } - } else if (![self expiryDateReached]) { - [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain - code:BITUpdateAPIServerReturnedEmptyResponse - userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned an empty response.", NSLocalizedDescriptionKey, nil]]]; - } - - if (!_updateAlertShowing && [self expiryDateReached] && !self.blockingView) { - [self alertFallback:_blockingScreenMessage]; - } - - self.receivedData = nil; - self.urlConnection = nil; -} - -- (BOOL)hasNewerMandatoryVersion { - BOOL result = NO; - - for (BITAppVersionMetaInfo *appVersion in self.appVersions) { - if ([appVersion.version isEqualToString:self.currentAppVersion] || bit_versionCompare(appVersion.version, self.currentAppVersion) == NSOrderedAscending) { - break; - } - - if ([appVersion.mandatory boolValue]) { - result = YES; - } - } - - return result; -} - - -#pragma mark - Properties - -- (void)setCurrentHockeyViewController:(BITUpdateViewController *)aCurrentHockeyViewController { - if (_currentHockeyViewController != aCurrentHockeyViewController) { - _currentHockeyViewController = aCurrentHockeyViewController; - //HockeySDKLog(@"active hockey view controller: %@", aCurrentHockeyViewController); - } -} - -- (NSString *)currentAppVersion { - return _currentAppVersion; -} - -- (void)setLastCheck:(NSDate *)aLastCheck { - if (_lastCheck != aLastCheck) { - _lastCheck = [aLastCheck copy]; - - [[NSUserDefaults standardUserDefaults] setObject:_lastCheck forKey:kBITUpdateDateOfLastCheck]; - [[NSUserDefaults standardUserDefaults] synchronize]; - } -} - -- (void)setAppVersions:(NSArray *)anAppVersions { - if (_appVersions != anAppVersions || !_appVersions) { - [self willChangeValueForKey:@"appVersions"]; - - // populate with default values (if empty) - if (![anAppVersions count]) { - BITAppVersionMetaInfo *defaultApp = [[BITAppVersionMetaInfo alloc] init]; - defaultApp.name = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); - defaultApp.version = _currentAppVersion; - defaultApp.shortVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; - _appVersions = [NSArray arrayWithObject:defaultApp]; - } else { - _appVersions = [anAppVersions copy]; - } - [self didChangeValueForKey:@"appVersions"]; - } -} - -- (BITAppVersionMetaInfo *)newestAppVersion { - BITAppVersionMetaInfo *appVersion = [_appVersions objectAtIndex:0]; - return appVersion; -} - -- (void)setBlockingView:(UIView *)anBlockingView { - if (_blockingView != anBlockingView) { - [_blockingView removeFromSuperview]; - _blockingView = anBlockingView; - } -} - -- (void)setInstallationIdentificationType:(NSString *)installationIdentificationType { - if (![_installationIdentificationType isEqualToString:installationIdentificationType]) { - // we already use "uuid" in our requests for providing the binary UUID to the server - // so we need to stick to "udid" even when BITAuthenticator is providing a plain uuid - if ([installationIdentificationType isEqualToString:@"uuid"]) { - _installationIdentificationType = @"udid"; - } else { - _installationIdentificationType = installationIdentificationType; - } - } -} - -- (void)setInstallationIdentification:(NSString *)installationIdentification { - if (![_installationIdentification isEqualToString:installationIdentification]) { - if (installationIdentification) { - [self addStringValueToKeychain:installationIdentification forKey:kBITUpdateInstallationIdentification]; - } else { - [self removeKeyFromKeychain:kBITUpdateInstallationIdentification]; - } - _installationIdentification = installationIdentification; - - // we need to reset the usage time, because the user/device may have changed - [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:0]]; - self.usageStartTimestamp = [NSDate date]; - } -} - - -#pragma mark - UIAlertViewDelegate - -// invoke the selected action from the action sheet for a location element -- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { - if ([alertView tag] == BITUpdateAlertViewTagNeverEndingAlertView) { - if (buttonIndex == 1) { - [self checkForUpdateForExpiredVersion]; - } else { - [self alertFallback:_blockingScreenMessage]; - } - return; - } - - _updateAlertShowing = NO; - if (buttonIndex == [alertView firstOtherButtonIndex]) { - // YES button has been clicked - if (self.blockingView) { - [self.blockingView removeFromSuperview]; - } - [self showUpdateView]; - } else if (buttonIndex == [alertView firstOtherButtonIndex] + 1) { - // YES button has been clicked - (void)[self initiateAppDownload]; - } else { - if ([self expiryDateReached] && !self.blockingView) { - [self alertFallback:_blockingScreenMessage]; - } - } -} - -@end - -#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h b/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h deleted file mode 100644 index 8aa630b..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 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. - */ - -#import - -@class BITUpdateManager; - -/** - The `BITUpdateManagerDelegate` formal protocol defines methods further configuring - the behaviour of `BITUpdateManager`. - */ - -@protocol BITUpdateManagerDelegate - -@optional - - -///----------------------------------------------------------------------------- -/// @name Expiry -///----------------------------------------------------------------------------- - -/** - Return if expiry alert should be shown if date is reached - - If you want to display your own user interface when the expiry date is reached, - implement this method, present your user interface and return _NO_. In this case - it is your responsibility to make the app unusable! - - Note: This delegate will be invoked on startup and every time the app becomes - active again! - - When returning _YES_ the default blocking UI will be shown. - - When running the app from the App Store, this delegate is ignored. - - @param updateManager The `BITUpdateManager` instance invoking this delegate - @see [BITUpdateManager expiryDate] - @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] - */ -- (BOOL)shouldDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager; - - -/** - Invoked once a default expiry alert is shown - - Once expiry date is reached and the default blocking UI is shown, - this delegate method is invoked to provide you the possibility to do any - desired additional processing. - - @param updateManager The `BITUpdateManager` instance invoking this delegate - @see [BITUpdateManager expiryDate] - @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] - */ -- (void)didDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager; - - -///----------------------------------------------------------------------------- -/// @name Privacy -///----------------------------------------------------------------------------- - -/** Return NO if usage data should not be send - - The update module send usage data by default, if the application is _NOT_ - running in an App Store version. Implement this delegate and - return NO if you want to disable this. - - If you intend to implement a user setting to let them enable or disable - sending usage data, this delegate should be used to return that value. - - Usage data contains the following information: - - App Version - - iOS Version - - Device type - - Language - - Installation timestamp - - Usage time - - @param updateManager The `BITUpdateManager` instance invoking this delegate - @warning When setting this to `NO`, you will _NOT_ know if this user is actually testing! - */ -- (BOOL)updateManagerShouldSendUsageData:(BITUpdateManager *)updateManager; - - -///----------------------------------------------------------------------------- -/// @name Privacy -///----------------------------------------------------------------------------- - -/** Implement this method to be notified before an update starts. - - The update manager will send this delegate message _just_ before the system - call to update the application is placed, but after the user has already chosen - to install the update. - - There is no guarantee that the update will actually start after this delegate - message is sent. - - @param updateManager The `BITUpdateManager` instance invoking this delegate - */ -- (BOOL)willStartDownloadAndUpdate:(BITUpdateManager *)updateManager; - -/** - Invoked right before the app will exit to allow app update to start (>= iOS8 only) - - The iOS installation mechanism only starts if the app the should be updated is currently - not running. On all iOS versions up to iOS 7, the system did automatically exit the app - in these cases. Since iOS 8 this isn't done any longer. - - @param updateManager The `BITUpdateManager` instance invoking this delegate - */ -- (void)updateManagerWillExitApp:(BITUpdateManager *)updateManager; - - -#pragma mark - Deprecated - -///----------------------------------------------------------------------------- -/// @name Update View Presentation Helper -///----------------------------------------------------------------------------- - -/** - Provide a parent view controller for the update user interface - - If you don't have a `rootViewController` set on your `UIWindow` and the SDK cannot - automatically find the current top most `UIViewController`, you can provide the - `UIViewController` that should be used to present the update user interface modal. - - @param updateManager The `BITUpdateManager` instance invoking this delegate - - @deprecated Please use `BITHockeyManagerDelegate viewControllerForHockeyManager:componentManager:` instead - */ -- (UIViewController *)viewControllerForUpdateManager:(BITUpdateManager *)updateManager DEPRECATED_ATTRIBUTE; - -@end diff --git a/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h b/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h deleted file mode 100644 index 562dffa..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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. - */ - - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_UPDATES - -/** TODO: - * if during startup the auth-state is pending, we get never rid of the nag-alertview - */ -@interface BITUpdateManager () { -} - -///----------------------------------------------------------------------------- -/// @name Delegate -///----------------------------------------------------------------------------- - -/** - Sets the `BITUpdateManagerDelegate` delegate. - - The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You - should not need to set this delegate individually. - - @see `[BITHockeyManager setDelegate:]` - */ -@property (nonatomic, weak) id delegate; - - -// is an update available? -@property (nonatomic, assign, getter=isUpdateAvailable) BOOL updateAvailable; - -// are we currently checking for updates? -@property (nonatomic, assign, getter=isCheckInProgress) BOOL checkInProgress; - -@property (nonatomic, strong) NSMutableData *receivedData; - -@property (nonatomic, copy) NSDate *lastCheck; - -// get array of all available versions -@property (nonatomic, copy) NSArray *appVersions; - -@property (nonatomic, strong) NSNumber *currentAppVersionUsageTime; - -@property (nonatomic, strong) NSURLConnection *urlConnection; - -@property (nonatomic, copy) NSDate *usageStartTimestamp; - -@property (nonatomic, strong) UIView *blockingView; - -@property (nonatomic, strong) NSString *companyName; - -@property (nonatomic, strong) NSString *installationIdentification; - -@property (nonatomic, strong) NSString *installationIdentificationType; - -@property (nonatomic) BOOL installationIdentified; - -// used by BITHockeyManager if disable status is changed -@property (nonatomic, getter = isUpdateManagerDisabled) BOOL disableUpdateManager; - -// checks for update, informs the user (error, no update found, etc) -- (void)checkForUpdateShowFeedback:(BOOL)feedback; - -// initiates app-download call. displays an system UIAlertView -- (BOOL)initiateAppDownload; - -// get/set current active hockey view controller -@property (nonatomic, strong) BITUpdateViewController *currentHockeyViewController; - -// convenience method to get current running version string -- (NSString *)currentAppVersion; - -// get newest app version -- (BITAppVersionMetaInfo *)newestAppVersion; - -// check if there is any newer version mandatory -- (BOOL)hasNewerMandatoryVersion; - -@end - -#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateViewController.h b/Pods/HockeySDK/Classes/BITUpdateViewController.h deleted file mode 100644 index e36f318..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde, Peter Steinberger. - * 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. - */ - -#import - -#import "BITHockeyBaseViewController.h" - - -@interface BITUpdateViewController : BITHockeyBaseViewController -@end diff --git a/Pods/HockeySDK/Classes/BITUpdateViewController.m b/Pods/HockeySDK/Classes/BITUpdateViewController.m deleted file mode 100644 index 607018c..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateViewController.m +++ /dev/null @@ -1,555 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde, Peter Steinberger. - * 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_UPDATES - -#import "HockeySDKPrivate.h" -#import -#import "BITHockeyHelper.h" -#import "BITAppVersionMetaInfo.h" -#import "BITAppStoreHeader.h" -#import "BITWebTableViewCell.h" -#import "BITStoreButton.h" - -#import "BITUpdateManagerPrivate.h" -#import "BITUpdateViewControllerPrivate.h" -#import "BITHockeyBaseManagerPrivate.h" - - -#define kWebCellIdentifier @"PSWebTableViewCell" -#define kAppStoreViewHeight 99 - - -@implementation BITUpdateViewController { - BOOL _kvoRegistered; - BOOL _showAllVersions; - BITAppStoreHeader *_appStoreHeader; - BITStoreButton *_appStoreButton; - - id _popOverController; - - NSMutableArray *_cells; - - BOOL _isAppStoreEnvironment; -} - - -#pragma mark - Private - -- (UIColor *)backgroundColor { - if ([self.updateManager isPreiOS7Environment]) { - return BIT_RGBCOLOR(235, 235, 235); - } else { - return BIT_RGBCOLOR(255, 255, 255); - } -} - -- (void)restoreStoreButtonStateAnimated:(BOOL)animated { - if (_isAppStoreEnvironment) { - [self setAppStoreButtonState:AppStoreButtonStateOffline animated:animated]; - } else if ([_updateManager isUpdateAvailable]) { - [self setAppStoreButtonState:AppStoreButtonStateUpdate animated:animated]; - } else { - [self setAppStoreButtonState:AppStoreButtonStateCheck animated:animated]; - } -} - -- (void)updateAppStoreHeader { - BITAppVersionMetaInfo *appVersion = _updateManager.newestAppVersion; - _appStoreHeader.headerText = appVersion.name; - _appStoreHeader.subHeaderText = _updateManager.companyName; -} - -- (void)appDidBecomeActive { - if (self.appStoreButtonState == AppStoreButtonStateInstalling) { - [self setAppStoreButtonState:AppStoreButtonStateUpdate animated:YES]; - } else if (![_updateManager isCheckInProgress]) { - [self restoreStoreButtonStateAnimated:YES]; - } -} - -- (UIImage *)addGlossToImage:(UIImage *)image { - UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0); - - [image drawAtPoint:CGPointZero]; - UIImage *iconGradient = bit_imageNamed(@"IconGradient.png", BITHOCKEYSDK_BUNDLE); - [iconGradient drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:0.5]; - - UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - return result; -} - -#define kMinPreviousVersionButtonHeight 50 -- (void)realignPreviousVersionButton { - - // manually collect actual table height size - NSUInteger tableViewContentHeight = 0; - for (int i=0; i < [self tableView:self.tableView numberOfRowsInSection:0]; i++) { - tableViewContentHeight += [self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; - } - tableViewContentHeight += self.tableView.tableHeaderView.frame.size.height; - if (![self.updateManager isPreiOS7Environment]) { - tableViewContentHeight += self.navigationController.navigationBar.frame.size.height; - tableViewContentHeight += [UIApplication sharedApplication].statusBarFrame.size.height; - } - - NSUInteger footerViewSize = kMinPreviousVersionButtonHeight; - NSUInteger frameHeight = self.view.frame.size.height; - if(tableViewContentHeight < frameHeight && (frameHeight - tableViewContentHeight > 100)) { - footerViewSize = frameHeight - tableViewContentHeight; - } - - // update footer view - if(self.tableView.tableFooterView) { - CGRect frame = self.tableView.tableFooterView.frame; - frame.size.height = footerViewSize; - self.tableView.tableFooterView.frame = frame; - } -} - -- (void)changePreviousVersionButtonBackground:(id)sender { - [(UIButton *)sender setBackgroundColor:BIT_RGBCOLOR(245, 245, 245)]; -} - -- (void)changePreviousVersionButtonBackgroundHighlighted:(id)sender { - [(UIButton *)sender setBackgroundColor:BIT_RGBCOLOR(245, 245, 245)]; -} - -- (UIImage *)gradientButtonHighlightImage { - CGFloat width = 10; - CGFloat height = 70; - - CGSize size = CGSizeMake(width, height); - UIGraphicsBeginImageContextWithOptions(size, NO, 0); - CGContextRef context = UIGraphicsGetCurrentContext(); - - CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); - - NSArray *colors = [NSArray arrayWithObjects:(id)BIT_RGBCOLOR(69, 127, 247).CGColor, (id)BIT_RGBCOLOR(58, 68, 233).CGColor, nil]; - CGGradientRef gradient = CGGradientCreateWithColors(CGColorGetColorSpace((__bridge CGColorRef)[colors objectAtIndex:0]), (__bridge CFArrayRef)colors, (CGFloat[2]){0, 1}); - CGPoint top = CGPointMake(width / 2, 0); - CGPoint bottom = CGPointMake(width / 2, height); - CGContextDrawLinearGradient(context, gradient, top, bottom, 0); - - UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); - - CGGradientRelease(gradient); - CGColorSpaceRelease(colorspace); - UIGraphicsEndImageContext(); - - return theImage; -} - -- (void)showHidePreviousVersionsButton { - BOOL multipleVersionButtonNeeded = [_updateManager.appVersions count] > 1 && !_showAllVersions; - - if(multipleVersionButtonNeeded) { - // align at the bottom if tableview is small - UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kMinPreviousVersionButtonHeight)]; - footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; - footerView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); - UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1)]; - lineView1.backgroundColor = BIT_RGBCOLOR(214, 214, 214); - lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [footerView addSubview:lineView1]; - UIView *lineView2 = [[UIView alloc] initWithFrame:CGRectMake(0, 1, self.view.frame.size.width, 1)]; - lineView2.backgroundColor = BIT_RGBCOLOR(221, 221, 221); - lineView2.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [footerView addSubview:lineView2]; - UIView *lineView3 = [[UIView alloc] initWithFrame:CGRectMake(0, 1, self.view.frame.size.width, 1)]; - lineView3.backgroundColor = BIT_RGBCOLOR(255, 255, 255); - lineView3.autoresizingMask = UIViewAutoresizingFlexibleWidth; - [footerView addSubview:lineView3]; - UIButton *footerButton = [UIButton buttonWithType:UIButtonTypeCustom]; - //footerButton.layer.shadowOffset = CGSizeMake(-2, 2); - footerButton.layer.shadowColor = [[UIColor blackColor] CGColor]; - footerButton.layer.shadowRadius = 2.0f; - footerButton.titleLabel.font = [UIFont boldSystemFontOfSize:14]; - [footerButton setTitle:BITHockeyLocalizedString(@"UpdateShowPreviousVersions") forState:UIControlStateNormal]; - [footerButton setTitleColor:BIT_RGBCOLOR(61, 61, 61) forState:UIControlStateNormal]; - [footerButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; - [footerButton setBackgroundImage:[self gradientButtonHighlightImage] forState:UIControlStateHighlighted]; - footerButton.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; - [footerButton addTarget:self action:@selector(showPreviousVersionAction) forControlEvents:UIControlEventTouchUpInside]; - footerButton.frame = CGRectMake(0, kMinPreviousVersionButtonHeight-44, self.view.frame.size.width, 44); - footerButton.backgroundColor = BIT_RGBCOLOR(245, 245, 245); - [footerView addSubview:footerButton]; - self.tableView.tableFooterView = footerView; - [self realignPreviousVersionButton]; - } else { - self.tableView.tableFooterView = nil; - self.tableView.backgroundColor = [self backgroundColor]; - } -} - -- (void)configureWebCell:(BITWebTableViewCell *)cell forAppVersion:(BITAppVersionMetaInfo *)appVersion { - // create web view for a version - NSMutableString *dateAndSizeString = [NSMutableString string]; - if (appVersion.date) { - [dateAndSizeString appendString:[appVersion dateString]]; - } - if (appVersion.size) { - if ([dateAndSizeString length]) { - [dateAndSizeString appendString:@" - "]; - } - [dateAndSizeString appendString:appVersion.sizeInMB]; - } - - NSString *installed = @""; - if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { - installed = [NSString stringWithFormat:@"%@", BITHockeyLocalizedString(@"UpdateInstalled")]; - } - - if ([appVersion isEqual:_updateManager.newestAppVersion]) { - if ([appVersion.notes length] > 0) { - cell.webViewContent = [NSString stringWithFormat:@"

%@%@
%@

%@

", [appVersion versionString], installed, dateAndSizeString, appVersion.notes]; - } else { - if ([self.updateManager isPreiOS7Environment]) { - cell.webViewContent = [NSString stringWithFormat:@"
%@
", BITHockeyLocalizedString(@"UpdateNoReleaseNotesAvailable")]; - } else { - cell.webViewContent = [NSString stringWithFormat:@"
%@
", BITHockeyLocalizedString(@"UpdateNoReleaseNotesAvailable")]; - } - } - } else { - cell.webViewContent = [NSString stringWithFormat:@"

%@%@
%@

%@

", [appVersion versionString], installed, dateAndSizeString, [appVersion notesOrEmptyString]]; - } - cell.cellBackgroundColor = [self backgroundColor]; - [cell addWebView]; - // hack - cell.textLabel.text = @""; - - [cell addObserver:self forKeyPath:@"webViewSize" options:0 context:nil]; -} - - -#pragma mark - Init - -- (instancetype)initWithStyle:(UITableViewStyle)style { - if ((self = [super initWithStyle:UITableViewStylePlain])) { - _updateManager = [BITHockeyManager sharedHockeyManager].updateManager ; - _isAppStoreEnvironment = [BITHockeyManager sharedHockeyManager].isAppStoreEnvironment; - - self.title = BITHockeyLocalizedString(@"UpdateScreenTitle"); - - _cells = [[NSMutableArray alloc] initWithCapacity:5]; - _popOverController = nil; - } - return self; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - // test if KVO's are registered. if class is destroyed before it was shown(viewDidLoad) no KVOs are registered. - if (_kvoRegistered) { - [_updateManager removeObserver:self forKeyPath:@"checkInProgress"]; - [_updateManager removeObserver:self forKeyPath:@"isUpdateURLOffline"]; - [_updateManager removeObserver:self forKeyPath:@"updateAvailable"]; - [_updateManager removeObserver:self forKeyPath:@"appVersions"]; - _kvoRegistered = NO; - } - - for (UITableViewCell *cell in _cells) { - [cell removeObserver:self forKeyPath:@"webViewSize"]; - } - -} - - -#pragma mark - View lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; - - // add notifications only to loaded view - NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter]; - [dnc addObserver:self selector:@selector(appDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil]; - - // hook into manager with kvo! - [_updateManager addObserver:self forKeyPath:@"checkInProgress" options:0 context:nil]; - [_updateManager addObserver:self forKeyPath:@"isUpdateURLOffline" options:0 context:nil]; - [_updateManager addObserver:self forKeyPath:@"updateAvailable" options:0 context:nil]; - [_updateManager addObserver:self forKeyPath:@"appVersions" options:0 context:nil]; - _kvoRegistered = YES; - - self.tableView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); - self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - - UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0, -(600-kAppStoreViewHeight), self.view.frame.size.width, 600)]; - topView.autoresizingMask = UIViewAutoresizingFlexibleWidth; - topView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); - [self.tableView addSubview:topView]; - - _appStoreHeader = [[BITAppStoreHeader alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kAppStoreViewHeight)]; - if ([self.updateManager isPreiOS7Environment]) { - _appStoreHeader.style = BITAppStoreHeaderStyleDefault; - } else { - _appStoreHeader.style = BITAppStoreHeaderStyleOS7; - } - [self updateAppStoreHeader]; - - NSString *iconFilename = bit_validAppIconFilename([NSBundle mainBundle], [NSBundle mainBundle]); - if (iconFilename) { - BOOL addGloss = YES; - NSNumber *prerendered = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIPrerenderedIcon"]; - if (prerendered) { - addGloss = ![prerendered boolValue]; - } - - if (addGloss && [self.updateManager isPreiOS7Environment]) { - _appStoreHeader.iconImage = [self addGlossToImage:[UIImage imageNamed:iconFilename]]; - } else { - _appStoreHeader.iconImage = [UIImage imageNamed:iconFilename]; - } - } - - self.tableView.tableHeaderView = _appStoreHeader; - - BITStoreButtonStyle buttonStyle = BITStoreButtonStyleDefault; - if (![self.updateManager isPreiOS7Environment]) { - buttonStyle = BITStoreButtonStyleOS7; - } - BITStoreButton *storeButton = [[BITStoreButton alloc] initWithPadding:CGPointMake(5, 58) style:buttonStyle]; - storeButton.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; - storeButton.buttonDelegate = self; - [self.tableView.tableHeaderView addSubview:storeButton]; - storeButton.buttonData = [BITStoreButtonData dataWithLabel:@"" enabled:NO]; - [storeButton alignToSuperview]; - _appStoreButton = storeButton; - self.appStoreButtonState = AppStoreButtonStateCheck; -} - -- (void)viewWillAppear:(BOOL)animated { - if (_isAppStoreEnvironment) { - self.appStoreButtonState = AppStoreButtonStateOffline; - } else if (self.mandatoryUpdate) { - self.navigationItem.leftBarButtonItem = nil; - } - _updateManager.currentHockeyViewController = self; - [super viewWillAppear:animated]; - [self redrawTableView]; -} - -- (void)viewWillDisappear:(BOOL)animated { - _updateManager.currentHockeyViewController = nil; - //if the popover is still visible, dismiss it - [_popOverController dismissPopoverAnimated:YES]; - [super viewWillDisappear:animated]; -} - -- (void)redrawTableView { - [self restoreStoreButtonStateAnimated:NO]; - [self updateAppStoreHeader]; - - // clean up and remove any pending observers - for (UITableViewCell *cell in _cells) { - [cell removeObserver:self forKeyPath:@"webViewSize"]; - } - [_cells removeAllObjects]; - - int i = 0; - BOOL breakAfterThisAppVersion = NO; - for (BITAppVersionMetaInfo *appVersion in _updateManager.appVersions) { - i++; - - // only show the newer version of the app by default, if we don't show all versions - if (!_showAllVersions) { - if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { - if (i == 1) { - breakAfterThisAppVersion = YES; - } else { - break; - } - } - } - - BITWebTableViewCell *cell = [[BITWebTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kWebCellIdentifier]; - [self configureWebCell:cell forAppVersion:appVersion]; - [_cells addObject:cell]; - - if (breakAfterThisAppVersion) break; - } - - [self.tableView reloadData]; - [self showHidePreviousVersionsButton]; -} - -- (void)showPreviousVersionAction { - _showAllVersions = YES; - BOOL showAllPending = NO; - - for (BITAppVersionMetaInfo *appVersion in _updateManager.appVersions) { - if (!showAllPending) { - if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { - showAllPending = YES; - if (appVersion == _updateManager.newestAppVersion) { - continue; // skip this version already if it the latest version is the installed one - } - } else { - continue; // skip already shown - } - } - - BITWebTableViewCell *cell = [[BITWebTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kWebCellIdentifier]; - [self configureWebCell:cell forAppVersion:appVersion]; - [_cells addObject:cell]; - } - [self.tableView reloadData]; - [self showHidePreviousVersionsButton]; -} - - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - CGFloat rowHeight = 0; - - if ([_cells count] > (NSUInteger)indexPath.row) { - BITWebTableViewCell *cell = [_cells objectAtIndex:indexPath.row]; - rowHeight = cell.webViewSize.height; - } - - if ([_updateManager.appVersions count] > 1 && !_showAllVersions) { - self.tableView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); - } - - if (rowHeight == 0) { - rowHeight = indexPath.row == 0 ? 250 : 44; // fill screen on startup - self.tableView.backgroundColor = [self backgroundColor]; - } - - return rowHeight; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - NSInteger cellCount = [_cells count]; - return cellCount; -} - - -#pragma mark - KVO - -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { - // only make changes if we are visible - if(self.view.window) { - if ([keyPath isEqualToString:@"webViewSize"]) { - [self.tableView reloadData]; - [self realignPreviousVersionButton]; - } else if ([keyPath isEqualToString:@"checkInProgress"]) { - if (_updateManager.isCheckInProgress) { - [self setAppStoreButtonState:AppStoreButtonStateSearching animated:YES]; - }else { - [self restoreStoreButtonStateAnimated:YES]; - } - } else if ([keyPath isEqualToString:@"isUpdateURLOffline"]) { - [self restoreStoreButtonStateAnimated:YES]; - } else if ([keyPath isEqualToString:@"updateAvailable"]) { - [self restoreStoreButtonStateAnimated:YES]; - } else if ([keyPath isEqualToString:@"appVersions"]) { - [self redrawTableView]; - } - } -} - -// Customize the appearance of table view cells. -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - if ([_cells count] > (NSUInteger)indexPath.row) { - return [_cells objectAtIndex:indexPath.row]; - } else { - BITHockeyLog(@"Warning: cells_ and indexPath do not match? forgot calling redrawTableView?"); - } - return nil; -} - - -#pragma mark - Rotation - -- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { - // update all cells - [_cells makeObjectsPerformSelector:@selector(addWebView)]; -} - - -#pragma mark - PSAppStoreHeaderDelegate - -- (void)setAppStoreButtonState:(AppStoreButtonState)anAppStoreButtonState { - [self setAppStoreButtonState:anAppStoreButtonState animated:NO]; -} - -- (void)setAppStoreButtonState:(AppStoreButtonState)anAppStoreButtonState animated:(BOOL)animated { - _appStoreButtonState = anAppStoreButtonState; - - switch (anAppStoreButtonState) { - case AppStoreButtonStateOffline: - [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonOffline") enabled:NO] animated:animated]; - break; - case AppStoreButtonStateCheck: - [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonCheck") enabled:YES] animated:animated]; - break; - case AppStoreButtonStateSearching: - [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonSearching") enabled:NO] animated:animated]; - break; - case AppStoreButtonStateUpdate: - [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonUpdate") enabled:YES] animated:animated]; - break; - case AppStoreButtonStateInstalling: - [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonInstalling") enabled:NO] animated:animated]; - break; - default: - break; - } -} - -- (void)storeButtonFired:(BITStoreButton *)button { - switch (_appStoreButtonState) { - case AppStoreButtonStateCheck: - [_updateManager checkForUpdateShowFeedback:YES]; - break; - case AppStoreButtonStateUpdate: - if ([_updateManager initiateAppDownload]) { - [self setAppStoreButtonState:AppStoreButtonStateInstalling animated:YES]; - }; - break; - default: - break; - } -} - -@end - -#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h b/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h deleted file mode 100644 index 26747a8..0000000 --- a/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde, Peter Steinberger. - * 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. - */ - -#import "HockeySDK.h" - -#if HOCKEYSDK_FEATURE_UPDATES - -#import "BITStoreButton.h" - -/** - * Button states - */ -typedef NS_ENUM(NSUInteger, AppStoreButtonState) { - /** - * Offline - */ - AppStoreButtonStateOffline, - /** - * Check - */ - AppStoreButtonStateCheck, - /** - * Searching - */ - AppStoreButtonStateSearching, - /** - * Update - */ - AppStoreButtonStateUpdate, - /** - * Installing - */ - AppStoreButtonStateInstalling -}; - - -@class BITUpdateManager; - -@protocol PSStoreButtonDelegate; - -@interface BITUpdateViewController() { -} - -@property (nonatomic, weak) BITUpdateManager *updateManager; - -@property (nonatomic, readwrite) BOOL mandatoryUpdate; - -@property (nonatomic, assign) AppStoreButtonState appStoreButtonState; - -@end - -#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITWebTableViewCell.h b/Pods/HockeySDK/Classes/BITWebTableViewCell.h deleted file mode 100644 index c1706d2..0000000 --- a/Pods/HockeySDK/Classes/BITWebTableViewCell.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - - -#import -#import - -@interface BITWebTableViewCell : UITableViewCell - -@property (nonatomic, strong) UIWebView *webView; -@property (nonatomic, copy) NSString *webViewContent; -@property (nonatomic, assign) CGSize webViewSize; -@property (nonatomic, strong) UIColor *cellBackgroundColor; - -- (void)addWebView; - -@end diff --git a/Pods/HockeySDK/Classes/BITWebTableViewCell.m b/Pods/HockeySDK/Classes/BITWebTableViewCell.m deleted file mode 100644 index 42b605a..0000000 --- a/Pods/HockeySDK/Classes/BITWebTableViewCell.m +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Author: Andreas Linde - * Peter Steinberger - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011-2012 Peter Steinberger. - * 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. - */ - -#import "BITWebTableViewCell.h" - - -@implementation BITWebTableViewCell - -static NSString* BITWebTableViewCellHtmlTemplate = @"\ -\ -\ -\ -\ -\ -\ -%@\ -\ -\ -"; - - -#pragma mark - private - -- (void)addWebView { - if(_webViewContent) { - CGRect webViewRect = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height); - if(!_webView) { - _webView = [[UIWebView alloc] initWithFrame:webViewRect]; - [self addSubview:_webView]; - _webView.hidden = YES; - _webView.backgroundColor = self.cellBackgroundColor; - _webView.opaque = NO; - _webView.delegate = self; - _webView.autoresizingMask = UIViewAutoresizingFlexibleWidth; - - for(UIView* subView in _webView.subviews){ - if([subView isKindOfClass:[UIScrollView class]]){ - // disable scrolling - UIScrollView *sv = (UIScrollView *)subView; - sv.scrollEnabled = NO; - sv.bounces = NO; - - // hide shadow - for (UIView* shadowView in [subView subviews]) { - if ([shadowView isKindOfClass:[UIImageView class]]) { - shadowView.hidden = YES; - } - } - } - } - } - else - _webView.frame = webViewRect; - - NSString *deviceWidth = [NSString stringWithFormat:@"%.0f", CGRectGetWidth(self.bounds)]; - - //HockeySDKLog(@"%@\n%@\%@", PSWebTableViewCellHtmlTemplate, deviceWidth, self.webViewContent); - NSString *contentHtml = [NSString stringWithFormat:BITWebTableViewCellHtmlTemplate, deviceWidth, self.webViewContent]; - [_webView loadHTMLString:contentHtml baseURL:nil]; - } -} - -- (void)showWebView { - _webView.hidden = NO; - self.textLabel.text = @""; - [self setNeedsDisplay]; -} - - -- (void)removeWebView { - if(_webView) { - _webView.delegate = nil; - [_webView resignFirstResponder]; - [_webView removeFromSuperview]; - } - _webView = nil; - [self setNeedsDisplay]; -} - - -- (void)setWebViewContent:(NSString *)aWebViewContent { - if (_webViewContent != aWebViewContent) { - _webViewContent = aWebViewContent; - - // add basic accessibility (prevents "snarfed from ivar layout") logs - self.accessibilityLabel = aWebViewContent; - } -} - - -#pragma mark - NSObject - -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { - if((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { - self.cellBackgroundColor = [UIColor clearColor]; - } - return self; -} - -- (void)dealloc { - [self removeWebView]; -} - - -#pragma mark - UIView - -- (void)setFrame:(CGRect)aFrame { - BOOL needChange = !CGRectEqualToRect(aFrame, self.frame); - [super setFrame:aFrame]; - - if (needChange) { - [self addWebView]; - } -} - - -#pragma mark - UITableViewCell - -- (void)prepareForReuse { - [self removeWebView]; - self.webViewContent = nil; - [super prepareForReuse]; -} - - -#pragma mark - UIWebView - -- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { - if(navigationType == UIWebViewNavigationTypeOther) - return YES; - - return NO; -} - - -- (void)webViewDidFinishLoad:(UIWebView *)webView { - if(_webViewContent) - [self showWebView]; - - CGRect frame = _webView.frame; - frame.size.height = 1; - _webView.frame = frame; - CGSize fittingSize = [_webView sizeThatFits:CGSizeZero]; - frame.size = fittingSize; - _webView.frame = frame; - - // sizeThatFits is not reliable - use javascript for optimal height - NSString *output = [_webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; - self.webViewSize = CGSizeMake(fittingSize.width, [output integerValue]); -} - -@end diff --git a/Pods/HockeySDK/Classes/HockeySDK.h b/Pods/HockeySDK/Classes/HockeySDK.h deleted file mode 100644 index 0d04c43..0000000 --- a/Pods/HockeySDK/Classes/HockeySDK.h +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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_h -#define HockeySDK_h - -#import "HockeySDKFeatureConfig.h" - -#import "BITHockeyManager.h" -#import "BITHockeyManagerDelegate.h" - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER || HOCKEYSDK_FEATURE_FEEDBACK -#import "BITHockeyAttachment.h" -#endif - -#if HOCKEYSDK_FEATURE_CRASH_REPORTER -#import "BITCrashManager.h" -#import "BITCrashAttachment.h" -#import "BITCrashManagerDelegate.h" -#import "BITCrashDetails.h" -#import "BITCrashMetaData.h" -#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ - -#if HOCKEYSDK_FEATURE_UPDATES -#import "BITUpdateManager.h" -#import "BITUpdateManagerDelegate.h" -#import "BITUpdateViewController.h" -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - -#if HOCKEYSDK_FEATURE_STORE_UPDATES -#import "BITStoreUpdateManager.h" -#import "BITStoreUpdateManagerDelegate.h" -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - -#if HOCKEYSDK_FEATURE_FEEDBACK -#import "BITFeedbackManager.h" -#import "BITFeedbackManagerDelegate.h" -#import "BITFeedbackActivity.h" -#import "BITFeedbackComposeViewController.h" -#import "BITFeedbackComposeViewControllerDelegate.h" -#import "BITFeedbackListViewController.h" -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - -#if HOCKEYSDK_FEATURE_AUTHENTICATOR -#import "BITAuthenticator.h" -#endif - -// Notification message which HockeyManager is listening to, to retry requesting updated from the server -#define BITHockeyNetworkDidBecomeReachableNotification @"BITHockeyNetworkDidBecomeReachable" - - -/** - * HockeySDK Crash Reporter error domain - */ -typedef NS_ENUM (NSInteger, BITCrashErrorReason) { - /** - * Unknown error - */ - BITCrashErrorUnknown, - /** - * API Server rejected app version - */ - BITCrashAPIAppVersionRejected, - /** - * API Server returned empty response - */ - BITCrashAPIReceivedEmptyResponse, - /** - * Connection error with status code - */ - BITCrashAPIErrorWithStatusCode -}; -extern NSString *const __attribute__((unused)) kBITCrashErrorDomain; - -/** - * HockeySDK Update error domain - */ -typedef NS_ENUM (NSInteger, BITUpdateErrorReason) { - /** - * Unknown error - */ - BITUpdateErrorUnknown, - /** - * API Server returned invalid status - */ - BITUpdateAPIServerReturnedInvalidStatus, - /** - * API Server returned invalid data - */ - BITUpdateAPIServerReturnedInvalidData, - /** - * API Server returned empty response - */ - BITUpdateAPIServerReturnedEmptyResponse, - /** - * Authorization secret missing - */ - BITUpdateAPIClientAuthorizationMissingSecret, - /** - * No internet connection - */ - BITUpdateAPIClientCannotCreateConnection -}; -extern NSString *const __attribute__((unused)) kBITUpdateErrorDomain; - - -/** - * HockeySDK Feedback error domain - */ -typedef NS_ENUM(NSInteger, BITFeedbackErrorReason) { - /** - * Unknown error - */ - BITFeedbackErrorUnknown, - /** - * API Server returned invalid status - */ - BITFeedbackAPIServerReturnedInvalidStatus, - /** - * API Server returned invalid data - */ - BITFeedbackAPIServerReturnedInvalidData, - /** - * API Server returned empty response - */ - BITFeedbackAPIServerReturnedEmptyResponse, - /** - * Authorization secret missing - */ - BITFeedbackAPIClientAuthorizationMissingSecret, - /** - * No internet connection - */ - BITFeedbackAPIClientCannotCreateConnection -}; -extern NSString *const __attribute__((unused)) kBITFeedbackErrorDomain; - -/** - * HockeySDK Authenticator error domain - */ -typedef NS_ENUM(NSInteger, BITAuthenticatorReason) { - /** - * Unknown error - */ - BITAuthenticatorErrorUnknown, - /** - * Network error - */ - BITAuthenticatorNetworkError, - - /** - * API Server returned invalid response - */ - BITAuthenticatorAPIServerReturnedInvalidResponse, - /** - * Not Authorized - */ - BITAuthenticatorNotAuthorized, - /** - * Unknown Application ID (configuration error) - */ - BITAuthenticatorUnknownApplicationID, - /** - * Authorization secret missing - */ - BITAuthenticatorAuthorizationSecretMissing, - /** - * Not yet identified - */ - BITAuthenticatorNotIdentified, -}; -extern NSString *const __attribute__((unused)) kBITAuthenticatorErrorDomain; - -/** - * HockeySDK global error domain - */ -typedef NS_ENUM(NSInteger, BITHockeyErrorReason) { - /** - * Unknown error - */ - BITHockeyErrorUnknown -}; -extern NSString *const __attribute__((unused)) kBITHockeyErrorDomain; - - -#endif diff --git a/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h b/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h deleted file mode 100644 index f7b32e4..0000000 --- a/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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_: Enabled - */ -#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_: Enabled - */ -#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_: Enabled - */ -#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_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR -# define HOCKEYSDK_FEATURE_AUTHENTICATOR 1 -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - - -/** - * If true, include support for handling in-app updates for Ad-Hoc and Enterprise builds - * - * _Default_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_UPDATES -# define HOCKEYSDK_FEATURE_UPDATES 1 -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - - -#endif /* HockeySDK_HockeySDKFeatureConfig_h */ diff --git a/Pods/HockeySDK/Classes/HockeySDKPrivate.h b/Pods/HockeySDK/Classes/HockeySDKPrivate.h deleted file mode 100644 index 49b9d28..0000000 --- a/Pods/HockeySDK/Classes/HockeySDKPrivate.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Author: Andreas Linde - * Kent Sutherland - * - * Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde & Kent Sutherland. - * 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. - */ - - -#import - -#ifndef HockeySDK_HockeySDKPrivate_h -#define HockeySDK_HockeySDKPrivate_h - -#define BITHOCKEY_NAME @"HockeySDK" -#define BITHOCKEY_IDENTIFIER @"net.hockeyapp.sdk.ios" -#define BITHOCKEY_CRASH_SETTINGS @"BITCrashManager.plist" -#define BITHOCKEY_CRASH_ANALYZER @"BITCrashManager.analyzer" - -#define BITHOCKEY_FEEDBACK_SETTINGS @"BITFeedbackManager.plist" - -#define BITHOCKEY_USAGE_DATA @"BITUpdateManager.plist" - -#define kBITHockeyMetaUserName @"BITHockeyMetaUserName" -#define kBITHockeyMetaUserEmail @"BITHockeyMetaUserEmail" -#define kBITHockeyMetaUserID @"BITHockeyMetaUserID" - -#define kBITUpdateInstalledUUID @"BITUpdateInstalledUUID" -#define kBITUpdateInstalledVersionID @"BITUpdateInstalledVersionID" -#define kBITUpdateCurrentCompanyName @"BITUpdateCurrentCompanyName" -#define kBITUpdateArrayOfLastCheck @"BITUpdateArrayOfLastCheck" -#define kBITUpdateDateOfLastCheck @"BITUpdateDateOfLastCheck" -#define kBITUpdateDateOfVersionInstallation @"BITUpdateDateOfVersionInstallation" -#define kBITUpdateUsageTimeOfCurrentVersion @"BITUpdateUsageTimeOfCurrentVersion" -#define kBITUpdateUsageTimeForUUID @"BITUpdateUsageTimeForUUID" -#define kBITUpdateInstallationIdentification @"BITUpdateInstallationIdentification" - -#define kBITStoreUpdateDateOfLastCheck @"BITStoreUpdateDateOfLastCheck" -#define kBITStoreUpdateLastStoreVersion @"BITStoreUpdateLastStoreVersion" -#define kBITStoreUpdateLastUUID @"BITStoreUpdateLastUUID" -#define kBITStoreUpdateIgnoreVersion @"BITStoreUpdateIgnoredVersion" - -#define BITHOCKEY_INTEGRATIONFLOW_TIMESTAMP @"BITIntegrationFlowStartTimestamp" - -#define BITHOCKEYSDK_BUNDLE @"HockeySDKResources.bundle" -#define BITHOCKEYSDK_URL @"https://sdk.hockeyapp.net/" - -#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] - -NSBundle *BITHockeyBundle(void); -NSString *BITHockeyLocalizedString(NSString *stringToken); -NSString *BITHockeyMD5(NSString *str); - -#ifndef __IPHONE_8_0 -#define __IPHONE_8_0 80000 -#endif - -#ifdef __IPHONE_6_0 - -#define kBITTextLabelAlignmentCenter NSTextAlignmentCenter -#define kBITTextLabelAlignmentLeft NSTextAlignmentLeft -#define kBITTextLabelAlignmentRight NSTextAlignmentRight -#define kBITLineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle - -#else - -#define kBITTextLabelAlignmentCenter UITextAlignmentCenter -#define kBITTextLabelAlignmentLeft UITextAlignmentLeft -#define kBITTextLabelAlignmentRight UITextAlignmentRight -#define kBITLineBreakModeMiddleTruncation UILineBreakModeMiddleTruncation - -#endif /* __IPHONE_6_0 */ - -#if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_1 - -#define kBITButtonTypeSystem UIButtonTypeSystem - -#else - -#define kBITButtonTypeSystem UIButtonTypeRoundedRect - -#endif - -#endif //HockeySDK_HockeySDKPrivate_h diff --git a/Pods/HockeySDK/Classes/HockeySDKPrivate.m b/Pods/HockeySDK/Classes/HockeySDKPrivate.m deleted file mode 100644 index 7cd5341..0000000 --- a/Pods/HockeySDK/Classes/HockeySDKPrivate.m +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. - * Copyright (c) 2011 Andreas Linde. - * 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. - */ - -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" -#include - -NSString *const kBITCrashErrorDomain = @"BITCrashReporterErrorDomain"; -NSString *const kBITUpdateErrorDomain = @"BITUpdaterErrorDomain"; -NSString *const kBITFeedbackErrorDomain = @"BITFeedbackErrorDomain"; -NSString *const kBITHockeyErrorDomain = @"BITHockeyErrorDomain"; -NSString *const kBITAuthenticatorErrorDomain = @"BITAuthenticatorErrorDomain"; - -// Load the framework bundle. -NSBundle *BITHockeyBundle(void) { - static NSBundle *bundle = nil; - static dispatch_once_t predicate; - dispatch_once(&predicate, ^{ - NSString* mainBundlePath = [[NSBundle bundleForClass:[BITHockeyManager class]] resourcePath]; - NSString* frameworkBundlePath = [mainBundlePath stringByAppendingPathComponent:BITHOCKEYSDK_BUNDLE]; - bundle = [NSBundle bundleWithPath:frameworkBundlePath]; - }); - return bundle; -} - -NSString *BITHockeyLocalizedString(NSString *stringToken) { - if (!stringToken) return @""; - - NSString *appSpecificLocalizationString = NSLocalizedString(stringToken, @""); - if (appSpecificLocalizationString && ![stringToken isEqualToString:appSpecificLocalizationString]) { - return appSpecificLocalizationString; - } else if (BITHockeyBundle()) { - NSString *bundleSpecificLocalizationString = NSLocalizedStringFromTableInBundle(stringToken, @"HockeySDK", BITHockeyBundle(), @""); - if (bundleSpecificLocalizationString) - return bundleSpecificLocalizationString; - return stringToken; - } else { - return stringToken; - } -} - -NSString *BITHockeyMD5(NSString *str) { - const char *cStr = [str UTF8String]; - unsigned char result[CC_MD5_DIGEST_LENGTH]; - CC_MD5( cStr, (CC_LONG)strlen(cStr), result ); - return [NSString - stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", - result[0], result[1], - result[2], result[3], - result[4], result[5], - result[6], result[7], - result[8], result[9], - result[10], result[11], - result[12], result[13], - result[14], result[15] - ]; -} diff --git a/Pods/HockeySDK/LICENSE b/Pods/HockeySDK/LICENSE deleted file mode 100644 index 2900b9e..0000000 --- a/Pods/HockeySDK/LICENSE +++ /dev/null @@ -1,124 +0,0 @@ -## Licenses - -The Hockey SDK is provided under the following license: - - The MIT License - Copyright (c) 2012-2015 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. - -Except as noted below, PLCrashReporter -is provided under the following license: - - Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. - Copyright (c) 2012 - 2015 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. - -The protobuf-c library, as well as the PLCrashLogWriterEncoding.c -file are licensed as follows: - - Copyright 2008, Dave Benson. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with - the License. You may obtain a copy of the License - at http://www.apache.org/licenses/LICENSE-2.0 Unless - required by applicable law or agreed to in writing, - software distributed under the License is distributed on - an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - -TTTAttributedLabel is licensed as follows: - - Copyright (c) 2011 Mattt Thompson (http://mattt.me/) - - 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. - -SFHFKeychainUtils is licensed as follows: - - Created by Buzz Andersen on 10/20/08. - Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. - Copyright 2008 Sci-Fi Hi-Fi. 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. diff --git a/Pods/HockeySDK/README.md b/Pods/HockeySDK/README.md deleted file mode 100644 index a53b55d..0000000 --- a/Pods/HockeySDK/README.md +++ /dev/null @@ -1,50 +0,0 @@ -## Version 3.6.4 - -- [Changelog](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Changelog.html) - - -## Introduction - -HockeySDK-iOS implements support for using HockeyApp in your iOS applications. - -The following features are currently supported: - -1. **Collect crash reports:** If your app crashes, a crash log with the same format as from the Apple Crash Reporter is written to the device's storage. If the user starts the app again, he is asked to submit the crash report to HockeyApp. This works for both beta and live apps, i.e. those submitted to the App Store! - -2. **Update Ad-Hoc / Enterprise apps:** The app will check with HockeyApp if a new version for your Ad-Hoc or Enterprise build is available. If yes, it will show an alert view to the user and let him see the release notes, the version history and start the installation process right away. - -3. **Update notification for app store:** The app will check if a new version for your app store release is available. If yes, it will show an alert view to the user and let him open your app in the App Store app. (Disabled by default!) - -4. **Feedback:** Collect feedback from your users from within your app and communicate directly with them using the HockeyApp backend. - -5. **Authenticate:** Identify and authenticate users of Ad-Hoc or Enterprise builds - - -The main SDK class is `BITHockeyManager`. It initializes all modules and provides access to them, so they can be further adjusted if required. Additionally all modules provide their own protocols. - -## Prerequisites - -1. Before you integrate HockeySDK into your own app, you should add the app to HockeyApp if you haven't already. Read [this how-to](http://support.hockeyapp.net/kb/how-tos/how-to-create-a-new-app) on how to do it. -2. We also assume that you already have a project in Xcode and that this project is opened in Xcode 5. -3. The SDK supports iOS 6.0 or newer. - - -## Installation & Setup - -- [Installation & Setup](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Guide-Installation-Setup.html) (Recommended) -- [Installation & Setup Advanced](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Guide-Installation-Setup-Advanced.html) (Using Git submodule and Xcode sub-project) -- [Identify and authenticate users of Ad-Hoc or Enterprise builds](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/HowTo-Authenticating-Users-on-iOS.html) -- [Migration from previous SDK Versions](http://www.hockeyapp.net/help/sdk/ios/3.6.2/docs/docs/Guide-Migration-Kits.html) - - -## Xcode Documentation - -This documentation provides integrated help in Xcode for all public APIs and a set of additional tutorials and HowTo articles. - -1. Download the [HockeySDK-iOS documentation](http://hockeyapp.net/releases/). - -2. Unzip the file. A new folder `HockeySDK-iOS-documentation` is created. - -3. Copy the content into ~`/Library/Developer/Shared/Documentation/DocSets` - -The documentation is also available via the following URL: [http://hockeyapp.net/help/sdk/ios/3.6.4/](http://hockeyapp.net/help/sdk/ios/3.6.4/) diff --git a/Pods/HockeySDK/Resources/Arrow.png b/Pods/HockeySDK/Resources/Arrow.png deleted file mode 100644 index 1510ffb..0000000 Binary files a/Pods/HockeySDK/Resources/Arrow.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Arrow@2x.png b/Pods/HockeySDK/Resources/Arrow@2x.png deleted file mode 100644 index 5621688..0000000 Binary files a/Pods/HockeySDK/Resources/Arrow@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Arrow@3x.png b/Pods/HockeySDK/Resources/Arrow@3x.png deleted file mode 100644 index 2ef52ab..0000000 Binary files a/Pods/HockeySDK/Resources/Arrow@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Blur.png b/Pods/HockeySDK/Resources/Blur.png deleted file mode 100644 index 31272a4..0000000 Binary files a/Pods/HockeySDK/Resources/Blur.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Blur@2x.png b/Pods/HockeySDK/Resources/Blur@2x.png deleted file mode 100644 index baeb348..0000000 Binary files a/Pods/HockeySDK/Resources/Blur@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Blur@3x.png b/Pods/HockeySDK/Resources/Blur@3x.png deleted file mode 100644 index 6fb62ad..0000000 Binary files a/Pods/HockeySDK/Resources/Blur@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Cancel.png b/Pods/HockeySDK/Resources/Cancel.png deleted file mode 100644 index 4a552e9..0000000 Binary files a/Pods/HockeySDK/Resources/Cancel.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Cancel@2x.png b/Pods/HockeySDK/Resources/Cancel@2x.png deleted file mode 100644 index 79991bd..0000000 Binary files a/Pods/HockeySDK/Resources/Cancel@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Cancel@3x.png b/Pods/HockeySDK/Resources/Cancel@3x.png deleted file mode 100644 index 60f979c..0000000 Binary files a/Pods/HockeySDK/Resources/Cancel@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/HockeySDK-Info.plist b/Pods/HockeySDK/Resources/HockeySDK-Info.plist deleted file mode 100644 index 40f206f..0000000 --- a/Pods/HockeySDK/Resources/HockeySDK-Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - net.hockeyapp.sdk.ios - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - ${VERSION_STRING} - CFBundleSignature - ???? - CFBundleVersion - ${BUILD_NUMBER} - NSHumanReadableCopyright - Copyright © 2012 HockeyApp, Bit Stadium GmbH. All rights reserved. - NSPrincipalClass - - - diff --git a/Pods/HockeySDK/Resources/IconGradient.png b/Pods/HockeySDK/Resources/IconGradient.png deleted file mode 100644 index e7080b8..0000000 Binary files a/Pods/HockeySDK/Resources/IconGradient.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/IconGradient@2x.png b/Pods/HockeySDK/Resources/IconGradient@2x.png deleted file mode 100644 index 34f2804..0000000 Binary files a/Pods/HockeySDK/Resources/IconGradient@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Ok.png b/Pods/HockeySDK/Resources/Ok.png deleted file mode 100644 index 4f657ee..0000000 Binary files a/Pods/HockeySDK/Resources/Ok.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Ok@2x.png b/Pods/HockeySDK/Resources/Ok@2x.png deleted file mode 100644 index 64bb178..0000000 Binary files a/Pods/HockeySDK/Resources/Ok@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Ok@3x.png b/Pods/HockeySDK/Resources/Ok@3x.png deleted file mode 100644 index 042d3fd..0000000 Binary files a/Pods/HockeySDK/Resources/Ok@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Rectangle.png b/Pods/HockeySDK/Resources/Rectangle.png deleted file mode 100644 index af0b1ba..0000000 Binary files a/Pods/HockeySDK/Resources/Rectangle.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Rectangle@2x.png b/Pods/HockeySDK/Resources/Rectangle@2x.png deleted file mode 100644 index 23819fd..0000000 Binary files a/Pods/HockeySDK/Resources/Rectangle@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/Rectangle@3x.png b/Pods/HockeySDK/Resources/Rectangle@3x.png deleted file mode 100644 index 65138ac..0000000 Binary files a/Pods/HockeySDK/Resources/Rectangle@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/authorize_denied.png b/Pods/HockeySDK/Resources/authorize_denied.png deleted file mode 100644 index 4aed19a..0000000 Binary files a/Pods/HockeySDK/Resources/authorize_denied.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/authorize_denied@2x.png b/Pods/HockeySDK/Resources/authorize_denied@2x.png deleted file mode 100644 index 1f5eed4..0000000 Binary files a/Pods/HockeySDK/Resources/authorize_denied@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/authorize_denied@3x.png b/Pods/HockeySDK/Resources/authorize_denied@3x.png deleted file mode 100644 index 7a09de9..0000000 Binary files a/Pods/HockeySDK/Resources/authorize_denied@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/bg.png b/Pods/HockeySDK/Resources/bg.png deleted file mode 100644 index 2f93586..0000000 Binary files a/Pods/HockeySDK/Resources/bg.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedDelete.png b/Pods/HockeySDK/Resources/buttonRoundedDelete.png deleted file mode 100644 index 339bb51..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedDelete.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png b/Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png deleted file mode 100644 index 5bb10e0..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png b/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png deleted file mode 100644 index 1994e7a..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted@2x.png b/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted@2x.png deleted file mode 100644 index 8cb6b2e..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedRegular.png b/Pods/HockeySDK/Resources/buttonRoundedRegular.png deleted file mode 100644 index 680a7e4..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedRegular.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedRegular@2x.png b/Pods/HockeySDK/Resources/buttonRoundedRegular@2x.png deleted file mode 100644 index 4704643..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedRegular@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted.png b/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted.png deleted file mode 100644 index da667c4..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted@2x.png b/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted@2x.png deleted file mode 100644 index 47b937f..0000000 Binary files a/Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/de.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/de.lproj/HockeySDK.strings deleted file mode 100644 index f4051c9..0000000 --- a/Pods/HockeySDK/Resources/de.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Ja"; - -/* For dialogs no buttons */ -"HockeyNo" = "Nein"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Diese App"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ wurde unerwartet beendet."; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Möchten Sie einen Bericht mit anonymisierten Daten senden, sodass wir das Problem beheben können?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Möchten Sie einen Bericht senden, sodass wir das Problem beheben können?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Immer senden"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Bericht senden"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Nicht senden"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Senden …"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Update verfügbar"; - -"UpdateAlertTextWithAppVersion" = "%@ ist verfügbar."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ ist verfügbar. Dies ist ein verpflichtendes Update!"; - -"UpdateIgnore" = "Ignorieren"; - -"UpdateShow" = "Anzeigen"; - -"UpdateInstall" = "Installieren"; - -"UpdateRemindMe" = "Erinnerung"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Aktualisieren"; - -"UpdateButtonCheck" = "PRÜFEN"; - -"UpdateButtonSearching" = "PRÜFEN"; - -"UpdateButtonUpdate" = "UPDATE"; - -"UpdateButtonInstalling" = "INSTALLIEREN"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "INSTALLIERT"; - -"UpdateVersion" = "Version"; - -"UpdateShowPreviousVersions" = "Vorherige Versionen anzeigen …"; - -"UpdateNoUpdateAvailableTitle" = "Kein Update verfügbar"; - -"UpdateNoUpdateAvailableMessage" = "%@ ist die derzeit aktuellste Version"; - -"UpdateError" = "Fehler"; - -"UpdateWarning" = "Achtung"; - -"UpdateNoReleaseNotesAvailable" = "Keine Versionshinweise verfügbar."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorisieren …"; - -"UpdateAuthorizationOffline" = "Internetverbindung erforderlich."; - -"UpdateAuthorizationDenied" = "Autorisierung abgelehnt. Bitte wenden Sie sich an den Entwickler."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ ist abgelaufen und kann nicht mehr verwendet werden."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey Update funktioniert im Simulator nicht.\nDas URL-Schema „itms-services://” ist zwar implementiert, hat aber keine Funktion."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Neue Feedback-Antwort"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Es liegt eine neue Antwort auf Ihr Feedback vor. Möchten Sie die Antwort lesen?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignorieren"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Anzeigen"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Feedback"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Letztes Update: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Noch nie"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Feedback senden"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Antworten"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Namen eingeben"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "E-Mail-Adresse eingeben"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Name: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-Mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Alle Mitteilungen löschen"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Versand ausstehend"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Diese Aktion löscht alle auf diesem Gerät befindlichen HockeyApp-Mitteilungen."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Löschen"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Abbrechen"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Abbrechen"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Öffnen"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Kopieren"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Feedback zu %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Neues Feedback"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Senden"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Bild hinzufügen"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Bild bearbeiten"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Bild löschen"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Abbrechen"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Meine Infos"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Bitte geben Sie vor Verfassen Ihres Feedbacks Ihre Daten ein."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Name"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Max Mustermann"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-Mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@beispiel.de"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Der Entwickler hat die UDID dieses Geräts angefordert. Unten tippen, um die HockeyApp Website zu öffnen und den Zugriff darauf zu erlauben."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "HockeyApp öffnen"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Der Entwickler hat die die E-Mail-Adresse Ihres HockeyApp-Accounts angefordert. Unten tippen, um die HockeyApp Website zu öffnen und den Zugriff darauf zu erlauben."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Geben Sie die E-Mail-Adresse und das Kennwort Ihres HockeyApp-Accounts ein, um Zugriff auf diese App zu erhalten."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Geben Sie die E-Mail-Adresse Ihres HockeyApp-Accounts ein, um Zugriff auf diese App zu erhalten."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@beispiel.de"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Erforderlich"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-Mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Kennwort"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Die Autorisierung ist fehlgeschlagen, da Ihr Gerät anscheinend nicht mit dem Internet verbunden ist. Bitte erneut versuchen."; - -"HockeyAuthenticationFailedAuthenticate" = "Autorisierung fehlgeschlagen. Bitte erneut versuchen oder an den Entwickler dieser App wenden."; -"HockeyAuthenticationNotMember" = "Sie sind nicht berechtigt, diese App zu nutzen. Bitte wenden Sie sich an den Entwickler dieser App."; -"HockeyAuthenticationContactDeveloper" = "Autorisierungsfehler. Bitte wenden Sie sich an den Entwickler dieser App."; -"HockeyAuthenticationWrongEmailPassword" = "E-Mail-Adresse oder Kennwort sind nicht korrekt. Bitte Eingaben prüfen und erneut versuchen."; -"HockeyAuthenticationAuthSecretMissing" = "Das HockeyApp „Authorization Secret“ wurde nicht hinterlegt. Bitte wenden Sie sich an den Entwickler dieser App."; diff --git a/Pods/HockeySDK/Resources/en.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/en.lproj/HockeySDK.strings deleted file mode 100644 index 7e6abaf..0000000 --- a/Pods/HockeySDK/Resources/en.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Yes"; - -/* For dialogs no buttons */ -"HockeyNo" = "No"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "This app"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ Unexpectedly Quit"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Would you like to send an anonymous report so we can fix the problem?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Would you like to send a report so we can fix the problem?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Always Send"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Send Report"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Don't Send"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Sending…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Update available"; - -"UpdateAlertTextWithAppVersion" = "%@ is available."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ is available and is a mandatory update!"; - -"UpdateIgnore" = "Ignore"; - -"UpdateShow" = "Show"; - -"UpdateInstall" = "Install"; - -"UpdateRemindMe" = "Remind me"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Update"; - -"UpdateButtonCheck" = "CHECK"; - -"UpdateButtonSearching" = "CHECKING"; - -"UpdateButtonUpdate" = "UPDATE"; - -"UpdateButtonInstalling" = "INSTALLING"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "INSTALLED"; - -"UpdateVersion" = "Version"; - -"UpdateShowPreviousVersions" = "Show previous versions..."; - -"UpdateNoUpdateAvailableTitle" = "No Update Available"; - -"UpdateNoUpdateAvailableMessage" = "%@ is already the latest version."; - -"UpdateError" = "Error"; - -"UpdateWarning" = "Warning"; - -"UpdateNoReleaseNotesAvailable" = "No release notes available."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Authorizing..."; - -"UpdateAuthorizationOffline" = "Internet connection required!"; - -"UpdateAuthorizationDenied" = "Authorizing denied. Please contact the developer."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ is expired and can not be used any longer."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey Update does not work in the Simulator.\nThe itms-services:// url scheme is implemented but nonfunctional."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "New Feedback Response"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "A new response to your feedback is available. Would you like to view it?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignore"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Show"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Feedback"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Last Updated: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Never"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Provide Feedback"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Add a Response"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Set Your Name"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Set Your Email"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Name: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "Email: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Delete All Messages"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Pending"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "This will delete all messages on this device."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Delete"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Cancel"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Cancel"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Open"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copy"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "%@ Feedback"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "New Feedback"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Send"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Add Image"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Edit Image"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Delete Image"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Cancel"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "My Info"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Please provide your information before writing your feedback."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Name"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "John Doe"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "Email"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "The developer has requested this device's UDID. Tap below to open the HockeyApp website and authorize access."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Open HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "The developer has requested your HockeyApp account's email address. Tap below to open the HockeyApp website and authorize access."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Please enter your HockeyApp account's email address and password to authorize access to this app."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Please enter your HockeyApp account's email address to authorize access to this app."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Required"; -"HockeyAuthenticationViewControllerEmailDescription" = "Email"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Password"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Failed to authorize because your device appears to be disconnected from the Internet. Please try again."; - -"HockeyAuthenticationFailedAuthenticate" = "Failed to authorize. Please try again or contact the developer of this app."; -"HockeyAuthenticationNotMember" = "You are not authorized to use this app. Please contact the developer of this app."; -"HockeyAuthenticationContactDeveloper" = "Authorization error. Please contact the developer of this app."; -"HockeyAuthenticationWrongEmailPassword" = "You have entered an invalid email or password. Please check your input and try again."; -"HockeyAuthenticationAuthSecretMissing" = "The HockeySDK authorization secret has not been set. Please contact the developer of this app."; diff --git a/Pods/HockeySDK/Resources/es.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/es.lproj/HockeySDK.strings deleted file mode 100644 index 40c6a57..0000000 --- a/Pods/HockeySDK/Resources/es.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Sí"; - -/* For dialogs no buttons */ -"HockeyNo" = "No enviar"; - -/* For dialogs ok buttons */ -"HockeyOK" = "Aceptar"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Esta aplicación"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ se ha cerrado inesperadamente"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "¿Desea enviar un informe anónimo para ayudarnos a solucionar el problema?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "¿Desea enviar un informe para ayudarnos a solucionar el problema?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Enviarlo siempre"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Enviar informe"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "No enviar"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Enviando…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Actualización disponible"; - -"UpdateAlertTextWithAppVersion" = "%@ disponible."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ está disponible, y es una actualización obligatoria."; - -"UpdateIgnore" = "Ignorar"; - -"UpdateShow" = "Mostrar"; - -"UpdateInstall" = "Instalar"; - -"UpdateRemindMe" = "Recordar"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Actualización"; - -"UpdateButtonCheck" = "COMPROBAR"; - -"UpdateButtonSearching" = "COMPROBANDO"; - -"UpdateButtonUpdate" = "ACTUALIZAR"; - -"UpdateButtonInstalling" = "INSTALANDO"; - -"UpdateButtonOffline" = "SIN CONEXIÓN"; - -"UpdateInstalled" = "INSTALADO"; - -"UpdateVersion" = "Versión"; - -"UpdateShowPreviousVersions" = "Mostrar versiones anteriores..."; - -"UpdateNoUpdateAvailableTitle" = "No hay actualizaciones disponibles"; - -"UpdateNoUpdateAvailableMessage" = "%@ es la versión más reciente."; - -"UpdateError" = "Error"; - -"UpdateWarning" = "Advertencia"; - -"UpdateNoReleaseNotesAvailable" = "No hay notas para esta versión."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorizando..."; - -"UpdateAuthorizationOffline" = "Se requiere conexión a Internet."; - -"UpdateAuthorizationDenied" = "Se ha denegado la autorización. Contacte con el desarrollador."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ ha caducado y ya no puede usarse."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Las actualizaciones de Hockey no funcionan en el Simulador.\nEl esquema URL itms-services:// está implementado pero no funciona."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nueva respuesta al mensaje"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Hay una nueva respuesta a su mensaje. ¿Desea verla?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignorar"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Mostrar"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Mensajes"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Última actualización: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Nunca"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Dejar un mensaje"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Añadir una respuesta"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Introduzca su nombre"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Introduzca su correo"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Nombre: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "Correo: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Eliminar todos los mensajes"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Pendiente"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Se eliminarán todos los mensajes en este dispositivo."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Eliminar"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Cancelar"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Cancelar"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Abrir"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copiar"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Comentar %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "Aplicación"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Nuevo mensaje"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Enviar"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Añadir imagen"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Editar imagen"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Eliminar imagen"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Cancelar"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Mis datos"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Indique sus datos antes de escribir el mensaje."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Nombre"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Juan García"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "Correo"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "correo@ejemplo.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "El desarrollador ha solicitado el UDID de este dispositivo. Toque a continuación para abrir la web de HockeyApp y autorizar el acceso."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Abrir HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "El desarrollador ha solicitado el correo de su cuenta de HockeyApp. Toque a continuación para abrir la web de HockeyApp y autorizar el acceso."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Escriba el correo y contraseña de su cuenta de HockeyApp para autorizar el acceso a esta app."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Escriba el correo de su cuenta de HockeyApp para autorizar el acceso a esta app."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "correo@ejemplo.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Obligatorio"; -"HockeyAuthenticationViewControllerEmailDescription" = "Correo"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Contraseña"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "No se ha podido realizar la autorización porque su dispositivo parece no estar conectado a Internet. Vuelva a intentarlo."; - -"HockeyAuthenticationFailedAuthenticate" = "Error de autorización. Vuelva a intentarlo o póngase en contacto con el desarrollador de la app."; -"HockeyAuthenticationNotMember" = "No tiene autorización para usar esta app. Póngase en contacto con el desarrollador de la app."; -"HockeyAuthenticationContactDeveloper" = "Error de autorización. Póngase en contacto con el desarrollador de la app."; -"HockeyAuthenticationWrongEmailPassword" = "Ha escrito un correo o contraseña incorrectos. Compruébelos y vuelva a intentarlo."; -"HockeyAuthenticationAuthSecretMissing" = "El “authorization secret” de HockeySDK no está definido. Póngase en contacto con el desarrollador de la app."; diff --git a/Pods/HockeySDK/Resources/feedbackActivity.png b/Pods/HockeySDK/Resources/feedbackActivity.png deleted file mode 100644 index bdbef48..0000000 Binary files a/Pods/HockeySDK/Resources/feedbackActivity.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/feedbackActivity@2x.png b/Pods/HockeySDK/Resources/feedbackActivity@2x.png deleted file mode 100644 index 26a308d..0000000 Binary files a/Pods/HockeySDK/Resources/feedbackActivity@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/feedbackActivity@2x~ipad.png b/Pods/HockeySDK/Resources/feedbackActivity@2x~ipad.png deleted file mode 100644 index c010e96..0000000 Binary files a/Pods/HockeySDK/Resources/feedbackActivity@2x~ipad.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/feedbackActivity@3x.png b/Pods/HockeySDK/Resources/feedbackActivity@3x.png deleted file mode 100644 index 7e44a4d..0000000 Binary files a/Pods/HockeySDK/Resources/feedbackActivity@3x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/feedbackActivity~ipad.png b/Pods/HockeySDK/Resources/feedbackActivity~ipad.png deleted file mode 100644 index 96cf7ca..0000000 Binary files a/Pods/HockeySDK/Resources/feedbackActivity~ipad.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings deleted file mode 100644 index 76d9e2a..0000000 --- a/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Oui"; - -/* For dialogs no buttons */ -"HockeyNo" = "Non"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Cette application"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ a quitté inopinément."; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Voulez-vous envoyer un rapport anonyme pour nous aider à corriger le problème ?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Voulez-vous envoyer un rapport pour nous aider à corriger le problème ?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Toujours envoyer"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Envoyer"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Ne pas envoyer"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Envoi…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Mise à jour disponible"; - -"UpdateAlertTextWithAppVersion" = "%@ est disponible."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ est disponible. Cette mise à jour est obligatoire !"; - -"UpdateIgnore" = "Ignorer"; - -"UpdateShow" = "Afficher"; - -"UpdateInstall" = "Installer"; - -"UpdateRemindMe" = "M'avertir"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Mise à jour"; - -"UpdateButtonCheck" = "RECHERCHER"; - -"UpdateButtonSearching" = "RECHERCHE"; - -"UpdateButtonUpdate" = "METTRE À JOUR"; - -"UpdateButtonInstalling" = "INSTALLATION"; - -"UpdateButtonOffline" = "HORS LIGNE"; - -"UpdateInstalled" = "INSTALLÉ"; - -"UpdateVersion" = "Version"; - -"UpdateShowPreviousVersions" = "Afficher les versions précédentes…"; - -"UpdateNoUpdateAvailableTitle" = "Aucune mise à jour disponible"; - -"UpdateNoUpdateAvailableMessage" = "%@ est la dernière version."; - -"UpdateError" = "Erreur"; - -"UpdateWarning" = "Avertissement"; - -"UpdateNoReleaseNotesAvailable" = "Aucune note de version."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorisation…"; - -"UpdateAuthorizationOffline" = "Connexion Internet requise !"; - -"UpdateAuthorizationDenied" = "Autorisation refusée. Contactez le développeur."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ a expiré et n'est plus utilisable."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Le service de mise à jour Hockey ne fonctionne pas dans le simulateur.\nLe modèle d'URL itms-services:// est implémenté mais n'est pas encore opérationnel."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nouvelle réponse au commentaire"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Une nouvelle réponse à votre commentaire est disponible. Voulez-vous la consulter ?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignorer"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Afficher"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Commentaires"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Dernière mise à jour : %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Jamais"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Émettre un commentaire"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Répondre"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Spécifier votre nom"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Spécifier votre adresse"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Nom : %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "Adresse : %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Supprimer les messages"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "En attente"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Ceci supprime tous les messages présents sur l'appareil."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Supprimer"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Annuler"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Annuler"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Ouvrir"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copier"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Commentaire sur %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "Application"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Commentaire"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Envoyer"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Ajouter une image"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Modifier l’image"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Supprimer l’image"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Annuler"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Mes infos"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Merci de fournir vos informations avant de rédiger votre commentaire."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Nom"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Jean Dubois"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "Adresse"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemple.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Le développeur a demandé l'identifiant unique de l'appareil. Touchez ci-dessous pour accéder au site Web de HockeyApp et autoriser l'accès."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Ouvrir HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Le développeur a demandé l'adresse électronique de votre compte HockeyApp. Touchez ci-dessous pour accéder au site Web de HockeyApp et autoriser l'accès."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Saisissez l'adresse électronique et le mot de passe de votre compte HockeyApp pour autoriser l'accès à cette application."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Saisissez l'adresse électronique de votre compte HockeyApp pour autoriser l'accès à cette application."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemple.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Requis"; -"HockeyAuthenticationViewControllerEmailDescription" = "Adresse"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Mot de passe"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Échec de l'autorisation. Votre appareil semble déconnecté d'Internet. Réessayez."; - -"HockeyAuthenticationFailedAuthenticate" = "Échec de l'autorisation. Réessayez ou contactez le développeur de l'application."; -"HockeyAuthenticationNotMember" = "Vous n'êtes pas autorisé à utiliser cette application. Contactez le développeur de l'application."; -"HockeyAuthenticationContactDeveloper" = "Erreur d'autorisation. Contactez le développeur de l'application."; -"HockeyAuthenticationWrongEmailPassword" = "L'adresse électronique ou le mot de passe sont incorrects. Vérifiez votre saisie et réessayez."; -"HockeyAuthenticationAuthSecretMissing" = "« HockeySDK authorization secret » non défini. Contactez le développeur de l'application."; diff --git a/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings deleted file mode 100644 index 27af3c4..0000000 --- a/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings +++ /dev/null @@ -1,277 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Da"; - -/* For dialogs no buttons */ -"HockeyNo" = "Ne"; - -/* For dialogs ok buttons */ -"HockeyOK" = "U redu"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Ova aplikacija"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ Neočekivani Završetak"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Želite li poslati anonimno izviješće da možemo riješiti problem?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Želite li poslati izviješće da možemo riješiti problem?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Uvijek Šalji"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Pošalji Izvijeće"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Ne Šalji"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Slanje…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Ažuriranje je dostupno"; - -"UpdateAlertTextWithAppVersion" = "%@ je dostupna."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ je dostupna i obavezno je ažuriranje!"; - -"UpdateIgnore" = "Zanemari"; - -"UpdateShow" = "Prikaz"; - -"UpdateInstall" = "Instaliraj"; - -"UpdateRemindMe" = "Podsjeti me"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Ažuriranje"; - -"UpdateButtonCheck" = "PROVJERA"; - -"UpdateButtonSearching" = "PROVJERA"; - -"UpdateButtonUpdate" = "AŽURIRANJE"; - -"UpdateButtonInstalling" = "INSTALIRANJE"; - -"UpdateButtonOffline" = "VAN MREŽE"; - -"UpdateInstalled" = "INSTALIRANO"; - -"UpdateVersion" = "Verzija"; - -"UpdateShowPreviousVersions" = "Prikaz prethodnih verzija..."; - -"UpdateNoUpdateAvailableTitle" = "Ažuriranja nisu dostupna"; - -"UpdateNoUpdateAvailableMessage" = "%@ je već najnovija verzija."; - -"UpdateError" = "Greška"; - -"UpdateWarning" = "Upozorenje"; - -"UpdateNoReleaseNotesAvailable" = "Nisu dostupne bilješke izdanja."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorizacija..."; - -"UpdateAuthorizationOffline" = "Potrebna je internetska veza!"; - -"UpdateAuthorizationDenied" = "Autorizacija je odbijena. Molimo obratite se razvojnom programeru."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ je isteklo i ne može se više koristiti."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey ažuriranje ne radi u Simulatoru.\nThe itms-services:// url scheme is implemented but nonfunctional."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Novi Odgovor na Povratnu Informaciju"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Dostupan je novi odgovor na Vašu povratnu informaciju. Želite li ga pogledati?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Zanemari"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Prikaži"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Povratna Informacija"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Zadnje Ažuriranje: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Nikada"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Osigurajte Povratnu Informaciju"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Dodaj Odgovor"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Postavite Vaše Ime"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Postavite Vaš E-mail"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Ime: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Obriši Sve Poruke"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Čekanje"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Ovo će obrisati sve poruke na ovom uređaju."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Obriši"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Prekid"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Prekid"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Otvori"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Kopiraj"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "%@ Povratna Informacija"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "Aplikacija"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Nova Povratna Informacija"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Šalji"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Add Image"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Edit Image"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Delete Image"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Prekid"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Moj Info"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Prije pisanja povratne informacije navedite svoje podatke."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Ime"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Ivan Horvat"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@primjer.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Razvojni programer je zatražio UDID Vašeg uređaja. Dodirnite ispod kako biste otvorili HockeyApp web stranicu i autorizirali pristup."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Otvori HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Razvojni programer je zatražio e-mail adresu Vašeg HockeyApp računa. Dodirnite ispod kako biste otvorili HockeyApp web stranicu i autorizirali pristup."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Unesite molimo Vas e-mail adresu i lozinku Vašeg HockeyApp računa kako biste autorizirali pristup ovoj aplikaciji."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Molimo Vas unesite e-mail adresu Vašeg HockeyApp računa za autorizaciju pristupa aplikaciji."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@primjer.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Obavezno"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Lozinka"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Autorizacija nije uspjela. Vaš uređaj nema pristup internetu. Molimo Vas pokušajte iznova."; - - -"HockeyAuthenticationFailedAuthenticate" = "Autorizacija nije uspjela. Molimo Vas pokušajte iznova ili kontaktirajte razvojnog programera ove aplikacije."; -"HockeyAuthenticationNotMember" = "Vi niste autorizirani za korištenje ove aplikacije. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; -"HockeyAuthenticationContactDeveloper" = "Pogreška u autoriziranju. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; -"HockeyAuthenticationWrongEmailPassword" = "E-mail adresa ili lozinka koju ste unijeli nije ispravna. Molimo Vas provjerite Vaš unos i pokušajte iznova."; -"HockeyAuthenticationAuthSecretMissing" = "HockeySDK \"authorization secret\" nije postavljen. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; diff --git a/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings deleted file mode 100644 index bea21b6..0000000 --- a/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Igen"; - -/* For dialogs no buttons */ -"HockeyNo" = "Nem"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Az alkalmazás"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ váratlanul kilépett"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Szeretne hibajelentést küldeni, hogy javíthassuk a problémát? A küldés névtelenül történik."; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Szeretne hibajelentést küldeni, hogy javíthassuk a problémát?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Mindig küldjön"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Jelentés küldése"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Ne küldjön"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Küldés…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Frissítés elérhető"; - -"UpdateAlertTextWithAppVersion" = "%@ elérhető."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ elérhető, és szükséges frissíteni!"; - -"UpdateIgnore" = "Most nem"; - -"UpdateShow" = "Megjelenítés"; - -"UpdateInstall" = "Telepítés"; - -"UpdateRemindMe" = "Emlékeztessen később"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Frissítés"; - -"UpdateButtonCheck" = "ELLENŐRZÉS"; - -"UpdateButtonSearching" = "KERESÉS"; - -"UpdateButtonUpdate" = "FRISSÍTÉS"; - -"UpdateButtonInstalling" = "TELEPÍTÉS"; - -"UpdateButtonOffline" = "NINCS KAPCSOLAT"; - -"UpdateInstalled" = "TELEPÍTVE"; - -"UpdateVersion" = "verzió"; - -"UpdateShowPreviousVersions" = "Korábbi verziók megtekintése…"; - -"UpdateNoUpdateAvailableTitle" = "Nincs elérhető frissítés"; - -"UpdateNoUpdateAvailableMessage" = "%@ már a legfrissebb verzió."; - -"UpdateError" = "Hiba"; - -"UpdateWarning" = "Figyelmeztetés"; - -"UpdateNoReleaseNotesAvailable" = "Nem elérhető a változások listája."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Engedélyezés…"; - -"UpdateAuthorizationOffline" = "Internetkapcsolat szükséges!"; - -"UpdateAuthorizationDenied" = "Engedélyezés megtagadva. Lépjen kapcsolatba a fejlesztővel."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ érvényessége lejárt, és már nem használható."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "A Hockey Update nem használható a szimulátorban.\nAz itms-services:// URL séma elérhető, de nem működőképes."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Új válasz"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Új válasz érkezett az Ön visszajelzésére. Kívánja most megtekinteni?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Most nem"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Megtekintés"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Visszajelzés"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Utolsó frissítés: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Soha"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Visszajelzés küldése"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Válasz küldése"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Adja meg a nevét"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Adja meg az e-mail címét"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Név: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Összes üzenet törlése"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Folyamatban"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Minden üzenet törlődni fog erről az eszközről."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Törlés"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Mégsem"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Mégsem"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Megnyitás"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Másolás"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Visszajelzés: %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "az alkalmazásról"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Új visszajelzés"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Küldés"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Fotó hozzáadása"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Fotó szerkesztése"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Fotó törlése"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Mégsem"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Felhasználói adatok"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Kérjük, adja meg néhány adatát, mielőtt megírja a visszajelzést."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Név"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Gipsz Jakab"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "A fejlesztő szeretné hozzáférni készüléke UDID azonosítójához. Kattintással nyissa meg a HockeyApp weblapot és engedélyezze a hozzáférést."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "HockeyApp megnyitása"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "A fejlesztő szeretné hozzáférni a HockeyApp fiókjának e-mail címéhez. Kattintással nyissa meg a HockeyApp weblapot és engedélyezze a hozzáférést."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Kérjük, adja meg HockeyApp fiókjához tartozó e-mail címét és jelszavát az alkalmazáshoz történő hozzáférés engedélyezéséhez."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Kérjük, adja meg HockeyApp fiókjához tartozó e-mail címét az alkalmazáshoz történő hozzáférés engedélyezéséhez."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Szükséges mező"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Jelszó"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "A hitelesítés sikertelen, mert készüléke nem csatlakozik az internethez. Kérjük, próbálja meg később újra."; - -"HockeyAuthenticationFailedAuthenticate" = "A hitelesítés sikertelen. Kérjük, próbálja meg később újra vagy lépjen kapcsolatba az alkalmazás fejlesztőjével."; -"HockeyAuthenticationNotMember" = "Nem jogosult az alkalmazás használatára. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; -"HockeyAuthenticationContactDeveloper" = "Hitelesítési hiba. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; -"HockeyAuthenticationWrongEmailPassword" = "Érvénytelen e-mail címet vagy jelszót adott meg. Kérjük, ellenőrizze a bevitelt és adja meg az adatokat újra."; -"HockeyAuthenticationAuthSecretMissing" = "A HockeySDK \"authorization secret\" még nincs beállítva. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; diff --git a/Pods/HockeySDK/Resources/iconCamera.png b/Pods/HockeySDK/Resources/iconCamera.png deleted file mode 100644 index 80eecd0..0000000 Binary files a/Pods/HockeySDK/Resources/iconCamera.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/iconCamera@2x.png b/Pods/HockeySDK/Resources/iconCamera@2x.png deleted file mode 100644 index 8ca9597..0000000 Binary files a/Pods/HockeySDK/Resources/iconCamera@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings deleted file mode 100644 index b88dae6..0000000 --- a/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Sì"; - -/* For dialogs no buttons */ -"HockeyNo" = "Non inviare"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Questa app"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ si è chiusa inaspettatamente"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Vuoi inviare un report anonimo per aiutarci a risolvere il problema?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Vuoi inviare un report con i dettagli del crash per aiutarci a risolvere il problema?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Invia sempre"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Invia"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Non inviare"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Invio..."; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Nuovo aggiornamento"; - -"UpdateAlertTextWithAppVersion" = "È disponibile %@."; - -"UpdateAlertMandatoryTextWithAppVersion" = "È disponibile %@ ed è un aggiornamento obbligatorio!"; - -"UpdateIgnore" = "Ignora"; - -"UpdateShow" = "Visualizza"; - -"UpdateInstall" = "Installa"; - -"UpdateRemindMe" = "Ricordamelo"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Aggiornamento"; - -"UpdateButtonCheck" = "VERIFICA"; - -"UpdateButtonSearching" = "VERIFICO"; - -"UpdateButtonUpdate" = "AGGIORNA"; - -"UpdateButtonInstalling" = "INSTALLO"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "INSTALLATO"; - -"UpdateVersion" = "Versione"; - -"UpdateShowPreviousVersions" = "Visualizzo versioni precedenti..."; - -"UpdateNoUpdateAvailableTitle" = "Non sono disponibili aggiornamenti"; - -"UpdateNoUpdateAvailableMessage" = "%@ è già la versione attuale."; - -"UpdateError" = "Errore"; - -"UpdateWarning" = "Avviso"; - -"UpdateNoReleaseNotesAvailable" = "Non sono disponibili note sulla release."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorizzazione..."; - -"UpdateAuthorizationOffline" = "È necessario un collegamento a Internet!"; - -"UpdateAuthorizationDenied" = "Autorizzazione negata. Contattare lo sviluppatore."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ è scaduta e non può più essere utilizzata."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "L'aggiornamento di Hockey non funziona nel Simulator.\nLo schema url tms-services:// è implementato ma non è funzionante."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nuova risposta a un commento"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "C'è una nuova risposta al tuo commento. Vuoi visualizzarla?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignora"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Visualizza"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Commento"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Ultimo aggiornamento: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Mai"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Commenta"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Aggiungi una risposta"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Imposta il tuo nome"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Imposta la tua e-mail"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Cancella tutti i messagi"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "In attesa"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Tutti i messaggi presenti sul dispositivo saranno cancellati."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Cancella"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Annulla"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Annulla"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Apri"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copia"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Commento su %@ "; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Nuovo commento"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Invia"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Aggiungi immagine"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Modifica immagine"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Elimina immagine"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Annulla"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Le mie info"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Prima di scrivere il commento inserisci i tuoi dati."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Nome"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Mario Rossi"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@esempio.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Lo sviluppatore ha richiesto l'UDID di questo dispositivo. Tocca in basso per aprire il sito di HockeyApp e autorizza l'accesso."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Apri HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Lo sviluppatore ha richiesto l'indirizzo e-mail del tuo account HockeyApp. Tocca in basso per aprire il sito di HockeyApp e autorizza l'accesso."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Inserisci l'indirizzo e-mail e la password del tuo account HockeyApp per autorizzare l'accesso a questa app."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Inserisci l'indirizzo e-mail del tuo account HockeyApp per autorizzare l'accesso a questa app."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@esempio.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Richiesto"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Password"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Autorizzazione non riuscita. Pare che il dispositivo non sia connesso a Internet. Riprova."; - -"HockeyAuthenticationFailedAuthenticate" = "Autorizzazione non riuscita. Riprova o contatta lo sviluppatore di questa app."; -"HockeyAuthenticationNotMember" = "Non sei autorizzato a usare questa app. Contatta lo sviluppatore di questa app."; -"HockeyAuthenticationContactDeveloper" = "Errore di autorizzazione. Contatta lo sviluppatore di questa app."; -"HockeyAuthenticationWrongEmailPassword" = "L'indirizzo e-mail o la password non sono corretti. Controlla i dati inseriti e riprova."; -"HockeyAuthenticationAuthSecretMissing" = "Non è stato impostato l'\"authorization secret\" HockeySDK. Contatta lo sviluppatore di questa app."; diff --git a/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings deleted file mode 100644 index 1fb856d..0000000 --- a/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "はい"; - -/* For dialogs no buttons */ -"HockeyNo" = "いいえ"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "このApp"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@が予期しない理由で終了"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "問題が修正できるよう、匿名のレポートを送信しますか。"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "問題が修正できるよう、レポートを送信しますか。"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "常に送信"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "レポートを送信"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "送信しない"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "送信中…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "アップデートあり"; - -"UpdateAlertTextWithAppVersion" = "%@が入手できます。"; - -"UpdateAlertMandatoryTextWithAppVersion" = "必須アップデート%@が利用可能です!"; - -"UpdateIgnore" = "無視"; - -"UpdateShow" = "表示"; - -"UpdateInstall" = "インストール"; - -"UpdateRemindMe" = "後で通知"; - - -/* Update Details */ - -"UpdateScreenTitle" = "アップデート"; - -"UpdateButtonCheck" = "確認"; - -"UpdateButtonSearching" = "確認中"; - -"UpdateButtonUpdate" = "アップデート"; - -"UpdateButtonInstalling" = "インストール中"; - -"UpdateButtonOffline" = "オフライン"; - -"UpdateInstalled" = "インストール済み"; - -"UpdateVersion" = "バージョン"; - -"UpdateShowPreviousVersions" = "前のバージョンを表示…"; - -"UpdateNoUpdateAvailableTitle" = "アップデートなし"; - -"UpdateNoUpdateAvailableMessage" = "%@は現在入手できる最新バージョンです。"; - -"UpdateError" = "エラー"; - -"UpdateWarning" = "警告"; - -"UpdateNoReleaseNotesAvailable" = "リリースノートがありません。"; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "認証中…"; - -"UpdateAuthorizationOffline" = "インターネット接続が必要です!"; - -"UpdateAuthorizationDenied" = "認証が拒否されました。デベロッパに連絡してください。"; - - -/* Update Expiry */ - -"UpdateExpired" = "%@の有効期限が切れたため、これ以上使用できません。"; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "HockeyのアップデートはSimulatorでは作動しません。\nitms-services:// のURL方式は実装されていますが、機能しません。"; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "新規フィードバックの応答"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "フィードバックに対する新しい応答があります。表示しますか。"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "無視"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "表示"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "フィードバック"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "前回のアップデート:%@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "しない"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "フィードバックを送信"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "応答を追加"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "名前を設定"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "メールを設定"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "名前:%@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "メール:%@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "すべてのメッセージを削除"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "保留中"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "この操作はこのデバイスのメッセージすべてを削除します。"; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "消去"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "キャンセル"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "キャンセル"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "開く"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "コピー"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "%@フィードバック"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "新規フィードバック"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "送信"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "イメージを追加"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "イメージを編集"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "イメージを削除"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "キャンセル"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "自分の情報"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "フィードバックを記入する前に情報を入力してください。"; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "名前"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Hiromi Sato"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "メール"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "デベロッパからこのデバイスのUDIDを要求されています。以下をタップしてHockeyAppウェブサイトを開き、アクセスを認証してください。"; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "HockeyAppを開く"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "デベロッパからHockeyAppアカウントのメールアドレスを要求されています。以下をタップしてHockeyAppウェブサイトを開き、アクセスを認証してください。"; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "HockeyAppアカウントのメールアドレスとパスワードを入力し、このAppへのアクセスを認証してください。"; -"HockeyAuthenticationViewControllerDataEmailDescription" = "HockeyAppアカウントのメールアドレスを入力し、このAppへのアクセスを認証してください。"; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "必須"; -"HockeyAuthenticationViewControllerEmailDescription" = "メール"; -"HockeyAuthenticationViewControllerPasswordDescription" = "パスワード"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "デバイスがインターネットに接続されていないため、認証できません。やり直してください。"; - -"HockeyAuthenticationFailedAuthenticate" = "認証できませんでした。やり直すか、このAppのデベロッパに連絡してください。"; -"HockeyAuthenticationNotMember" = "このAppの使用を認証されていません。このAppのデベロッパに連絡してください。"; -"HockeyAuthenticationContactDeveloper" = "認証エラー。このAppのデベロッパに連絡してください。"; -"HockeyAuthenticationWrongEmailPassword" = "無効なメールアドレスまたはパスワードが入力されました。入力を確認し、やり直してください。"; -"HockeyAuthenticationAuthSecretMissing" = "HockeySDK “authorization secret” が設定されていません。このAppのデベロッパに連絡してください。"; diff --git a/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings deleted file mode 100644 index 5c77f2a..0000000 --- a/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Ja"; - -/* For dialogs no buttons */ -"HockeyNo" = "Nee"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Deze app"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ is onverwacht gestopt"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Wilt u een anoniem rapport versturen zodat we het probleem kunnen oplossen?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Wilt u een rapport versturen zodat we het probleem kunnen oplossen?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Verstuur altijd"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Verstuur rapport"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Verstuur niet"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Versturen…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Update beschikbaar"; - -"UpdateAlertTextWithAppVersion" = "%@ is beschikbaar."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ is beschikbaar en is een verplichte update!"; - -"UpdateIgnore" = "Negeer"; - -"UpdateShow" = "Toon"; - -"UpdateInstall" = "Installeer"; - -"UpdateRemindMe" = "Herinner me"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Update"; - -"UpdateButtonCheck" = "CONTROLEER"; - -"UpdateButtonSearching" = "CONTROLEREN"; - -"UpdateButtonUpdate" = "WERK BIJ"; - -"UpdateButtonInstalling" = "INSTALLEREN"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "GEÏNSTALLEERD"; - -"UpdateVersion" = "Versie"; - -"UpdateShowPreviousVersions" = "Toon vorige versies..."; - -"UpdateNoUpdateAvailableTitle" = "Geen update beschikbaar"; - -"UpdateNoUpdateAvailableMessage" = "%@ is al de nieuwste versie."; - -"UpdateError" = "Fout"; - -"UpdateWarning" = "Waarschuwing"; - -"UpdateNoReleaseNotesAvailable" = "Geen versiebeschrijvingen beschikbaar."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Identiteit controleren..."; - -"UpdateAuthorizationOffline" = "Internetverbinding vereist!"; - -"UpdateAuthorizationDenied" = "Identiteitscontrole geweigerd. Neem contact op met de ontwikkelaar."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ is verlopen en kan niet langer worden gebruikt."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey Update werkt niet in de Simulator.\nHet URL-schema voor itms-voorzieningen:// is geïmplementeerd maar niet functioneel."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nieuwe reactie op feedback"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Er is een nieuwe reactie op uw feedback. Wilt u deze bekijken?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Negeer"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Toon"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Feedback"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Laatst bijgewerkt: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Nooit"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Stuur feedback"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Voeg een reactie toe"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Stel uw naam in"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Stel uw e-mail in"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Naam: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Verwijder alle berichten"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "In wachtrij"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Dit verwijdert alle berichten op dit apparaat."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Verwijder"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Annuleer"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Annuleer"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Open"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Kopieer"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Feedback over %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Nieuwe feedback"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Verstuur"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Voeg afbeelding toe"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Wijzig afbeelding"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Verwijder afbeelding"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Annuleer"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Mijn info"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Geef uw gegevens op alvorens uw feedback te schrijven."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Naam"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Jan Smit"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "e-mail@voorbeeld.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "De ontwikkelaar heeft de UDID van dit apparaat gevraagd. Tik hieronder om de website van HockeyApp te openen en toegang te verlenen."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Open HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "De ontwikkelaar heeft het e-mailadres van uw HockeyApp-account gevraagd. Tik hieronder om de website van HockeyApp te openen en toegang te verlenen."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Voer het e-mailadres en wachtwoord van uw HockeyApp-account in om toegang tot deze app te verlenen."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Voer het e-mailadres van uw HockeyApp-account in om toegang tot deze app te verlenen."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "mail@voorbeeld.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Verplicht"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Wachtwoord"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Identiteitscontrole mislukt omdat uw apparaat niet is verbonden met het internet. Probeer opnieuw."; - -"HockeyAuthenticationFailedAuthenticate" = "Identiteitscontrole mislukt. Probeer opnieuw of neem contact op met de ontwikkelaar van deze app."; -"HockeyAuthenticationNotMember" = "U bent niet gemachtigd om deze app te gebruiken. Neem contact op met de ontwikkelaar van deze app."; -"HockeyAuthenticationContactDeveloper" = "Fout bij identiteitscontrole. Neem contact op met de ontwikkelaar van deze app."; -"HockeyAuthenticationWrongEmailPassword" = "U hebt een ongeldig e-mailadres of wachtwoord ingevoerd. Controleer uw gegevens en probeer opnieuw."; -"HockeyAuthenticationAuthSecretMissing" = "Het 'Authorization secret' van HockeySDK is nog niet ingesteld. Neem contact op met de ontwikkelaar van deze app."; diff --git a/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings deleted file mode 100644 index 63b923a..0000000 --- a/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Sim"; - -/* For dialogs no buttons */ -"HockeyNo" = "Não"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Esta aplicação"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ fechou inesperadamente"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Pretende enviar um relatório anónimo para que possamos resolver o problema?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Pretende enviar um relatório para que possamos resolver o problema?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Enviar sempre"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Enviar relatório"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Não enviar"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "A enviar..."; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Actualização disponível"; - -"UpdateAlertTextWithAppVersion" = "%@ está disponível."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ está disponível e é uma actualização obrigatória!"; - -"UpdateIgnore" = "Ignorar"; - -"UpdateShow" = "Mostrar"; - -"UpdateInstall" = "Instalar"; - -"UpdateRemindMe" = "Lembrar-me"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Actualização"; - -"UpdateButtonCheck" = "VERIFICAR"; - -"UpdateButtonSearching" = "A VERIFICAR"; - -"UpdateButtonUpdate" = "ACTUALIZAR"; - -"UpdateButtonInstalling" = "A INSTALAR"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "INSTALADO"; - -"UpdateVersion" = "Versão"; - -"UpdateShowPreviousVersions" = "Mostrar versões anteriores..."; - -"UpdateNoUpdateAvailableTitle" = "Nenhuma actualização disponível"; - -"UpdateNoUpdateAvailableMessage" = "%@ é a mais recente."; - -"UpdateError" = "Erro"; - -"UpdateWarning" = "Aviso"; - -"UpdateNoReleaseNotesAvailable" = "Nenhuma nota de lançamento disponível."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "A autorizar..."; - -"UpdateAuthorizationOffline" = "É necessária uma ligação à Internet!"; - -"UpdateAuthorizationDenied" = "Autorização negada. Contacte o programador."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ expirou e já não pode ser utilizada."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "A actualização do Hockey não funciona com o Simulador.\nO url scheme itms-services:// está implementado mas não funciona."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nova resposta a comentário"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Está disponível uma nova resposta ao seu comentário. Pretende vê-la?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignorar"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Mostrar"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Comentário"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Última actualização: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Nunca"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Fornecer comentário"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Adicionar uma resposta"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Definir nome"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Definir e-mail"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Eliminar todas as mensagens"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Pendente"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Todas as mensagens do dispositivo serão eliminadas."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Eliminar"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Cancelar"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Cancelar"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Abrir"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copiar"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Comentário de %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "Aplicação"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Novo comentário"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Enviar"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Adicionar imagem"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Editar imagem"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Apagar imagem"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Cancelar"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Os meus dados"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Forneça os seus dados antes de escrever o comentário."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Nome"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "João Silva"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemplo.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "O programador solicitou o UDID deste dispositivo. Toque em baixo para abrir o website do HockeyApp e autorizar o acesso."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Abrir o HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "O programador solicitou o endereço de e-mail e a palavra-passe da sua conta HockeyApp. Toque em baixo para abrir o website do HockeyApp e autorizar o acesso."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Introduza o endereço de e-mail e a palavra-passe da sua conta HockeyApp para autorizar o acesso a esta aplicação."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Introduza o endereço de e-mail da sua conta HockeyApp para autorizar o acesso a esta aplicação."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemplo.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Necessário"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Palavra-passe"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Falha ao autorizar porque provavelmente o dispositivo não tem ligação à Internet. Tente novamente."; - -"HockeyAuthenticationFailedAuthenticate" = "Falha ao autorizar. Tente novamente ou contacte o programador desta aplicação."; -"HockeyAuthenticationNotMember" = "Não está autorizado a utilizar esta aplicação. Contacte o programador desta aplicação."; -"HockeyAuthenticationContactDeveloper" = "Erro de autorização. Contacte o programador desta aplicação."; -"HockeyAuthenticationWrongEmailPassword" = "Introduziu um e-mail ou palavra-passe inválida. Verifique e tente novamente."; -"HockeyAuthenticationAuthSecretMissing" = "O \"authorization secret\" do HockeySDK não foi definido. Contacte o programador desta aplicação."; diff --git a/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings deleted file mode 100644 index 2651eea..0000000 --- a/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Sim"; - -/* For dialogs no buttons */ -"HockeyNo" = "Não"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Este app"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ fechou repentinamente"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Gostaria de enviar um relatório anônimo para que possamos resolver o problema?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Gostaria de enviar um relatório para que possamos resolver o problema?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Sempre enviar"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Enviar relatório"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Não enviar"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Enviando…"; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Atualização disponível"; - -"UpdateAlertTextWithAppVersion" = "%@ está disponível."; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ está disponível e é uma atualização obrigatória."; - -"UpdateIgnore" = "Ignorar"; - -"UpdateShow" = "Exibir"; - -"UpdateInstall" = "Instalar"; - -"UpdateRemindMe" = "Lembrar"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Atualizar"; - -"UpdateButtonCheck" = "VERIFICAR"; - -"UpdateButtonSearching" = "VERIFICANDO"; - -"UpdateButtonUpdate" = "ATUALIZAR"; - -"UpdateButtonInstalling" = "INSTALANDO"; - -"UpdateButtonOffline" = "OFFLINE"; - -"UpdateInstalled" = "INSTALADO"; - -"UpdateVersion" = "Versão"; - -"UpdateShowPreviousVersions" = "Mostrar versões anteriores..."; - -"UpdateNoUpdateAvailableTitle" = "Não há atualização disponível"; - -"UpdateNoUpdateAvailableMessage" = "%@ já é a versão mais recente."; - -"UpdateError" = "Erro"; - -"UpdateWarning" = "Aviso"; - -"UpdateNoReleaseNotesAvailable" = "Não há notas de versão disponíveis."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Autorizando..."; - -"UpdateAuthorizationOffline" = "É necessário ter conexão à internet."; - -"UpdateAuthorizationDenied" = "Autorização recusada. Entre em contato com o desenvolvedor."; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ expirou e não pode mais ser usado."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "A atualização do Hockey não funciona no simulador.\nO protocolo itms-services:// está implementado, mas não funcional."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Nova resposta de feedback"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Uma nova resposta a seu feedback está disponível. Gostaria de vê-la?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Ignorar"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Exibir"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Feedback"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Atualizado em: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Nunca"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Fornecer feedback"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Adicionar uma resposta"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Informe seu nome"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Informe seu e-mail"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Excluir todas as mensagens"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Pendente"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Todas as mensagens serão excluídas deste dispositivo."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Excluir"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Cancelar"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Cancelar"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Abrir"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Copiar"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Feedback para %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Novo feedback"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Enviar"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Adicionar imagem"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Editar imagem"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Excluir imagem"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Cancelar"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Meus dados"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Informe seus dados antes de redigir o feedback."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Nome"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "José da Silva"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "E-mail"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemplo.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "O desenvolvedor solicitou a UDID deste dispositivo. Toque abaixo para abrir o site do HockeyApp e autorizar o acesso."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Abrir HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "O desenvolvedor solicitou o endereço de e-mail de sua conta do HockeyApp. Toque abaixo para abrir o site do HockeyApp e autorizar o acesso."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Informe seu e-mail e senha da conta do HockeyApp para autorizar o acesso a este aplicativo."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Informe seu e-mail da conta do HockeyApp para autorizar o acesso a este aplicativo."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemplo.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Necessário"; -"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Senha"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Não foi possível autorizar porque seu dispositivo parece estar desconectado da Internet. Tente novamente."; - -"HockeyAuthenticationFailedAuthenticate" = "Falha ao autorizar. Tente novamente ou contate o desenvolvedor deste aplicativo."; -"HockeyAuthenticationNotMember" = "Você não tem autorização para usar este aplicativo. Contate o desenvolvedor deste aplicativo."; -"HockeyAuthenticationContactDeveloper" = "Erro de autorização. Contate o desenvolvedor deste aplicativo."; -"HockeyAuthenticationWrongEmailPassword" = "Você informou um e-mail ou senha inválidos. Verifique os dados e tente novamente."; -"HockeyAuthenticationAuthSecretMissing" = "O “authorization secret” do HockeySDK não foi definido. Contate o desenvolvedor deste aplicativo."; diff --git a/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings deleted file mode 100644 index 2ef9d0d..0000000 --- a/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "Да"; - -/* For dialogs no buttons */ -"HockeyNo" = "Нет"; - -/* For dialogs ok buttons */ -"HockeyOK" = "OK"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "Эта программа"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "Неожиданное завершение %@"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "Пошлете анонимный отчет, чтобы мы могли исправить эту ошибку?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "Пошлете отчет, чтобы мы могли исправить эту ошибку?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "Отправлять всегда"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "Отправить отчет"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "Не отправлять"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "Отправка..."; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "Имеется обновление"; - -"UpdateAlertTextWithAppVersion" = " Доступно: %@."; - -"UpdateAlertMandatoryTextWithAppVersion" = "Доступно обязательное обновление %@!"; - -"UpdateIgnore" = "Игнорировать"; - -"UpdateShow" = "Показать"; - -"UpdateInstall" = "Установить"; - -"UpdateRemindMe" = "Напомнить"; - - -/* Update Details */ - -"UpdateScreenTitle" = "Обновление"; - -"UpdateButtonCheck" = "ПРОВЕРИТЬ"; - -"UpdateButtonSearching" = "ПРОВЕРКА"; - -"UpdateButtonUpdate" = "ОБНОВИТЬ"; - -"UpdateButtonInstalling" = "УСТАНОВКА"; - -"UpdateButtonOffline" = "ОФЛАЙН"; - -"UpdateInstalled" = "УСТАНОВЛЕНО"; - -"UpdateVersion" = "Версия"; - -"UpdateShowPreviousVersions" = "Показать предыдущие версии..."; - -"UpdateNoUpdateAvailableTitle" = "Нет обновлений"; - -"UpdateNoUpdateAvailableMessage" = "%@: самая новая версия."; - -"UpdateError" = "Ошибка"; - -"UpdateWarning" = "Предупреждение"; - -"UpdateNoReleaseNotesAvailable" = "Нет комментариев по этой версии."; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "Авторизация..."; - -"UpdateAuthorizationOffline" = "Нужно подключить Интернет!"; - -"UpdateAuthorizationDenied" = "Отказано в авторизации. Свяжитесь с разработчиком."; - - -/* Update Expiry */ - -"UpdateExpired" = "Срок использования %@ истек, использование прекращено."; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey Update не работает в Simulator.\nСхема itms-services:// url применена, но не работает."; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "Новый ответ на отклик"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "Поступил новый ответ на ваш отклик. Просмотреть его?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "Игнорировать"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "Показать"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "Отклик"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "Последнее обновление: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "Не было"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "Написать отклик"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "Добавить ответ"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "Ввести ваше имя"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "Ввести ваш email"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "Имя: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "Email: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "Удалить все сообщения"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "Ожидание"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "Этим действием будут стерты все сообщения на этом устройстве."; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "Удалить"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "Отменить"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "Отменить"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "Открыть"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "Копировать"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "Отклик на %@"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "Программа"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "Новый"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "Отправить"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "Добавить фото"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "Изменить фото"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "Удалить фото"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "Отменить"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "Мои данные"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "Перед отправкой отклика необходимо ввести ваши личные данные."; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "Имя"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "Имя"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "Email"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Разработчик запросил UDID этого устройства. Нажмите на ссылку ниже, чтобы открыть сайт HockeyApp и авторизовать доступ."; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Открыть HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Разработчик запросил email аккаунта HockeyApp. Нажмите на ссылку внизу, чтобы попасть на сайт HockeyApp и авторизовать доступ."; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Введите email и пароль аккаунта HockeyApp, чтобы авторизовать доступ к этому приложению."; -"HockeyAuthenticationViewControllerDataEmailDescription" = "Введите email аккаунта HockeyApp, чтобы авторизовать доступ к этому приложению."; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Обязательное поле"; -"HockeyAuthenticationViewControllerEmailDescription" = "Email"; -"HockeyAuthenticationViewControllerPasswordDescription" = "Пароль"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "Не удалось авторизоваться, так как ваше устройство не подключено к интернету. Попробуйте еще раз "; - -"HockeyAuthenticationFailedAuthenticate" = "Авторизация не удалась. Попробуйте еще раз или свяжитесь с разработчиком приложения."; -"HockeyAuthenticationNotMember" = "У вас нет разрешения использовать это приложение. Обратитесь к разработчику приложения."; -"HockeyAuthenticationContactDeveloper" = "Ошибка авторизации. Свяжитесь с разработчиком приложения."; -"HockeyAuthenticationWrongEmailPassword" = "Вы ввели неверный email или пароль. Проверьте его правильность и попробуйте еще раз."; -"HockeyAuthenticationAuthSecretMissing" = "HockeySDK authorization secret не настроен. Свяжитесь с разработчиком приложения."; diff --git a/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings deleted file mode 100644 index 9df5c18..0000000 --- a/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings +++ /dev/null @@ -1,276 +0,0 @@ -/* - Localization provided by Wordcrafts - The Mac OS X and iOS localization experts. - http://www.wordcrafts.de - */ - - -/* General */ - -/* For dialogs yes buttons */ -"HockeyYes" = "是"; - -/* For dialogs no buttons */ -"HockeyNo" = "无"; - -/* For dialogs ok buttons */ -"HockeyOK" = "确定"; - -/* Replacement for app name, if it could not be detected */ -"HockeyAppNamePlaceholder" = "这个 app"; - -/* Crash */ - - -/* Crash dialog */ - -/* Title showing in the alert box when crash report data has been found */ -"CrashDataFoundTitle" = "%@ 意外退出"; - -/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ -"CrashDataFoundAnonymousDescription" = "你想要发送一个匿名报告来帮助我们解决这个问题吗?"; - -/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ -"CrashDataFoundDescription" = "你想要发送一个报告来帮助我们解决这个问题吗?"; - -/* Alert box button if the users wants to send crash data always automatically */ -"CrashSendReportAlways" = "总是发送"; - -/* Alert box button to send the crash report once */ -"CrashSendReport" = "发送报告"; - -/* Alert box button to decline sending the report */ -"CrashDontSendReport" = "不发送"; - -/* Text showing in a processing box that the crash data is being uploaded to the server */ -"CrashReportSending" = "正在发送..."; - - -/* Update */ - - -/* Update Alert view */ - -/* Update available */ -"UpdateAvailable" = "更新已推出"; - -"UpdateAlertTextWithAppVersion" = "%@ 已可用。"; - -"UpdateAlertMandatoryTextWithAppVersion" = "%@ 已可用,并且是一个强制更新。"; - -"UpdateIgnore" = "忽略"; - -"UpdateShow" = "显示"; - -"UpdateInstall" = "安装"; - -"UpdateRemindMe" = "提醒我"; - - -/* Update Details */ - -"UpdateScreenTitle" = "更新"; - -"UpdateButtonCheck" = "检查"; - -"UpdateButtonSearching" = "正在检查"; - -"UpdateButtonUpdate" = "更新"; - -"UpdateButtonInstalling" = "正在安装"; - -"UpdateButtonOffline" = "离线"; - -"UpdateInstalled" = "已安装"; - -"UpdateVersion" = "版本"; - -"UpdateShowPreviousVersions" = "显示之前版本..."; - -"UpdateNoUpdateAvailableTitle" = "无可用更新"; - -"UpdateNoUpdateAvailableMessage" = "%@是最新版本。"; - -"UpdateError" = "错误"; - -"UpdateWarning" = "警告"; - -"UpdateNoReleaseNotesAvailable" = "无发行说明。"; - - -/* Update Authorization */ - -"UpdateAuthorizationProgress" = "授权中..."; - -"UpdateAuthorizationOffline" = "需要 Internet 连接!"; - -"UpdateAuthorizationDenied" = "授权被拒绝。请与开发人员联系。"; - - -/* Update Expiry */ - -"UpdateExpired" = "%@ 已过期,所以无法使用。"; - - -/* Update Simulator Warning */ - -"UpdateSimulatorMessage" = "Hockey 更新无法在仿真器中进行。\n这个 itms-services:// 网页连接架构已开始实施但无法正常工作。"; - - -/* Feedback */ - - -/* New Message Alert */ - -/* Alert Title */ -"HockeyFeedbackNewMessageTitle" = "新的意见反馈响应"; - -/* Alert Text */ -"HockeyFeedbackNewMessageText" = "你的意见反馈已有一个新的响应,想查看它吗?"; - -/* Alert Ignore Button */ -"HockeyFeedbackIgnore" = "忽略"; - -/* Alert Show Button */ -"HockeyFeedbackShow" = "显示"; - - -/* List View */ - -/* Title */ -"HockeyFeedbackListTitle" = "意见反馈"; - -/* Last Updated */ -"HockeyFeedbackListLastUpdated" = "上次更新: %@"; - -/* Never Updated */ -"HockeyFeedbackListNeverUpdated" = "从不"; - -/* Provide Feedback Button Title */ -"HockeyFeedbackListButtonWriteFeedback" = "提供意见反馈"; - -/* Add a Response Button Title */ -"HockeyFeedbackListButtonWriteResponse" = "添加一个响应"; - -/* User Data Set Name Button Title */ -"HockeyFeedbackListButtonUserDataSetName" = "设置你的姓名"; - -/* User Data Set Email Button Title */ -"HockeyFeedbackListButtonUserDataSetEmail" = "设置你的邮件"; - -/* User Data With Name Button Title */ -"HockeyFeedbackListButtonUserDataWithName" = "姓名: %@"; - -/* User Data With Email Button Title */ -"HockeyFeedbackListButtonUserDataWithEmail" = "邮件: %@"; - -/* Button title for deleting all local messages*/ -"HockeyFeedbackListButtonDeleteAllMessages" = "删除全部信息"; - -/* Message pending to be send */ -"HockeyFeedbackListMessagePending" = "待定"; - - -/* Delete All Messages Action Sheet / Alert View */ - -/* Title for the Action Sheet */ -"HockeyFeedbackListDeleteAllTitle" = "这将会删除此设备上的所有信息。"; - -/* Button Title to perform delete action */ -"HockeyFeedbackListDeleteAllDelete" = "删除"; - -/* Button Title to cancel delete action */ -"HockeyFeedbackListDeleteAllCancel" = "取消"; - - -/* Open Link In Safari Action Sheet / Alert View */ - -/* Button Title to cancel */ -"HockeyFeedbackListLinkActionCancel" = "取消"; - -/* Button Title to Open the Link */ -"HockeyFeedbackListLinkActionOpen" = "打开"; - -/* Button Title to Copy the Link */ -"HockeyFeedbackListLinkActionCopy" = "拷贝"; - - -/* UIActivity */ - -/* Activity Sharing Button Title, App Name will be inserted */ -"HockeyFeedbackActivityButtonTitle" = "%@ 意见反馈"; - -/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ -"HockeyFeedbackActivityAppPlaceholder" = "App"; - - -/* Compose Message */ - -/* Title */ -"HockeyFeedbackComposeTitle" = "新的意见反馈"; - -/* Send button */ -"HockeyFeedbackComposeSend" = "发送"; - -/* Add Image button for attachment actions */ -"HockeyFeedbackComposeAttachmentAddImage" = "添加图像"; - -/* Edit button for attachment actions */ -"HockeyFeedbackComposeAttachmentEdit" = "编辑图像"; - -/* Delete button for attachment actions */ -"HockeyFeedbackComposeAttachmentDelete" = "删除图像"; - -/* Cancel button for attachment actions */ -"HockeyFeedbackComposeAttachmentCancel" = "取消"; - - -/* Set User Data */ - -/* Title */ -"HockeyFeedbackUserDataTitle" = "我的信息"; - -/* Description On What Should Be Entered */ -"HockeyFeedbackUserDataDescription" = "请提供你的信息,再写入意见反馈。"; - -/* Name Field */ -"HockeyFeedbackUserDataName" = "姓名"; - -/* Name Placeholder */ -"HockeyFeedbackUserDataNamePlaceHolder" = "姓名"; - -/* Email Field */ -"HockeyFeedbackUserDataEmail" = "邮件"; - -/* Email Placeholder */ -"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; - - -/* Authenticator */ - -/* View Controller Title*/ -"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; - -/* BITAuthenticatorAuthTypeUDIDProvider */ -"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "开发人员已经要求该设备的 UDID。点击下面来打开 HockeyApp 网站并授权访问。"; -"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "打开 HockeyApp"; - -/* BITAuthenticatorIdentificationTypeWebAuth */ -"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "开发人员已经要求你的 HockeyApp 帐户的电子邮件。点击下面来打开 HockeyApp 网站并授权访问。"; - -/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ -"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "请输入你的 HockeyApp 帐户的电子邮件和密码来授权访问这个 app。"; -"HockeyAuthenticationViewControllerDataEmailDescription" = "请输入你的 HockeyApp 帐户的电子邮件来授权访问这个 app。"; -"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; -"HockeyAuthenticationViewControllerPasswordPlaceholder" = "必需的"; -"HockeyAuthenticationViewControllerEmailDescription" = "邮件"; -"HockeyAuthenticationViewControllerPasswordDescription" = "密码"; - -/* Error presented to the user if authentication failed because of networking issues */ -"HockeyAuthenticationViewControllerNetworkError" = "你设备的 Internet 连接似乎已断开,导致授权失败。请再试一次。"; - -"HockeyAuthenticationFailedAuthenticate" = "授权错误。请再试一次或联系这个 app 的开发人员。"; -"HockeyAuthenticationNotMember" = "你未获授权使用这个程序。请联系这个 app 的开发人员。"; -"HockeyAuthenticationContactDeveloper" = "授权错误。请联系这个 app 开发人员。"; -"HockeyAuthenticationWrongEmailPassword" = "你输入了一个无效的电子邮件或密码,请检查后再试一次。"; -"HockeyAuthenticationAuthSecretMissing" = "尚未设置 HockeySDK authorization secret。请联系这个 app 的开发人员。"; diff --git a/Pods/HockeySDK/Support/HockeySDK.xcconfig b/Pods/HockeySDK/Support/HockeySDK.xcconfig deleted file mode 100644 index 7f04f3f..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -OTHER_LDFLAGS=$(inherited) -framework CoreText -framework CoreGraphics -framework Foundation -framework QuartzCore -framework SystemConfiguration -framework UIKit -framework Security -framework AssetsLibrary -framework MobileCoreServices -HOCKEYSDK_DOCSET_NAME=HockeySDK-iOS -GCC_PREPROCESSOR_DEFINITIONS=$(inherited) CONFIGURATION_$(CONFIGURATION) diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj deleted file mode 100644 index 50c2065..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1725 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - 1E4F61E91621AD970033EFC5 /* HockeySDK Framework */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 1E4F61EA1621AD970033EFC5 /* Build configuration list for PBXAggregateTarget "HockeySDK Framework" */; - buildPhases = ( - 1E4F61ED1621ADE70033EFC5 /* Build universal embedded framework */, - ); - dependencies = ( - 1E754E431621F6290070AB92 /* PBXTargetDependency */, - ); - name = "HockeySDK Framework"; - productName = "HockeySDK Framework"; - }; - 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 1E8E66B015BC3D7700632A2E /* Build configuration list for PBXAggregateTarget "HockeySDK Documentation" */; - buildPhases = ( - 1E8E66B215BC3D8200632A2E /* ShellScript */, - ); - dependencies = ( - ); - name = "HockeySDK Documentation"; - productName = Documentation; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 1E0829001708F69A0073050E /* BITStoreUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */; }; - 1E0FEE29173BDB260061331F /* BITKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */; }; - 1E1127C416580C87007067A2 /* buttonRoundedDelete.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */; }; - 1E1127C516580C87007067A2 /* buttonRoundedDelete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */; }; - 1E1127C616580C87007067A2 /* buttonRoundedDeleteHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */; }; - 1E1127C716580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */; }; - 1E1127C816580C87007067A2 /* buttonRoundedRegular.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */; }; - 1E1127C916580C87007067A2 /* buttonRoundedRegular@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */; }; - 1E1127CA16580C87007067A2 /* buttonRoundedRegularHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */; }; - 1E1127CB16580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */; }; - 1E494AEC19491943001EFF74 /* AppIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E494AEA19491943001EFF74 /* AppIcon.png */; }; - 1E494AED19491943001EFF74 /* AppIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E494AEB19491943001EFF74 /* AppIcon@2x.png */; }; - 1E49A43C1612223B00463151 /* BITFeedbackComposeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A43F1612223B00463151 /* BITFeedbackComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */; }; - 1E49A4421612223B00463151 /* BITFeedbackListViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */; }; - 1E49A4451612223B00463151 /* BITFeedbackListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */; }; - 1E49A4481612223B00463151 /* BITFeedbackListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A44B1612223B00463151 /* BITFeedbackListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */; }; - 1E49A44E1612223B00463151 /* BITFeedbackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4331612223B00463151 /* BITFeedbackManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A4511612223B00463151 /* BITFeedbackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4341612223B00463151 /* BITFeedbackManager.m */; }; - 1E49A4541612223B00463151 /* BITFeedbackManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */; }; - 1E49A4571612223B00463151 /* BITFeedbackMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4361612223B00463151 /* BITFeedbackMessage.h */; }; - 1E49A45A1612223B00463151 /* BITFeedbackMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4371612223B00463151 /* BITFeedbackMessage.m */; }; - 1E49A45D1612223B00463151 /* BITFeedbackUserDataViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */; }; - 1E49A4601612223B00463151 /* BITFeedbackUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */; }; - 1E49A46D1612226D00463151 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */; }; - 1E49A4701612226D00463151 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */; }; - 1E49A4731612226D00463151 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4641612226D00463151 /* BITUpdateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A4761612226D00463151 /* BITUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4651612226D00463151 /* BITUpdateManager.m */; }; - 1E49A4791612226D00463151 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A47C1612226D00463151 /* BITUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */; }; - 1E49A47F1612226D00463151 /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4681612226D00463151 /* BITUpdateViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A4821612226D00463151 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4691612226D00463151 /* BITUpdateViewController.m */; }; - 1E49A4851612226D00463151 /* BITUpdateViewControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */; }; - 1E49A4AF161222B900463151 /* BITHockeyBaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A4B2161222B900463151 /* BITHockeyBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */; }; - 1E49A4B5161222B900463151 /* BITHockeyBaseManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */; }; - 1E49A4B8161222B900463151 /* BITHockeyBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E49A4BB161222B900463151 /* BITHockeyBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */; }; - 1E49A4BE161222B900463151 /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A5161222B900463151 /* BITHockeyHelper.h */; }; - 1E49A4C1161222B900463151 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A6161222B900463151 /* BITHockeyHelper.m */; }; - 1E49A4C4161222B900463151 /* BITAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */; }; - 1E49A4C7161222B900463151 /* BITAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */; }; - 1E49A4CA161222B900463151 /* BITStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A9161222B900463151 /* BITStoreButton.h */; }; - 1E49A4CD161222B900463151 /* BITStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4AA161222B900463151 /* BITStoreButton.m */; }; - 1E49A4D0161222B900463151 /* BITWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */; }; - 1E49A4D3161222B900463151 /* BITWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */; }; - 1E49A4D8161222D400463151 /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */; }; - 1E49A4DB161222D400463151 /* HockeySDKPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */; }; - 1E4CD1E419D17E9D00019DD4 /* Arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */; }; - 1E4CD1E619D17EA300019DD4 /* Blur@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */; }; - 1E4CD1E819D17EAD00019DD4 /* Cancel@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */; }; - 1E4CD1EA19D17EB700019DD4 /* Ok@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */; }; - 1E4CD1EC19D17EBE00019DD4 /* Rectangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */; }; - 1E4CD1F019D17EE400019DD4 /* authorize_denied@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */; }; - 1E566D071A275C4C0070F514 /* BITCrashReportTextFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */; }; - 1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; }; - 1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; }; - 1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; }; - 1E59559A15B6FDA500A03429 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E5955C615B71C8600A03429 /* authorize_denied.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BB15B71C8600A03429 /* authorize_denied.png */; }; - 1E5955C715B71C8600A03429 /* authorize_denied@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */; }; - 1E5955CA15B71C8600A03429 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BF15B71C8600A03429 /* bg.png */; }; - 1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C415B71C8600A03429 /* IconGradient.png */; }; - 1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C515B71C8600A03429 /* IconGradient@2x.png */; }; - 1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E5A459516F0DFC200B55C04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; }; - 1E5A459B16F0DFC200B55C04 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */; }; - 1E5A459E16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */; }; - 1E61CCAF18E0585A00A5E38E /* BITFeedbackManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */; }; - 1E70A23217F2F982001BB32D /* live_report_empty.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */; }; - 1E70A23317F2F982001BB32D /* live_report_exception.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */; }; - 1E70A23417F2F982001BB32D /* live_report_signal.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */; }; - 1E70A23617F31B82001BB32D /* BITHockeyHelperTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */; }; - 1E754E5C1621FBB70070AB92 /* BITCrashManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E561621FBB70070AB92 /* BITCrashManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E754E5D1621FBB70070AB92 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E571621FBB70070AB92 /* BITCrashManager.m */; }; - 1E754E5E1621FBB70070AB92 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */; }; - 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */; }; - 1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */; }; - 1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */; }; - 1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E90D97F19DAD8A800188C43 /* feedbackActivity.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */; }; - 1E90D98019DAD8A800188C43 /* feedbackActivity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */; }; - 1E90D98119DAD8A800188C43 /* feedbackActivity@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */; }; - 1E90D98219DAD8A800188C43 /* feedbackActivity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */; }; - 1E90D98319DAD8A800188C43 /* feedbackActivity~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */; }; - 1E90FD7318EDB86400CF0417 /* BITCrashDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E90FD7418EDB86400CF0417 /* BITCrashDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */; }; - 1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */; }; - 1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */; }; - 1EA1170016F4D32C001C015C /* libHockeySDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E5954F215B6F24A00A03429 /* libHockeySDK.a */; }; - 1EA1170116F4D354001C015C /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; }; - 1EA1170416F53B49001C015C /* StoreBundleIdentifierUnknown.json in Resources */ = {isa = PBXBuildFile; fileRef = 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */; }; - 1EA1170716F53B91001C015C /* BITTestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1170616F53B91001C015C /* BITTestHelper.m */; }; - 1EA1170916F53E3A001C015C /* StoreBundleIdentifierKnown.json in Resources */ = {isa = PBXBuildFile; fileRef = 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */; }; - 1EA1170C16F54A64001C015C /* HockeySDKResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */; }; - 1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EACC979162F041E007578C5 /* BITAttributedLabel.h */; }; - 1EACC97C162F041E007578C5 /* BITAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */; }; - 1EB52FD5167B766100C801D5 /* HockeySDK.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1E59555F15B6F80E00A03429 /* HockeySDK.strings */; }; - 1EB92E731955C38C0093C8B6 /* BITHockeyAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EB92E741955C38C0093C8B6 /* BITHockeyAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */; }; - 1ECA8F4D192B5BD8006B9416 /* BITCrashDetailsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */; }; - 1ECA8F51192B6954006B9416 /* BITCrashMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1ECA8F52192B6954006B9416 /* BITCrashMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */; }; - 1ED570C718BF878C00AB3350 /* BITCrashAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1ED570C818BF878C00AB3350 /* BITCrashAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */; }; - 1EF95CA6162CB037000AE3AD /* BITFeedbackActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EF95CA7162CB037000AE3AD /* BITFeedbackActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */; }; - 1EF95CAA162CB314000AE3AD /* BITFeedbackComposeViewControllerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EFF03E517F2485500A5F13C /* BITCrashManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */; }; - 973EC8B418BCA7BC00DBFFBB /* BITImageAnnotationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */; }; - 973EC8B718BCA8A200DBFFBB /* BITRectangleImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */; }; - 973EC8B818BCA8A200DBFFBB /* BITRectangleImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */; }; - 973EC8BB18BDE29800DBFFBB /* BITArrowImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */; }; - 973EC8BC18BDE29800DBFFBB /* BITArrowImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */; }; - 973EC8BF18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */; }; - 973EC8C018BE2B5B00DBFFBB /* BITBlurImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */; }; - 9760F6C418BB4D2D00959B93 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */; }; - 9760F6CF18BB685600959B93 /* BITImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */; }; - 9760F6D018BB685600959B93 /* BITImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */; }; - 9774BCFF192CB20A00085EB5 /* BITActivityIndicatorButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */; }; - 9774BD00192CB20A00085EB5 /* BITActivityIndicatorButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */; }; - 9782023218F81BFC00A98D8B /* Arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022818F81BFC00A98D8B /* Arrow.png */; }; - 9782023318F81BFC00A98D8B /* Arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022918F81BFC00A98D8B /* Arrow@2x.png */; }; - 9782023418F81BFC00A98D8B /* Blur.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022A18F81BFC00A98D8B /* Blur.png */; }; - 9782023518F81BFC00A98D8B /* Blur@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022B18F81BFC00A98D8B /* Blur@2x.png */; }; - 9782023618F81BFC00A98D8B /* Cancel.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022C18F81BFC00A98D8B /* Cancel.png */; }; - 9782023718F81BFC00A98D8B /* Cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022D18F81BFC00A98D8B /* Cancel@2x.png */; }; - 9782023818F81BFC00A98D8B /* Ok.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022E18F81BFC00A98D8B /* Ok.png */; }; - 9782023918F81BFC00A98D8B /* Ok@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022F18F81BFC00A98D8B /* Ok@2x.png */; }; - 9782023A18F81BFC00A98D8B /* Rectangle.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782023018F81BFC00A98D8B /* Rectangle.png */; }; - 9782023B18F81BFC00A98D8B /* Rectangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782023118F81BFC00A98D8B /* Rectangle@2x.png */; }; - 97BD9BD5191109730043FD59 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97BD9BD4191109730043FD59 /* QuickLook.framework */; }; - 97CC11F71917AB7C0028768F /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97BD9BD4191109730043FD59 /* QuickLook.framework */; }; - 97CC11F91917C0310028768F /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97CC11F81917C0310028768F /* MobileCoreServices.framework */; }; - 97CC11FA1917C0390028768F /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97CC11F81917C0310028768F /* MobileCoreServices.framework */; }; - 97F0F9FD18ABAECD00EF50AA /* iconCamera.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */; }; - 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */; }; - 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */; }; - 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 */; }; - E40E0B0C17DA1AFF005E38C1 /* BITHockeyAppClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */; }; - E40E0B0D17DA1AFF005E38C1 /* BITHockeyAppClient.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */; }; - E4507E4317F0658F00171A0D /* BITKeychainUtilsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */; }; - E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E48A3DED17B3ED1C00924C3D /* BITAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */; }; - E48A3DEF17B3EFF100924C3D /* BITAuthenticatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */; }; - E4933E8017B66CDA00B11ACC /* BITHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */; }; - E4933E8117B66CDA00B11ACC /* BITHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */; }; - E4B4DB7D17B435550099C67F /* BITAuthenticationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */; }; - E4B4DB7E17B435550099C67F /* BITAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1E59557D15B6F97100A03429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4005611148D79B500EB22B9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1E59550915B6F45800A03429; - remoteInfo = HockeySDKResources; - }; - 1E754E421621F6290070AB92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4005611148D79B500EB22B9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1E8E66AD15BC3D7700632A2E; - remoteInfo = "HockeySDK Documentation"; - }; - 1EA116FE16F4D302001C015C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4005611148D79B500EB22B9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1E5954CB15B6F24A00A03429; - remoteInfo = HockeySDK; - }; - 1EA1170A16F54A5C001C015C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4005611148D79B500EB22B9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1E59550915B6F45800A03429; - remoteInfo = HockeySDKResources; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerDelegate.h; sourceTree = ""; }; - 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITKeychainUtils.h; sourceTree = ""; }; - 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITKeychainUtils.m; sourceTree = ""; }; - 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedDelete.png; sourceTree = ""; }; - 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedDelete@2x.png"; sourceTree = ""; }; - 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedDeleteHighlighted.png; sourceTree = ""; }; - 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedDeleteHighlighted@2x.png"; sourceTree = ""; }; - 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedRegular.png; sourceTree = ""; }; - 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedRegular@2x.png"; sourceTree = ""; }; - 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedRegularHighlighted.png; sourceTree = ""; }; - 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedRegularHighlighted@2x.png"; sourceTree = ""; }; - 1E20A57F181E9D4600D5B770 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E36D8B816667611000B134C /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E494AEA19491943001EFF74 /* AppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon.png; sourceTree = ""; }; - 1E494AEB19491943001EFF74 /* AppIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon@2x.png"; sourceTree = ""; }; - 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackComposeViewController.h; sourceTree = ""; }; - 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackComposeViewController.m; sourceTree = ""; }; - 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackListViewCell.h; sourceTree = ""; }; - 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackListViewCell.m; sourceTree = ""; }; - 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackListViewController.h; sourceTree = ""; }; - 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackListViewController.m; sourceTree = ""; }; - 1E49A4331612223B00463151 /* BITFeedbackManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManager.h; sourceTree = ""; }; - 1E49A4341612223B00463151 /* BITFeedbackManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackManager.m; sourceTree = ""; }; - 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManagerPrivate.h; sourceTree = ""; }; - 1E49A4361612223B00463151 /* BITFeedbackMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackMessage.h; sourceTree = ""; }; - 1E49A4371612223B00463151 /* BITFeedbackMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackMessage.m; sourceTree = ""; }; - 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackUserDataViewController.h; sourceTree = ""; }; - 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackUserDataViewController.m; sourceTree = ""; }; - 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAppVersionMetaInfo.h; sourceTree = ""; }; - 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAppVersionMetaInfo.m; sourceTree = ""; }; - 1E49A4641612226D00463151 /* BITUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManager.h; sourceTree = ""; }; - 1E49A4651612226D00463151 /* BITUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateManager.m; sourceTree = ""; }; - 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerDelegate.h; sourceTree = ""; }; - 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerPrivate.h; sourceTree = ""; }; - 1E49A4681612226D00463151 /* BITUpdateViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewController.h; sourceTree = ""; }; - 1E49A4691612226D00463151 /* BITUpdateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateViewController.m; sourceTree = ""; }; - 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewControllerPrivate.h; sourceTree = ""; }; - 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseManager.h; sourceTree = ""; }; - 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyBaseManager.m; sourceTree = ""; }; - 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseManagerPrivate.h; sourceTree = ""; }; - 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseViewController.h; sourceTree = ""; }; - 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyBaseViewController.m; sourceTree = ""; }; - 1E49A4A5161222B900463151 /* BITHockeyHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyHelper.h; sourceTree = ""; }; - 1E49A4A6161222B900463151 /* BITHockeyHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyHelper.m; sourceTree = ""; }; - 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAppStoreHeader.h; sourceTree = ""; }; - 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAppStoreHeader.m; sourceTree = ""; }; - 1E49A4A9161222B900463151 /* BITStoreButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreButton.h; sourceTree = ""; }; - 1E49A4AA161222B900463151 /* BITStoreButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITStoreButton.m; sourceTree = ""; }; - 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITWebTableViewCell.h; sourceTree = ""; }; - 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITWebTableViewCell.m; sourceTree = ""; }; - 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDKPrivate.h; sourceTree = ""; }; - 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HockeySDKPrivate.m; sourceTree = ""; }; - 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Arrow@3x.png"; sourceTree = ""; }; - 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blur@3x.png"; sourceTree = ""; }; - 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Cancel@3x.png"; sourceTree = ""; }; - 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Ok@3x.png"; sourceTree = ""; }; - 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Rectangle@3x.png"; sourceTree = ""; }; - 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "authorize_denied@3x.png"; sourceTree = ""; }; - 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashReportTextFormatterTests.m; sourceTree = ""; }; - 1E5954F215B6F24A00A03429 /* libHockeySDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libHockeySDK.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E59556015B6F80E00A03429 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59556415B6F81C00A03429 /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59556615B6F82300A03429 /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59556815B6F82A00A03429 /* it */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59556A15B6F83100A03429 /* ja */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59557015B6F84700A03429 /* pt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E59557215B6F84D00A03429 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HockeySDK.strings; sourceTree = ""; }; - 1E5955BB15B71C8600A03429 /* authorize_denied.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = authorize_denied.png; sourceTree = ""; }; - 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "authorize_denied@2x.png"; sourceTree = ""; }; - 1E5955BF15B71C8600A03429 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg.png; sourceTree = ""; }; - 1E5955C415B71C8600A03429 /* IconGradient.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = IconGradient.png; sourceTree = ""; }; - 1E5955C515B71C8600A03429 /* IconGradient@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "IconGradient@2x.png"; sourceTree = ""; }; - 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManagerDelegate.h; sourceTree = ""; }; - 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E5A459816F0DFC200B55C04 /* HockeySDKTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDKTests-Info.plist"; sourceTree = ""; }; - 1E5A459A16F0DFC200B55C04 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BITStoreUpdateManagerTests.m; sourceTree = ""; }; - 1E5A459F16F0DFC200B55C04 /* HockeySDKTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "HockeySDKTests-Prefix.pch"; sourceTree = ""; }; - 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackManagerTests.m; sourceTree = ""; }; - 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = buildnumber.xcconfig; sourceTree = ""; }; - 1E6F0450167B5E5600ED1C86 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/HockeySDK.strings"; sourceTree = ""; }; - 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = live_report_empty.plcrash; sourceTree = ""; }; - 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */ = {isa = PBXFileReference; lastKnownFileType = file; path = live_report_exception.plcrash; sourceTree = ""; }; - 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */ = {isa = PBXFileReference; lastKnownFileType = file; path = live_report_signal.plcrash; sourceTree = ""; }; - 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyHelperTests.m; sourceTree = ""; }; - 1E71509A15B5C76F004E88FF /* HockeySDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDK.h; sourceTree = ""; }; - 1E754DC61621BC170070AB92 /* HockeySDK.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = HockeySDK.xcconfig; sourceTree = ""; }; - 1E754E561621FBB70070AB92 /* BITCrashManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashManager.h; sourceTree = ""; }; - 1E754E571621FBB70070AB92 /* BITCrashManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashManager.m; sourceTree = ""; }; - 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashManagerDelegate.h; sourceTree = ""; }; - 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashReportTextFormatter.h; sourceTree = ""; }; - 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashReportTextFormatter.m; sourceTree = ""; }; - 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCHamcrestIOS.framework; sourceTree = ""; }; - 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMockitoIOS.framework; sourceTree = ""; }; - 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = crashonly.xcconfig; sourceTree = ""; }; - 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HockeySDKFeatureConfig.h; sourceTree = ""; }; - 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = feedbackActivity.png; sourceTree = ""; }; - 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@2x.png"; sourceTree = ""; }; - 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@2x~ipad.png"; sourceTree = ""; }; - 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@3x.png"; sourceTree = ""; }; - 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity~ipad.png"; sourceTree = ""; }; - 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashDetails.h; sourceTree = ""; }; - 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashDetails.m; sourceTree = ""; }; - 1E91D84619B924E600E9616D /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; - 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManager.h; sourceTree = ""; }; - 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITStoreUpdateManager.m; sourceTree = ""; }; - 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerPrivate.h; sourceTree = ""; }; - 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = StoreBundleIdentifierUnknown.json; sourceTree = ""; }; - 1EA1170516F53B91001C015C /* BITTestHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITTestHelper.h; sourceTree = ""; }; - 1EA1170616F53B91001C015C /* BITTestHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITTestHelper.m; sourceTree = ""; }; - 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = StoreBundleIdentifierKnown.json; sourceTree = ""; }; - 1EA512DF167F7EF000FC9FBA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/HockeySDK.strings"; sourceTree = ""; }; - 1EACC979162F041E007578C5 /* BITAttributedLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAttributedLabel.h; sourceTree = ""; }; - 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = BITAttributedLabel.m; sourceTree = ""; }; - 1EB52FC3167B73D400C801D5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/HockeySDK.strings; sourceTree = ""; }; - 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyAttachment.h; sourceTree = ""; }; - 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAttachment.m; sourceTree = ""; }; - 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashDetailsPrivate.h; sourceTree = ""; }; - 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashMetaData.h; sourceTree = ""; }; - 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashMetaData.m; sourceTree = ""; }; - 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashAttachment.h; sourceTree = ""; }; - 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashAttachment.m; sourceTree = ""; }; - 1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDK-Info.plist"; sourceTree = ""; }; - 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackActivity.h; sourceTree = ""; }; - 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackActivity.m; sourceTree = ""; }; - 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackComposeViewControllerDelegate.h; sourceTree = ""; }; - 1EFF03D717F20F8300A5F13C /* BITCrashManagerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BITCrashManagerPrivate.h; sourceTree = ""; }; - 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashManagerTests.m; sourceTree = ""; }; - 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITRectangleImageAnnotation.h; sourceTree = ""; }; - 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITRectangleImageAnnotation.m; sourceTree = ""; }; - 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITArrowImageAnnotation.h; sourceTree = ""; }; - 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITArrowImageAnnotation.m; sourceTree = ""; }; - 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITBlurImageAnnotation.h; sourceTree = ""; }; - 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITBlurImageAnnotation.m; sourceTree = ""; }; - 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; - 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITImageAnnotation.h; sourceTree = ""; }; - 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITImageAnnotation.m; sourceTree = ""; }; - 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITActivityIndicatorButton.h; sourceTree = ""; }; - 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITActivityIndicatorButton.m; sourceTree = ""; }; - 9782022818F81BFC00A98D8B /* Arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Arrow.png; sourceTree = ""; }; - 9782022918F81BFC00A98D8B /* Arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Arrow@2x.png"; sourceTree = ""; }; - 9782022A18F81BFC00A98D8B /* Blur.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Blur.png; sourceTree = ""; }; - 9782022B18F81BFC00A98D8B /* Blur@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blur@2x.png"; sourceTree = ""; }; - 9782022C18F81BFC00A98D8B /* Cancel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Cancel.png; sourceTree = ""; }; - 9782022D18F81BFC00A98D8B /* Cancel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Cancel@2x.png"; sourceTree = ""; }; - 9782022E18F81BFC00A98D8B /* Ok.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Ok.png; sourceTree = ""; }; - 9782022F18F81BFC00A98D8B /* Ok@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Ok@2x.png"; sourceTree = ""; }; - 9782023018F81BFC00A98D8B /* Rectangle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Rectangle.png; sourceTree = ""; }; - 9782023118F81BFC00A98D8B /* Rectangle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Rectangle@2x.png"; sourceTree = ""; }; - 97BD9BD4191109730043FD59 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; - 97CC11F81917C0310028768F /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; - 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iconCamera.png; sourceTree = ""; }; - 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "iconCamera@2x.png"; sourceTree = ""; }; - 97F0F9FF18AE375E00EF50AA /* BITImageAnnotationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITImageAnnotationViewController.h; sourceTree = ""; }; - 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITImageAnnotationViewController.m; sourceTree = ""; }; - 97F0FA0218AE5AED00EF50AA /* BITFeedbackMessageAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackMessageAttachment.h; sourceTree = ""; }; - 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackMessageAttachment.m; sourceTree = ""; }; - BEE0207C16C5107E004426EA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/HockeySDK.strings; sourceTree = ""; }; - E400561D148D79B500EB22B9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManagerDelegate.h; sourceTree = ""; }; - E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAppClientTests.m; sourceTree = ""; }; - E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyAppClient.h; sourceTree = ""; }; - E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAppClient.m; sourceTree = ""; }; - E41EB465148D7BF50015DEDC /* BITHockeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManager.h; sourceTree = ""; }; - E41EB466148D7BF50015DEDC /* BITHockeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyManager.m; sourceTree = ""; }; - E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = ../Vendor/CrashReporter.framework; sourceTree = ""; }; - E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITKeychainUtilsTests.m; sourceTree = ""; }; - E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAuthenticator.h; sourceTree = ""; }; - E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticator.m; sourceTree = ""; }; - E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticatorTests.m; sourceTree = ""; }; - E48A3DF117B408F400924C3D /* BITAuthenticator_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BITAuthenticator_Private.h; sourceTree = ""; }; - E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHTTPOperation.h; sourceTree = ""; }; - E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHTTPOperation.m; sourceTree = ""; }; - E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAuthenticationViewController.h; sourceTree = ""; }; - E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticationViewController.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1E5954DB15B6F24A00A03429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 97CC11F91917C0310028768F /* MobileCoreServices.framework in Frameworks */, - 97BD9BD5191109730043FD59 /* QuickLook.framework in Frameworks */, - 9760F6C418BB4D2D00959B93 /* AssetsLibrary.framework in Frameworks */, - 1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */, - 1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1E59550715B6F45800A03429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1E5A458C16F0DFC200B55C04 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 97CC11FA1917C0390028768F /* MobileCoreServices.framework in Frameworks */, - 97CC11F71917AB7C0028768F /* QuickLook.framework in Frameworks */, - 1EA1170016F4D32C001C015C /* libHockeySDK.a in Frameworks */, - 1EA1170116F4D354001C015C /* CrashReporter.framework in Frameworks */, - 1E5A459516F0DFC200B55C04 /* Foundation.framework in Frameworks */, - 1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */, - 1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1E5955A415B71BDC00A03429 /* Images */ = { - isa = PBXGroup; - children = ( - 9782022818F81BFC00A98D8B /* Arrow.png */, - 9782022918F81BFC00A98D8B /* Arrow@2x.png */, - 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */, - 9782022A18F81BFC00A98D8B /* Blur.png */, - 9782022B18F81BFC00A98D8B /* Blur@2x.png */, - 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */, - 9782022C18F81BFC00A98D8B /* Cancel.png */, - 9782022D18F81BFC00A98D8B /* Cancel@2x.png */, - 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */, - 9782022E18F81BFC00A98D8B /* Ok.png */, - 9782022F18F81BFC00A98D8B /* Ok@2x.png */, - 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */, - 9782023018F81BFC00A98D8B /* Rectangle.png */, - 9782023118F81BFC00A98D8B /* Rectangle@2x.png */, - 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */, - 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */, - 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */, - 1E5955BB15B71C8600A03429 /* authorize_denied.png */, - 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */, - 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */, - 1E5955BF15B71C8600A03429 /* bg.png */, - 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */, - 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */, - 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */, - 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */, - 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */, - 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */, - 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */, - 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */, - 1E5955C415B71C8600A03429 /* IconGradient.png */, - 1E5955C515B71C8600A03429 /* IconGradient@2x.png */, - 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */, - 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */, - 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */, - 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */, - 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */, - ); - name = Images; - sourceTree = ""; - }; - 1E5A459616F0DFC200B55C04 /* HockeySDKTests */ = { - isa = PBXGroup; - children = ( - 1EA1170216F53B49001C015C /* Fixtures */, - 1E5A459716F0DFC200B55C04 /* Supporting Files */, - 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */, - E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */, - 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */, - 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */, - E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */, - E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */, - 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */, - 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */, - ); - path = HockeySDKTests; - sourceTree = ""; - }; - 1E5A459716F0DFC200B55C04 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */, - 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */, - 1E5A459816F0DFC200B55C04 /* HockeySDKTests-Info.plist */, - 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */, - 1E5A459F16F0DFC200B55C04 /* HockeySDKTests-Prefix.pch */, - 1EA1170516F53B91001C015C /* BITTestHelper.h */, - 1EA1170616F53B91001C015C /* BITTestHelper.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 1E66CA8F15D40FF600F35BED /* Support */ = { - isa = PBXGroup; - children = ( - 1E754DC61621BC170070AB92 /* HockeySDK.xcconfig */, - 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */, - 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */, - 1E91D84619B924E600E9616D /* module.modulemap */, - ); - name = Support; - sourceTree = ""; - }; - 1E754E441621F95E0070AB92 /* Helper */ = { - isa = PBXGroup; - children = ( - 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */, - 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */, - 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */, - 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */, - 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */, - 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */, - 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */, - 1E49A4A5161222B900463151 /* BITHockeyHelper.h */, - 1E49A4A6161222B900463151 /* BITHockeyHelper.m */, - 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */, - 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */, - 1EACC979162F041E007578C5 /* BITAttributedLabel.h */, - 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */, - 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */, - 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */, - 1E49A4A9161222B900463151 /* BITStoreButton.h */, - 1E49A4AA161222B900463151 /* BITStoreButton.m */, - 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */, - 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */, - 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */, - 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */, - ); - name = Helper; - sourceTree = ""; - }; - 1E754E461621FA9A0070AB92 /* Feedback */ = { - isa = PBXGroup; - children = ( - 9760F6CC18BB684200959B93 /* Image Editor */, - 1E49A4361612223B00463151 /* BITFeedbackMessage.h */, - 1E49A4371612223B00463151 /* BITFeedbackMessage.m */, - 97F0FA0218AE5AED00EF50AA /* BITFeedbackMessageAttachment.h */, - 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */, - 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */, - 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */, - 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */, - 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */, - 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */, - 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */, - 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */, - 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */, - 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */, - 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */, - 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */, - 1E49A4331612223B00463151 /* BITFeedbackManager.h */, - 1E49A4341612223B00463151 /* BITFeedbackManager.m */, - E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */, - 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */, - 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */, - 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */, - ); - name = Feedback; - sourceTree = ""; - }; - 1E754E471621FAD00070AB92 /* Update */ = { - isa = PBXGroup; - children = ( - 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */, - 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */, - 1E49A4641612226D00463151 /* BITUpdateManager.h */, - 1E49A4651612226D00463151 /* BITUpdateManager.m */, - 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */, - 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */, - 1E49A4681612226D00463151 /* BITUpdateViewController.h */, - 1E49A4691612226D00463151 /* BITUpdateViewController.m */, - 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */, - ); - name = Update; - sourceTree = ""; - }; - 1E754E551621FBAF0070AB92 /* CrashReports */ = { - isa = PBXGroup; - children = ( - 1E754E561621FBB70070AB92 /* BITCrashManager.h */, - 1E754E571621FBB70070AB92 /* BITCrashManager.m */, - 1EFF03D717F20F8300A5F13C /* BITCrashManagerPrivate.h */, - 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */, - 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */, - 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */, - 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */, - 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */, - 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */, - 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */, - 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */, - 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */, - 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */, - ); - name = CrashReports; - sourceTree = ""; - }; - 1E94F9DE16E912DD006570AD /* StoreUpdate */ = { - isa = PBXGroup; - children = ( - 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */, - 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */, - 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */, - 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */, - ); - name = StoreUpdate; - sourceTree = ""; - }; - 1EA1170216F53B49001C015C /* Fixtures */ = { - isa = PBXGroup; - children = ( - 1E494AEA19491943001EFF74 /* AppIcon.png */, - 1E494AEB19491943001EFF74 /* AppIcon@2x.png */, - 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */, - 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */, - 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */, - 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */, - 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */, - ); - path = Fixtures; - sourceTree = ""; - }; - 1EFF03DB17F2212E00A5F13C /* Authenticator */ = { - isa = PBXGroup; - children = ( - 1EFF03DC17F2214700A5F13C /* Private */, - E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */, - E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */, - ); - name = Authenticator; - sourceTree = ""; - }; - 1EFF03DC17F2214700A5F13C /* Private */ = { - isa = PBXGroup; - children = ( - E48A3DF117B408F400924C3D /* BITAuthenticator_Private.h */, - E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */, - E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */, - ); - name = Private; - sourceTree = ""; - }; - 9760F6CC18BB684200959B93 /* Image Editor */ = { - isa = PBXGroup; - children = ( - 97F0F9FF18AE375E00EF50AA /* BITImageAnnotationViewController.h */, - 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */, - 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */, - 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */, - 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */, - 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */, - 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */, - 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */, - 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */, - 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */, - ); - name = "Image Editor"; - sourceTree = ""; - }; - E400560F148D79B500EB22B9 = { - isa = PBXGroup; - children = ( - E41EB489148D7BF90015DEDC /* HockeySDK */, - 1E5A459616F0DFC200B55C04 /* HockeySDKTests */, - E400561C148D79B500EB22B9 /* Frameworks */, - E4005648148D7A3000EB22B9 /* Resources */, - 1E66CA8F15D40FF600F35BED /* Support */, - E400561B148D79B500EB22B9 /* Products */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - E400561B148D79B500EB22B9 /* Products */ = { - isa = PBXGroup; - children = ( - 1E5954F215B6F24A00A03429 /* libHockeySDK.a */, - 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */, - 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - E400561C148D79B500EB22B9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 97CC11F81917C0310028768F /* MobileCoreServices.framework */, - 97BD9BD4191109730043FD59 /* QuickLook.framework */, - 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */, - E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */, - E400561D148D79B500EB22B9 /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - E4005648148D7A3000EB22B9 /* Resources */ = { - isa = PBXGroup; - children = ( - 1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */, - 1E5955A415B71BDC00A03429 /* Images */, - 1E59555F15B6F80E00A03429 /* HockeySDK.strings */, - ); - name = Resources; - path = ../Resources; - sourceTree = ""; - }; - E41EB458148D7BF50015DEDC /* Classes */ = { - isa = PBXGroup; - children = ( - E48A3DE917B3ECF900924C3D /* Network */, - 1E754E441621F95E0070AB92 /* Helper */, - 1EFF03DB17F2212E00A5F13C /* Authenticator */, - 1E754E551621FBAF0070AB92 /* CrashReports */, - 1E754E461621FA9A0070AB92 /* Feedback */, - 1E754E471621FAD00070AB92 /* Update */, - 1E94F9DE16E912DD006570AD /* StoreUpdate */, - E41EB465148D7BF50015DEDC /* BITHockeyManager.h */, - E41EB466148D7BF50015DEDC /* BITHockeyManager.m */, - 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */, - 1E71509A15B5C76F004E88FF /* HockeySDK.h */, - 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */, - ); - name = Classes; - path = ../Classes; - sourceTree = ""; - }; - E41EB489148D7BF90015DEDC /* HockeySDK */ = { - isa = PBXGroup; - children = ( - E41EB458148D7BF50015DEDC /* Classes */, - ); - name = HockeySDK; - sourceTree = ""; - }; - E48A3DE917B3ECF900924C3D /* Network */ = { - isa = PBXGroup; - children = ( - E48A3DF017B408D800924C3D /* private */, - E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */, - E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */, - ); - name = Network; - sourceTree = ""; - }; - E48A3DF017B408D800924C3D /* private */ = { - isa = PBXGroup; - children = ( - E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */, - E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */, - ); - name = private; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 1E59558B15B6FD8800A03429 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */, - 1E59559A15B6FDA500A03429 /* BITHockeyManager.h in Headers */, - 1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */, - E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */, - 1E754E5C1621FBB70070AB92 /* BITCrashManager.h in Headers */, - 1E754E5E1621FBB70070AB92 /* BITCrashManagerDelegate.h in Headers */, - 1ED570C718BF878C00AB3350 /* BITCrashAttachment.h in Headers */, - 1ECA8F51192B6954006B9416 /* BITCrashMetaData.h in Headers */, - 1E90FD7318EDB86400CF0417 /* BITCrashDetails.h in Headers */, - 1E49A4731612226D00463151 /* BITUpdateManager.h in Headers */, - 1E49A4791612226D00463151 /* BITUpdateManagerDelegate.h in Headers */, - 1E49A44E1612223B00463151 /* BITFeedbackManager.h in Headers */, - E405266217A2AD300096359C /* BITFeedbackManagerDelegate.h in Headers */, - 973EC8BF18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h in Headers */, - E4B4DB7D17B435550099C67F /* BITAuthenticationViewController.h in Headers */, - 1E49A4481612223B00463151 /* BITFeedbackListViewController.h in Headers */, - 1ECA8F4D192B5BD8006B9416 /* BITCrashDetailsPrivate.h in Headers */, - 1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */, - 1E49A47F1612226D00463151 /* BITUpdateViewController.h in Headers */, - 1E49A43C1612223B00463151 /* BITFeedbackComposeViewController.h in Headers */, - E40E0B0C17DA1AFF005E38C1 /* BITHockeyAppClient.h in Headers */, - 1EF95CAA162CB314000AE3AD /* BITFeedbackComposeViewControllerDelegate.h in Headers */, - 1EF95CA6162CB037000AE3AD /* BITFeedbackActivity.h in Headers */, - 1E49A4B8161222B900463151 /* BITHockeyBaseViewController.h in Headers */, - 1EB92E731955C38C0093C8B6 /* BITHockeyAttachment.h in Headers */, - 1E49A4AF161222B900463151 /* BITHockeyBaseManager.h in Headers */, - 1E0829001708F69A0073050E /* BITStoreUpdateManagerDelegate.h in Headers */, - 1E49A4421612223B00463151 /* BITFeedbackListViewCell.h in Headers */, - 1E49A4541612223B00463151 /* BITFeedbackManagerPrivate.h in Headers */, - 1E49A4571612223B00463151 /* BITFeedbackMessage.h in Headers */, - 1E49A45D1612223B00463151 /* BITFeedbackUserDataViewController.h in Headers */, - 1E49A46D1612226D00463151 /* BITAppVersionMetaInfo.h in Headers */, - 1E49A47C1612226D00463151 /* BITUpdateManagerPrivate.h in Headers */, - 1E49A4851612226D00463151 /* BITUpdateViewControllerPrivate.h in Headers */, - 1E49A4B5161222B900463151 /* BITHockeyBaseManagerPrivate.h in Headers */, - 9774BCFF192CB20A00085EB5 /* BITActivityIndicatorButton.h in Headers */, - E4933E8017B66CDA00B11ACC /* BITHTTPOperation.h in Headers */, - 1E49A4BE161222B900463151 /* BITHockeyHelper.h in Headers */, - 973EC8BB18BDE29800DBFFBB /* BITArrowImageAnnotation.h in Headers */, - 1E49A4C4161222B900463151 /* BITAppStoreHeader.h in Headers */, - 1E49A4CA161222B900463151 /* BITStoreButton.h in Headers */, - 973EC8B718BCA8A200DBFFBB /* BITRectangleImageAnnotation.h in Headers */, - 1E49A4D0161222B900463151 /* BITWebTableViewCell.h in Headers */, - 1E49A4D8161222D400463151 /* HockeySDKPrivate.h in Headers */, - 1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */, - 1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */, - 1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */, - 1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */, - 1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */, - 9760F6CF18BB685600959B93 /* BITImageAnnotation.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 1E5954CB15B6F24A00A03429 /* HockeySDK */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1E5954EF15B6F24A00A03429 /* Build configuration list for PBXNativeTarget "HockeySDK" */; - buildPhases = ( - 1E5954CC15B6F24A00A03429 /* Sources */, - 1E5954DB15B6F24A00A03429 /* Frameworks */, - 1E59558B15B6FD8800A03429 /* Headers */, - 1EE9071A16F6871F003DDE1D /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 1E59557E15B6F97100A03429 /* PBXTargetDependency */, - ); - name = HockeySDK; - productName = HockeySDK; - productReference = 1E5954F215B6F24A00A03429 /* libHockeySDK.a */; - productType = "com.apple.product-type.library.static"; - }; - 1E59550915B6F45800A03429 /* HockeySDKResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1E59551415B6F45800A03429 /* Build configuration list for PBXNativeTarget "HockeySDKResources" */; - buildPhases = ( - 1E59550615B6F45800A03429 /* Sources */, - 1E59550715B6F45800A03429 /* Frameworks */, - 1E59550815B6F45800A03429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = HockeySDKResources; - productName = HockeySDKBundle; - productReference = 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; - 1E5A458F16F0DFC200B55C04 /* HockeySDKTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1E5A45A216F0DFC200B55C04 /* Build configuration list for PBXNativeTarget "HockeySDKTests" */; - buildPhases = ( - 1E5A458B16F0DFC200B55C04 /* Sources */, - 1E5A458C16F0DFC200B55C04 /* Frameworks */, - 1E5A458D16F0DFC200B55C04 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1EA1170B16F54A5C001C015C /* PBXTargetDependency */, - 1EA116FF16F4D302001C015C /* PBXTargetDependency */, - ); - name = HockeySDKTests; - productName = HockeySDKTests; - productReference = 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - E4005611148D79B500EB22B9 /* Project object */ = { - isa = PBXProject; - attributes = { - LastTestingUpgradeCheck = 0600; - LastUpgradeCheck = 0600; - }; - buildConfigurationList = E4005614148D79B500EB22B9 /* Build configuration list for PBXProject "HockeySDK" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - de, - es, - fr, - it, - ja, - nl, - "pt-PT", - pt, - ru, - sv, - tr, - hr, - zh, - "zh-Hans", - ro, - hu, - ); - mainGroup = E400560F148D79B500EB22B9; - productRefGroup = E400561B148D79B500EB22B9 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1E5954CB15B6F24A00A03429 /* HockeySDK */, - 1E59550915B6F45800A03429 /* HockeySDKResources */, - 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */, - 1E4F61E91621AD970033EFC5 /* HockeySDK Framework */, - 1E5A458F16F0DFC200B55C04 /* HockeySDKTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1E59550815B6F45800A03429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E5955C615B71C8600A03429 /* authorize_denied.png in Resources */, - 1E5955C715B71C8600A03429 /* authorize_denied@2x.png in Resources */, - 9782023B18F81BFC00A98D8B /* Rectangle@2x.png in Resources */, - 1E5955CA15B71C8600A03429 /* bg.png in Resources */, - 1E4CD1E819D17EAD00019DD4 /* Cancel@3x.png in Resources */, - 1E4CD1EA19D17EB700019DD4 /* Ok@3x.png in Resources */, - 97F0F9FD18ABAECD00EF50AA /* iconCamera.png in Resources */, - 9782023618F81BFC00A98D8B /* Cancel.png in Resources */, - 9782023318F81BFC00A98D8B /* Arrow@2x.png in Resources */, - 1E90D98119DAD8A800188C43 /* feedbackActivity@2x~ipad.png in Resources */, - 9782023818F81BFC00A98D8B /* Ok.png in Resources */, - 1E90D98219DAD8A800188C43 /* feedbackActivity@3x.png in Resources */, - 1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */, - 1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */, - 1E90D98019DAD8A800188C43 /* feedbackActivity@2x.png in Resources */, - 9782023218F81BFC00A98D8B /* Arrow.png in Resources */, - 9782023A18F81BFC00A98D8B /* Rectangle.png in Resources */, - 9782023918F81BFC00A98D8B /* Ok@2x.png in Resources */, - 9782023418F81BFC00A98D8B /* Blur.png in Resources */, - 9782023518F81BFC00A98D8B /* Blur@2x.png in Resources */, - 1E1127C416580C87007067A2 /* buttonRoundedDelete.png in Resources */, - 1E1127C516580C87007067A2 /* buttonRoundedDelete@2x.png in Resources */, - 1E90D97F19DAD8A800188C43 /* feedbackActivity.png in Resources */, - 1E1127C616580C87007067A2 /* buttonRoundedDeleteHighlighted.png in Resources */, - 9782023718F81BFC00A98D8B /* Cancel@2x.png in Resources */, - 1E1127C716580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png in Resources */, - 1E4CD1F019D17EE400019DD4 /* authorize_denied@3x.png in Resources */, - 1E1127C816580C87007067A2 /* buttonRoundedRegular.png in Resources */, - 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */, - 1E4CD1E619D17EA300019DD4 /* Blur@3x.png in Resources */, - 1E4CD1E419D17E9D00019DD4 /* Arrow@3x.png in Resources */, - 1E1127C916580C87007067A2 /* buttonRoundedRegular@2x.png in Resources */, - 1E1127CA16580C87007067A2 /* buttonRoundedRegularHighlighted.png in Resources */, - 1E1127CB16580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png in Resources */, - 1E4CD1EC19D17EBE00019DD4 /* Rectangle@3x.png in Resources */, - 1E90D98319DAD8A800188C43 /* feedbackActivity~ipad.png in Resources */, - 1EB52FD5167B766100C801D5 /* HockeySDK.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1E5A458D16F0DFC200B55C04 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E494AEC19491943001EFF74 /* AppIcon.png in Resources */, - 1EA1170C16F54A64001C015C /* HockeySDKResources.bundle in Resources */, - 1E5A459B16F0DFC200B55C04 /* InfoPlist.strings in Resources */, - 1E70A23417F2F982001BB32D /* live_report_signal.plcrash in Resources */, - 1EA1170416F53B49001C015C /* StoreBundleIdentifierUnknown.json in Resources */, - 1E70A23317F2F982001BB32D /* live_report_exception.plcrash in Resources */, - 1E70A23217F2F982001BB32D /* live_report_empty.plcrash in Resources */, - 1E494AED19491943001EFF74 /* AppIcon@2x.png in Resources */, - 1EA1170916F53E3A001C015C /* StoreBundleIdentifierKnown.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 1E4F61ED1621ADE70033EFC5 /* Build universal embedded framework */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Build universal embedded framework"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=HockeySDK\nFMK_VERSION=A\nFMK_RESOURCE_BUNDLE=HockeySDKResources\n\n# Documentation\nHOCKEYSDK_DOCSET_VERSION_NAME=\"de.bitstadium.${HOCKEYSDK_DOCSET_NAME}-${VERSION_STRING}\"\n\n# Install dir will be the final output to the framework.\n# The following line create it in the root folder of the current project.\nPRODUCTS_DIR=${SRCROOT}/../Products\nZIP_FOLDER=HockeySDK-iOS\nTEMP_DIR=${PRODUCTS_DIR}/${ZIP_FOLDER}\nINSTALL_DIR=${TEMP_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-iphoneos\nSIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator\nDEVICE_CRASH_ONLY_DIR=${WRK_DIR}/ReleaseCrashOnly-iphoneos\nSIMULATOR_CRASH_ONLY_DIR=${WRK_DIR}/ReleaseCrashOnly-iphonesimulator\n\n# Building the full featured SDK\n\n# Building both architectures.\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphoneos\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${TEMP_DIR}\" ]\nthen\nrm -rf \"${TEMP_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\nmkdir -p \"${INSTALL_DIR}/Versions\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers\"\n\n# Creates the internal links.\n# It MUST uses relative path, otherwise will not work when the folder is copied/moved.\nln -s \"${FMK_VERSION}\" \"${INSTALL_DIR}/Versions/Current\"\nln -s \"Versions/Current/Headers\" \"${INSTALL_DIR}/Headers\"\nln -s \"Versions/Current/Resources\" \"${INSTALL_DIR}/Resources\"\nln -s \"Versions/Current/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/module.modulemap\" \"${INSTALL_DIR}/Modules/\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/build/Release-iphoneos/include/HockeySDK/\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${DEVICE_DIR}/${FMK_RESOURCE_BUNDLE}.bundle\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\ncp -f \"${SRCROOT}/${FMK_NAME}.xcconfig\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\"\n\n# Combine the CrashReporter static library into a new Hockey static library file if they are not already present and copy the public headers too\nif [ -z $(otool -L \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\"\n\n# build embeddedframework folder and move framework into it\nmkdir \"${INSTALL_DIR}/../${FMK_NAME}.embeddedframework\"\nmv \"${INSTALL_DIR}\" \"${INSTALL_DIR}/../${FMK_NAME}.embeddedframework/${FMK_NAME}.framework\"\n\n# link Resources\nNEW_INSTALL_DIR=${TEMP_DIR}/${FMK_NAME}.embeddedframework\nmkdir \"${NEW_INSTALL_DIR}/Resources\"\nln -s \"../${FMK_NAME}.framework/Resources/${FMK_RESOURCE_BUNDLE}.bundle\" \"${NEW_INSTALL_DIR}/Resources/${FMK_RESOURCE_BUNDLE}.bundle\"\nln -s \"../${FMK_NAME}.framework/Resources/${FMK_NAME}.xcconfig\" \"${NEW_INSTALL_DIR}/Resources/${FMK_NAME}.xcconfig\"\n\n\n# Building the crash only SDK without resources\n\n# Building both architectures.\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"ReleaseCrashOnly\" -target \"${FMK_NAME}\" -sdk iphoneos\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"ReleaseCrashOnly\" -target \"${FMK_NAME}\" -sdk iphonesimulator\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\nmkdir -p \"${INSTALL_DIR}/Versions\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers\"\n\n# Creates the internal links.\n# It MUST uses relative path, otherwise will not work when the folder is copied/moved.\nln -s \"${FMK_VERSION}\" \"${INSTALL_DIR}/Versions/Current\"\nln -s \"Versions/Current/Headers\" \"${INSTALL_DIR}/Headers\"\nln -s \"Versions/Current/Resources\" \"${INSTALL_DIR}/Resources\"\nln -s \"Versions/Current/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/module.modulemap\" \"${INSTALL_DIR}/Modules/\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}\"/build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITCrash*.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyAttachment.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyBaseManager.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyManager.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyManagerDelegate.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/build/ReleaseCrashOnly-iphoneos/include/HockeySDK/HockeySDK.h\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -f \"${SRCROOT}/${FMK_NAME}.xcconfig\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\n\n# Copy the patched feature header\ncp -f \"${SRCROOT}/HockeySDKCrashOnlyConfig.h\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/HockeySDKFeatureConfig.h\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.\nlipo -create \"${DEVICE_CRASH_ONLY_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_CRASH_ONLY_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\"\n\n# Combine the CrashReporter static library into a new Hockey static library file if they are not already present and copy the public headers too\nif [ -z $(otool -L \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\n# Move the crash reporting only framework into a new folder\nmkdir \"${INSTALL_DIR}/../${FMK_NAME}CrashOnly\"\nmv \"${INSTALL_DIR}\" \"${INSTALL_DIR}/../${FMK_NAME}CrashOnly/${FMK_NAME}.framework\"\n\nrm -r \"${WRK_DIR}\"\n\n\n\n# copy license, changelog, documentation, integration json\ncp -f \"${SRCROOT}/../Docs/Changelog-template.md\" \"${TEMP_DIR}/CHANGELOG\"\ncp -f \"${SRCROOT}/../Docs/Guide-Installation-Setup-template.md\" \"${TEMP_DIR}/README.md\"\ncp -f \"${SRCROOT}/../LICENSE\" \"${TEMP_DIR}\"\nmkdir \"${TEMP_DIR}/${HOCKEYSDK_DOCSET_VERSION_NAME}.docset\"\ncp -R \"${SRCROOT}/../documentation/docset/Contents\" \"${TEMP_DIR}/${HOCKEYSDK_DOCSET_VERSION_NAME}.docset\"\n\n# build zip\ncd \"${PRODUCTS_DIR}\"\nrm -f \"${FMK_NAME}-iOS-${VERSION_STRING}.zip\"\nzip -yr \"${FMK_NAME}-iOS-${VERSION_STRING}.zip\" \"${ZIP_FOLDER}\" -x \\*/.*\n"; - }; - 1E8E66B215BC3D8200632A2E /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/usr/local/bin/appledoc \\\n --output \"${SOURCE_ROOT}/../documentation\" \\\n --ignore Vendor \\\n --ignore Products \\\n --ignore Support \\\n --ignore .m \\\n --ignore *Private.h \\\n --ignore BITAttributedLabel.h \\\n --ignore BITStoreButton.h \\\n --ignore BITFeedbackListViewCell.h \\\n --ignore BITAppStoreHeader.h \\\n --ignore BITFeedbackMessage.h \\\n --ignore BITFeedbackMessageAttachment.h \\\n --ignore BITAuthenticationViewController.h \\\n --ignore BITHockeyAppClient.h \\\n --create-html \\\n --create-docset \\\n --install-docset \\\n --keep-intermediate-files \\\n --project-name \"${HOCKEYSDK_DOCSET_NAME} ${VERSION_STRING}\" \\\n --project-version \"${VERSION_STRING}\" \\\n --project-company \"Bit Stadium GmbH\" \\\n --company-id \"de.bitstadium\" \\\n --docset-bundle-name \"${HOCKEYSDK_DOCSET_NAME} ${VERSION_STRING}\" \\\n --docset-feed-name \"${HOCKEYSDK_DOCSET_NAME}\" \\\n --docset-desc \"\" \\\n --docset-platform-family \"iphoneos\" \\\n --index-desc \"${SOURCE_ROOT}/../docs/index.md\" \\\n --include \"${SOURCE_ROOT}/../docs/index.html\" \\\n --include \"${SOURCE_ROOT}/../docs/\" \\\n --merge-categories \\\n --no-repeat-first-par \\\n --warn-undocumented-object \\\n --warn-undocumented-member \\\n --warn-empty-description \\\n --warn-unknown-directive \\\n --warn-invalid-crossref \\\n --warn-missing-arg \\\n --logformat xcode \\\n --exit-threshold 2 \\\n \"${SOURCE_ROOT}/../\"\n"; - }; - 1EE9071A16F6871F003DDE1D /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Vendor/XcodeCoverage/exportenv.sh\""; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1E5954CC15B6F24A00A03429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */, - 1E49A43F1612223B00463151 /* BITFeedbackComposeViewController.m in Sources */, - E40E0B0D17DA1AFF005E38C1 /* BITHockeyAppClient.m in Sources */, - 1E49A4451612223B00463151 /* BITFeedbackListViewCell.m in Sources */, - 973EC8B818BCA8A200DBFFBB /* BITRectangleImageAnnotation.m in Sources */, - 1E49A44B1612223B00463151 /* BITFeedbackListViewController.m in Sources */, - 1E49A4511612223B00463151 /* BITFeedbackManager.m in Sources */, - 1ECA8F52192B6954006B9416 /* BITCrashMetaData.m in Sources */, - E4933E8117B66CDA00B11ACC /* BITHTTPOperation.m in Sources */, - 1E49A45A1612223B00463151 /* BITFeedbackMessage.m in Sources */, - 1ED570C818BF878C00AB3350 /* BITCrashAttachment.m in Sources */, - 1E49A4601612223B00463151 /* BITFeedbackUserDataViewController.m in Sources */, - 1E49A4701612226D00463151 /* BITAppVersionMetaInfo.m in Sources */, - 1E49A4761612226D00463151 /* BITUpdateManager.m in Sources */, - 1E49A4C1161222B900463151 /* BITHockeyHelper.m in Sources */, - 9774BD00192CB20A00085EB5 /* BITActivityIndicatorButton.m in Sources */, - 1E49A4821612226D00463151 /* BITUpdateViewController.m in Sources */, - E4B4DB7E17B435550099C67F /* BITAuthenticationViewController.m in Sources */, - 1E49A4B2161222B900463151 /* BITHockeyBaseManager.m in Sources */, - 973EC8C018BE2B5B00DBFFBB /* BITBlurImageAnnotation.m in Sources */, - 9760F6D018BB685600959B93 /* BITImageAnnotation.m in Sources */, - 1E49A4BB161222B900463151 /* BITHockeyBaseViewController.m in Sources */, - 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */, - 1E49A4C7161222B900463151 /* BITAppStoreHeader.m in Sources */, - 1E49A4CD161222B900463151 /* BITStoreButton.m in Sources */, - 1E90FD7418EDB86400CF0417 /* BITCrashDetails.m in Sources */, - 1E49A4D3161222B900463151 /* BITWebTableViewCell.m in Sources */, - 1EB92E741955C38C0093C8B6 /* BITHockeyAttachment.m in Sources */, - E48A3DED17B3ED1C00924C3D /* BITAuthenticator.m in Sources */, - 1E49A4DB161222D400463151 /* HockeySDKPrivate.m in Sources */, - 1E754E5D1621FBB70070AB92 /* BITCrashManager.m in Sources */, - 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */, - 1EF95CA7162CB037000AE3AD /* BITFeedbackActivity.m in Sources */, - 1EACC97C162F041E007578C5 /* BITAttributedLabel.m in Sources */, - 973EC8BC18BDE29800DBFFBB /* BITArrowImageAnnotation.m in Sources */, - 973EC8B418BCA7BC00DBFFBB /* BITImageAnnotationViewController.m in Sources */, - 1E0FEE29173BDB260061331F /* BITKeychainUtils.m in Sources */, - 1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1E59550615B6F45800A03429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1E5A458B16F0DFC200B55C04 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E5A459E16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m in Sources */, - 1E566D071A275C4C0070F514 /* BITCrashReportTextFormatterTests.m in Sources */, - 1EFF03E517F2485500A5F13C /* BITCrashManagerTests.m in Sources */, - E40E0B0917DA19DC005E38C1 /* BITHockeyAppClientTests.m in Sources */, - 1E70A23617F31B82001BB32D /* BITHockeyHelperTests.m in Sources */, - E48A3DEF17B3EFF100924C3D /* BITAuthenticatorTests.m in Sources */, - 1EA1170716F53B91001C015C /* BITTestHelper.m in Sources */, - 1E61CCAF18E0585A00A5E38E /* BITFeedbackManagerTests.m in Sources */, - E4507E4317F0658F00171A0D /* BITKeychainUtilsTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1E59557E15B6F97100A03429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1E59550915B6F45800A03429 /* HockeySDKResources */; - targetProxy = 1E59557D15B6F97100A03429 /* PBXContainerItemProxy */; - }; - 1E754E431621F6290070AB92 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */; - targetProxy = 1E754E421621F6290070AB92 /* PBXContainerItemProxy */; - }; - 1EA116FF16F4D302001C015C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1E5954CB15B6F24A00A03429 /* HockeySDK */; - targetProxy = 1EA116FE16F4D302001C015C /* PBXContainerItemProxy */; - }; - 1EA1170B16F54A5C001C015C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1E59550915B6F45800A03429 /* HockeySDKResources */; - targetProxy = 1EA1170A16F54A5C001C015C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 1E59555F15B6F80E00A03429 /* HockeySDK.strings */ = { - isa = PBXVariantGroup; - children = ( - 1E59556015B6F80E00A03429 /* de */, - 1E59556415B6F81C00A03429 /* es */, - 1E59556615B6F82300A03429 /* fr */, - 1E59556815B6F82A00A03429 /* it */, - 1E59556A15B6F83100A03429 /* ja */, - 1E59557015B6F84700A03429 /* pt */, - 1E59557215B6F84D00A03429 /* ru */, - 1E36D8B816667611000B134C /* hr */, - 1E6F0450167B5E5600ED1C86 /* pt-PT */, - 1EB52FC3167B73D400C801D5 /* en */, - 1EA512DF167F7EF000FC9FBA /* zh-Hans */, - BEE0207C16C5107E004426EA /* hu */, - 1E20A57F181E9D4600D5B770 /* nl */, - ); - name = HockeySDK.strings; - sourceTree = ""; - }; - 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 1E5A459A16F0DFC200B55C04 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1E4F61EB1621AD970033EFC5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = HockeySDK.framework; - }; - name = Debug; - }; - 1E4F61EC1621AD970033EFC5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = HockeySDK.framework; - }; - name = Release; - }; - 1E5954F015B6F24A00A03429 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - DSTROOT = /tmp/HockeySDK.dst; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Vendor\"", - ); - GCC_THUMB_SUPPORT = NO; - PRODUCT_NAME = HockeySDK; - PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; - SKIP_INSTALL = YES; - "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - }; - name = Debug; - }; - 1E5954F115B6F24A00A03429 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - DSTROOT = /tmp/HockeySDK.dst; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Vendor\"", - ); - GCC_THUMB_SUPPORT = NO; - OTHER_CFLAGS = ( - "$(inherited)", - "-DNS_BLOCK_ASSERTIONS=1", - ); - PRODUCT_NAME = HockeySDK; - PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; - SKIP_INSTALL = YES; - "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - }; - name = Release; - }; - 1E59551515B6F45800A03429 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 1E59551615B6F45800A03429 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_THUMB_SUPPORT = NO; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 1E5A45A016F0DFC200B55C04 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - "\"$(SRCROOT)/../Vendor\"", - "\"$(SRCROOT)/HockeySDKTests\"", - "$(inherited)", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_UNINITIALIZED_AUTOS = YES; - INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/HockeySDKTests\"", - ); - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 1E5A45A116F0DFC200B55C04 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - "\"$(SRCROOT)/../Vendor\"", - "\"$(SRCROOT)/HockeySDKTests\"", - "$(inherited)", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/HockeySDKTests\"", - ); - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 1E68F4A716F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - COMPRESS_PNG_FILES = NO; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "BITHOCKEY_STATIC_LIBRARY=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_THUMB_SUPPORT = NO; - GCC_VERSION = ""; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-Wshorten-64-to-32", - "-Wall", - ); - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - }; - name = CodeCoverage; - }; - 1E68F4A816F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - buildSettings = { - "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - DSTROOT = /tmp/HockeySDK.dst; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Vendor\"", - ); - GCC_THUMB_SUPPORT = NO; - GENERATE_PROFILING_CODE = YES; - PRODUCT_NAME = HockeySDK; - PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; - SKIP_INSTALL = YES; - "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - }; - name = CodeCoverage; - }; - 1E68F4A916F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = CodeCoverage; - }; - 1E68F4AA16F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = CodeCoverage; - }; - 1E68F4AB16F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = HockeySDK.framework; - }; - name = CodeCoverage; - }; - 1E68F4AC16F7843F00053706 /* CodeCoverage */ = { - isa = XCBuildConfiguration; - buildSettings = { - "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - "\"$(SRCROOT)/../Vendor\"", - "\"$(SRCROOT)/HockeySDKTests\"", - "$(inherited)", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GENERATE_PROFILING_CODE = YES; - INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/HockeySDKTests\"", - ); - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = CodeCoverage; - }; - 1E7DE39019D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - COMPRESS_PNG_FILES = NO; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "BITHOCKEY_STATIC_LIBRARY=1", - "$(inherited)", - ); - GCC_THUMB_SUPPORT = NO; - GCC_VERSION = ""; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-Wshorten-64-to-32", - "-Wall", - ); - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = NO; - }; - name = ReleaseCrashOnly; - }; - 1E7DE39119D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - buildSettings = { - "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - DSTROOT = /tmp/HockeySDK.dst; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../Vendor\"", - ); - GCC_THUMB_SUPPORT = NO; - OTHER_CFLAGS = ( - "$(inherited)", - "-DNS_BLOCK_ASSERTIONS=1", - ); - PRODUCT_NAME = HockeySDK; - PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; - SKIP_INSTALL = YES; - "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; - }; - name = ReleaseCrashOnly; - }; - 1E7DE39219D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_THUMB_SUPPORT = NO; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = ReleaseCrashOnly; - }; - 1E7DE39319D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseCrashOnly; - }; - 1E7DE39419D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = HockeySDK.framework; - }; - name = ReleaseCrashOnly; - }; - 1E7DE39519D44D88009AB8E5 /* ReleaseCrashOnly */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SDKROOT)/Developer/Library/Frameworks\"", - "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", - "\"$(SRCROOT)/../Vendor\"", - "\"$(SRCROOT)/HockeySDKTests\"", - "$(inherited)", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/HockeySDKTests\"", - ); - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - VALIDATE_PRODUCT = YES; - }; - name = ReleaseCrashOnly; - }; - 1E8E66AE15BC3D7700632A2E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 1E8E66AF15BC3D7700632A2E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_THUMB_SUPPORT = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - E400563C148D79B500EB22B9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - COMPRESS_PNG_FILES = NO; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "BITHOCKEY_STATIC_LIBRARY=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_THUMB_SUPPORT = NO; - GCC_VERSION = ""; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-Wshorten-64-to-32", - "-Wall", - ); - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - E400563D148D79B500EB22B9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - COMPRESS_PNG_FILES = NO; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "BITHOCKEY_STATIC_LIBRARY=1", - "$(inherited)", - ); - GCC_THUMB_SUPPORT = NO; - GCC_VERSION = ""; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-Wshorten-64-to-32", - "-Wall", - ); - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = NO; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1E4F61EA1621AD970033EFC5 /* Build configuration list for PBXAggregateTarget "HockeySDK Framework" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1E4F61EB1621AD970033EFC5 /* Debug */, - 1E68F4AB16F7843F00053706 /* CodeCoverage */, - 1E4F61EC1621AD970033EFC5 /* Release */, - 1E7DE39419D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1E5954EF15B6F24A00A03429 /* Build configuration list for PBXNativeTarget "HockeySDK" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1E5954F015B6F24A00A03429 /* Debug */, - 1E68F4A816F7843F00053706 /* CodeCoverage */, - 1E5954F115B6F24A00A03429 /* Release */, - 1E7DE39119D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1E59551415B6F45800A03429 /* Build configuration list for PBXNativeTarget "HockeySDKResources" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1E59551515B6F45800A03429 /* Debug */, - 1E68F4A916F7843F00053706 /* CodeCoverage */, - 1E59551615B6F45800A03429 /* Release */, - 1E7DE39219D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1E5A45A216F0DFC200B55C04 /* Build configuration list for PBXNativeTarget "HockeySDKTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1E5A45A016F0DFC200B55C04 /* Debug */, - 1E68F4AC16F7843F00053706 /* CodeCoverage */, - 1E5A45A116F0DFC200B55C04 /* Release */, - 1E7DE39519D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1E8E66B015BC3D7700632A2E /* Build configuration list for PBXAggregateTarget "HockeySDK Documentation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1E8E66AE15BC3D7700632A2E /* Debug */, - 1E68F4AA16F7843F00053706 /* CodeCoverage */, - 1E8E66AF15BC3D7700632A2E /* Release */, - 1E7DE39319D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E4005614148D79B500EB22B9 /* Build configuration list for PBXProject "HockeySDK" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E400563C148D79B500EB22B9 /* Debug */, - 1E68F4A716F7843F00053706 /* CodeCoverage */, - E400563D148D79B500EB22B9 /* Release */, - 1E7DE39019D44D88009AB8E5 /* ReleaseCrashOnly */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = E4005611148D79B500EB22B9 /* Project object */; -} diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 7aed921..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme deleted file mode 100644 index 8063f8e..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme deleted file mode 100644 index 352573e..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme deleted file mode 100644 index 0f4fbf0..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme deleted file mode 100644 index 800f3cb..0000000 --- a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h b/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h deleted file mode 100644 index b0d0ff2..0000000 --- a/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Author: Andreas Linde - * - * Copyright (c) 2013-2014 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. - */ - -/* - * This file is only used by the binary framework target when building - * and creating the crash reporting only framework - * - * Attention: Do not include this into your projects yourself! - */ - -#ifndef HockeySDK_HockeySDKFeatureConfig_h -#define HockeySDK_HockeySDKFeatureConfig_h - - -/** - * If true, include support for handling crash reports - * - * _Default_: Enabled - */ -#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_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_FEEDBACK -# define HOCKEYSDK_FEATURE_FEEDBACK 0 -#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ - - -/** - * If true, include support for informing the user about new updates pending in the App Store - * - * _Default_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_STORE_UPDATES -# define HOCKEYSDK_FEATURE_STORE_UPDATES 0 -#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ - - -/** - * If true, include support for authentication installations for Ad-Hoc and Enterprise builds - * - * _Default_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR -# define HOCKEYSDK_FEATURE_AUTHENTICATOR 0 -#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ - - -/** - * If true, include support for handling in-app updates for Ad-Hoc and Enterprise builds - * - * _Default_: Enabled - */ -#ifndef HOCKEYSDK_FEATURE_UPDATES -# define HOCKEYSDK_FEATURE_UPDATES 0 -#endif /* HOCKEYSDK_FEATURE_UPDATES */ - - -#endif /* HockeySDK_HockeySDKFeatureConfig_h */ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m deleted file mode 100644 index 07a6ff6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m +++ /dev/null @@ -1,332 +0,0 @@ -// -// HockeySDKTests.m -// HockeySDKTests -// -// Created by Andreas Linde on 13.03.13. -// -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "BITAuthenticator.h" -#import "BITAuthenticator_Private.h" -#import "BITHTTPOperation.h" -#import "BITTestHelper.h" -#import "BITHockeyAppClient.h" - -@interface MyDevice : NSObject -- (NSString*) uniqueIdentifier; -@end -@implementation MyDevice -- (NSString*) uniqueIdentifier {return @"reallyUnique";} -@end - -@interface MyDeviceWithIdentifierForVendor : MyDevice -@property (copy) NSUUID *identifierForVendor; -@end -@implementation MyDeviceWithIdentifierForVendor - -- (instancetype)init { - self = [super init]; - if( self ) { - _identifierForVendor = [NSUUID UUID]; - } - return self; -} - -@end - -static void *kInstallationIdentification = &kInstallationIdentification; - -@interface BITAuthenticatorTests : XCTestCase -@end - -@implementation BITAuthenticatorTests { - BITAuthenticator *_sut; - BOOL _KVOCalled; -} - -- (void)setUp { - [super setUp]; - - _sut = [[BITAuthenticator alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; -} - -- (void)tearDown { -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [_sut cleanupInternalStorage]; - _sut = nil; - - [super tearDown]; -} - -#pragma mark - Setup helpers -- (NSDictionary *)jsonFromFixture:(NSString *)fixture { - NSString *dataString = [BITTestHelper jsonFixture:fixture]; - - NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; - NSError *error = nil; - NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; - - return json; -} - -#pragma mark - Setup Tests -- (void) testThatItInstantiates { - XCTAssertNotNil(_sut, @"Should be there"); -} - -#pragma mark - Persistence Tests -- (void) testThatLastAuthenticatedVersionIsPersisted { - _sut.lastAuthenticatedVersion = @"1.2.1"; - _sut = [[BITAuthenticator alloc] initWithAppIdentifier:nil isAppStoreEnvironment:YES]; - assertThat(_sut.lastAuthenticatedVersion, equalTo(@"1.2.1")); -} - -- (void) testThatCleanupWorks { - _sut.lastAuthenticatedVersion = @"1.2"; - - [_sut cleanupInternalStorage]; - - assertThat(_sut.lastAuthenticatedVersion, equalTo(nil)); - assertThat(_sut.installationIdentifier, equalTo(nil)); -} - -#pragma mark - Initial defaults -- (void) testDefaultValues { - assertThatBool(_sut.restrictApplicationUsage, equalToBool(NO)); - assertThatBool(_sut.isIdentified, equalToBool(NO)); - assertThatBool(_sut.isValidated, equalToBool(NO)); - assertThat(_sut.authenticationSecret, equalTo(nil)); - assertThat(_sut.installationIdentifier, equalTo(nil)); - assertThat(_sut.installationIdentifierParameterString, equalTo(@"uuid")); -} - -#pragma mark - General identification tests -- (void) testThatIsDoesntShowMoreThanOneAuthenticationController { - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; - - [_sut identifyWithCompletion:nil]; - [_sut identifyWithCompletion:nil]; - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - -- (void) testThatChangingIdentificationTypeResetsIdentifiedFlag { - _sut.identified = YES; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; - assertThatBool(_sut.identified, equalToBool(NO)); -} - -- (void) testThatAfterChangingIdentificationTypeIdentificationIsRedone { - [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - _sut.identified = YES; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; - [_sut identifyWithCompletion:nil]; - assertThatBool(_sut.identified, equalToBool(NO)); - assertThat(_sut.installationIdentifier, nilValue()); -} - -- (void) testThatIdentifyingAnAlreadyIdentifiedInstanceDoesNothing { - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - _sut.identified = YES; - - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, never()) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - - -#pragma mark - Anonymous identification type -- (void) testAnonymousIdentification { - _sut.identificationType = BITAuthenticatorIdentificationTypeAnonymous; - assertThatBool(_sut.isIdentified, equalToBool(NO)); - [_sut identifyWithCompletion:^(BOOL identified, NSError *error) { - assertThatBool(identified, equalToBool(YES)); - assertThat(error, equalTo(nil)); - }]; - assertThatBool(_sut.isIdentified, equalToBool(YES)); - assertThat(_sut.installationIdentifier, notNilValue()); -} - -//anoynmous users can't be validated -- (void) testAnonymousValidation { - _sut.identificationType = BITAuthenticatorIdentificationTypeAnonymous; - assertThatBool(_sut.isValidated, equalToBool(NO)); - [_sut validateWithCompletion:^(BOOL validated, NSError *error) { - assertThatBool(_sut.validated, equalToBool(NO)); - assertThat(error, notNilValue()); - }]; - assertThatBool(_sut.isValidated, equalToBool(NO)); -} - -#pragma mark - Device identification type -- (void) testDeviceIdentificationShowsViewController { - _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} -#pragma mark - Web auth identification type -- (void) testWebAuthIdentificationShowsViewController { - _sut.identificationType = BITAuthenticatorIdentificationTypeWebAuth; - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - -#pragma mark - Email identification type -- (void) testEmailIdentificationFailsWithMissingSecret { - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut identifyWithCompletion:^(BOOL identified, NSError *error) { - assertThatBool(identified, equalToBool(NO)); - assertThat(error, notNilValue()); - }]; -} - -- (void) testEmailIdentificationShowsViewController { - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - _sut.authenticationSecret = @"mySecret"; - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - -- (void) testEmailValidationFailsWithMissingSecret { - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut validateWithCompletion:^(BOOL validated, NSError *error) { - assertThatBool(validated, equalToBool(NO)); - assertThat(error, notNilValue()); - }]; -} - -- (void) testThatEmailIdentificationQueuesAnOperation { - id httpClientMock = mock(BITHockeyAppClient.class); - _sut.hockeyAppClient = httpClientMock; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - _sut.authenticationSecret = @"double"; - [_sut authenticationViewController:nil - handleAuthenticationWithEmail:@"stephan@dd.de" - password:@"nopass" - completion:nil]; - [verify(httpClientMock) enqeueHTTPOperation:anything()]; -} - -#pragma mark - User identification type -- (void) testUserIdentificationShowsViewController { - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - - [_sut identifyWithCompletion:nil]; - - [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - - -#pragma mark - Generic validation tests -- (void) testThatValidationFailsIfNotIdentified { - _sut.identified = NO; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; - [_sut validateWithCompletion:^(BOOL validated, NSError *error) { - assertThatBool(validated, equalToBool(NO)); - assertThatLong(error.code, equalToLong(BITAuthenticatorNotIdentified)); - }]; -} - -- (void) testThatValidationCreatesAGETRequest { - id httpClientMock = mock(BITHockeyAppClient.class); - _sut.hockeyAppClient = httpClientMock; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - _sut.authenticationSecret = @"double"; - [_sut validateWithCompletion:nil]; - [verify(httpClientMock) getPath:(id)anything() - parameters:(id)anything() - completion:(id)anything()]; -} - -#pragma mark - Authentication -- (void) testThatEnabledRestrictionTriggersValidation { - id clientMock = mock(BITHockeyAppClient.class); - _sut.hockeyAppClient = clientMock; - _sut.authenticationSecret = @"sekret"; - _sut.restrictApplicationUsage = YES; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut storeInstallationIdentifier:@"asd" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - [_sut authenticate]; - - [verify(clientMock) getPath:(id)anything() parameters:(id)anything() completion:(id)anything()]; -} - -- (void) testThatDisabledRestrictionDoesntTriggerValidation { - id clientMock = mock(BITHockeyAppClient.class); - _sut.hockeyAppClient = clientMock; - _sut.authenticationSecret = @"sekret"; - _sut.restrictApplicationUsage = NO; - _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; - [_sut storeInstallationIdentifier:@"asd" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; - [_sut authenticate]; - - [verifyCount(clientMock, never()) getPath:(id)anything() parameters:(id)anything() completion:(id)anything()]; -} - -#pragma mark - Lifetime checks -- (void) testThatValidationTriggersOnDidBecomeActive { - id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); - _sut.delegate = delegateMock; - _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; - _sut.restrictApplicationUsage = YES; - - [_sut applicationDidBecomeActive:nil]; - - [verify(delegateMock) authenticator:_sut willShowAuthenticationController:(id)anything()]; -} - -#pragma mark - Validation helper checks -- (void) testThatValidationTriggersOnNewVersion { - _sut.restrictApplicationUsage = YES; - _sut.restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; - _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; - _sut.validated = YES; - _sut.lastAuthenticatedVersion = @"111xxx"; - assertThatBool(_sut.needsValidation, equalToBool(YES)); -} - -- (void) testThatValidationDoesNotTriggerOnSameVersion { - _sut.restrictApplicationUsage = YES; - _sut.restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; - _sut.validated = YES; - _sut.lastAuthenticatedVersion = _sut.executableUUID; - assertThatBool(_sut.needsValidation, equalToBool(NO)); -} - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m deleted file mode 100644 index 51609cc..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m +++ /dev/null @@ -1,295 +0,0 @@ -// -// BITCrashManagerTests.m -// HockeySDK -// -// Created by Andreas Linde on 25.09.13. -// -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" -#import "BITCrashManager.h" -#import "BITCrashManagerPrivate.h" -#import "BITHockeyBaseManager.h" -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITTestHelper.h" - -#define kBITCrashMetaAttachment @"BITCrashMetaAttachment" - -@interface BITCrashManagerTests : XCTestCase - -@end - - -@implementation BITCrashManagerTests { - BITCrashManager *_sut; - BOOL _startManagerInitialized; -} - -- (void)setUp { - [super setUp]; - - _startManagerInitialized = NO; - _sut = [[BITCrashManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; -} - -- (void)tearDown { -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [_sut cleanCrashReports]; - [super tearDown]; -} - -#pragma mark - Private - -- (void)startManager { - [_sut startManager]; - [NSObject cancelPreviousPerformRequestsWithTarget:_sut selector:@selector(invokeDelayedProcessing) object:nil]; - _startManagerInitialized = YES; -} - -- (void)startManagerDisabled { - _sut.crashManagerStatus = BITCrashManagerStatusDisabled; - if (_startManagerInitialized) return; - [self startManager]; -} - -- (void)startManagerAutoSend { - _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; - if (_startManagerInitialized) return; - [self startManager]; -} - -#pragma mark - Setup Tests - -- (void)testThatItInstantiates { - XCTAssertNotNil(_sut, @"Should be there"); -} - - -#pragma mark - Persistence tests - -- (void)testPersistUserProvidedMetaData { - NSString *tempCrashName = @"tempCrash"; - [_sut setLastCrashFilename:tempCrashName]; - - BITCrashMetaData *metaData = [BITCrashMetaData new]; - [metaData setUserDescription:@"Test string"]; - [_sut persistUserProvidedMetaData:metaData]; - - NSError *error; - NSString *description = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@.desc", [[_sut crashesDir] stringByAppendingPathComponent: tempCrashName]] encoding:NSUTF8StringEncoding error:&error]; - assertThat(description, equalTo(@"Test string")); -} - -- (void)testPersistAttachment { - NSString *filename = @"TestAttachment"; - NSData *data = [[NSData alloc] initWithBase64Encoding:@"TestData"]; - NSString* type = @"text/plain"; - - BITHockeyAttachment *originalAttachment = [[BITHockeyAttachment alloc] initWithFilename:filename hockeyAttachmentData:data contentType:type]; - NSString *attachmentFilename = [[_sut crashesDir] stringByAppendingPathComponent:@"testAttachment"]; - - [_sut persistAttachment:originalAttachment withFilename:attachmentFilename]; - - BITHockeyAttachment *decodedAttachment = [_sut attachmentForCrashReport:attachmentFilename]; - - assertThat(decodedAttachment.filename, equalTo(filename)); - assertThat(decodedAttachment.hockeyAttachmentData, equalTo(data)); - assertThat(decodedAttachment.contentType, equalTo(type)); -} - -#pragma mark - Helper - -- (void)testUserIDForCrashReport { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - NSString *result = [_sut userIDForCrashReport]; - - assertThat(result, notNilValue()); - - [verifyCount(delegateMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUserNameForCrashReport { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - NSString *result = [_sut userNameForCrashReport]; - - assertThat(result, notNilValue()); - - [verifyCount(delegateMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUserEmailForCrashReport { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - NSString *result = [_sut userEmailForCrashReport]; - - assertThat(result, notNilValue()); - - [verifyCount(delegateMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; -} - -#pragma mark - Handle User Input - -- (void)testHandleUserInputDontSend { - id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); - _sut.delegate = delegateMock; - - assertThatBool([_sut handleUserInput:BITCrashManagerUserInputDontSend withUserProvidedMetaData:nil], equalToBool(YES)); - - [verify(delegateMock) crashManagerWillCancelSendingCrashReport:_sut]; - -} - -- (void)testHandleUserInputSend { - assertThatBool([_sut handleUserInput:BITCrashManagerUserInputSend withUserProvidedMetaData:nil], equalToBool(YES)); -} - -- (void)testHandleUserInputAlwaysSend { - id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); - _sut.delegate = delegateMock; - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - - //Test if CrashManagerStatus is unset - [given([mockUserDefaults integerForKey:@"BITCrashManagerStatus"]) willReturn:nil]; - - //Test if method runs through - assertThatBool([_sut handleUserInput:BITCrashManagerUserInputAlwaysSend withUserProvidedMetaData:nil], equalToBool(YES)); - - //Test if correct CrashManagerStatus is now set - [given([mockUserDefaults integerForKey:@"BITCrashManagerStauts"]) willReturnInt:BITCrashManagerStatusAutoSend]; - - //Verify that delegate method has been called - [verify(delegateMock) crashManagerWillSendCrashReportsAlways:_sut]; - -} - -- (void)testHandleUserInputWithInvalidInput { - assertThatBool([_sut handleUserInput:3 withUserProvidedMetaData:nil], equalToBool(NO)); -} - -#pragma mark - Debugger - -/** - * We are running this usually witin Xcode - * TODO: what to do if we do run this e.g. on Jenkins or Xcode bots ? - */ -- (void)testIsDebuggerAttached { - assertThatBool([_sut isDebuggerAttached], equalToBool(YES)); -} - - -#pragma mark - Helper - -- (void)testHasPendingCrashReportWithNoFiles { - _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; - assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); -} - -- (void)testFirstNotApprovedCrashReportWithNoFiles { - _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; - assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); -} - - -#pragma mark - StartManager - -- (void)testStartManagerWithModuleDisabled { - [self startManagerDisabled]; - - assertThat(_sut.plCrashReporter, equalTo(nil)); -} - -- (void)testStartManagerWithAutoSend { - // since PLCR is only initialized once ever, we need to pack all tests that rely on a PLCR instance - // in this test method. Ugly but otherwise this would require a major redesign of BITCrashManager - // which we can't do at this moment - // This also limits us not being able to test various scenarios having a custom exception handler - // which would require us to run without a debugger anyway and which would also require a redesign - // to make this better testable with unit tests - - id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); - _sut.delegate = delegateMock; - - [self startManagerAutoSend]; - - assertThat(_sut.plCrashReporter, notNilValue()); - - // When running from the debugger this is always nil and not the exception handler from PLCR - NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); - - BOOL result = (_sut.exceptionHandler == currentHandler); - - assertThatBool(result, equalToBool(YES)); - - // No files at startup - assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); - assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); - - [_sut invokeDelayedProcessing]; - - // handle a new empty crash report - assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_empty"], equalToBool(YES)); - - [_sut handleCrashReport]; - - // we should have 0 pending crash report - assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); - assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); - - [_sut cleanCrashReports]; - - // handle a new signal crash report - assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_signal"], equalToBool(YES)); - - [_sut handleCrashReport]; - - [verifyCount(delegateMock, times(1)) applicationLogForCrashManager:_sut]; - [verifyCount(delegateMock, times(1)) attachmentForCrashManager:_sut]; - - // we should have now 1 pending crash report - assertThatBool([_sut hasPendingCrashReport], equalToBool(YES)); - assertThat([_sut firstNotApprovedCrashReport], notNilValue()); - - // this is currently sending blindly, needs refactoring to test properly - [_sut sendNextCrashReport]; - [verifyCount(delegateMock, times(1)) crashManagerWillSendCrashReport:_sut]; - - [_sut cleanCrashReports]; - - // handle a new signal crash report - assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_exception"], equalToBool(YES)); - - [_sut handleCrashReport]; - - // we should have now 1 pending crash report - assertThatBool([_sut hasPendingCrashReport], equalToBool(YES)); - assertThat([_sut firstNotApprovedCrashReport], notNilValue()); - - [_sut cleanCrashReports]; -} - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m deleted file mode 100644 index 170fa8f..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m +++ /dev/null @@ -1,196 +0,0 @@ -// -// BITCrashReportTextFormatterTests.m -// HockeySDK -// -// Created by Andreas Linde on 27.11.14. -// -// - -#import -#import "BITCrashReportTextFormatter.h" - -@interface BITCrashReportTextFormatterTests : XCTestCase - -@end - -@implementation BITCrashReportTextFormatterTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [super tearDown]; -} - -- (void)testOSXImages { - NSString *processPath = nil; - NSString *appBundlePath = nil; - - appBundlePath = @"/Applications/MyTestApp.App"; - - // Test with default OS X app path - processPath = [appBundlePath stringByAppendingString:@"/Contents/MacOS/MyApp"]; - [self testOSXNonAppSpecificImagesForProcessPath:processPath]; - [self testAppBinaryWithImagePath:processPath processPath:processPath]; - - // Test with OS X LoginItems app helper path - processPath = [appBundlePath stringByAppendingString:@"/Contents/Library/LoginItems/net.hockeyapp.helper.app/Contents/MacOS/Helper"]; - [self testOSXNonAppSpecificImagesForProcessPath:processPath]; - [self testAppBinaryWithImagePath:processPath processPath:processPath]; - - // Test with OS X app in Resources folder - processPath = @"/Applications/MyTestApp.App/Contents/Resources/Helper"; - [self testOSXNonAppSpecificImagesForProcessPath:processPath]; - [self testAppBinaryWithImagePath:processPath processPath:processPath]; -} - -- (void)testiOSImages { - NSString *processPath = nil; - NSString *appBundlePath = nil; - - appBundlePath = @"/private/var/mobile/Containers/Bundle/Application/9107B4E2-CD8C-486E-A3B2-82A5B818F2A0/MyApp.app"; - - // Test with iOS App - processPath = [appBundlePath stringByAppendingString:@"/MyApp"]; - [self testiOSNonAppSpecificImagesForProcessPath:processPath]; - [self testAppBinaryWithImagePath:processPath processPath:processPath]; - [self testiOSAppFrameworkAtProcessPath:processPath appBundlePath:appBundlePath]; - - // Test with iOS App Extension - processPath = [appBundlePath stringByAppendingString:@"/Plugins/MyAppExtension.appex/MyAppExtension"]; - [self testiOSNonAppSpecificImagesForProcessPath:processPath]; - [self testAppBinaryWithImagePath:processPath processPath:processPath]; - [self testiOSAppFrameworkAtProcessPath:processPath appBundlePath:appBundlePath]; -} - - -#pragma mark - Test Helper - -- (void)testAppBinaryWithImagePath:(NSString *)imagePath processPath:(NSString *)processPath { - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeAppBinary), @"Test app %@ with process %@", imagePath, processPath); -} - - -#pragma mark - OS X Test Helper - -- (void)testOSXAppFrameworkAtProcessPath:(NSString *)processPath appBundlePath:(NSString *)appBundlePath { - NSString *frameworkPath = [appBundlePath stringByAppendingString:@"/Contents/Frameworks/MyFrameworkLib.framework/Versions/A/MyFrameworkLib"]; - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); - - frameworkPath = [appBundlePath stringByAppendingString:@"/Contents/Frameworks/libSwiftMyLib.framework/Versions/A/libSwiftMyLib"]; - imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); - - NSMutableArray *swiftFrameworkPaths = [NSMutableArray new]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftCore.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftDarwin.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftDispatch.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftFoundation.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftObjectiveC.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftSecurity.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftCoreGraphics.dylib"]]; - - for (NSString *imagePath in swiftFrameworkPaths) { - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeOther), @"Test swift image %@ with process %@", imagePath, processPath); - } -} - -- (void)testOSXNonAppSpecificImagesForProcessPath:(NSString *)processPath { - // system test paths - NSMutableArray *nonAppSpecificImagePaths = [NSMutableArray new]; - - // OS X frameworks - [nonAppSpecificImagePaths addObject:@"cl_kernels"]; - [nonAppSpecificImagePaths addObject:@""]; - [nonAppSpecificImagePaths addObject:@"???"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libsystem_platform.dylib"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/libbsm.0.dylib"]; - - for (NSString *imagePath in nonAppSpecificImagePaths) { - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeOther), @"Test other image %@ with process %@", imagePath, processPath); - } -} - - -#pragma mark - iOS Test Helper - -- (void)testiOSAppFrameworkAtProcessPath:(NSString *)processPath appBundlePath:(NSString *)appBundlePath { - NSString *frameworkPath = [appBundlePath stringByAppendingString:@"/Frameworks/MyFrameworkLib.framework/MyFrameworkLib"]; - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); - - frameworkPath = [appBundlePath stringByAppendingString:@"/Frameworks/libSwiftMyLib.framework/libSwiftMyLib"]; - imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); - - NSMutableArray *swiftFrameworkPaths = [NSMutableArray new]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftCore.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftDarwin.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftDispatch.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftFoundation.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftObjectiveC.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftSecurity.dylib"]]; - [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftCoreGraphics.dylib"]]; - - for (NSString *imagePath in swiftFrameworkPaths) { - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeOther), @"Test swift image %@ with process %@", imagePath, processPath); - } -} - -- (void)testiOSNonAppSpecificImagesForProcessPath:(NSString *)processPath { - // system test paths - NSMutableArray *nonAppSpecificImagePaths = [NSMutableArray new]; - - // iOS frameworks - [nonAppSpecificImagePaths addObject:@"/System/Library/AccessibilityBundles/AccessibilitySettingsLoader.bundle/AccessibilitySettingsLoader"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/AVFoundation.framework/AVFoundation"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/AOSNotification.framework/AOSNotification"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AccessibilityUI.framework/AccessibilityUI"]; - [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AccessibilityUIUtilities.framework/AccessibilityUIUtilities"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/libAXSafeCategoryBundle.dylib"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/libAXSpeechManager.dylib"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/libAccessibility.dylib"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcache.dylib"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcommonCrypto.dylib"]; - [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcompiler_rt.dylib"]; - - // iOS Jailbreak libraries - [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/MobileSubstrate.dylib"]; - [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/DynamicLibraries/WeeLoader.dylib"]; - [nonAppSpecificImagePaths addObject:@"/Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib"]; - [nonAppSpecificImagePaths addObject:@"/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate"]; - [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/DynamicLibraries/WinterBoard.dylib"]; - - for (NSString *imagePath in nonAppSpecificImagePaths) { - BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath - processPath:processPath]; - XCTAssert((imageType == BITBinaryImageTypeOther), @"Test other image %@ with process %@", imagePath, processPath); - } -} - - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m deleted file mode 100644 index ac00063..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m +++ /dev/null @@ -1,216 +0,0 @@ -// -// BITFeedbackManagerTests.m -// HockeySDK -// -// Created by Andreas Linde on 24.03.14. -// -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "HockeySDKPrivate.h" -#import "BITFeedbackManager.h" -#import "BITFeedbackManagerPrivate.h" -#import "BITHockeyBaseManager.h" -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITTestHelper.h" - -@interface BITFeedbackManagerTests : XCTestCase - -@end - -@implementation BITFeedbackManagerTests { - BITFeedbackManager *_sut; -} - -- (void)setUp { - [super setUp]; - - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - hm.delegate = nil; - _sut = [[BITFeedbackManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; - _sut.delegate = nil; -} - -- (void)tearDown { -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [_sut removeKeyFromKeychain:kBITHockeyMetaUserID]; - [_sut removeKeyFromKeychain:kBITHockeyMetaUserName]; - [_sut removeKeyFromKeychain:kBITHockeyMetaUserEmail]; - - _sut = nil; - - [super tearDown]; -} - -#pragma mark - Private - -- (void)startManager { - [_sut startManager]; -} - -#pragma mark - Setup Tests - - -#pragma mark - User Metadata - -- (void)testUpdateUserIDWithNoDataPresent { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(NO)); - assertThat(_sut.userID, nilValue()); - - [verifyCount(delegateMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserIDWithDelegateReturningData { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); - [given([classMock userIDForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; - hm.delegate = classMock; - _sut.delegate = classMock; - - BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userID, equalTo(@"test")); - - [verifyCount(classMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserIDWithValueInKeychain { - [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserID]; - - BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userID, equalTo(@"test")); -} - -- (void)testUpdateUserIDWithGlobalSetter { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - [hm setUserID:@"test"]; - - BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userID, equalTo(@"test")); -} - - -- (void)testUpdateUserNameWithNoDataPresent { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(NO)); - assertThat(_sut.userName, nilValue()); - - [verifyCount(delegateMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserNameWithDelegateReturningData { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); - [given([classMock userNameForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; - hm.delegate = classMock; - _sut.delegate = classMock; - - BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userName, equalTo(@"test")); - - [verifyCount(classMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserNameWithValueInKeychain { - [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserName]; - - BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userName, equalTo(@"test")); -} - -- (void)testUpdateUserNameWithGlobalSetter { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - [hm setUserName:@"test"]; - - BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userName, equalTo(@"test")); -} - - -- (void)testUpdateUserEmailWithNoDataPresent { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); - hm.delegate = delegateMock; - _sut.delegate = delegateMock; - - BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(NO)); - assertThat(_sut.userEmail, nilValue()); - - [verifyCount(delegateMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserEmailWithDelegateReturningData { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); - [given([classMock userEmailForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; - hm.delegate = classMock; - _sut.delegate = classMock; - - BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userEmail, equalTo(@"test")); - - [verifyCount(classMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; -} - -- (void)testUpdateUserEmailWithValueInKeychain { - [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserEmail]; - - BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userEmail, equalTo(@"test")); -} - -- (void)testUpdateUserEmailWithGlobalSetter { - BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; - [hm setUserEmail:@"test"]; - - BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; - - assertThatBool(dataAvailable, equalToBool(YES)); - assertThat(_sut.userEmail, equalTo(@"test")); -} - - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m deleted file mode 100644 index 5f1f66b..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m +++ /dev/null @@ -1,236 +0,0 @@ -// -// BITHockeyAppClientTests -// HockeySDKTests -// -// Created by Stephan Diederich on 06.09.13. -// -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "BITHockeyAppClient.h" -#import "BITHTTPOperation.h" -#import "BITTestHelper.h" - -@interface BITHockeyAppClientTests : XCTestCase -@end - -@implementation BITHockeyAppClientTests { - BITHockeyAppClient *_sut; -} - -- (void)setUp { - [super setUp]; - - _sut = [[BITHockeyAppClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://bitbaseurl.com"]]; -} - -- (void)tearDown { -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [_sut cancelOperationsWithPath:nil method:nil]; - _sut = nil; - - [super tearDown]; -} - -#pragma mark - Setup helpers -- (NSDictionary *)jsonFromFixture:(NSString *)fixture { - NSString *dataString = [BITTestHelper jsonFixture:fixture]; - - NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; - NSError *error = nil; - NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; - - return json; -} - -#pragma mark - Setup Tests -- (void) testThatItInstantiates { - XCTAssertNotNil(_sut, @"Should be there"); -} - -#pragma mark - Networking base tests -- (void) testThatURLRequestHasBaseURLSet { - _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; - NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" path:nil parameters:nil]; - assertThat(request.URL, equalTo([NSURL URLWithString:@"http://myserver.com/"])); -} - -- (void) testThatURLRequestHasPathAppended { - _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; - NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" path:@"projects" parameters:nil]; - assertThat(request.URL, equalTo([NSURL URLWithString:@"http://myserver.com/projects"])); -} - -- (void) testThatURLRequestHasMethodSet { - NSMutableURLRequest *request = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - - assertThat(request.HTTPMethod, equalTo(@"POST")); -} - -- (void) testThatOperationHasURLRequestSet { - _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; - NSURLRequest *r = [_sut requestWithMethod:@"PUT" path:@"x" parameters:nil]; - BITHTTPOperation *op = [_sut operationWithURLRequest:r - completion:nil]; - assertThat(op.URLRequest, equalTo(r)); -} - -- (void) testThatURLRequestHasParametersInGetAppended { - NSDictionary *parameters = @{ - @"email" : @"peter@pan.de", - @"push" : @"pop", - }; - NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" - path:@"something" - parameters:parameters]; - NSURL *url = request.URL; - NSString *params = [url query]; - NSArray *paramPairs = [params componentsSeparatedByString:@"&"]; - assertThat(paramPairs, hasCountOf(2)); - - NSMutableDictionary *dict = [NSMutableDictionary new]; - for(NSString *paramPair in paramPairs) { - NSArray *a = [paramPair componentsSeparatedByString:@"="]; - assertThat(a, hasCountOf(2)); - dict[a[0]] = a[1]; - } - assertThat(dict, equalTo(parameters)); -} - -- (void) testThatURLRequestHasParametersInPostInTheBody { - //pending -} - -#pragma mark - Convenience methods -- (void) testThatGetPathCreatesAndEnquesAnOperation { - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); - [given([_sut operationWithURLRequest:(id)anything() - completion:nil]) willReturn:[NSOperation new]]; - - [_sut getPath:@"endpoint" - parameters:nil - completion:nil]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); -} - -- (void) testThatPostPathCreatesAndEnquesAnOperation { - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); - [given([_sut operationWithURLRequest:nil - completion:nil]) willReturn:[NSOperation new]]; - - [_sut postPath:@"endpoint" - parameters:nil - completion:nil]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); -} - -#pragma mark - Completion Tests -- (void) testThatCompletionIsCalled { - //TODO -} - -#pragma mark - HTTPOperation enqueuing / cancellation -- (void) testThatOperationIsQueued { - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); - [_sut.operationQueue setSuspended:YES]; - BITHTTPOperation *op = [BITHTTPOperation new]; - [_sut enqeueHTTPOperation:op]; - - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); -} - -- (void) testThatOperationCancellingMatchesAllOperationsWithNilMethod { - [_sut.operationQueue setSuspended:YES]; - NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:nil parameters:nil]; - NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:nil parameters:nil]; - NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost - completion:nil]]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); - NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:nil]; - assertThatUnsignedLong(numCancelled, equalToUnsignedLong(3)); -} - -- (void) testThatOperationCancellingMatchesAllOperationsWithNilPath { - [_sut.operationQueue setSuspended:YES]; - NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; - NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; - NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost - completion:nil]]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); - NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:nil]; - assertThatUnsignedLong(numCancelled, equalToUnsignedLong(3)); -} - - -- (void) testThatOperationCancellingMatchesAllOperationsWithSetPath { - NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; - NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; - NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - [_sut.operationQueue setSuspended:YES]; - - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost - completion:nil]]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); - NSUInteger numCancelled = [_sut cancelOperationsWithPath:@"Another/acas" method:nil]; - assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); -} - -- (void) testThatOperationCancellingMatchesAllOperationsWithSetMethod { - NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; - NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; - NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost - completion:nil]]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); - NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:@"POST"]; - assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); -} - -- (void) testThatOperationCancellingMatchesAllOperationsWithSetMethodAndPath { - NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; - NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; - NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut - completion:nil]]; - [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost - completion:nil]]; - assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); - NSUInteger numCancelled = [_sut cancelOperationsWithPath:@"Another/acas" method:@"PUT"]; - assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); -} - -#pragma mark - Operation Testing - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m deleted file mode 100644 index b6a0bf9..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m +++ /dev/null @@ -1,153 +0,0 @@ -// -// HockeySDKPrivateTests.m -// HockeySDK -// -// Created by Andreas Linde on 25.09.13. -// -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "BITHockeyHelper.h" -#import "BITKeychainUtils.h" - - -@interface BITHockeyHelperTests : XCTestCase - -@end - -@implementation BITHockeyHelperTests - - -- (void)setUp { - [super setUp]; - // Put setup code here; it will be run once, before the first test case. -} - -- (void)tearDown { - // Tear-down code here. -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [super tearDown]; -} - -- (void)testValidateEmail { - BOOL result = NO; - - // valid email - result = bit_validateEmail(@"mail@test.com"); - assertThatBool(result, equalToBool(YES)); - - // invalid emails - - result = bit_validateEmail(@"mail@test"); - assertThatBool(result, equalToBool(NO)); - - result = bit_validateEmail(@"mail@.com"); - assertThatBool(result, equalToBool(NO)); - - result = bit_validateEmail(@"mail.com"); - assertThatBool(result, equalToBool(NO)); - -} - -- (void)testAppName { - NSString *resultString = bit_appName(@"Placeholder"); - assertThatBool([resultString isEqualToString:@"Placeholder"], equalToBool(YES)); -} - -- (void)testUUIDPreiOS6 { - NSString *resultString = bit_UUIDPreiOS6(); - assertThat(resultString, notNilValue()); - assertThatInteger([resultString length], equalToInteger(36)); -} - -- (void)testUUID { - NSString *resultString = bit_UUID(); - assertThat(resultString, notNilValue()); - assertThatInteger([resultString length], equalToInteger(36)); -} - -- (void)testAppAnonID { - // clean keychain cache - NSError *error = NULL; - [BITKeychainUtils deleteItemForUsername:@"appAnonID" - andServiceName:bit_keychainHockeySDKServiceName() - error:&error]; - - NSString *resultString = bit_appAnonID(); - assertThat(resultString, notNilValue()); - assertThatInteger([resultString length], equalToInteger(36)); -} - -- (void)testValidAppIconFilename { - NSString *resultString = nil; - NSBundle *mockBundle = mock([NSBundle class]); - NSBundle *resourceBundle = [NSBundle bundleForClass:self.class]; - NSString *validIconPath = @"AppIcon"; - NSString *validIconPath2x = @"AppIcon@2x"; - - // No valid icons defined at all - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:@"invalidFilename.png"]; - - resultString = bit_validAppIconFilename(mockBundle, resourceBundle); - assertThat(resultString, nilValue()); - - // CFBundleIconFiles contains valid filenames - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[validIconPath, validIconPath2x]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; - - resultString = bit_validAppIconFilename(mockBundle, resourceBundle); - assertThat(resultString, notNilValue()); - - // CFBundleIcons contains valid dictionary filenames - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; - - // CFBundleIcons contains valid ipad dictionary and valid default dictionary filenames - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; - - resultString = bit_validAppIconFilename(mockBundle, resourceBundle); - assertThat(resultString, notNilValue()); - - // CFBundleIcons contains valid filenames - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@[validIconPath, validIconPath2x]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; - - resultString = bit_validAppIconFilename(mockBundle, resourceBundle); - assertThat(resultString, notNilValue()); - - // CFBundleIcon contains valid filename - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; - [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:validIconPath]; - - resultString = bit_validAppIconFilename(mockBundle, resourceBundle); - assertThat(resultString, notNilValue()); -} - - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m deleted file mode 100644 index 1bd87ff..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// BITKeychainHelperTests.m -// HockeySDK -// -// Created by Stephan Diederich on 23.09.13. -// Copyright (c) 2013 __MyCompanyName__. All rights reserved. -// - -#import - -#define HC_SHORTHAND -#import - -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDK.h" -#import "BITKeychainUtils.h" - -@interface BITKeychainUtilsTests : XCTestCase { - -} -@end - - -@implementation BITKeychainUtilsTests -- (void)setUp { - [super setUp]; - - // Set-up code here. -} - -- (void)tearDown { - // Tear-down code here. -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - [super tearDown]; -} - -- (void)testThatBITKeychainHelperStoresAndRetrievesPassword { - [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; - BOOL success = [BITKeychainUtils storeUsername:@"Peter" - andPassword:@"Pan" - forServiceName:@"Test" - updateExisting:YES - error:nil]; - assertThatBool(success, equalToBool(YES)); - NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" - andServiceName:@"Test" - error:NULL]; - assertThat(pass, equalTo(@"Pan")); -} - -- (void)testThatBITKeychainHelperStoresAndRetrievesPasswordThisDeviceOnly { - [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; - BOOL success = [BITKeychainUtils storeUsername:@"Peter" - andPassword:@"PanThisDeviceOnly" - forServiceName:@"Test" - updateExisting:YES - accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly - error:nil]; - assertThatBool(success, equalToBool(YES)); - NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" - andServiceName:@"Test" - error:NULL]; - assertThat(pass, equalTo(@"PanThisDeviceOnly")); -} - -- (void)testThatBITKeychainHelperRemovesAStoredPassword { - [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; - [BITKeychainUtils storeUsername:@"Peter" - andPassword:@"Pan" - forServiceName:@"Test" - updateExisting:YES - error:nil]; - BOOL success = [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; - assertThatBool(success, equalToBool(YES)); - - NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" - andServiceName:@"Test" - error:NULL]; - assertThat(pass, equalTo(nil)); -} - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m deleted file mode 100644 index a9e2d9c..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m +++ /dev/null @@ -1,319 +0,0 @@ -// -// HockeySDKTests.m -// HockeySDKTests -// -// Created by Andreas Linde on 13.03.13. -// -// - -#import - -// Uncomment the next two lines to use OCHamcrest for test assertions: -#define HC_SHORTHAND -#import - -// Uncomment the next two lines to use OCMockito for mock objects: -#define MOCKITO_SHORTHAND -#import - -#import "HockeySDKFeatureConfig.h" -#import "BITStoreUpdateManager.h" -#import "BITStoreUpdateManagerPrivate.h" -#import "BITHockeyBaseManager.h" -#import "BITHockeyBaseManagerPrivate.h" - -#import "BITTestHelper.h" - - -@interface BITStoreUpdateManagerTests : XCTestCase - -@end - - -@implementation BITStoreUpdateManagerTests { - BITStoreUpdateManager *_storeUpdateManager; -} - -- (void)setUp { - [super setUp]; - - // Set-up code here. - _storeUpdateManager = [[BITStoreUpdateManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:YES]; -} - -- (void)tearDown { - // Tear-down code here. -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wimplicit" - __gcov_flush(); -# pragma clang diagnostic pop - - _storeUpdateManager = nil; - - [super tearDown]; -} - - -#pragma mark - Private - -- (NSDictionary *)jsonFromFixture:(NSString *)fixture { - NSString *dataString = [BITTestHelper jsonFixture:fixture]; - - NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; - NSError *error = nil; - NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; - - return json; -} - -- (void)startManager { - _storeUpdateManager.enableStoreUpdateManager = YES; - [_storeUpdateManager startManager]; - [NSObject cancelPreviousPerformRequestsWithTarget:_storeUpdateManager selector:@selector(checkForUpdateDelayed) object:nil]; -} - - -#pragma mark - Time - -- (void)testUpdateCheckDailyFirstTimeEver { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertTrue(result, @"Checking daily first time ever"); -} - -- (void)testUpdateCheckDailyFirstTimeTodayLastCheckPreviousDay { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24)]]; - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckDaily; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertTrue(result, @"Checking daily first time today with last check done previous day"); -} - -- (void)testUpdateCheckDailySecondTimeOfTheDay { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.lastCheck = [NSDate date]; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertFalse(result, @"Checking daily second time of the day"); -} - -- (void)testUpdateCheckWeeklyFirstTimeEver { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertTrue(result, @"Checking weekly first time ever"); -} - -- (void)testUpdateCheckWeeklyFirstTimeTodayLastCheckPreviousWeek { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24*7)]]; - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertTrue(result, @"Checking weekly first time after one week"); -} - -- (void)testUpdateCheckWeeklyFirstTimeFiveDaysAfterPreviousCheck { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24*5)]]; - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertFalse(result, @"Checking weekly first time five days after previous check"); -} - -- (void)testUpdateCheckManuallyFirstTimeEver { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckManually; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertFalse(result, @"Checking manually first time ever"); -} - -- (void)testUpdateCheckManuallyFirstTimeTodayLastCheckDonePreviousDay { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24)]]; - _storeUpdateManager.userDefaults = mockUserDefaults; - _storeUpdateManager.updateSetting = BITStoreUpdateCheckManually; - - [self startManager]; - - BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; - - XCTAssertFalse(result, @"Checking manually first time ever"); -} - - -#pragma mark - JSON Response Processing - -- (void)testProcessStoreResponseWithEmptyData { - BOOL result = [_storeUpdateManager processStoreResponseWithString:nil]; - - XCTAssertFalse(result, @"Empty data was handled correctly"); -} - -- (void)testProcessStoreResponseWithInvalidData { - NSString *invalidString = @"8a@c&)if"; - BOOL result = [_storeUpdateManager processStoreResponseWithString:invalidString]; - - XCTAssertFalse(result, @"Invalid JSON data was handled correctly"); -} - -- (void)testProcessStoreResponseWithUnknownBundleIdentifier { - NSString *dataString = [BITTestHelper jsonFixture:@"StoreBundleIdentifierUnknown"]; - BOOL result = [_storeUpdateManager processStoreResponseWithString:dataString]; - - XCTAssertFalse(result, @"Valid but empty json data was handled correctly"); -} - -- (void)testProcessStoreResponseWithKnownBundleIdentifier { - NSString *dataString = [BITTestHelper jsonFixture:@"StoreBundleIdentifierKnown"]; - BOOL result = [_storeUpdateManager processStoreResponseWithString:dataString]; - - XCTAssertTrue(result, @"Valid and correct JSON data was handled correctly"); -} - - -#pragma mark - Last version - -#pragma mark - Version compare - -- (void)testFirstStartHasNewVersionReturnsFalseWithFirstCheck { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertFalse(result, @"There is no udpate available"); -} - -- (void)testFirstStartHasNewVersionReturnsFalseWithSameVersion { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.2"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertFalse(result, @"There is no udpate available"); -} - - -- (void)testFirstStartHasNewVersionReturnsFalseWithSameVersionButDifferentUUID { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.2"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@"1"]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertFalse(result, @"There is no udpate available"); -} - -- (void)testFirstStartHasNewVersionReturnsTrue { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertTrue(result, @"There is an udpate available"); -} - - -- (void)testFirstStartHasNewVersionReturnsFalseBecauseWeHaveANewerVersionInstalled { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.3"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertFalse(result, @"There is no udpate available"); -} - -- (void)testReportedVersionIsBeingIgnored { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.2"]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertFalse(result, @"The newer version is being ignored"); -} - -- (void)testReportedVersionIsNewerThanTheIgnoredVersion { - NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; - [given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.1"]; - _storeUpdateManager.userDefaults = mockUserDefaults; - - [self startManager]; - - NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; - - BOOL result = [_storeUpdateManager hasNewVersion:json]; - - XCTAssertTrue(result, @"The newer version is not ignored"); -} - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h deleted file mode 100644 index 68cf81b..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h +++ /dev/null @@ -1,8 +0,0 @@ - -@interface BITTestHelper : NSObject - -+ (id)jsonFixture:(NSString *)fixture; -+ (BOOL)createTempDirectory:(NSString *)directory; -+ (BOOL)copyFixtureCrashReportWithFileName:(NSString *)filename; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m deleted file mode 100644 index cd48541..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m +++ /dev/null @@ -1,66 +0,0 @@ -#import "BITTestHelper.h" -#import "HockeySDKPrivate.h" - -@implementation BITTestHelper - -// loads test fixture from json file -// http://blog.roberthoglund.com/2010/12/ios-unit-testing-loading-bundle.html -+ (NSString *)jsonFixture:(NSString *)fixture { - NSString *path = [[NSBundle bundleForClass:self.class] pathForResource:fixture ofType:@"json"]; - - NSError *error = nil; - NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; - - return content; -} - -+ (BOOL)createTempDirectory:(NSString *)directory { - NSFileManager *fm = [[NSFileManager alloc] init]; - - if (![fm fileExistsAtPath:directory]) { - NSDictionary *attributes = [NSDictionary dictionaryWithObject: [NSNumber numberWithUnsignedLong: 0755] forKey: NSFilePosixPermissions]; - NSError *theError = NULL; - - [fm createDirectoryAtPath:directory withIntermediateDirectories:YES attributes:attributes error:&theError]; - if (theError) - return NO; - } - - return YES; -} - -+ (BOOL)copyFixtureCrashReportWithFileName:(NSString *)filename { - NSFileManager *fm = [[NSFileManager alloc] init]; - - // the bundle identifier when running with unit tets is "otest" - const char *progname = getprogname(); - if (progname == NULL) { - return NO; - } - - NSString *bundleIdentifierPathString = [NSString stringWithUTF8String: progname]; - - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); - - // create the PLCR cache dir - NSString *plcrRootCrashesDir = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"com.plausiblelabs.crashreporter.data"]; - if (![BITTestHelper createTempDirectory:plcrRootCrashesDir]) - return NO; - - NSString *plcrCrashesDir = [plcrRootCrashesDir stringByAppendingPathComponent:bundleIdentifierPathString]; - if (![BITTestHelper createTempDirectory:plcrCrashesDir]) - return NO; - - NSString *filePath = [[NSBundle bundleForClass:self.class] pathForResource:filename ofType:@"plcrash"]; - - NSError *theError = NULL; - - [fm copyItemAtPath:filePath toPath:[plcrCrashesDir stringByAppendingPathComponent:@"live_report.plcrash"] error:&theError]; - - if (theError) - return NO; - else - return YES; -} - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png deleted file mode 100644 index 5473e5e..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon@2x.png b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon@2x.png deleted file mode 100644 index d79b85f..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon@2x.png and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json deleted file mode 100644 index 0746107..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "resultCount":1, - "results": [ - {"kind":"software", "features":["iosUniversal"], "supportedDevices":["all"], "isGameCenterEnabled":false, - "screenshotUrls":["http://a354.phobos.apple.com/us/r1000/111/Purple/v4/7c/8a/ee/7c8aeeaf-5daa-de29-b4da-35ba051c53b4/mzl.iwzvkijg.png", "http://a1774.phobos.apple.com/us/r1000/107/Purple/v4/6a/59/a3/6a59a3ca-0235-b0db-75bd-0eca8fdfbf9b/mzl.opdtqzgj.png", "http://a1627.phobos.apple.com/us/r1000/116/Purple/v4/c3/e6/d9/c3e6d96c-b8d4-872b-bce9-bdf4a35bfe49/mzl.zdmdddyh.png", "http://a1594.phobos.apple.com/us/r1000/073/Purple/v4/e8/18/aa/e818aaa1-9d72-6ff6-823d-4e9d07ae5c65/mzl.qkqmxuhu.png", "http://a349.phobos.apple.com/us/r1000/075/Purple/v4/39/76/d7/3976d725-2ca3-04a3-74ab-f5a991c2b779/mzl.wyygagaj.png"], - "ipadScreenshotUrls":["http://a844.phobos.apple.com/us/r1000/081/Purple/v4/29/90/75/2990756f-e818-6b3e-7d79-1358c83ff2cf/mzl.bwbdcvif.1024x1024-65.jpg", "http://a834.phobos.apple.com/us/r1000/115/Purple/v4/55/a2/e9/55a2e923-61a9-0453-7637-4832de432f74/mzl.zlruoazd.1024x1024-65.jpg", "http://a1757.phobos.apple.com/us/r1000/101/Purple/v4/a5/2a/62/a52a627e-41b4-91b2-9c4d-526d602bf00e/mzl.qekglwsg.1024x1024-65.jpg", "http://a1812.phobos.apple.com/us/r1000/063/Purple/v4/39/80/39/398039db-7184-b623-97b6-988753aea1b0/mzl.scddwowl.1024x1024-65.jpg", "http://a1219.phobos.apple.com/us/r1000/081/Purple/v4/17/76/6b/17766b98-8100-fda3-8263-a88c06d4a6c0/mzl.oauotukf.1024x1024-65.jpg"], "artworkUrl60":"http://a147.phobos.apple.com/us/r1000/095/Purple/v4/e0/44/72/e04472f7-6807-b114-e971-c1d602805298/Icon.png", "artworkUrl512":"http://a1921.phobos.apple.com/us/r1000/118/Purple/v4/2b/d6/85/2bd68583-090f-a513-d3f6-a47ea2175a0c/temp..mkgsmtvp.png", "artistViewUrl":"https://itunes.apple.com/us/artist/andreas-linde/id292957656?uo=4", "artistId":292957656, "artistName":"Andreas Linde", "price":3.99, "version":"4.1.2", - "description":"## Apple Rewind 2011 Germany: Best iPad travel app ##\n\nTravel the world from wherever you are and watch webcams worldwide with an elegant, friendly, and intuitive user interface.\n\nWorldView+ puts the world into your pocket or onto your couch! Watch over 20,000 webcams from all over the world and get additional information for each place such as current weather or Wikipedia articles.\n\nPress Quotes:\n\"Want to check the weather in Covent Garden, or indeed see the pyramids? WorldView opens your eyes.\" - The Times Online\n\"It's an ideal toy for tourists wishing to get a sense of the weather at their destinations, or for armchair travelers stuck in their work cubicles.\" - USA Today Online\n\"If you like webcams, you'll really enjoy WorldView's features and design.\" - TUAW\n\nFeature Overview:\n- Save your favorite webcams and even group them into your own collections\n- iCloud support! Automatically syncs your favorites.\n- Add additional webcams manually\n- View images in fullscreen with the best image quality provided by the webcam\n- WorldView+ automatically updates the image as soon as most webcams provide them\n- Share webcams and images on Twitter, Facebook, and via email\n\nFind webcams:\n- Type in text and search or select any of the suggested locations\n- Search using map, tap and hold on a place to search around a specific spot\n- Watch webcams near your current location\n- Get lucky and view random webcams\n- Browse a list of new, recently viewed, and featured webcams\n- All webcams listed in http://webcams.travel/ are available\n\nMore than just webcams:\n- Current weather information near the webcams location\n- Wikipedia articles around the webcams location\n- View webcam locations on a map\n- View daylight images\n- Get a live video stream when possible\n- See a timelapse video of selected webcams\n- Visit the webcam's website on webcams.travel\n\nAdd more yourself:\n- Easily add webcams not listed in webcams.travel\n\n\nWorldView+ \u2013 browse and discover the world like never before.\n\n\nTechnical info:\n- Manually added webcams support password protection via HTTP basic authorization\n- Supports most webcam types providing images via JPG and PNG and video streams using Motion-JPEG\n- Auto updating images is technically not possible for all webcams, currently supported for more than 9,000\n- Live video streams are available for more than 900 webcams, audio is not supported\n- Timelapse videos are provided by webcams.travel for about 50 webcams as of now\n\n\nIf there are any questions or problems, please visit our support forum at http://support.worldviewmobileapp.com/. This will allow us to help sort out any issues you may be experiencing. Thanks and happy WorldViewing!", "currency":"USD", "genres":["Travel", "Weather"], "genreIds":["6003", "6001"], "releaseDate":"2008-12-04T10:31:45Z", "sellerName":"Andreas Linde", "bundleId":"de.buzzworks.WorldViewLive", "trackId":297063830, "trackName":"WorldView+", "primaryGenreName":"Travel", "primaryGenreId":6003, - "releaseNotes":"- Improvements to iCloud sync\n- Improved swedish & croatian localizations\n- Fix import bookmarks from WorldView by webcams.travel (Requires version 4.1.2 of both apps)\n- Improved handling of corrupted iCloud data. (Can require second app start to fix it)\n- Improved stability\n- Various minor improvements", "formattedPrice":"$3.99", "wrapperType":"software", "trackCensoredName":"WorldView+", "languageCodesISO2A":["SV", "ZH", "DE", "EN", "ES", "FI", "FR", "HR", "JA", "NL", "PL", "PT", "RU"], "fileSizeBytes":"4374716", "sellerUrl":"http://www.worldviewmobileapp.com/", "contentAdvisoryRating":"4+", "averageUserRatingForCurrentVersion":4.5, "userRatingCountForCurrentVersion":4, "artworkUrl100":"http://a1921.phobos.apple.com/us/r1000/118/Purple/v4/2b/d6/85/2bd68583-090f-a513-d3f6-a47ea2175a0c/temp..mkgsmtvp.png", "trackViewUrl":"https://itunes.apple.com/us/app/worldview+/id297063830?mt=8&uo=4", "trackContentRating":"4+", "averageUserRating":3.5, "userRatingCount":569}] -} \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json deleted file mode 100644 index 608cfbe..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "resultCount":0, - "results": [] -} \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_empty.plcrash b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_empty.plcrash deleted file mode 100644 index e69de29..0000000 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash deleted file mode 100644 index ab8d7d9..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_signal.plcrash b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_signal.plcrash deleted file mode 100644 index d0b9c41..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_signal.plcrash and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist deleted file mode 100644 index 2015bcf..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.hockeyapp.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch deleted file mode 100644 index 2eb960a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'HockeySDKTests' target in the 'HockeySDKTests' project -// - -#ifdef __OBJC__ - #import - #import -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt b/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt deleted file mode 100644 index 2a70dd6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt +++ /dev/null @@ -1,38 +0,0 @@ -License for OCHamcrest.framework: - -OCHamcrest -Copyright 2014 hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -License for OCMockito.framework: - -OCMockito -Copyright (c) 2014 Jonathan M. Reid -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. ------ -TPDWeakProxy: -Copyright (c) 2013 Tetherpad - -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. diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS deleted file mode 120000 index d030988..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/OCHamcrestIOS \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h deleted file mode 100644 index ef93868..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCAllOf.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCAllOf : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (instancetype)allOf:(NSArray *)theMatchers; -- (instancetype)initWithMatchers:(NSArray *)theMatchers; - -@end - - -OBJC_EXPORT id HC_allOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - allOf(firstMatcher, ...) - - Matches if all of the given matchers evaluate to @c YES. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - The matchers are evaluated from left to right using short-circuit evaluation, so evaluation - stops as soon as a matcher returns @c NO. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_allOf instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define allOf HC_allOf -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h deleted file mode 100644 index f599a5b..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCAnyOf.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCAnyOf : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (instancetype)anyOf:(NSArray *)theMatchers; -- (instancetype)initWithMatchers:(NSArray *)theMatchers; - -@end - - -OBJC_EXPORT id HC_anyOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - anyOf(firstMatcher, ...) - - Matches if any of the given matchers evaluate to @c YES. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - The matchers are evaluated from left to right using short-circuit evaluation, so evaluation - stops as soon as a matcher returns @c YES. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anyOf instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anyOf HC_anyOf -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h deleted file mode 100644 index 0b56437..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCAssertThat.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - -@protocol HCMatcher; - - -OBJC_EXPORT void HC_assertThatWithLocation(id testCase, id actual, id matcher, - const char *fileName, int lineNumber); - -#define HC_assertThat(actual, matcher) \ - HC_assertThatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThat(actual, matcher) - - Asserts that actual value satisfies matcher. - - @param actual The object to evaluate as the actual value. - @param matcher The matcher to satisfy as the expected condition. - - @c assertThat passes the actual value to the matcher for evaluation. If the matcher is not - satisfied, an exception is thrown describing the mismatch. - - @c assertThat is designed to integrate well with OCUnit and other unit testing frameworks. - Unmet assertions are reported as test failures. In Xcode, these failures can be clicked to - reveal the line of the assertion. - - In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThat instead. - - @ingroup integration - */ -#ifdef HC_SHORTHAND - #define assertThat HC_assertThat -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h deleted file mode 100644 index 0d6fd81..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// OCHamcrest - HCBaseDescription.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import -#import - - -/** - Base class for all HCDescription implementations. - - @ingroup core - */ -@interface HCBaseDescription : NSObject -@end - - -/** - Methods that must be provided by subclasses of HCBaseDescription. - */ -@interface HCBaseDescription (SubclassMustImplement) - -/** - Append the string @a str to the description. - */ -- (void)append:(NSString *)str; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h deleted file mode 100644 index 4ff43bd..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// OCHamcrest - HCBaseMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import -#import - -#import // Convenience header, to provide OBJC_EXPORT - - -/** - Base class for all HCMatcher implementations. - - Most implementations can just implement @c -matches: and let - -matches:describingMismatchTo: call it. But if it makes more sense to generate the - mismatch description during the matching, override -matches:describingMismatchTo: - and have @c -matches: call it with a @c nil description. - - @ingroup core - */ -@interface HCBaseMatcher : NSObject -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h deleted file mode 100644 index 4378ac3..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OCHamcrest - HCClassMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCClassMatcher : HCBaseMatcher -{ - Class theClass; -} - -- (instancetype)initWithType:(Class)type; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h deleted file mode 100644 index 0685b3d..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// OCHamcrest - HCCollectMatchers.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import -#import - -#import - -@protocol HCMatcher; - - -/** - Returns an array of matchers from a variable-length comma-separated list terminated by @c nil. - - @ingroup helpers -*/ -OBJC_EXPORT NSMutableArray *HCCollectMatchers(id item1, va_list args); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h deleted file mode 100644 index 19224b6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCConformsToProtocol.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Todd Farrell -// - -#import - - -@interface HCConformsToProtocol : HCBaseMatcher -{ - Protocol *theProtocol; -} - -+ (instancetype)conformsTo:(Protocol *)protocol; -- (instancetype)initWithProtocol:(Protocol *)protocol; - -@end - - -OBJC_EXPORT id HC_conformsTo(Protocol *aProtocol); - -/** - conformsTo(aProtocol) - - Matches if object conforms to a given protocol. - - @param aProtocol The protocol to compare against as the expected protocol. - - This matcher checks whether the evaluated object conforms to @a aProtocol. - - Example: - @li @ref conformsTo(\@protocol(NSObject)) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_conformsTo instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define conformsTo HC_conformsTo -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h deleted file mode 100644 index 415dc17..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// OCHamcrest - HCDescribedAs.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCDescribedAs : HCBaseMatcher -{ - NSString *descriptionTemplate; - id matcher; - NSArray *values; -} - -+ (instancetype)describedAs:(NSString *)description - forMatcher:(id)aMatcher - overValues:(NSArray *)templateValues; - -- (instancetype)initWithDescription:(NSString *)description - forMatcher:(id)aMatcher - overValues:(NSArray *)templateValues; - -@end - - -OBJC_EXPORT id HC_describedAs(NSString *description, id matcher, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - describedAs(description, matcher, ...) - - Adds custom failure description to a given matcher. - - @param description Overrides the matcher's description. - @param matcher,... The matcher to satisfy, followed by a comma-separated list of substitution values ending with @c nil. - - The description may contain substitution placeholders \%0, \%1, etc. These will be replaced by - any values that follow the matcher. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_describedAs instead.) - - @ingroup decorator_matchers - */ -#ifdef HC_SHORTHAND - #define describedAs HC_describedAs -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h deleted file mode 100644 index 5b7214d..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// OCHamcrest - HCDescription.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -/** - A description of an HCMatcher. - - An HCMatcher will describe itself to a description which can later be used for reporting. - - @ingroup core - */ -@protocol HCDescription - -/** - Appends some plain text to the description. - - @return @c self, for chaining. - */ -- (id)appendText:(NSString *)text; - -/** - Appends description of given value to @c self. - - If the value implements the @ref HCSelfDescribing protocol, then it will be used. - - @return @c self, for chaining. - */ -- (id)appendDescriptionOf:(id)value; - -/** - Appends a list of objects to the description. - - @return @c self, for chaining. - */ -- (id)appendList:(NSArray *)values - start:(NSString *)start - separator:(NSString *)separator - end:(NSString *)end; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h deleted file mode 100644 index 7be4513..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// OCHamcrest - HCHasCount.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCHasCount : HCBaseMatcher -{ - id countMatcher; -} - -+ (instancetype)hasCount:(id)matcher; -- (instancetype)initWithCount:(id)matcher; - -@end - - -OBJC_EXPORT id HC_hasCount(id matcher); - -/** - hasCount(aMatcher) - - Matches if object's @c -count satisfies a given matcher. - - @param aMatcher The matcher to satisfy. - - This matcher invokes @c -count on the evaluated object to get the number of elements it - contains, passing the result to @a aMatcher for evaluation. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasCount instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasCount HC_hasCount -#endif - - -OBJC_EXPORT id HC_hasCountOf(NSUInteger count); - -/** - hasCountOf(value) - - Matches if object's @c -count equals a given value. - - @param value @c NSUInteger value to compare against as the expected value. - - This matcher invokes @c -count on the evaluated object to get the number of elements it - contains, comparing the result to @a value for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasCountOf instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasCountOf HC_hasCountOf -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h deleted file mode 100644 index e078c20..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// OCHamcrest - HCHasDescription.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCHasDescription : HCInvocationMatcher - -+ (instancetype)hasDescription:(id)descriptionMatcher; -- (instancetype)initWithDescription:(id)descriptionMatcher; - -@end - - -OBJC_EXPORT id HC_hasDescription(id match); - -/** - hasDescription(aMatcher) - - Matches if object's @c -description satisfies a given matcher. - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher invokes @c -description on the evaluated object to get its description, passing the - result to a given matcher for evaluation. If the @a aMatcher argument is not a matcher, it is - implicitly wrapped in an @ref equalTo matcher to check for equality. - - Examples: - @li @ref hasDescription(@ref startsWith(\@"foo")) - @li @ref hasDescription(\@"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasDescription instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define hasDescription HC_hasDescription -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h deleted file mode 100644 index 56425d3..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// OCHamcrest - HCHasProperty.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Justin Shacklette -// - -#import - - -@interface HCHasProperty : HCBaseMatcher -{ - NSString *propertyName; - id valueMatcher; -} - -+ (instancetype)hasProperty:(NSString *)property value:(id)aValueMatcher; -- (instancetype)initWithProperty:(NSString *)property value:(id)aValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasProperty(NSString *name, id valueMatch); - -/** - hasProperty(name, valueMatcher) - - Matches if object has a method of a given name whose return value satisfies a given matcher. - - @param name The name of a method without arguments that returns an object. - @param valueMatcher The matcher to satisfy for the return value, or an expected value for @ref equalTo matching. - - This matcher first checks if the evaluated object has a method with a name matching the given - @c name. If so, it invokes the method and sees if the returned value satisfies @c valueMatcher. - - While this matcher is called "hasProperty", it's useful for checking the results of any simple - methods, not just properties. - - Examples: - @li @ref hasProperty(\@"firstName", \@"Joe") - @li @ref hasProperty(\@"firstName", startsWith(\@"J")) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasProperty instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define hasProperty HC_hasProperty -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h deleted file mode 100644 index a976aed..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// OCHamcrest - HCInvocationMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -/** - Supporting class for matching a feature of an object. - - Tests whether the result of passing a given invocation to the value satisfies a given matcher. - - @ingroup helpers - */ -@interface HCInvocationMatcher : HCBaseMatcher -{ - NSInvocation *invocation; - id subMatcher; - BOOL shortMismatchDescription; -} - -/** - Determines whether a mismatch will be described in short form. - - Default is long form, which describes the object, the name of the invocation, and the - sub-matcher's mismatch diagnosis. Short form only has the sub-matcher's mismatch diagnosis. - */ -@property (nonatomic, assign) BOOL shortMismatchDescription; - -/** - Helper method for creating an invocation. - - A class is specified only so we can determine the method signature. - */ -+ (NSInvocation *)invocationForSelector:(SEL)selector onClass:(Class)aClass; - -/** - Returns an HCInvocationMatcher object initialized with an invocation and a matcher. - */ -- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id)aMatcher; - -/** - Invokes stored invocation on given item and returns the result. - */ -- (id)invokeOn:(id)item; - -/** - Returns string representation of the invocation's selector. - */ -- (NSString *)stringFromSelector; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h deleted file mode 100644 index 9460332..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// OCHamcrest - HCIs.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIs : HCBaseMatcher -{ - id matcher; -} - -+ (instancetype)is:(id)aMatcher; -- (instancetype)initWithMatcher:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_is(id match); - -/** - is(aMatcher) - - Decorates another matcher, or provides a shortcut to the frequently used @ref is(equalTo(x)). - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher compares the evaluated object to the given matcher. - - If the @a aMatcher argument is a matcher, its behavior is retained, but the test may be more - expressive. For example: - @li @ref assertThatInt(value, equalToInt(5)) - @li @ref assertThatInt(value, is(equalToInt(5))) - - If the @a aMatcher argument is not a matcher, it is wrapped in an @ref equalTo matcher. This - makes the following statements equivalent: - @li @ref assertThat(cheese, equalTo(smelly)) - @li @ref assertThat(cheese, is(equalTo(smelly))) - @li @ref assertThat(cheese, is(smelly)) - - Choose the style that makes your expression most readable. This will vary depending on context. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_is instead.) - - @ingroup decorator_matchers - */ -#ifdef HC_SHORTHAND - #define is HC_is -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h deleted file mode 100644 index 2137dbd..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// OCHamcrest - HCIsAnything.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsAnything : HCBaseMatcher -{ - NSString *description; -} - -+ (instancetype)isAnything; -+ (instancetype)isAnythingWithDescription:(NSString *)aDescription; - -- (instancetype)init; -- (instancetype)initWithDescription:(NSString *)aDescription; - -@end - - -OBJC_EXPORT id HC_anything(void); - -/** - Matches anything. - - This matcher always evaluates to @c YES. Specify this in composite matchers when the value of a - particular element is unimportant. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anything instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anything() HC_anything() -#endif - - -OBJC_EXPORT id HC_anythingWithDescription(NSString *aDescription); - -/** - anythingWithDescription(description) - - Matches anything. - - @param description A string used to describe this matcher. - - This matcher always evaluates to @c YES. Specify this in collection matchers when the value of a - particular element in a collection is unimportant. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_anything instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define anythingWithDescription HC_anythingWithDescription -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h deleted file mode 100644 index 19a561f..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsCloseTo.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsCloseTo : HCBaseMatcher -{ - double value; - double delta; -} - -+ (instancetype)isCloseTo:(double)aValue within:(double)aDelta; -- (instancetype)initWithValue:(double)aValue delta:(double)aDelta; - -@end - - -OBJC_EXPORT id HC_closeTo(double aValue, double aDelta); - -/** - closeTo(aValue, aDelta) - - Matches if object is a number close to a given value, within a given delta. - - @param aValue The @c double value to compare against as the expected value. - @param aDelta The @c double maximum delta between the values for which the numbers are considered close. - - This matcher invokes @c -doubleValue on the evaluated object to get its value as a @c double. - The result is compared against @a aValue to see if the difference is within a positive @a aDelta. - - Example: - @li @ref closeTo(3.0, 0.25) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_closeTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define closeTo HC_closeTo -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h deleted file mode 100644 index 73932c1..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContaining.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsCollectionContaining : HCBaseMatcher -{ - id elementMatcher; -} - -+ (instancetype)isCollectionContaining:(id)anElementMatcher; -- (instancetype)initWithMatcher:(id)anElementMatcher; - -@end - - -OBJC_EXPORT id HC_hasItem(id itemMatch); - -/** - hasItem(aMatcher) - - Matches if any element of collection satisfies a given matcher. - - @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated collection, searching for any element that satisfies a - given matcher. If a matching element is found, @c hasItem is satisfied. - - If the @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo - matcher to check for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasItem instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasItem HC_hasItem -#endif - - -OBJC_EXPORT id HC_hasItems(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - hasItems(firstMatcher, ...) - - Matches if all of the given matchers are satisfied by any elements of the collection. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the given matchers, searching for any elements in the evaluated collection - that satisfy them. If each matcher is satisfied, then @c hasItems is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c hasItems instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasItems HC_hasItems -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h deleted file mode 100644 index 0e57ed4..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContainingInAnyOrder.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsCollectionContainingInAnyOrder : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (instancetype)isCollectionContainingInAnyOrder:(NSArray *)itemMatchers; -- (instancetype)initWithMatchers:(NSArray *)itemMatchers; - -@end - - -OBJC_EXPORT id HC_containsInAnyOrder(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - containsInAnyOrder(firstMatcher, ...) - - Matches if collection's elements, in any order, satisfy a given list of matchers. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection, seeing if each element satisfies any of the - given matchers. The matchers are tried from left to right, and when a satisfied matcher is - found, it is no longer a candidate for the remaining elements. If a one-to-one correspondence is - established between elements and matchers, @c containsInAnyOrder is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_containsInAnyOrder instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define containsInAnyOrder HC_containsInAnyOrder -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h deleted file mode 100644 index a882f9d..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCIsCollectionContainingInOrder.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsCollectionContainingInOrder : HCBaseMatcher -{ - NSArray *matchers; -} - -+ (instancetype)isCollectionContainingInOrder:(NSArray *)itemMatchers; -- (instancetype)initWithMatchers:(NSArray *)itemMatchers; - -@end - - -OBJC_EXPORT id HC_contains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - contains(firstMatcher, ...) - - Matches if collection's elements satisfy a given list of matchers, in order. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection and a given list of matchers, seeing if each - element satisfies its corresponding matcher. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_contains instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define contains HC_contains -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h deleted file mode 100644 index e9017c5..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// OCHamcrest - HCIsCollectionOnlyContaining.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsCollectionOnlyContaining : HCBaseMatcher -{ - id matcher; -} - -+ (instancetype)isCollectionOnlyContaining:(id)aMatcher; -- (instancetype)initWithMatcher:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_onlyContains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - onlyContains(firstMatcher, ...) - - Matches if each element of collection satisfies any of the given matchers. - - @param firstMatcher,... A comma-separated list of matchers ending with @c nil. - - This matcher iterates the evaluated collection, confirming whether each element satisfies any of - the given matchers. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Example: - - @par - @ref onlyContains(startsWith(@"Jo"), nil) - - will match a collection [@"Jon", @"John", @"Johann"]. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_onlyContains instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define onlyContains HC_onlyContains -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h deleted file mode 100644 index 6d7d291..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContaining.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsDictionaryContaining : HCBaseMatcher -{ - id keyMatcher; - id valueMatcher; -} - -+ (instancetype)isDictionaryContainingKey:(id)aKeyMatcher - value:(id)aValueMatcher; - -- (instancetype)initWithKeyMatcher:(id)aKeyMatcher - valueMatcher:(id)aValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasEntry(id keyMatch, id valueMatch); - -/** - hasEntry(keyMatcher, valueMatcher) - - Matches if dictionary contains key-value entry satisfying a given pair of matchers. - - @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. - @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry that satisfies - @a keyMatcher and @a valueMatcher. If a matching entry is found, @c hasEntry is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Examples: - @li @ref hasEntry(@ref equalTo(@"foo"), equalTo(@"bar")) - @li @ref hasEntry(@"foo", @"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasEntry instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasEntry HC_hasEntry -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h deleted file mode 100644 index 85135b4..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingEntries.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsDictionaryContainingEntries : HCBaseMatcher -{ - NSArray *keys; - NSArray *valueMatchers; -} - -+ (instancetype)isDictionaryContainingKeys:(NSArray *)theKeys - valueMatchers:(NSArray *)theValueMatchers; - -- (instancetype)initWithKeys:(NSArray *)theKeys - valueMatchers:(NSArray *)theValueMatchers; - -@end - - -OBJC_EXPORT id HC_hasEntries(id keysAndValueMatch, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - hasEntries(firstKey, valueMatcher, ...) - - Matches if dictionary contains entries satisfying a list of alternating keys and their value - matchers. - - @param firstKey A key (not a matcher) to look up. - @param valueMatcher,... The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - Note that the keys must be actual keys, not matchers. Any value argument that is not a matcher - is implicitly wrapped in an @ref equalTo matcher to check for equality. The list must end with - @c nil. - - Examples: - @li @ref hasEntries(@"first", equalTo(@"Jon"), @"last", equalTo(@"Reid"), nil) - @li @ref hasEntries(@"first", @"Jon", @"last", @"Reid", nil) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasEntry instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasEntries HC_hasEntries -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h deleted file mode 100644 index c28e534..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingKey.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsDictionaryContainingKey : HCBaseMatcher -{ - id keyMatcher; -} - -+ (instancetype)isDictionaryContainingKey:(id)theKeyMatcher; -- (instancetype)initWithKeyMatcher:(id)theKeyMatcher; - -@end - - -OBJC_EXPORT id HC_hasKey(id keyMatch); - -/** - hasKey(keyMatcher) - - Matches if dictionary contains an entry whose key satisfies a given matcher. - - @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry whose key - satisfies the given matcher. If a matching entry is found, @c hasKey is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasKey instead.) - - Examples: - @li @ref hasEntry(equalTo(@"foo")) - @li @ref hasEntry(@"foo") - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasKey HC_hasKey -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h deleted file mode 100644 index 28ae8e8..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// OCHamcrest - HCIsDictionaryContainingValue.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsDictionaryContainingValue : HCBaseMatcher -{ - id valueMatcher; -} - -+ (instancetype)isDictionaryContainingValue:(id)theValueMatcher; -- (instancetype)initWithValueMatcher:(id)theValueMatcher; - -@end - - -OBJC_EXPORT id HC_hasValue(id valueMatch); - -/** - hasValue(valueMatcher) - - Matches if dictionary contains an entry whose value satisfies a given matcher. - - @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. - - This matcher iterates the evaluated dictionary, searching for any key-value entry whose value - satisfies the given matcher. If a matching entry is found, @c hasValue is satisfied. - - Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for - equality. - - Examples: - @li @ref hasValue(equalTo(@"bar")) - @li @ref hasValue(@"bar") - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_hasValue instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define hasValue HC_hasValue -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h deleted file mode 100644 index afabab5..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// OCHamcrest - HCIsEmptyCollection.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsEmptyCollection : HCHasCount - -+ (instancetype)isEmptyCollection; -- (instancetype)init; - -@end - - -OBJC_EXPORT __attribute__((deprecated)) id HC_empty(void); -OBJC_EXPORT id HC_isEmpty(void); - -/** - Matches empty collection. - - This matcher invokes @c -count on the evaluated object to determine if the number of elements it - contains is zero. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isEmpty instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define isEmpty() HC_isEmpty() -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h deleted file mode 100644 index 83ddc89..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// OCHamcrest - HCIsEqual.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsEqual : HCBaseMatcher -{ - id object; -} - -+ (instancetype)isEqualTo:(id)anObject; -- (instancetype)initEqualTo:(id)anObject; - -@end - - -OBJC_EXPORT id HC_equalTo(id object); - -/** - equalTo(anObject) - - Matches if object is equal to a given object. - - @param anObject The object to compare against as the expected value. - - This matcher compares the evaluated object to @a anObject for equality, as determined by the - @c -isEqual: method. - - If @a anObject is @c nil, the matcher will successfully match @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalTo instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define equalTo HC_equalTo -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h deleted file mode 100644 index f22c0ac..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// OCHamcrest - HCIsEqualIgnoringCase.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsEqualIgnoringCase : HCBaseMatcher -{ - NSString *string; -} - -+ (instancetype)isEqualIgnoringCase:(NSString *)aString; -- (instancetype)initWithString:(NSString *)aString; - -@end - - -OBJC_EXPORT id HC_equalToIgnoringCase(NSString *aString); - -/** - equalToIgnoringCase(aString) - - Matches if object is a string equal to a given string, ignoring case differences. - - @param aString The string to compare against as the expected value. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it compares it with - @a aString, ignoring differences of case. - - Example: - - @par - @ref equalToIgnoringCase(@"hello world") - - will match "heLLo WorlD". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToIgnoringCase instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define equalToIgnoringCase HC_equalToIgnoringCase -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h deleted file mode 100644 index d173434..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// OCHamcrest - HCIsEqualIgnoringWhiteSpace.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsEqualIgnoringWhiteSpace : HCBaseMatcher -{ - NSString *originalString; - NSString *strippedString; -} - -+ (instancetype)isEqualIgnoringWhiteSpace:(NSString *)aString; -- (instancetype)initWithString:(NSString *)aString; - -@end - - -OBJC_EXPORT id HC_equalToIgnoringWhiteSpace(NSString *aString); - -/** - equalToIgnoringWhiteSpace(aString) - - Matches if object is a string equal to a given string, ignoring differences in whitespace. - - @param aString The string to compare against as the expected value. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it compares it with - @a aString, ignoring differences in runs of whitespace. - - Example: - - @par - @ref equalToIgnoringWhiteSpace(@"hello world") - - will match @verbatim "hello world" @endverbatim - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToIgnoringWhiteSpace instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define equalToIgnoringWhiteSpace HC_equalToIgnoringWhiteSpace -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h deleted file mode 100644 index 3af5837..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h +++ /dev/null @@ -1,331 +0,0 @@ -// -// OCHamcrest - HCIsEqualToNumber.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -OBJC_EXPORT id HC_equalToBool(BOOL value); - -/** - equalToBool(value) - - Matches if object is equal to @c NSNumber created from a @c BOOL. - - @param value The @c BOOL value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c BOOL @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToBool instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToBool HC_equalToBool -#endif - -@interface HCIsEqualToBool : HCBaseMatcher - -- (instancetype)initWithValue:(BOOL)value; - -@end - - -OBJC_EXPORT id HC_equalToChar(char value); - -/** - equalToChar(value) - - Matches if object is equal to @c NSNumber created from a @c char. - - @param value The @c char value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c char @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToChar instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToChar HC_equalToChar -#endif - - -OBJC_EXPORT id HC_equalToDouble(double value); - -/** - equalToDouble(value) - - Matches if object is equal to @c NSNumber created from a @c double. - - @param value The @c double value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c double @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToDouble instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToDouble HC_equalToDouble -#endif - - -OBJC_EXPORT id HC_equalToFloat(float value); - -/** - equalToFloat(value) - - Matches if object is equal to @c NSNumber created from a @c float. - - @param value The @c float value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c float @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToFloat instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToFloat HC_equalToFloat -#endif - - -OBJC_EXPORT id HC_equalToInt(int value); - -/** - equalToInt(value) - - Matches if object is equal to @c NSNumber created from an @c int. - - @param value The @c int value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c int @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToInt instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToInt HC_equalToInt -#endif - - -OBJC_EXPORT id HC_equalToLong(long value); - -/** - equalToLong(value) - - Matches if object is equal to @c NSNumber created from a @c long. - - @param value The @c long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c long @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToLong HC_equalToLong -#endif - - -OBJC_EXPORT id HC_equalToLongLong(long long value); - -/** - equalToLongLong(value) - - Matches if object is equal to @c NSNumber created from a long long. - - @param value The long long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a long long @a value and compares - the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToLongLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToLongLong HC_equalToLongLong -#endif - - -OBJC_EXPORT id HC_equalToShort(short value); - -/** - equalToShort(value) - - Matches if object is equal to @c NSNumber created from a @c short. - - @param value The @c short value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from a @c short @a value and compares the evaluated - object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToShort instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToShort HC_equalToShort -#endif - - -OBJC_EXPORT id HC_equalToUnsignedChar(unsigned char value); - -/** - equalToUnsignedChar(value) - - Matches if object is equal to @c NSNumber created from an unsigned char. - - @param value The unsigned char value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned char @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedChar instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedChar HC_equalToUnsignedChar -#endif - - -OBJC_EXPORT id HC_equalToUnsignedInt(unsigned int value); - -/** - equalToUnsignedInt(value) - - Matches if object is equal to @c NSNumber created from an unsigned int. - - @param value The unsigned int value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned int @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedInt instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedInt HC_equalToUnsignedInt -#endif - - -OBJC_EXPORT id HC_equalToUnsignedLong(unsigned long value); - -/** - equalToUnsignedLong(value) - - Matches if object is equal to @c NSNumber created from an unsigned long. - - @param value The unsigned long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned long @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedLong HC_equalToUnsignedLong -#endif - - -OBJC_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value); - -/** - equalToUnsignedLongLong(value) - - Matches if object is equal to @c NSNumber created from an unsigned long long. - - @param value The unsigned long long value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned long long @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedLongLong instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedLongLong HC_equalToUnsignedLongLong -#endif - - -OBJC_EXPORT id HC_equalToUnsignedShort(unsigned short value); - -/** - equalToUnsignedShort(value) - - Matches if object is equal to @c NSNumber created from an unsigned short. - - @param value The unsigned short value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an unsigned short @a value and - compares the evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedShort instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedShort HC_equalToUnsignedShort -#endif - - -OBJC_EXPORT id HC_equalToInteger(NSInteger value); - -/** - equalToInteger(value) - - Matches if object is equal to @c NSNumber created from an @c NSInteger. - - @param value The @c NSInteger value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an @c NSInteger @a value and compares the - evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToInteger instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToInteger HC_equalToInteger -#endif - - -OBJC_EXPORT id HC_equalToUnsignedInteger(NSUInteger value); - -/** - equalToUnsignedInteger(value) - - Matches if object is equal to @c NSNumber created from an @c NSUInteger. - - @param value The @c NSUInteger value from which to create an @c NSNumber. - - This matcher creates an @c NSNumber object from an @c NSUInteger @a value and compares the - evaluated object to it for equality. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_equalToUnsignedInteger instead.) - - @ingroup primitive_number_matchers - */ -#ifdef HC_SHORTHAND - #define equalToUnsignedInteger HC_equalToUnsignedInteger -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h deleted file mode 100644 index 913cea0..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCIsIn.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsIn : HCBaseMatcher -{ - id collection; -} - -+ (instancetype)isInCollection:(id)aCollection; -- (instancetype)initWithCollection:(id)aCollection; - -@end - - -OBJC_EXPORT id HC_isIn(id aCollection); - -/** - isIn(aCollection) - - Matches if evaluated object is present in a given collection. - - @param aCollection The collection to search. - - This matcher invokes @c -containsObject: on @a aCollection to determine if the evaluated object - is an element of the collection. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isIn instead.) - - @ingroup collection_matchers - */ -#ifdef HC_SHORTHAND - #define isIn HC_isIn -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h deleted file mode 100644 index cbb7070..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// OCHamcrest - HCIsInstanceOf.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsInstanceOf : HCClassMatcher - -+ (id)isInstanceOf:(Class)type; - -@end - - -OBJC_EXPORT id HC_instanceOf(Class aClass); - -/** - instanceOf(aClass) - - Matches if object is an instance of, or inherits from, a given class. - - @param aClass The class to compare against as the expected class. - - This matcher checks whether the evaluated object is an instance of @a aClass or an instance of - any class that inherits from @a aClass. - - Example: - @li @ref instanceOf([NSString class]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_instanceOf instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define instanceOf HC_instanceOf -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h deleted file mode 100644 index 00996c6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsNil.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsNil : HCBaseMatcher - -+ (id)isNil; - -@end - - -OBJC_EXPORT id HC_nilValue(void); - -/** - Matches if object is @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_nilValue instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define nilValue() HC_nilValue() -#endif - - -OBJC_EXPORT id HC_notNilValue(void); - -/** - Matches if object is not @c nil. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_notNilValue instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define notNilValue() HC_notNilValue() -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h deleted file mode 100644 index e0d55f6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// OCHamcrest - HCIsNot.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsNot : HCBaseMatcher -{ - id matcher; -} - -+ (instancetype)isNot:(id)aMatcher; -- (instancetype)initNot:(id)aMatcher; - -@end - - -OBJC_EXPORT id HC_isNot(id aMatcher); - -/** - isNot(aMatcher) - - Inverts the given matcher to its logical negation. - - @param aMatcher The matcher to negate. - - This matcher compares the evaluated object to the negation of the given matcher. If the - @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo matcher to - check for equality, and thus matches for inequality. - - Examples: - @li @ref assertThat(cheese, isNot(equalTo(smelly))) - @li @ref assertThat(cheese, isNot(smelly)) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isNot instead.) - - @ingroup logical_matchers - */ -#ifdef HC_SHORTHAND - #define isNot HC_isNot -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h deleted file mode 100644 index 9a8ff3c..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// OCHamcrest - HCIsSame.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsSame : HCBaseMatcher -{ - id object; -} - -+ (instancetype)isSameAs:(id)anObject; -- (instancetype)initSameAs:(id)anObject; - -@end - - -OBJC_EXPORT id HC_sameInstance(id object); - -/** - sameInstance(anObject) - - Matches if evaluated object is the same instance as a given object. - - @param anObject The object to compare against as the expected value. - - This matcher compares the address of the evaluated object to determine if it is the same object - as @a anObject. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_sameInstance instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define sameInstance HC_sameInstance -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h deleted file mode 100644 index 93c86dc..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// OCHamcrest - HCIsTypeOf.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCIsTypeOf : HCClassMatcher - -+ (id)isTypeOf:(Class)type; - -@end - - -OBJC_EXPORT id HC_isA(Class aClass); - -/** - isA(aClass) - - Matches if object is an instance of a given class (but not of a subclass). - - @param aClass The class to compare against as the expected class. - - This matcher checks whether the evaluated object is an instance of @a aClass. - - Example: - @li @ref isA([Foo class]) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_isA instead.) - - @ingroup object_matchers - */ -#ifdef HC_SHORTHAND - #define isA HC_isA -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h deleted file mode 100644 index f047ae7..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// OCHamcrest - HCMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import "HCSelfDescribing.h" - - -/** - A matcher over acceptable values. - - A matcher is able to describe itself to give feedback when it fails. - - HCMatcher implementations should @b not directly implement this protocol. - Instead, @b extend the HCBaseMatcher class, which will ensure that the HCMatcher API can grow - to support new features and remain compatible with all HCMatcher implementations. - - @ingroup core - */ -@protocol HCMatcher - -/** - Evaluates the matcher for argument @a item. - - @param item The object against which the matcher is evaluated. - @return @c YES if @a item matches, otherwise @c NO. - */ -- (BOOL)matches:(id)item; - -/** - Evaluates the matcher for argument @a item. - - @param item The object against which the matcher is evaluated. - @param mismatchDescription The description to be built or appended to if @a item does not match. - @return @c YES if @a item matches, otherwise @c NO. - */ -- (BOOL)matches:(id)item describingMismatchTo:(id)mismatchDescription; - -/** - Generates a description of why the matcher has not accepted the item. - - The description will be part of a larger description of why a matching failed, so it should be - concise. - - This method assumes that @c matches:item is false, but will not check this. - - @param item The item that the HCMatcher has rejected. - @param mismatchDescription The description to be built or appended to. - */ -- (void)describeMismatchOf:(id)item to:(id)mismatchDescription; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h deleted file mode 100644 index 7b0b6f3..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h +++ /dev/null @@ -1,387 +0,0 @@ -// -// OCHamcrest - HCNumberAssert.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - -@protocol HCMatcher; - - -OBJC_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatBool(actual, matcher) \ - HC_assertThatBoolWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatBool(actual, matcher) - - Asserts that @c BOOL actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c BOOL value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatBool instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatBool HC_assertThatBool -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatChar(actual, matcher) \ - HC_assertThatCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatChar(actual, matcher) - - Asserts that @c char actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c char value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatChar instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatChar HC_assertThatChar -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatDouble(actual, matcher) \ - HC_assertThatDoubleWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - HC_assertThatDouble(actual, matcher) - - Asserts that @c double actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c double value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatDouble instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatDouble HC_assertThatDouble -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatFloat(actual, matcher) \ - HC_assertThatFloatWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatFloat(actual, matcher) - - Asserts that @c float actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c float value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatFloat instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatFloat HC_assertThatFloat -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatInt(actual, matcher) \ - HC_assertThatIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatInt(actual, matcher) - - Asserts that @c int actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c int value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatInt instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatInt HC_assertThatInt -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatLong(actual, matcher) \ - HC_assertThatLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatLong(actual, matcher) - - Asserts that @c long actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c long value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatLong HC_assertThatLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatLongLong(actual, matcher) \ - HC_assertThatLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatLongLong(actual, matcher) - - Asserts that long long actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The long long value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatLongLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatLongLong HC_assertThatLongLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatShort(actual, matcher) \ - HC_assertThatShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatShort(actual, matcher) - - Asserts that @c short actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c short value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatShort instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatShort HC_assertThatShort -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedChar(actual, matcher) \ - HC_assertThatUnsignedCharWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedChar(actual, matcher) - - Asserts that unsigned char actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned char value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedChar instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedChar HC_assertThatUnsignedChar -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedInt(actual, matcher) \ - HC_assertThatUnsignedIntWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedInt(actual, matcher) - - Asserts that unsigned int actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned int value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedInt instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedInt HC_assertThatUnsignedInt -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedLong(actual, matcher) \ - HC_assertThatUnsignedLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedLong(actual, matcher) - - Asserts that unsigned long actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedLong HC_assertThatUnsignedLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedLongLong(actual, matcher) \ - HC_assertThatUnsignedLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedLongLong(actual, matcher) - - Asserts that unsigned long long actual value, converted to an @c NSNumber, - satisfies matcher. - - @param actual The unsigned long long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedLongLong instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedLongLong HC_assertThatUnsignedLongLong -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedShort(actual, matcher) \ - HC_assertThatUnsignedShortWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedShort(actual, matcher) - - Asserts that unsigned short actual value, converted to an @c NSNumber, satisfies - matcher. - - @param actual The unsigned short value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedShort instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedShort HC_assertThatUnsignedShort -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatInteger(actual, matcher) \ - HC_assertThatIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatInteger(actual, matcher) - - Asserts that @c NSInteger actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c NSInteger value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatInteger instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatInteger HC_assertThatInteger -#endif - - -#pragma mark - - -OBJC_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, - id matcher, const char* fileName, int lineNumber); - -#define HC_assertThatUnsignedInteger(actual, matcher) \ - HC_assertThatUnsignedIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) - -/** - assertThatUnsignedInteger(actual, matcher) - - Asserts that @c NSUInteger actual value, converted to an @c NSNumber, satisfies matcher. - - @param actual The @c NSUInteger value to convert to an @c NSNumber for evaluation. - @param matcher The matcher to satisfy as the expected condition. - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_assertThatUnsignedInteger instead.) - - @ingroup integration_numeric - */ -#ifdef HC_SHORTHAND - #define assertThatUnsignedInteger HC_assertThatUnsignedInteger -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h deleted file mode 100644 index 1d17e12..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h +++ /dev/null @@ -1,115 +0,0 @@ -// -// OCHamcrest - HCOrderingComparison.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCOrderingComparison : HCBaseMatcher -{ - id expected; - NSComparisonResult minCompare; - NSComparisonResult maxCompare; - NSString *comparisonDescription; -} - -+ (instancetype)compare:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)comparisonDescription; - -- (instancetype)initComparing:(id)expectedValue - minCompare:(NSComparisonResult)min - maxCompare:(NSComparisonResult)max - comparisonDescription:(NSString *)comparisonDescription; - -@end - - -OBJC_EXPORT id HC_greaterThan(id expected); - -/** - greaterThan(aNumber) - - Matches if object is greater than a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref greaterThan(\@5) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_greaterThan instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define greaterThan HC_greaterThan -#endif - - -OBJC_EXPORT id HC_greaterThanOrEqualTo(id expected); - -/** - greaterThanOrEqualTo(aNumber) - - Matches if object is greater than or equal to a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref greaterThanOrEqualTo(\@5) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_greaterThanOrEqualTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define greaterThanOrEqualTo HC_greaterThanOrEqualTo -#endif - - -OBJC_EXPORT id HC_lessThan(id expected); - -/** - lessThan(aNumber) - - Matches if object is less than a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref lessThan(\@5) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_lessThan instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define lessThan HC_lessThan -#endif - - -OBJC_EXPORT id HC_lessThanOrEqualTo(id expected); - -/** - lessThanOrEqualTo(aNumber) - - Matches if object is less than or equal to a given number. - - @param aNumber The @c NSNumber to compare against. - - Example: - @li @ref lessThanOrEqualTo(\@5) - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_lessThanOrEqualTo instead.) - - @ingroup number_matchers - */ -#ifdef HC_SHORTHAND - #define lessThanOrEqualTo HC_lessThanOrEqualTo -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h deleted file mode 100644 index adebc04..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// OCHamcrest - HCRequireNonNilObject.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import -#import - - -/** - Throws an NSException if @a obj is @c nil. - - @ingroup helpers -*/ -OBJC_EXPORT void HCRequireNonNilObject(id obj); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h deleted file mode 100644 index 610f74f..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// OCHamcrest - HCSelfDescribing.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - -#import "HCDescription.h" - - -/** - The ability of an object to describe itself. - - @ingroup core - */ -@protocol HCSelfDescribing - -/** - Generates a description of the object. - - The description may be part of a description of a larger object of which this is just a - component, so it should be worded appropriately. - - @param description The description to be built or appended to. - */ -- (void)describeTo:(id)description; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h deleted file mode 100644 index bbcf456..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCStringContains.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCStringContains : HCSubstringMatcher - -+ (id)stringContains:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_containsString(NSString *aSubstring); - -/** - containsString(aString) - - Matches if object is a string containing a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks whether it - contains @a aString. - - Example: - - @par - @ref containsString(@"def") - - will match "abcdefg". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_containsString instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define containsString HC_containsString -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h deleted file mode 100644 index 2cae881..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// OCHamcrest - HCStringContainsInOrder.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCStringContainsInOrder : HCBaseMatcher -{ - NSArray *substrings; -} - -+ (instancetype)containsInOrder:(NSArray *)substringList; -- (instancetype)initWithSubstrings:(NSArray *)substringList; - -@end - - -OBJC_EXPORT id HC_stringContainsInOrder(NSString *substring, ...) NS_REQUIRES_NIL_TERMINATION; - -/** - stringContainsInOrder(firstString, ...) - - Matches if object is a string containing a given list of substrings in relative order. - - @param firstString,... A comma-separated list of strings ending with @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks whether it - contains a given list of strings, in relative order to each other. The searches are performed - starting from the beginning of the evaluated string. - - Example: - - @par - @ref stringContainsInOrder(@"bc", @"fg", @"jkl", nil) - - will match "abcdefghijklm". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_stringContainsInOrder instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define stringContainsInOrder HC_stringContainsInOrder -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h deleted file mode 100644 index 82b86e1..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// OCHamcrest - HCStringDescription.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - -@protocol HCSelfDescribing; - - -/** - An HCDescription that is stored as a string. - - @ingroup core - */ -@interface HCStringDescription : HCBaseDescription -{ - NSMutableString *accumulator; -} - -/** - Returns the description of an HCSelfDescribing object as a string. - - @param selfDescribing The object to be described. - @return The description of the object. - */ -+ (NSString *)stringFrom:(id)selfDescribing; - -/** - Returns an empty description. - */ -+ (instancetype)stringDescription; - -/** - Returns an initialized HCStringDescription object that is empty. - */ -- (instancetype)init; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h deleted file mode 100644 index 12b2f89..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCStringEndsWith.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCStringEndsWith : HCSubstringMatcher - -+ (id)stringEndsWith:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_endsWith(NSString *aSubstring); - -/** - endsWith(aString) - - Matches if object is a string ending with a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks if - @a aString matches the ending characters of the evaluated object. - - Example: - - @par - @ref endsWith(@"bar") - - will match "foobar". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_endsWith instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define endsWith HC_endsWith -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h deleted file mode 100644 index 0f64a3c..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// OCHamcrest - HCStringStartsWith.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCStringStartsWith : HCSubstringMatcher - -+ (id)stringStartsWith:(NSString *)aSubstring; - -@end - - -OBJC_EXPORT id HC_startsWith(NSString *aSubstring); - -/** - startsWith(aString) - - Matches if object is a string starting with a given string. - - @param aString The string to search for. This value must not be @c nil. - - This matcher first checks whether the evaluated object is a string. If so, it checks if - @a aString matches the beginning characters of the evaluated object. - - Example: - - @par - @ref endsWith(@"foo") - - will match "foobar". - - (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym - @c HC_startsWith instead.) - - @ingroup text_matchers - */ -#ifdef HC_SHORTHAND - #define startsWith HC_startsWith -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h deleted file mode 100644 index 9b15d7a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OCHamcrest - HCSubstringMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - - -@interface HCSubstringMatcher : HCBaseMatcher -{ - NSString *substring; -} - -- (instancetype)initWithSubstring:(NSString *)aString; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h deleted file mode 100644 index d7c1fe0..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - - -/** - Test failure location and reason. - - @ingroup integration - */ -@interface HCTestFailure : NSObject - -@property (nonatomic, readonly) id testCase; -@property (nonatomic, readonly) NSString *fileName; -@property (nonatomic, readonly) NSUInteger lineNumber; -@property (nonatomic, readonly) NSString *reason; - -- (instancetype)initWithTestCase:(id)testCase - fileName:(NSString *)fileName - lineNumber:(NSUInteger)lineNumber - reason:(NSString *)reason; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h deleted file mode 100644 index 52d14a3..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -@class HCTestFailure; - - -/** - Chain-of-responsibility for handling test failures. - - @ingroup integration - */ -@protocol HCTestFailureHandler - -@property (nonatomic, strong) id successor; - -/** - Handle test failure at specific location, or pass to successor. - */ -- (void)handleFailure:(HCTestFailure *)failure; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h deleted file mode 100644 index 0a8c353..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h +++ /dev/null @@ -1,12 +0,0 @@ -#import -#import - -@protocol HCTestFailureHandler; - - -/** - Returns chain of test failure handlers. - - @ingroup integration - */ -OBJC_EXPORT id HC_testFailureHandlerChain(void); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h deleted file mode 100644 index fa837ca..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// OCHamcrest - HCWrapInMatcher.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -#import - -@protocol HCMatcher; - - -/** - Wraps argument in a matcher, if necessary. - - @return The argument as-if if it is already a matcher, otherwise wrapped in an @ref equalTo matcher. - - @ingroup helpers - */ -OBJC_EXPORT id HCWrapInMatcher(id matcherOrValue); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h deleted file mode 100644 index d8bd09c..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h +++ /dev/null @@ -1,141 +0,0 @@ -// -// OCHamcrest - OCHamcrest.h -// Copyright 2013 hamcrest.org. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Docs: http://hamcrest.github.com/OCHamcrest/ -// Source: https://github.com/hamcrest/OCHamcrest -// - -/** - @defgroup library Matcher Library - - Library of Matcher implementations. - */ - -/** - @defgroup object_matchers Object Matchers - - Matchers that inspect objects. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import -#import -#import - -/** - @defgroup collection_matchers Collection Matchers - - Matchers of collections. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -/** - @defgroup number_matchers Number Matchers - - Matchers that perform numeric comparisons. - - @ingroup library - */ -#import -#import - -/** - @defgroup primitive_number_matchers Primitive Number Matchers - - Matchers for testing equality against primitive numeric types. - - @ingroup number_matchers - */ -#import - -/** - @defgroup text_matchers Text Matchers - - Matchers that perform text comparisons. - - @ingroup library - */ -#import -#import -#import -#import -#import -#import - -/** - @defgroup logical_matchers Logical Matchers - - Boolean logic using other matchers. - - @ingroup library - */ -#import -#import -#import -#import - -/** - @defgroup decorator_matchers Decorator Matchers - - Matchers that decorate other matchers for better expression. - - @ingroup library - */ -#import -#import - -/** - @defgroup integration Unit Test Integration - */ -#import -#import -#import -#import - -/** - @defgroup integration_numeric Unit Tests of Primitive Numbers - - Unit test integration for primitive numbers. - - The @c assertThat<Type> macros convert the primitive actual value to an @c NSNumber, - passing that to the matcher for evaluation. If the matcher is not satisfied, an exception is - thrown describing the mismatch. - - This family of macros is designed to integrate well with OCUnit and other unit testing - frameworks. Unmet assertions are reported as test failures. In Xcode, they can be clicked to - reveal the line of the assertion. - - @ingroup integration - */ -#import - -/** - @defgroup core Core API - */ - -/** - @defgroup helpers Helpers - - Utilities for writing Matchers. - - @ingroup core - */ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS deleted file mode 100644 index 509b9ea..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 94afdb0..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,42 +0,0 @@ - - - - - BuildMachineOSBuild - 13A584 - CFBundleDevelopmentRegion - English - CFBundleExecutable - OCHamcrestIOS - CFBundleIdentifier - org.hamcrest.OCHamcrestIOS - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - OCHamcrestIOS - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.0.0 - CFBundleSignature - ???? - CFBundleVersion - 3.0.0 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 5A1413 - DTPlatformVersion - GM - DTSDKBuild - 12D75 - DTSDKName - macosx10.8 - DTXcode - 0500 - DTXcodeBuild - 5A1413 - NSHumanReadableCopyright - Copyright © 2013 hamcrest.org - - diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS deleted file mode 120000 index 9dc2b2d..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/OCMockitoIOS \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h deleted file mode 100644 index 2d45194..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// OCMockito - MKTBaseMockObject.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -#import -#import "MKTPrimitiveArgumentMatching.h" - - -@interface MKTBaseMockObject : NSProxy - -- (id)init; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h deleted file mode 100644 index 4263150..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// OCMockito - MKTClassObjectMock.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// -// Created by: David Hart -// - -#import "MKTBaseMockObject.h" - - -/** - Mock object of a given class object. - */ -@interface MKTClassObjectMock : MKTBaseMockObject - -+ (id)mockForClass:(Class)aClass; -- (id)initWithClass:(Class)aClass; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h deleted file mode 100644 index c35e21a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OCMockito - MKTObjectAndProtocolMock.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Kevin Lundberg -// Source: https://github.com/jonreid/OCMockito -// - -#import "MKTProtocolMock.h" - - -/** - Mock object of a given class that also implements a given protocol. - */ -@interface MKTObjectAndProtocolMock : MKTProtocolMock - -+ (id)mockForClass:(Class)aClass protocol:(Protocol *)protocol; -- (id)initWithClass:(Class)aClass protocol:(Protocol *)protocol; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h deleted file mode 100644 index 22e0b5a..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OCMockito - MKTObjectMock.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -#import "MKTBaseMockObject.h" - - -/** - Mock object of a given class. - */ -@interface MKTObjectMock : MKTBaseMockObject - -+ (id)mockForClass:(Class)aClass; -- (id)initWithClass:(Class)aClass; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h deleted file mode 100644 index f00fa24..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h +++ /dev/null @@ -1,70 +0,0 @@ -// -// OCMockito - MKTOngoingStubbing.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -#import -#import "MKTPrimitiveArgumentMatching.h" - -@class MKTInvocationContainer; - - -/** - Methods to invoke on @c given(methodCall) to return stubbed values. - */ -@interface MKTOngoingStubbing : NSObject - -- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer; - -/// Stubs given object as return value. -- (MKTOngoingStubbing *)willReturn:(id)object; - -/// Stubs given @c BOOL as return value. -- (MKTOngoingStubbing *)willReturnBool:(BOOL)value; - -/// Stubs given @c char as return value. -- (MKTOngoingStubbing *)willReturnChar:(char)value; - -/// Stubs given @c int as return value. -- (MKTOngoingStubbing *)willReturnInt:(int)value; - -/// Stubs given @c short as return value. -- (MKTOngoingStubbing *)willReturnShort:(short)value; - -/// Stubs given @c long as return value. -- (MKTOngoingStubbing *)willReturnLong:(long)value; - -/// Stubs given long long as return value. -- (MKTOngoingStubbing *)willReturnLongLong:(long long)value; - -/// Stubs given @c NSInteger as return value. -- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value; - -/// Stubs given unsigned char as return value. -- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value; - -/// Stubs given unsigned int as return value. -- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value; - -/// Stubs given unsigned short as return value. -- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value; - -/// Stubs given unsigned long as return value. -- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value; - -/// Stubs given unsigned long long as return value. -- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value; - -/// Stubs given @c NSUInteger as return value. -- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value; - -/// Stubs given @c float as return value. -- (MKTOngoingStubbing *)willReturnFloat:(float)value; - -/// Stubs given @c double as return value. -- (MKTOngoingStubbing *)willReturnDouble:(double)value; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h deleted file mode 100644 index 8012fe1..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// OCMockito - MKTPrimitiveArgumentMatching.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -@protocol HCMatcher; - - -/** - Ability to specify OCHamcrest matchers for primitive numeric arguments. - */ -@protocol MKTPrimitiveArgumentMatching - -/** - Specifies OCHamcrest matcher for a specific argument of a method. - - For methods arguments that take objects, just pass the matcher directly as a method call. But - for arguments that take primitive numeric types, call this to specify the matcher before passing - in a dummy value. Upon verification, the actual numeric argument received will be converted to - an NSNumber before being checked by the matcher. - - The argument index is 0-based, so the first argument of a method has index 0. - - Example: -@code -[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0] - removeObjectAtIndex:0]; -@endcode - This verifies that @c removeObjectAtIndex: was called with a number greater than 1. - */ -- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index; - -/** - Specifies OCHamcrest matcher for the first argument of a method. - - Equivalent to withMatcher:matcher forArgument:0. - - Example: -@code -[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0] - removeObjectAtIndex:0]; -@endcode - This verifies that @c removeObjectAtIndex: was called with a number greater than 1. -*/ -- (id)withMatcher:(id )matcher; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h deleted file mode 100644 index 91ed1d2..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// OCMockito - MKTProtocolMock.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -#import "MKTBaseMockObject.h" - - -/** - Mock object implementing a given protocol. - */ -@interface MKTProtocolMock : MKTBaseMockObject -{ - Protocol *_mockedProtocol; -} - -+ (id)mockForProtocol:(Protocol *)aProtocol; -- (id)initWithProtocol:(Protocol *)aProtocol; - -@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h deleted file mode 100644 index 3c77271..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h +++ /dev/null @@ -1,218 +0,0 @@ -// -// OCMockito - OCMockito.h -// Copyright 2013 Jonathan M. Reid. See LICENSE.txt -// -// Created by: Jon Reid, http://qualitycoding.org/ -// Source: https://github.com/jonreid/OCMockito -// - -#import - -#import "MKTClassObjectMock.h" -#import "MKTObjectMock.h" -#import "MKTObjectAndProtocolMock.h" -#import "MKTOngoingStubbing.h" -#import "MKTProtocolMock.h" -#import - - -#define MKTMock(aClass) [MKTObjectMock mockForClass:aClass] - -/** - Returns a mock object of a given class. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTMock instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define mock(aClass) MKTMock(aClass) -#endif - - -#define MKTMockClass(aClass) [MKTClassObjectMock mockForClass:aClass] - -/** - Returns a mock class object of a given class. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTMockClass instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define mockClass(aClass) MKTMockClass(aClass) -#endif - - -#define MKTMockProtocol(aProtocol) [MKTProtocolMock mockForProtocol:aProtocol] - -/** - Returns a mock object implementing a given protocol. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTMockProtocol instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define mockProtocol(aProtocol) MKTMockProtocol(aProtocol) -#endif - - -#define MKTMockObjectAndProtocol(aClass, aProtocol) [MKTObjectAndProtocolMock mockForClass:aClass protocol:aProtocol] - -/** - Returns a mock object of a given class that also implements a given protocol. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTMockObjectAndProtocol instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define mockObjectAndProtocol(aClass, aProtocol) MKTMockObjectAndProtocol(aClass, aProtocol) -#endif - - -OBJC_EXPORT MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...); -#define MKTGiven(methodCall) MKTGivenWithLocation(self, __FILE__, __LINE__, methodCall) - -/** - Enables method stubbing. - - Use @c given when you want the mock to return particular value when particular method is called. - - Example: - @li @ref [given([mockObject methodReturningString]) willReturn:@"foo"]; - - See @ref MKTOngoingStubbing for other methods to stub different types of return values. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTGiven instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define given(methodCall) MKTGiven(methodCall) -#endif - - -OBJC_EXPORT id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber); -#define MKTVerify(mock) MKTVerifyWithLocation(mock, self, __FILE__, __LINE__) - -/** - Verifies certain behavior happened once. - - @c verify checks that a method was invoked once, with arguments that match given OCHamcrest - matchers. If an argument is not a matcher, it is implicitly wrapped in an @c equalTo matcher to - check for equality. - - Examples: -@code -[verify(mockObject) someMethod:startsWith(@"foo")]; -[verify(mockObject) someMethod:@"bar"]; -@endcode - - @c verify(mockObject) is equivalent to -@code -verifyCount(mockObject, times(1)) -@endcode - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTVerify instead.) - */ -#ifdef MOCKITO_SHORTHAND - #undef verify - #define verify(mock) MKTVerify(mock) -#endif - - -OBJC_EXPORT id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber); -#define MKTVerifyCount(mock, mode) MKTVerifyCountWithLocation(mock, mode, self, __FILE__, __LINE__) - -/** - Verifies certain behavior happened a given number of times. - - Examples: -@code -[verifyCount(mockObject, times(5)) someMethod:@"was called five times"]; -[verifyCount(mockObject, never()) someMethod:@"was never called"]; -@endcode - - @c verifyCount checks that a method was invoked a given number of times, with arguments that - match given OCHamcrest matchers. If an argument is not a matcher, it is implicitly wrapped in an - @c equalTo matcher to check for equality. - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTVerifyCount instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define verifyCount(mock, mode) MKTVerifyCount(mock, mode) -#endif - - -OBJC_EXPORT id MKTTimes(NSUInteger wantedNumberOfInvocations); - -/** - Verifies exact number of invocations. - - Example: -@code -[verifyCount(mockObject, times(2)) someMethod:@"some arg"]; -@endcode - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTTimes instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define times(wantedNumberOfInvocations) MKTTimes(wantedNumberOfInvocations) -#endif - - -OBJC_EXPORT id MKTNever(void); - -/** - Verifies that interaction did not happen. - - Example: - @code - [verifyCount(mockObject, never()) someMethod:@"some arg"]; - @endcode - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTNever instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define never() MKTNever() -#endif - - -OBJC_EXPORT id MKTAtLeast(NSUInteger minimumWantedNumberOfInvocations); - -/** - Verifies minimum number of invocations. - - The verification will succeed if the specified invocation happened the number of times - specified or more. - - Example: -@code -[verifyCount(mockObject, atLeast(2)) someMethod:@"some arg"]; -@endcode - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTAtLeast instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define atLeast(minimumWantedNumberOfInvocations) MKTAtLeast(minimumWantedNumberOfInvocations) -#endif - - -OBJC_EXPORT id MKTAtLeastOnce(void); - -/** - Verifies that interaction happened once or more. - - Example: -@code -[verifyCount(mockObject, atLeastOnce()) someMethod:@"some arg"]; -@endcode - - (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym - @c MKTAtLeastOnce instead.) - */ -#ifdef MOCKITO_SHORTHAND - #define atLeastOnce() MKTAtLeastOnce() -#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS deleted file mode 100644 index 1393426..0000000 Binary files a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS and /dev/null differ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 38ea089..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,42 +0,0 @@ - - - - - BuildMachineOSBuild - 13A584 - CFBundleDevelopmentRegion - English - CFBundleExecutable - OCMockitoIOS - CFBundleIdentifier - org.mockito.OCMockitoIOS - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - OCMockitoIOS - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0.0 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 5A1413 - DTPlatformVersion - GM - DTSDKBuild - 12D75 - DTSDKName - macosx10.8 - DTXcode - 0500 - DTXcodeBuild - 5A1413 - NSHumanReadableCopyright - Copyright © 2013 Jonathan M. Reid - - diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings b/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Pods/HockeySDK/Support/buildnumber.xcconfig b/Pods/HockeySDK/Support/buildnumber.xcconfig deleted file mode 100644 index fe9245d..0000000 --- a/Pods/HockeySDK/Support/buildnumber.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "HockeySDK.xcconfig" - -BUILD_NUMBER = 38 -VERSION_STRING = 3.6.4 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) 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 -ARCHS = $(BIT_ARM_ARCHS) -VALID_ARCHS = $(BIT_ARM_ARCHS) diff --git a/Pods/HockeySDK/Support/crashonly.xcconfig b/Pods/HockeySDK/Support/crashonly.xcconfig deleted file mode 100644 index 0593ddb..0000000 --- a/Pods/HockeySDK/Support/crashonly.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -#include "buildnumber.xcconfig" - -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) HOCKEYSDK_FEATURE_CRASH_REPORTER=1 HOCKEYSDK_FEATURE_FEEDBACK=0 HOCKEYSDK_FEATURE_STORE_UPDATES=0 HOCKEYSDK_FEATURE_AUTHENTICATOR=0 HOCKEYSDK_FEATURE_UPDATES=0 BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\"" diff --git a/Pods/HockeySDK/Support/module.modulemap b/Pods/HockeySDK/Support/module.modulemap deleted file mode 100644 index 73fba67..0000000 --- a/Pods/HockeySDK/Support/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module HockeySDK { - umbrella header "HockeySDK.h" - - export * - module * { export * } -} diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter b/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter deleted file mode 120000 index 92b400e..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/CrashReporter \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers b/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources b/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter deleted file mode 100644 index 2344126..0000000 Binary files a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter and /dev/null differ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h deleted file mode 100644 index c654319..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h +++ /dev/null @@ -1,363 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -#ifdef __APPLE__ -#import -#endif - -// This must be included before any other PLCrashReporter includes, as -// it redefines symbol names -#import "PLCrashNamespace.h" - -#import "PLCrashReporter.h" -#import "PLCrashReport.h" -#import "PLCrashReportTextFormatter.h" - -/** - * @defgroup functions Crash Reporter Functions Reference - */ - -/** - * @defgroup types Crash Reporter Data Types Reference - */ - -/** - * @defgroup constants Crash Reporter Constants Reference - */ - -/** - * @internal - * @defgroup plcrash_internal Crash Reporter Internal Documentation - */ - -/** - * @defgroup enums Enumerations - * @ingroup constants - */ - -/** - * @defgroup globals Global Variables - * @ingroup constants - */ - -/** - * @defgroup exceptions Exceptions - * @ingroup constants - */ - -/* Exceptions */ -extern NSString *PLCrashReporterException; - -/* Error Domain and Codes */ -extern NSString *PLCrashReporterErrorDomain; - -/** - * NSError codes in the Plausible Crash Reporter error domain. - * @ingroup enums - */ -typedef enum { - /** An unknown error has occured. If this - * code is received, it is a bug, and should be reported. */ - PLCrashReporterErrorUnknown = 0, - - /** An Mach or POSIX operating system error has occured. The underlying NSError cause may be fetched from the userInfo - * dictionary using the NSUnderlyingErrorKey key. */ - PLCrashReporterErrorOperatingSystem = 1, - - /** The crash report log file is corrupt or invalid */ - PLCrashReporterErrorCrashReportInvalid = 2, - - /** An attempt to use a resource which was in use at the time in a manner which would have conflicted with the request. */ - PLCrashReporterErrorResourceBusy = 3 -} PLCrashReporterError; - - -/* Library Imports */ -#import "PLCrashReporter.h" -#import "PLCrashReport.h" -#import "PLCrashReportTextFormatter.h" - -/** - * @mainpage Plausible Crash Reporter - * - * @section intro_sec Introduction - * - * Plausile CrashReporter implements in-process crash reporting on the iPhone and Mac OS X. - * - * The following features are supported: - * - * - Implemented as an in-process signal handler. - * - Does not interfer with debugging in gdb.. - * - Handles both uncaught Objective-C exceptions and fatal signals (SIGSEGV, SIGBUS, etc). - * - Full thread state for all active threads (backtraces, register dumps) is provided. - * - * If your application crashes, a crash report will be written. When the application is next run, you may check for a - * pending crash report, and submit the report to your own HTTP server, send an e-mail, or even introspect the - * report locally. - * - * @section intro_encoding Crash Report Format - * - * Crash logs are encoded using google protobuf, and may be decoded - * using the provided PLCrashReport API. Additionally, the include plcrashutil handles conversion of binary crash reports to the - * symbolicate-compatible iPhone text format. - * - * @section doc_sections Documentation Sections - * - @subpage example_usage_iphone - * - @subpage error_handling - * - @subpage async_safety - */ - -/** - * @page example_usage_iphone Example iPhone Usage - * - * @code - * // - * // Called to handle a pending crash report. - * // - * - (void) handleCrashReport { - * PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter]; - * NSData *crashData; - * NSError *error; - * - * // Try loading the crash report - * crashData = [crashReporter loadPendingCrashReportDataAndReturnError: &error]; - * if (crashData == nil) { - * NSLog(@"Could not load crash report: %@", error); - * goto finish; - * } - * - * // We could send the report from here, but we'll just print out - * // some debugging info instead - * PLCrashReport *report = [[[PLCrashReport alloc] initWithData: crashData error: &error] autorelease]; - * if (report == nil) { - * NSLog(@"Could not parse crash report"); - * goto finish; - * } - * - * NSLog(@"Crashed on %@", report.systemInfo.timestamp); - * NSLog(@"Crashed with signal %@ (code %@, address=0x%" PRIx64 ")", report.signalInfo.name, - * report.signalInfo.code, report.signalInfo.address); - * - * // Purge the report - * finish: - * [crashReporter purgePendingCrashReport]; - * return; - * } - * - * // from UIApplicationDelegate protocol - * - (void) applicationDidFinishLaunching: (UIApplication *) application { - * PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter]; - * NSError *error; - * - * // Check if we previously crashed - * if ([crashReporter hasPendingCrashReport]) - * [self handleCrashReport]; - - * // Enable the Crash Reporter - * if (![crashReporter enableCrashReporterAndReturnError: &error]) - * NSLog(@"Warning: Could not enable crash reporter: %@", error); - * - * } - * @endcode - * - */ - -/** - * @page error_handling Error Handling Programming Guide - * - * Where a method may return an error, Plausible Crash Reporter provides access to the underlying - * cause via an optional NSError argument. - * - * All returned errors will be a member of one of the below defined domains, however, new domains and - * error codes may be added at any time. If you do not wish to report on the error cause, many methods - * support a simple form that requires no NSError argument. - * - * @section error_domains Error Domains, Codes, and User Info - * - * @subsection crashreporter_errors Crash Reporter Errors - * - * Any errors in Plausible Crash Reporter use the #PLCrashReporterErrorDomain error domain, and and one - * of the error codes defined in #PLCrashReporterError. - */ - -/** - * @page async_safety Async-Safe Programming Guide - * - * Plausible CrashReporter provides support for executing an application specified function in the context of the - * crash reporter's signal handler, after the crash report has been written to disk. This was a regularly requested - * feature, and provides the ability to implement application finalization in the event of a crash. However, writing - * code intended for execution inside of a signal handler is exceptionally difficult, and is not recommended. - * - * @section program_flow Program Flow and Signal Handlers - * - * When the signal handler is called the normal flow of the program is interrupted, and your program is an unknown - * state. Locks may be held, the heap may be corrupt (or in the process of being updated), and your signal - * handler may invoke a function that was being executed at the time of the signal. This may result in deadlocks, - * data corruption, and program termination. - * - * @section functions Async-Safe Functions - * - * A subset of functions are defined to be async-safe by the OS, and are safely callable from within a signal handler. If - * you do implement a custom post-crash handler, it must be async-safe. A table of POSIX-defined async-safe functions - * and additional information is available from the - * CERT programming guide - SIG30-C - * - * Most notably, the Objective-C runtime itself is not async-safe, and Objective-C may not be used within a signal - * handler. - * - * @sa PLCrashReporter::setCrashCallbacks: - */ - -/** - * @page mach_exceptions Mach Exceptions on Mac OS X and iOS - * - * PLCrashReporter includes support for monitoring crashes via an in-process Mach exception handler. There are a small - * number of crash cases that will not be caught with via a POSIX signal handler, but can be caught via a Mach - * exception handler: - * - * - Stack overflow. sigaltstack() is broken in later iOS releases, and even if functional, must be configured - * on a per-thread basis. - * - Internal Apple assertions that call libSystem's __assert. These include compiler-checked constraints - * for built-in functions, such as strcpy_chk(). The __abort() implementation actually disables the SIGABRT - * signal handler (resetting it to SIG_DFL) prior to to issueing a SIGABRT, bypassing signal-based crash - * reporters entirely. - * - * Unfortunately, the latter issue (__assert) can not be handled on iOS; trapping abort requires that - * a Mach exception handler operate out-of-process, which is impossible on iOS. On Mac OS X, this will - * only be handled once we've implemented fully out-of-process crash excution. - * - * On Mac OS X, the Mach exception implementation is fully supported using entirely public API. On iOS, - * the APIs required are not fully public -- more details on the implications of this for exception handling on - * iOS may be found in @ref mach_exceptions_ios below. It is worth noting that even where the Mach exception APIs - * are fully supported, kernel-internal constants, as well - * as architecture-specific trap information, may be required to fully interpret a Mach exception's root cause. - * - * For example, the EXC_SOFTWARE exception is dispatched for four different failure types, using the exception - * code to differentiate failure types: - * - Non-existent system call invoked (SIGSYS) - * - Write on a pipe with no reader (SIGPIPE) - * - Abort program (SIGABRT -- unused) - * - Kill program (SIGKILL) - * - * Of those four types, only the constant required to interpret the SIGKILL behavior (EXC_SOFT_SIGNAL) is publicly defined. - * Of the remaining three failure types, the constant values are kernel implementation-private, defined only in the available - * kernel sources. On iOS, these sources are unavailable, and while they generally do match the Mac OS X implementation, there - * are no gaurantees that this is -- or will remain -- the case in the future. - * - * Likewise, interpretation of particular fault types requires information regarding the underlying machine traps - * that triggered the Mach exceptions. For example, a floating point trap on x86/x86-64 will trigger an EXC_ARITHMETIC, - * with a subcode value containing the value of the FPU status register. Determining the exact FPU cause requires - * extracting the actual exception flags from status register as per the x86 architecture documentation. The exact format - * of this subcode value is not actually documented outside the kernel, and may change in future releases. - * - * While we have the advantage of access to the x86 kernel sources, the situation on ARM is even less clear. The actual - * use of the Mach exception codes and subcodes is largely undefined by both headers and publicly available documentation, - * and the available x86 kernel sources are of little use in interpreting this data. - * - * As such, while Mach exceptions may catch some cases that BSD signals can not, they are not a perfect solution, - * and may also provide less insight into the actual failures that occur. By comparison, the BSD signal interface - * is both fully defined and architecture independent, with any necessary interpretation of the Mach exception - * codes handled in-kernel at the time of exception dispatch. It is generally recommended by Apple as the preferred - * interface, and should generally be preferred by PLCrashReporter API clients. - * - * @section mach_exceptions_compatibility Compatibility Issues - * - * @subsection Debuggers - * - * Enabling in-process Mach exception handlers will conflict with any attached debuggers; the debugger - * may suspend the processes Mach exception handling thread, which will result in any exception messages - * sent via the debugger being lost, as the in-process handler will be unable to receive and forward - * the messages. - * - * @subsection Managed Runtimes (Xamarin, Unity) - * - * A Mach exception handler may conflict with any managed runtime that registers a BSD signal handler that - * can safely handle otherwise fatal signals, allowing execution to proceed. This includes products - * such as Xamarin for iOS. - * - * In such a case, PLCrashReporter will write a crash report for non-fatal signals, as there is no - * immediate mechanism for determining whether a signal handler exists and that it can safely - * handle the failure. This can result in unexpected delays in application execution, increased I/O to - * disk, and other undesirable operations. - * - * @section mach_exceptions_ios Mach Exceptions on iOS - * - * The APIs required for Mach exception handling are not fully public on iOS. After filing a request with - * Apple DTS to clarify the status of the Mach exception APIs on iOS, and implementing a Mach Exception - * handler using only supported API, they provided the following guidance: - * - * Our engineers have reviewed your request and have determined that this would be best handled as a bug report, - * which you have already filed. There is no documented way of accomplishing this, nor is there a workaround - * possible. - * - * Due to user request, PLCrashReporter provides an optional implementation of Mach exception handling for both - * iOS and Mac OS X. - * - * This implementation uses only supported API on Mac OS X, and depends on limited undefined API on iOS. The reporter - * may be excluded entirely at build time by modifying the PLCRASH_FEATURE_MACH_EXCEPTIONS build configuration; it - * may also be disabled at runtime by configuring the PLCrashReporter instance appropriately via PLCrashReporterConfig. - * - * The iOS implementation is implemented almost entirely using public API, and links against no actual private symbols; - * the use of undocumented functionality is limited to assuming the use of specific msgh_id values (see below - * for details). As a result, it may be considered perfectly safe to include the Mach Exception code in the - * standard build, and enable/disable it at runtime. - * - * The following issues exist in the iOS implementation: - * - The msgh_id values required for an exception reply message are not available from the available - * headers and must be hard-coded. This prevents one from safely replying to exception messages, which - * means that it is impossible to (correctly) inform the server that an exception has *not* been - * handled. - * - * Impact: - * This can lead to the process locking up and not dispatching to the host exception handler (eg, Apple's - * crash reporter), depending on the behavior of the kernel exception code. - * - * - The mach_* structure/type variants required by MACH_EXCEPTION_CODES are not publicly defined (on Mac OS X, - * these are provided by mach_exc.defs). This prevents one from forwarding exception messages to an existing - * handler that was registered with a MACH_EXCEPTION_CODES behavior (eg, forwarding is entirely non-functional - * on ARM64 devices). - * - * Impact: - * This can break forwarding to any task exception handler that registers itself with MACH_EXCEPTION_CODES, - * including other handlers registered within the current process, eg, by a managed runtime. This could - * also result in misinterpretation of a Mach exception message, in the case where the message format is - * modified by Apple to be incompatible with the existing 32-bit format. - * - * This is the case with LLDB; it will register a task exception handler with MACH_EXCEPTION_CODES set. Failure - * to correctly forward these exceptions will result in the debugger breaking in interesting ways; for example, - * changes to the set of dyld-loaded images are detected by setting a breakpoint on the dyld image registration - * funtions, and this functionality will break if the exception is not correctly forwarded. - * - * Since Mach exception handling is important for a fully functional crash reporter, we have also filed a radar - * to request that the API be made public: - * Radar: rdar://12939497 RFE: Provide mach_exc.defs for iOS - * - * At the time of this writing, the radar remains open/unresolved. - */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h deleted file mode 100644 index 15f12a8..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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 PLCRASH_ASYNC_SIGNAL_INFO_H -#define PLCRASH_ASYNC_SIGNAL_INFO_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @internal - * - * @defgroup plcrash_async_signal_info Signal Information - * @ingroup plcrash_async - * - * Provides mapping of signal number and code to strings. - * - * @{ - */ - -const char *plcrash_async_signal_signame (int signal); -const char *plcrash_async_signal_sigcode (int signal, int si_code); - -/** - * @} plcrash_async_signal_info - */ - -#ifdef __cplusplus -} -#endif - -#endif /* PLCRASH_ASYNC_SIGNAL_INFO_H */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h deleted file mode 100644 index a488048..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. - * 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 PLCRASH_FEATURE_CONFIG_H -#define PLCRASH_FEATURE_CONFIG_H - -#include - -/** - * @internal - * - * Build-time configuration for PLCrashReporter. - * - * This is used to automatically enable/disable features on a per-platform and per-configuration - * basis; it may also be used by third-party vendors to configure a custom build of PLCrashReporter. - * - * @defgroup build_config Build Configuration - * @ingroup constants - * @{ - */ - -/* - * Defaults - */ - -/* - * For release builds, disable unused unwind implementations on targets that do not use them. For non-release - * builds, we include the unwind implementations to allow testing on a broader range of targets. - */ -#ifdef PLCF_RELEASE_BUILD -# if defined(__arm__) -# ifndef PLCRASH_FEATURE_UNWIND_DWARF -# define PLCRASH_FEATURE_UNWIND_DWARF 0 -# endif -# ifndef PLCRASH_FEATURE_UNWIND_COMPACT -# define PLCRASH_FEATURE_UNWIND_COMPACT 0 -# endif -# endif -#endif - -/* - * Configuration Flags - */ - - -#ifndef PLCRASH_FEATURE_MACH_EXCEPTIONS -/** - * If true, enable Mach exception support. On Mac OS X, the Mach exception implementation is fully supported, - * using publicly available API. On iOS, the APIs required for a complete implementation are not public. However, a - * popular commercial crash reporter is now shipping with support for Mach exceptions, which implies that either - * they've received special dispensation to use private APIs / private structures, they've found another way to do - * it, or they're just using undocumented functionality and hoping for the best. - * - * The exposed surface of undocumented API usage is relatively low, and there has been strong user demand to - * implement Mach exception handling regardless of concerns over API visiblity. Given this, we've enabled - * Mach exception handling by default, and provided both build-time and runtime configuration - * to disable its use. - * - * For more information on the potential issues with enabling mach exception support, @sa @ref mach_exceptions. - */ -# define PLCRASH_FEATURE_MACH_EXCEPTIONS 1 -#endif - -#ifndef PLCRASH_FEATURE_UNWIND_DWARF -/** If true, enable DWARF unwinding support. */ -# define PLCRASH_FEATURE_UNWIND_DWARF 1 -#endif - - -#ifndef PLCRASH_FEATURE_UNWIND_COMPACT -/** If true, enable compact unwinding support. */ -# define PLCRASH_FEATURE_UNWIND_COMPACT 1 -#endif - -/** - * @} - */ - -#endif /* PLCRASH_FEATURE_CONFIG_H */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h deleted file mode 100644 index d28a054..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -/* - * For external library integrators: - * - * Set this value to any valid C symbol prefix. This will automatically - * prepend the given prefix to all external symbols in the library. - * - * This may be used to avoid symbol conflicts between multiple libraries - * that may both incorporate PLCrashReporter. - */ -#define PLCRASHREPORTER_PREFIX BIT - -#ifdef PLCRASHREPORTER_PREFIX - -// We need two extra layers of indirection to make CPP substitute -// the PLCRASHREPORTER_PREFIX define. -#define PLNS_impl2(prefix, symbol) prefix ## symbol -#define PLNS_impl(prefix, symbol) PLNS_impl2(prefix, symbol) -#define PLNS(symbol) PLNS_impl(PLCRASHREPORTER_PREFIX, symbol) - -#define PLCrashMachExceptionServer PLNS(PLCrashMachExceptionServer) -#define PLCrashReport PLNS(PLCrashReport) -#define PLCrashReportApplicationInfo PLNS(PLCrashReportApplicationInfo) -#define PLCrashReportBinaryImageInfo PLNS(PLCrashReportBinaryImageInfo) -#define PLCrashReportExceptionInfo PLNS(PLCrashReportExceptionInfo) -#define PLCrashReportMachExceptionInfo PLNS(PLCrashReportMachExceptionInfo) -#define PLCrashReportMachineInfo PLNS(PLCrashReportMachineInfo) -#define PLCrashReportProcessInfo PLNS(PLCrashReportProcessInfo) -#define PLCrashReportProcessorInfo PLNS(PLCrashReportProcessorInfo) -#define PLCrashReportRegisterInfo PLNS(PLCrashReportRegisterInfo) -#define PLCrashReportSignalInfo PLNS(PLCrashReportSignalInfo) -#define PLCrashReportStackFrameInfo PLNS(PLCrashReportStackFrameInfo) -#define PLCrashReportSymbolInfo PLNS(PLCrashReportSymbolInfo) -#define PLCrashReportSystemInfo PLNS(PLCrashReportSystemInfo) -#define PLCrashReportTextFormatter PLNS(PLCrashReportTextFormatter) -#define PLCrashReportThreadInfo PLNS(PLCrashReportThreadInfo) -#define PLCrashReporter PLNS(PLCrashReporter) -#define PLCrashSignalHandler PLNS(PLCrashSignalHandler) -#define PLCrashReportHostArchitecture PLNS(PLCrashReportHostArchitecture) -#define PLCrashReportHostOperatingSystem PLNS(PLCrashReportHostOperatingSystem) -#define PLCrashReporterErrorDomain PLNS(PLCrashReporterErrorDomain) -#define PLCrashReporterException PLNS(PLCrashReporterException) -#define PLCrashHostInfo PLNS(PLCrashHostInfo) -#define PLCrashMachExceptionPort PLNS(PLCrashMachExceptionPort) -#define PLCrashMachExceptionPortSet PLNS(PLCrashMachExceptionPortSet) -#define PLCrashProcessInfo PLNS(PLCrashProcessInfo) -#define PLCrashReporterConfig PLNS(PLCrashReporterConfig) -#define PLCrashUncaughtExceptionHandler PLNS(PLCrashUncaughtExceptionHandler) -#define PLCrashMachExceptionForward PLNS(PLCrashMachExceptionForward) -#define PLCrashSignalHandlerForward PLNS(PLCrashSignalHandlerForward) -#define plcrash_signal_handler PLNS(plcrash_signal_handler) - -#endif diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h deleted file mode 100644 index a179cd6..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -#import "PLCrashReportApplicationInfo.h" -#import "PLCrashReportBinaryImageInfo.h" -#import "PLCrashReportExceptionInfo.h" -#import "PLCrashReportMachineInfo.h" -#import "PLCrashReportMachExceptionInfo.h" -#import "PLCrashReportProcessInfo.h" -#import "PLCrashReportProcessorInfo.h" -#import "PLCrashReportRegisterInfo.h" -#import "PLCrashReportSignalInfo.h" -#import "PLCrashReportStackFrameInfo.h" -#import "PLCrashReportSymbolInfo.h" -#import "PLCrashReportSystemInfo.h" -#import "PLCrashReportThreadInfo.h" - -/** - * @ingroup constants - * Crash file magic identifier */ -#define PLCRASH_REPORT_FILE_MAGIC "plcrash" - -/** - * @ingroup constants - * Crash format version byte identifier. Will not change outside of the introduction of - * an entirely new crash log format. */ -#define PLCRASH_REPORT_FILE_VERSION 1 - -/** - * @ingroup types - * Crash log file header format. - * - * Crash log files start with 7 byte magic identifier (#PLCRASH_REPORT_FILE_MAGIC), - * followed by a single unsigned byte version number (#PLCRASH_REPORT_FILE_VERSION). - * The crash log message format itself is extensible, so this version number will only - * be incremented in the event of an incompatible encoding or format change. - */ -struct PLCrashReportFileHeader { - /** Crash log magic identifier, not NULL terminated */ - const char magic[7]; - - /** Crash log encoding/format version */ - const uint8_t version; - - /** File data */ - const uint8_t data[]; -} __attribute__((packed)); - - -/** - * @internal - * Private decoder instance variables (used to hide the underlying protobuf parser). - */ -typedef struct _PLCrashReportDecoder _PLCrashReportDecoder; - -@interface PLCrashReport : NSObject { -@private - /** Private implementation variables (used to hide the underlying protobuf parser) */ - _PLCrashReportDecoder *_decoder; - - /** System info */ - PLCrashReportSystemInfo *_systemInfo; - - /** Machine info */ - PLCrashReportMachineInfo *_machineInfo; - - /** Application info */ - PLCrashReportApplicationInfo *_applicationInfo; - - /** Process info */ - PLCrashReportProcessInfo *_processInfo; - - /** Signal info */ - PLCrashReportSignalInfo *_signalInfo; - - /** Mach exception info */ - PLCrashReportMachExceptionInfo *_machExceptionInfo; - - /** Thread info (PLCrashReportThreadInfo instances) */ - NSArray *_threads; - - /** Binary images (PLCrashReportBinaryImageInfo instances */ - NSArray *_images; - - /** Exception information (may be nil) */ - PLCrashReportExceptionInfo *_exceptionInfo; - - /** Report UUID */ - CFUUIDRef _uuid; -} - -- (id) initWithData: (NSData *) encodedData error: (NSError **) outError; - -- (PLCrashReportBinaryImageInfo *) imageForAddress: (uint64_t) address; - -/** - * System information. - */ -@property(nonatomic, readonly) PLCrashReportSystemInfo *systemInfo; - -/** - * YES if machine information is available. - */ -@property(nonatomic, readonly) BOOL hasMachineInfo; - -/** - * Machine information. Only available in later (v1.1+) crash report format versions. If not available, - * will be nil. - */ -@property(nonatomic, readonly) PLCrashReportMachineInfo *machineInfo; - -/** - * Application information. - */ -@property(nonatomic, readonly) PLCrashReportApplicationInfo *applicationInfo; - -/** - * YES if process information is available. - */ -@property(nonatomic, readonly) BOOL hasProcessInfo; - -/** - * Process information. Only available in later (v1.1+) crash report format versions. If not available, - * will be nil. - */ -@property(nonatomic, readonly) PLCrashReportProcessInfo *processInfo; - -/** - * Signal information. This provides the signal and signal code of the fatal signal. - */ -@property(nonatomic, readonly) PLCrashReportSignalInfo *signalInfo; - -/** - * Mach exception information, if available. This will only be included in the - * case that encoding crash reporter's exception-based reporting was enabled, and a Mach - * exception was caught. - * - * @warning If Mach exception information is available, the legacy signalInfo property will also be provided; this - * s required to maintain backwards compatibility with the established API. Note, however, that the signal info may be derived from the - * Mach exception info by the encoding crash reporter, and thus may not exactly match the kernel exception-to-signal - * mappings implemented in xnu. As such, when Mach exception info is available, its use should be preferred. - */ -@property(nonatomic, readonly) PLCrashReportMachExceptionInfo *machExceptionInfo; - -/** - * Thread information. Returns a list of PLCrashReportThreadInfo instances. - */ -@property(nonatomic, readonly) NSArray *threads; - -/** - * Binary image information. Returns a list of PLCrashReportBinaryImageInfo instances. - */ -@property(nonatomic, readonly) NSArray *images; - -/** - * YES if exception information is available. - */ -@property(nonatomic, readonly) BOOL hasExceptionInfo; - -/** - * Exception information. Only available if a crash was caused by an uncaught exception, - * otherwise nil. - */ -@property(nonatomic, readonly) PLCrashReportExceptionInfo *exceptionInfo; - -/** - * A client-generated 16-byte UUID. May be used to filter duplicate reports submitted or generated - * by a single client. Only available in later (v1.2+) crash report format versions. If not available, - * will be NULL. - */ -@property(nonatomic, readonly) CFUUIDRef uuidRef; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h deleted file mode 100644 index 0f84c89..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -@interface PLCrashReportApplicationInfo : NSObject { -@private - /** Application identifier */ - NSString *_applicationIdentifier; - - /** Application version */ - NSString *_applicationVersion; -} - -- (id) initWithApplicationIdentifier: (NSString *) applicationIdentifier - applicationVersion: (NSString *) applicationVersion; - -/** - * The application identifier. This is usually the application's CFBundleIdentifier value. - */ -@property(nonatomic, readonly) NSString *applicationIdentifier; - -/** - * The application version. This is usually the application's CFBundleVersion value. - */ -@property(nonatomic, readonly) NSString *applicationVersion; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h deleted file mode 100644 index 339fdbb..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import "PLCrashReportProcessorInfo.h" - -@interface PLCrashReportBinaryImageInfo : NSObject { -@private - /** Code type */ - PLCrashReportProcessorInfo *_processorInfo; - - /** Base image address */ - uint64_t _baseAddress; - - /** Image segment size */ - uint64_t _imageSize; - - /** Name of binary image */ - NSString *_imageName; - - /** If the UUID is available */ - BOOL _hasImageUUID; - - /** 128-bit object UUID. May be nil. */ - NSString *_imageUUID; -} - -- (id) initWithCodeType: (PLCrashReportProcessorInfo *) processorInfo - baseAddress: (uint64_t) baseAddress - size: (uint64_t) imageSize - name: (NSString *) imageName - uuid: (NSData *) uuid; - -/** - * Image code type, or nil if unavailable. - */ -@property(nonatomic, readonly) PLCrashReportProcessorInfo *codeType; - -/** - * Image base address. - */ -@property(nonatomic, readonly) uint64_t imageBaseAddress; - -/** - * Segment size. - */ -@property(nonatomic, readonly) uint64_t imageSize; - -/** - * Image name (absolute path) - */ -@property(nonatomic, readonly) NSString *imageName; - - -/** - * YES if this image has an associated UUID. - */ -@property(nonatomic, readonly) BOOL hasImageUUID; - -/** - * 128-bit object UUID (matches Mach-O DWARF dSYM files). May be nil if unavailable. - */ -@property(nonatomic, readonly) NSString *imageUUID; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h deleted file mode 100644 index 623b1d4..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import "PLCrashReportThreadInfo.h" - - -@interface PLCrashReportExceptionInfo : NSObject { -@private - /** Name */ - NSString *_name; - - /** Reason */ - NSString *_reason; - - /** Ordered list of PLCrashReportStackFrame instances, or nil if unavailable. */ - NSArray *_stackFrames; -} - -- (id) initWithExceptionName: (NSString *) name reason: (NSString *) reason; - -- (id) initWithExceptionName: (NSString *) name - reason: (NSString *) reason - stackFrames: (NSArray *) stackFrames; - -/** - * The exception name. - */ -@property(nonatomic, readonly) NSString *exceptionName; - -/** - * The exception reason. - */ -@property(nonatomic, readonly) NSString *exceptionReason; - -/* The exception's original call stack, as an array of PLCrashReportStackFrameInfo instances, or nil if unavailable. - * This may be preserved across rethrow of an exception, and can be used to determine the original call stack. */ -@property(nonatomic, readonly) NSArray *stackFrames; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h deleted file mode 100644 index 77c2029..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -#import "PLCrashReport.h" - -/** - * A crash report formatter accepts a PLCrashReport instance, formats it according to implementation-specified rules, - * (such as implementing text output support), and returns the result. - */ -@protocol PLCrashReportFormatter - -/** - * Format the provided @a report. - * - * @param report Report to be formatted. - * @param outError A pointer to an NSError object variable. If an error occurs, this pointer will contain an error - * object indicating why the pending crash report could not be formatted. If no error occurs, this parameter will - * be left unmodified. You may specify nil for this parameter, and no error information will be provided. - * - * @return Returns the formatted report data on success, or nil on failure. - */ -- (NSData *) formatReport: (PLCrashReport *) report error: (NSError **) outError; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h deleted file mode 100644 index a9d7f7c..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -@interface PLCrashReportMachExceptionInfo : NSObject { -@private - /** The Mach exception type. */ - uint64_t _type; - - /** The Mach exception codes, represented as an ordered array of NSNumber instances. */ - NSArray *_codes; -} - -- (id) initWithType: (uint64_t) type codes: (NSArray *) codes; - -/** The Mach exception type. */ -@property(nonatomic, readonly) uint64_t type; - -/** The Mach exception codes, represented as an ordered array of 64-bit unsigned NSNumber instances. */ -@property(nonatomic, readonly) NSArray *codes; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h deleted file mode 100644 index 4d0597c..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -#import "PLCrashReportProcessorInfo.h" - -@interface PLCrashReportMachineInfo : NSObject { -@private - /** The hardware model name (eg, MacBookPro6,1). This may be unavailable, and this property will be nil. */ - NSString *_modelName; - - /** The processor type. */ - PLCrashReportProcessorInfo *_processorInfo; - - /* The number of actual physical processor cores. */ - NSUInteger _processorCount; - - /* The number of logical processors. */ - NSUInteger _logicalProcessorCount; -} - -- (id) initWithModelName: (NSString *) modelName - processorInfo: (PLCrashReportProcessorInfo *) processorInfo - processorCount: (NSUInteger) processorCount - logicalProcessorCount: (NSUInteger) logicalProcessorCount; - -/** The hardware model name (eg, MacBookPro6,1). This may be unavailable, and this property will be nil. */ -@property(nonatomic, readonly) NSString *modelName; - -/** The processor type. This will be unavailable in reports generated prior to PLCrashReporter 1.2, in which case this property will be nil. */ -@property(nonatomic, readonly) PLCrashReportProcessorInfo *processorInfo; - -/* - * The number of actual physical processor cores. Note that the number of active processors may be managed by the - * operating system's power management system, and this value may not reflect the number of active - * processors at the time of the crash. - */ -@property(nonatomic, readonly) NSUInteger processorCount; - -/* - * The number of logical processors. Note that the number of active processors may be managed by the - * operating system's power management system, and this value may not reflect the number of active - * processors at the time of the crash. - */ -@property(nonatomic, readonly) NSUInteger logicalProcessorCount; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h deleted file mode 100644 index ca683d5..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Author: Damian Morris - * - * Copyright (c) 2010 MOSO Corporation, Pty Ltd. - * Copyright (c) 2010-2013 Plausible Labs Cooperative, Inc. - * - * 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. - */ - -#import - -@interface PLCrashReportProcessInfo : NSObject { -@private - /** Process name, or nil if unavailable. */ - NSString *_processName; - - /** Process ID */ - NSUInteger _processID; - - /** Process path */ - NSString* _processPath; - - /** Date and time that the crashing process was started. This may be unavailable, and this property - * will be nil. */ - NSDate *_processStartTime; - - /** Parent process name, or nil if unavailable. */ - NSString *_parentProcessName; - - /** Parent process ID */ - NSUInteger _parentProcessID; - - /** If false, the process is being run via process-level CPU emulation (such as Rosetta). */ - BOOL _native; -} - -- (id) initWithProcessName: (NSString *) processName - processID: (NSUInteger) processID - processPath: (NSString *) processPath - processStartTime: (NSDate *) processStartTime - parentProcessName: (NSString *) parentProcessName - parentProcessID: (NSUInteger) parentProcessID - native: (BOOL) native; - -/** - * The process name. This value may not be included in the crash report, in which case this property - * will be nil. - */ -@property(nonatomic, readonly) NSString *processName; - -/** - * The process ID. - */ -@property(nonatomic, readonly) NSUInteger processID; - -/** - * The path to the process executable. This value may not be included in the crash report, in which case this property - * will be nil. - */ -@property(nonatomic, readonly) NSString *processPath; - -/** - * Date and time that the crashing process was started. This value may not be included in the crash report, in which case this property - * will be nil. - */ -@property(nonatomic, readonly) NSDate *processStartTime; - -/** - * The parent process name. This value may not be included in the crash report, in which case this property - * will be nil. - */ -@property(nonatomic, readonly) NSString *parentProcessName; - -/** - * The parent process ID. - */ -@property(nonatomic, readonly) NSUInteger parentProcessID; - -/** The process' native execution status. If false, the process is being run via process-level CPU emulation (such as Rosetta). */ -@property(nonatomic, readonly) BOOL native; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h deleted file mode 100644 index 03d570b..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import - -/** - * @ingroup constants - * - * The type encodings supported for CPU types and subtypes. Currently only Apple - * Mach-O defined encodings are supported. - * - * @internal - * These enum values match the protobuf values. Keep them synchronized. - */ -typedef enum { - /** Unknown cpu type encoding. */ - PLCrashReportProcessorTypeEncodingUnknown = 0, - - /** Apple Mach-defined processor types. */ - PLCrashReportProcessorTypeEncodingMach = 1 -} PLCrashReportProcessorTypeEncoding; - -@interface PLCrashReportProcessorInfo : NSObject { -@private - /** Type encoding */ - PLCrashReportProcessorTypeEncoding _typeEncoding; - - /** CPU type */ - uint64_t _type; - - /** CPU subtype */ - uint64_t _subtype; -} - -- (id) initWithTypeEncoding: (PLCrashReportProcessorTypeEncoding) typeEncoding - type: (uint64_t) type - subtype: (uint64_t) subtype; - -/** The CPU type encoding. */ -@property(nonatomic, readonly) PLCrashReportProcessorTypeEncoding typeEncoding; - -/** The CPU type. */ -@property(nonatomic, readonly) uint64_t type; - -/** The CPU subtype. */ -@property(nonatomic, readonly) uint64_t subtype; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h deleted file mode 100644 index 20b618d..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -@interface PLCrashReportRegisterInfo : NSObject { -@private - /** Register name */ - NSString *_registerName; - - /** Register value */ - uint64_t _registerValue; -} - -- (id) initWithRegisterName: (NSString *) registerName registerValue: (uint64_t) registerValue; - -/** - * Register name. - */ -@property(nonatomic, readonly) NSString *registerName; - -/** - * Register value. - */ -@property(nonatomic, readonly) uint64_t registerValue; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h deleted file mode 100644 index 2c5c5fe..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -@interface PLCrashReportSignalInfo : NSObject { -@private - /** Signal name */ - NSString *_name; - - /** Signal code */ - NSString *_code; - - /** Fauling instruction or address */ - uint64_t _address; -} - -- (id) initWithSignalName: (NSString *) name code: (NSString *) code address: (uint64_t) address; - -/** - * The signal name. - */ -@property(nonatomic, readonly) NSString *name; - -/** - * The signal code. - */ -@property(nonatomic, readonly) NSString *code; - -/** - * The faulting instruction or address. - */ -@property(nonatomic, readonly) uint64_t address; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h deleted file mode 100644 index 997e762..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import "PLCrashReportSymbolInfo.h" - -@interface PLCrashReportStackFrameInfo : NSObject { -@private - /** Frame instruction pointer. */ - uint64_t _instructionPointer; - - /** Symbol information, if available. Otherwise, will be nil. */ - PLCrashReportSymbolInfo *_symbolInfo; -} - -- (id) initWithInstructionPointer: (uint64_t) instructionPointer symbolInfo: (PLCrashReportSymbolInfo *) symbolInfo; - -/** - * Frame's instruction pointer. - */ -@property(nonatomic, readonly) uint64_t instructionPointer; - -/** Symbol information for this frame. - * This may be unavailable, and this property will be nil. */ -@property(nonatomic, readonly) PLCrashReportSymbolInfo *symbolInfo; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h deleted file mode 100644 index c6ceb6c..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -@interface PLCrashReportSymbolInfo : NSObject { -@private - /** The symbol name. */ - NSString *_symbolName; - - /** The symbol start address. */ - uint64_t _startAddress; - - /** The symbol end address, if explicitly defined. Will be 0 if unknown. */ - uint64_t _endAddress; -} - -- (id) initWithSymbolName: (NSString *) symbolName - startAddress: (uint64_t) startAddress - endAddress: (uint64_t) endAddress; - -/** The symbol name. */ -@property(nonatomic, readonly) NSString *symbolName; - -/** The symbol start address. */ -@property(nonatomic, readonly) uint64_t startAddress; - -/* The symbol end address, if explicitly defined. This will only be included if the end address is - * explicitly defined (eg, by DWARF debugging information), will not be derived by best-guess - * heuristics. - * - * If unknown, the address will be 0. - */ -@property(nonatomic, readonly) uint64_t endAddress; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h deleted file mode 100644 index e98c969..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -/** - * @ingroup constants - * - * Indicates the Operating System under which a Crash Log was generated. - * - * @internal - * These enum values match the protobuf values. Keep them synchronized. - */ -typedef enum { - /** Mac OS X. */ - PLCrashReportOperatingSystemMacOSX = 0, - - /** iPhone OS */ - PLCrashReportOperatingSystemiPhoneOS = 1, - - /** iPhone Simulator (Mac OS X with additional simulator-specific runtime libraries) */ - PLCrashReportOperatingSystemiPhoneSimulator = 2, - - /** Unknown operating system */ - PLCrashReportOperatingSystemUnknown = 3, -} PLCrashReportOperatingSystem; - -/** - * @ingroup constants - * - * Indicates the architecture under which a Crash Log was generated. - * - * @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports - * will make use of the new PLCrashReportProcessorInfo CPU type encodings. - * - * @internal - * These enum values match the protobuf values. Keep them synchronized. - */ -typedef enum { - /** x86-32. */ - PLCrashReportArchitectureX86_32 = 0, - - /** x86-64 */ - PLCrashReportArchitectureX86_64 = 1, - - /** ARMv6 */ - PLCrashReportArchitectureARMv6 = 2, - - /** - * ARMv6 - * @deprecated This value has been deprecated in favor of ARM subtype-specific - * values. - * @sa PLCrashReportArchitectureARMv6 - */ - PLCrashReportArchitectureARM = PLCrashReportArchitectureARMv6, - - /** PPC */ - PLCrashReportArchitecturePPC = 3, - - /** PPC64 */ - PLCrashReportArchitecturePPC64 = 4, - - /** ARMv7 */ - PLCrashReportArchitectureARMv7 = 5, - - /** Unknown */ - PLCrashReportArchitectureUnknown = 6 -} PLCrashReportArchitecture; - - -extern PLCrashReportOperatingSystem PLCrashReportHostOperatingSystem; -extern PLCrashReportArchitecture PLCrashReportHostArchitecture; - -@interface PLCrashReportSystemInfo : NSObject { -@private - /** Operating system */ - PLCrashReportOperatingSystem _operatingSystem; - - /** Operating system version */ - NSString *_osVersion; - - /** OS build. May be nil. */ - NSString *_osBuild; - - /** Architecture */ - PLCrashReportArchitecture _architecture; - - /** Date crash report was generated. May be nil if the date is unknown. */ - NSDate *_timestamp; -} - -- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem - operatingSystemVersion: (NSString *) operatingSystemVersion - architecture: (PLCrashReportArchitecture) architecture - timestamp: (NSDate *) timestamp; - -- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem - operatingSystemVersion: (NSString *) operatingSystemVersion - operatingSystemBuild: (NSString *) operatingSystemBuild - architecture: (PLCrashReportArchitecture) architecture - timestamp: (NSDate *) timestamp; - -/** The operating system. */ -@property(nonatomic, readonly) PLCrashReportOperatingSystem operatingSystem; - -/** The operating system's release version. */ -@property(nonatomic, readonly) NSString *operatingSystemVersion; - -/** The operating system's build identifier (eg, 10J869). This may be unavailable, and this property will be nil. */ -@property(nonatomic, readonly) NSString *operatingSystemBuild; - -/** Architecture. @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports - * include the CPU type as part of the crash report's machine info structure, using the PLCrashReportProcessorInfo - * extensible encoding. */ -@property(nonatomic, readonly) PLCrashReportArchitecture architecture; - -/** Date and time that the crash report was generated. This may be unavailable, and this property will be nil. */ -@property(nonatomic, readonly) NSDate *timestamp; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h deleted file mode 100644 index 2ba7e35..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Authors: - * Landon Fuller - * Damian Morris - * - * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. - * Copyright (c) 2010 MOSO Corporation, Pty Ltd. - * 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. - */ - - -#import - -#import "PLCrashReportFormatter.h" - -/** - * Supported text output formats. - * - * @ingroup enums - */ -typedef enum { - /** An iOS-compatible crash log text format. Compatible with the crash logs generated by the device and available - * through iTunes Connect. */ - PLCrashReportTextFormatiOS = 0 -} PLCrashReportTextFormat; - - -@interface PLCrashReportTextFormatter : NSObject { -@private - /** Text output format. */ - PLCrashReportTextFormat _textFormat; - - /** Encoding to use for string output. */ - NSStringEncoding _stringEncoding; -} - -+ (NSString *) stringValueForCrashReport: (PLCrashReport *) report withTextFormat: (PLCrashReportTextFormat) textFormat; - -- (id) initWithTextFormat: (PLCrashReportTextFormat) textFormat stringEncoding: (NSStringEncoding) stringEncoding; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h deleted file mode 100644 index 04c8604..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import - -#import "PLCrashReportStackFrameInfo.h" -#import "PLCrashReportRegisterInfo.h" - -@interface PLCrashReportThreadInfo : NSObject { -@private - /** The thread number. Should be unique within a given crash log. */ - NSInteger _threadNumber; - - /** Ordered list of PLCrashReportStackFrame instances */ - NSArray *_stackFrames; - - /** YES if this thread crashed. */ - BOOL _crashed; - - /** List of PLCrashReportRegister instances. Will be empty if _crashed is NO. */ - NSArray *_registers; -} - -- (id) initWithThreadNumber: (NSInteger) threadNumber - stackFrames: (NSArray *) stackFrames - crashed: (BOOL) crashed - registers: (NSArray *) registers; - -/** - * Application thread number. - */ -@property(nonatomic, readonly) NSInteger threadNumber; - -/** - * Thread backtrace. Provides an array of PLCrashReportStackFrameInfo instances. - * The array is ordered, last callee to first. - */ -@property(nonatomic, readonly) NSArray *stackFrames; - -/** - * If this thread crashed, set to YES. - */ -@property(nonatomic, readonly) BOOL crashed; - -/** - * State of the general purpose and related registers, as a list of - * PLCrashReportRegister instances. If this thead did not crash (crashed returns NO), - * this list will be empty. - */ -@property(nonatomic, readonly) NSArray *registers; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h deleted file mode 100644 index 88824a6..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import - -#import "PLCrashReporterConfig.h" - -@class PLCrashMachExceptionServer; -@class PLCrashMachExceptionPortSet; - -/** - * @ingroup functions - * - * Prototype of a callback function used to execute additional user code with signal information as provided - * by PLCrashReporter. Called upon completion of crash handling, after the crash report has been written to disk. - * - * @param info The signal info. - * @param uap The crash's threads context. - * @param context The API client's supplied context value. - * - * @sa @ref async_safety - * @sa PLCrashReporter::setPostCrashCallbacks: - */ -typedef void (*PLCrashReporterPostCrashSignalCallback)(siginfo_t *info, ucontext_t *uap, void *context); - -/** - * @ingroup types - * - * This structure contains callbacks supported by PLCrashReporter to allow the host application to perform - * additional tasks prior to program termination after a crash has occured. - * - * @sa @ref async_safety - */ -typedef struct PLCrashReporterCallbacks { - /** The version number of this structure. If not one of the defined version numbers for this type, the behavior - * is undefined. The current version of this structure is 0. */ - uint16_t version; - - /** An arbitrary user-supplied context value. This value may be NULL. */ - void *context; - - /** - * The callback used to report caught signal information. In version 0 of this structure, all crashes will be - * reported via this function. - * - * @warning When using PLCrashReporterSignalHandlerTypeMach, the siginfo_t argument to this function will be derived - * from the Mach exception data, and may be incorrect, or may otherwise not match the expected data as provided via - * PLCrashReporterSignalHandlerTypeBSD. In addition, the provided ucontext_t value will be zero-initialized, and will - * not provide valid thread state. - * - * This callback will be deprecated in favor of a Mach-compatible replacement in a future release; support is maintained - * here to allow clients that rely on post-crash callbacks without thread state to make use of Mach exceptions. - */ - PLCrashReporterPostCrashSignalCallback handleSignal; -} PLCrashReporterCallbacks; - -@interface PLCrashReporter : NSObject { -@private - /** Reporter configuration */ - PLCrashReporterConfig *_config; - - /** YES if the crash reporter has been enabled */ - BOOL _enabled; - -#if PLCRASH_FEATURE_MACH_EXCEPTIONS - /** The backing Mach exception server, if any. Nil if the reporter has not been enabled, or if - * the configured signal handler type is not PLCrashReporterSignalHandlerTypeMach. */ - PLCrashMachExceptionServer *_machServer; - - /** Previously registered Mach exception ports, if any. */ - PLCrashMachExceptionPortSet *_previousMachPorts; -#endif /* PLCRASH_FEATURE_MACH_EXCEPTIONS */ - - /** Application identifier */ - NSString *_applicationIdentifier; - - /** Application version */ - NSString *_applicationVersion; - - /** Path to the crash reporter internal data directory */ - NSString *_crashReportDirectory; -} - -+ (PLCrashReporter *) sharedReporter; - -- (instancetype) initWithConfiguration: (PLCrashReporterConfig *) config; - -- (BOOL) hasPendingCrashReport; - -- (NSData *) loadPendingCrashReportData; -- (NSData *) loadPendingCrashReportDataAndReturnError: (NSError **) outError; - -- (NSData *) generateLiveReportWithThread: (thread_t) thread; -- (NSData *) generateLiveReportWithThread: (thread_t) thread error: (NSError **) outError; - -- (NSData *) generateLiveReport; -- (NSData *) generateLiveReportAndReturnError: (NSError **) outError; - -- (BOOL) purgePendingCrashReport; -- (BOOL) purgePendingCrashReportAndReturnError: (NSError **) outError; - -- (BOOL) enableCrashReporter; -- (BOOL) enableCrashReporterAndReturnError: (NSError **) outError; - -- (void) setCrashCallbacks: (PLCrashReporterCallbacks *) callbacks; - -@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h deleted file mode 100644 index 82f0bd9..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Author: Landon Fuller - * - * Copyright (c) 2013 Plausible Labs Cooperative, Inc. - * 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. - */ - -#import -#import "PLCrashFeatureConfig.h" - -/** - * @ingroup enums - * Supported mechanisms for trapping and handling crashes. - */ -typedef NS_ENUM(NSUInteger, PLCrashReporterSignalHandlerType) { - /** - * Trap fatal signals via a sigaction(2)-registered BSD signal handler. - * - * PLCrashReporter's signal handler will supersede previously registered handlers; existing - * handlers will not be called. This behavior may be modified in a future release, and should - * not be relied upon as a mechanism to prevent existing signal handlers from being called. - * - * There are some limitations to signal-based crash handling on Mac OS X and iOS; specifically: - * - * - On Mac OS X, stack overflows will only be handled on the thread on which - * the crash reporter was initialized. This should generally be the main thread. - * - On iOS 6.0 and later, any stack overflows will not be handled due to sigaltstack() being - * non-functional on the device. (see rdar://13002712 - SA_ONSTACK/sigaltstack() ignored on iOS). - * - Some exit paths in Apple's Libc will deregister a signal handler before firing SIGABRT, resulting - * in the signal handler never being called (see rdar://14313497 - ___abort() disables SIGABRT signal - * handlers prior to raising SIGABRT). These __abort()-based checks are: - * - Implemented for unsafe memcpy/strcpy/snprintf C functions. - * - Only enabled when operating on a fixed-width target buffer (in which case the - * compiler rewrites the function calls to the built-in variants, and provides the fixed-width length as an argument). - * - Only trigger in the case that the source data exceeds the size of the fixed width target - * buffer, and the maximum length argument either isn't supplied by the caller (eg, when using strcpy), - * or a too-long argument is supplied (eg, strncpy with a length argument longer than the target buffer), - * AND that argument can't be checked at compile-time. - */ - PLCrashReporterSignalHandlerTypeBSD = 0, - -#if PLCRASH_FEATURE_MACH_EXCEPTIONS - /** - * Trap fatal signals via a Mach exception server. - * - * If any existing Mach exception server has been registered for the task, exceptions will be forwarded to that - * exception handler. Should the exceptions be handled by an existing handler, no report will be generated - * by PLCrashReporter. - * - * @par Mac OS X - * - * On Mac OS X, the Mach exception implementation is fully supported, using publicly available API -- note, - * however, that some kernel-internal constants, as well as architecture-specific trap information, - * may be required to fully interpret a Mach exception's root cause. - * - * @par iOS - * - * On iOS, the APIs required for a complete implementation are not fully public. - * - * The exposed surface of undocumented API usage is relatively low, and there has been strong user demand to - * implement Mach exception handling regardless of concerns over API visiblity. Given this, we've included - * Mach exception handling as an optional feature, with both build-time and runtime configuration - * to disable its inclusion or use, respectively. - * - * @par Debugger Incompatibility - * - * The Mach exception handler executes in-process, and will interfere with debuggers when they attempt to - * suspend all active threads (which will include the Mach exception handler). Mach-based handling - * should not be used when a debugger is attached. - * - * @par More Details - * - * For more information, refer to @ref mach_exceptions. - */ - PLCrashReporterSignalHandlerTypeMach = 1 -#endif /* PLCRASH_FEATURE_MACH_EXCEPTIONS */ -}; - -/** - * @ingroup enums - * Supported mechanisms for performing local symbolication. - * - * Local symbolication is performed using inexact heuristics and symbol data available at runtime; it may - * return information that is incorrect. This may still be useful in the case where DWARF data is unavailable - * for a given build; in that case, it can provide function and method names (though not line numbers) for a - * crash report that may otherwise be unusable. - * - * Note, however, this comes at the cost of a significant increase in code that must run within the critical - * crash reporting section, where failures may result in crash reports being corrupted or left unwritten. In - * addition, some of the provided symbolication strategies rely on knowledge of runtime internals that may - * change in future iOS releases. Given that DWARF symbolication data will always be more accurate, and - * the risks inherent in executing considerably more code at crash time, it is strongly recommended that local - * symbolication only be enabled for non-release builds. - * - * Multiple symbolication strategies may be enabled, in which case a best-match heuristic will be applied to the - * results. - */ -typedef NS_OPTIONS(NSUInteger, PLCrashReporterSymbolicationStrategy) { - /** No symbolication. */ - PLCrashReporterSymbolicationStrategyNone = 0, - - /** - * Use the standard binary symbol table. On iOS, this alone will return - * incomplete results, as most symbols are rewritten to the common '\' string. - */ - PLCrashReporterSymbolicationStrategySymbolTable = 1 << 0, - - /** - * Use Objective-C metadata to find method and class names. This relies on detailed parsing - * of the Objective-C runtime data, including undefined flags and other runtime internals. As such, - * it may return incorrect data should the runtime be changed incompatibly. - */ - PLCrashReporterSymbolicationStrategyObjC = 1 << 1, - - /** - * Enable all available symbolication strategies. - */ - PLCrashReporterSymbolicationStrategyAll = (PLCrashReporterSymbolicationStrategySymbolTable|PLCrashReporterSymbolicationStrategyObjC) -}; - -@interface PLCrashReporterConfig : NSObject { -@private - /** The configured signal handler type. */ - PLCrashReporterSignalHandlerType _signalHandlerType; - - /** The configured symbolication strategy. */ - PLCrashReporterSymbolicationStrategy _symbolicationStrategy; -} - -+ (instancetype) defaultConfiguration; - -- (instancetype) init; -- (instancetype) initWithSignalHandlerType: (PLCrashReporterSignalHandlerType) signalHandlerType - symbolicationStrategy: (PLCrashReporterSymbolicationStrategy) symbolicationStrategy; - -/** The configured signal handler type. */ -@property(nonatomic, readonly) PLCrashReporterSignalHandlerType signalHandlerType; - -/** The configured symbolication strategy. */ -@property(nonatomic, readonly) PLCrashReporterSymbolicationStrategy symbolicationStrategy; - - -@end - diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index a86e074..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 13D65 - CFBundleDevelopmentRegion - English - CFBundleExecutable - CrashReporter - CFBundleIdentifier - coop.plausible.CrashReporter - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - CrashReporter - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 5B1008 - DTPlatformVersion - GM - DTSDKBuild - 13C64 - DTSDKName - macosx10.9 - DTXcode - 0511 - DTXcodeBuild - 5B1008 - - diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 6a62850..21e0f69 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -8,7 +8,6 @@ PODS: - dyci/Injections (= 0.1.5.6) - dyci/Injections (0.1.5.6) - FontAwesome+iOS (0.0.1) - - HockeySDK (3.6.4) - libextobjc (0.4.1): - libextobjc/EXTADT (= 0.4.1) - libextobjc/EXTConcreteProtocol (= 0.4.1) @@ -100,7 +99,6 @@ PODS: DEPENDENCIES: - dyci - FontAwesome+iOS (from `https://github.com/alexdrone/ios-fontawesome.git`) - - HockeySDK - libextobjc - Mantle - MBProgressHUD @@ -121,7 +119,6 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa dyci: 099c2e6dc98abb8f21b370cabbf1443ff700608a FontAwesome+iOS: c6d3bbd2856b9633028d316d56133d45fb6a6cb0 - HockeySDK: c07cdd580296737edcd0963e292c19885a53f563 libextobjc: a650fc1bf489a3d3a9bc2e621efa3e1006fc5471 Mantle: d7c75b6fb789b20f7ae30cd0d09435fe545896ff MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad @@ -130,4 +127,4 @@ SPEC CHECKSUMS: PromiseKit: b333c1baae651ed1fdfb4f6f4ef18d7ca118931e YapDatabase: 13566c87dc9226a0f15d755edba08e8ad94cac9f -COCOAPODS: 0.37.1 +COCOAPODS: 0.37.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index d25e2b7..69bacd3 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,3567 +7,2729 @@ objects = { /* Begin PBXBuildFile section */ - 00357407E7E80CD89C172ADB /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = F8FEFB0BE1417D56700D9213 /* YapNull.h */; }; - 00498625488DDDBBC8B9AD3A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; - 006239E8AB37A87419A2748C /* HockeySDKFeatureConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */; }; - 008C3E74C1C12AAA19CE4164 /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */; }; - 008DE6052787417F2DF2F262 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0097FD1F383B8AAD531EDA30 /* BITFeedbackComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */; }; - 00EF80D2EB0E9EB28081410F /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 00F3C0F4EF36A78C4A2FA21E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 018BA01A81E14C8A35CA2440 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */; }; - 01A4F724F2B0EEBE6DD04A30 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */; }; - 02547D51A2C2F8C01EBBA59A /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */; }; - 02A3F1626976266045E1CAE9 /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */; }; - 030D75880C907B9471A12A8C /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3308D7BDAB66931744762B7D /* DDAssert.h */; }; - 03D39A60C40221C81476E791 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */; }; - 0493177CCDC5B18BBF3A99BD /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */; }; - 04AE49F7649E6D1749B19148 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */; }; - 0547E26936EECA293D929914 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 06323A17E8CC7E5D9335C111 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */; }; - 065A6B165C710850A8D55726 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */; }; - 067F19DFAA83A04CD4F0AD12 /* SFDynamicCodeInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */; }; - 06A25DAC73C2E0B999C17411 /* BITCrashMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */; }; - 06B4A6A1D18FB459C9D42814 /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */; }; - 06C9E68113FF9274BE5797AA /* BITHockeyBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */; }; - 0715BE8CEE93D3276F3818FB /* BITHockeyAppClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */; }; - 082F530DE3DF7D319B500262 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */; }; - 086DD290ABF4CE621B32B702 /* feedbackActivity.png in Resources */ = {isa = PBXBuildFile; fileRef = 261E60A2F8407C25ECD19683 /* feedbackActivity.png */; }; - 0890DB2288BBC937B5588EAF /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 09A76763A2E0359A0EAF4743 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */; }; - 0A3ACD02E348E28E61AA4E45 /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */; }; - 0A46B049564B293F7ADC6DBA /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */; }; - 0A8D2767E6C1078966DCB34C /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */; }; - 0A9DBEC8B5D7241CA7C019EF /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */; }; - 0B1357623F7E72A768B42865 /* es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = D1E37A53CE49826B04F4AD43 /* es.lproj */; }; - 0B1FCFCDFD11C211B210A83B /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */; }; - 0B3FCF695D5D413B70ED6178 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */; }; - 0B5CC4004358FE43BEB19BC4 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */; }; - 0B6C0CCA434D51078E039DAC /* UIViewController+XIBSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0C02DA37DC23E889BC399B0B /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 20E112DDB4AE54B73DE1336C /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0C61B768EA3C5845588195D5 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */; }; - 0CF1CC6E91822905E427C234 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */; }; - 0D1A373DC590235F813C6CDD /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */; }; - 0D455A540F1208658E387BF3 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */; }; - 0D9FE163730BFC28AF2A8571 /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */; }; - 0E3226F3116EC6833859B7FD /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */; }; - 0E90A6CB92646ADE18C880DB /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = 412CC4C8070F307CC821193A /* YapDatabaseString.h */; }; - 0ECCB7050A52DC2425D6A7B6 /* UIImage+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0F6CAA25A3F4F17AD757108B /* SFInjectionsNotificationsCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0F96F43BB182086FC34BB63E /* EXTConcreteProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */; }; - 0FA120DD932050587D67E8B2 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC39F1AD2E4583CE74D9C2B /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 11023D424D27EEACC6A7010C /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */; }; - 110F72CA40BECDB028624B13 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */; }; - 1158707815AA367832634F83 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */; }; - 11A68B2D1F0DD651E71F8290 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */; }; - 11AE5E3E769018CD73B6942F /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */; }; - 11F4C4C7950318CA15892432 /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */; }; - 1268E69AB127998241200F3C /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 66C92112F781616FECE24051 /* YapCollectionKey.h */; }; - 12DDD965846CEB2E30C4DFDF /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */; }; - 1393704B16C6C2F98E0911C1 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */; }; - 13A6A92C6511061D772EFCFE /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1400D058565D714ED4F6FAE3 /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */; }; - 145885C42ED68E062A79E894 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */; }; - 14DD4FEB056E3683E7FAA171 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */; }; - 1605A38ADF978E1402B7E819 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 162BCC6B284F1D323D6C178F /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */; }; - 165DE26398DCBFF6CDD32F60 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 19130D1EB925B80E2DA82E2A /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 199577487D34AFF3066F61A0 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */; }; - 1A85F8C5E8C215FE963ECEED /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */; }; - 1A8D8CC127563D53D1C0609A /* Blur@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */; }; - 1AADB49BA9D1B7CB4ABF6F20 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */; }; - 1AEE436CB3B043B5DF38077E /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D0609C4BB316F6C406515655 /* metamacros.h */; }; - 1B145ADB5BE1D50E2E085976 /* BITCrashManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */; }; - 1B51A4C3E72B77BCD9D1E6CB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 1BC63E22FF3860025424C1AC /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */; }; - 1C6F66A698AF6DF763DBEC34 /* Rectangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */; }; - 1C7BEE18E82F3E6D0AA497BC /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BF5F262FEB96CD07F5F3999 /* DDLog.h */; }; - 1D74412FA608B2E105AF99AE /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */; }; - 1DE3763D1115834749720FAC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; - 1EE0D8DBDD5632F652DFD0A0 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1F75360C0928A1A733F002E3 /* Pods-samhuri.net-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */; }; - 1FB65F9D59C8024201DF562C /* EXTSelectorChecking.m in Sources */ = {isa = PBXBuildFile; fileRef = B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2078B49093768B0674C1B482 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */; }; - 21145BB5A5458AACE3E5F80F /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */; }; - 21430E4CEC9F3975CDA10ABD /* BITFeedbackMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */; }; - 21DBACBFCDFA2B79D658C923 /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */; }; - 2322D7F800EF87EBEDA25406 /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */; }; - 2350DE4E6598E2F17470A721 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = A61395B78F311A97B3E1F8AE /* bg.png */; }; - 23F5A1C57238EE889C5D7F7B /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = AD94996C5ACAD93E2413FFF5 /* YapTouch.m */; }; - 23F91B9F7692CB33CD2E5A55 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; - 23FB52544E2C5EE3D635F748 /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */; }; - 245B96990AEE7EB650DC2F51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 25F476FB0AB40481D6C6A101 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */; }; - 261EBF8D0B18CE82E71C3FE2 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */; }; - 269EA710A2E2BA29BD12A2F9 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */; }; - 26F083E64ADEDC7CC839D698 /* UINib+StoryBoardSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 27CDF919EC3FD849DFD6DD2C /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */; }; - 284F2E5F437DB6893837516D /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 285BBD7615D84E9D03BD129C /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = E8487C0B60EDEB653E99C666 /* fwd.h */; }; - 2861CCFA65B2364D05AADC98 /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */; }; - 288CC222D3713C4A05440D85 /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */; }; - 289EBDC6156336AC042865AC /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 28F03C931C207959E591B425 /* UINib+StoryBoardSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */; }; - 28FE9672F83F5BB97074B2DB /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 366C30DD854276061F3DCE87 /* YapDatabase.m */; }; - 292B7ED5EFF49A662136C262 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */; }; - 29EEA30B90CC88EAD902908E /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */; }; - 2A643653ADC7A58DE971BC9F /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 6FAAC7962D183FFE47391AB9 /* fr.lproj */; }; - 2B4256CDE5E1D6B310E9C983 /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = 412CC4C8070F307CC821193A /* YapDatabaseString.h */; }; - 2B9882226432EDE4AAD6F9F0 /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */; }; - 2C450FD67EF5F1B5634822AE /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */; }; - 2CBAC348FD758DD87B318E35 /* Pods-samhuri.net-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */; }; - 2CE7893C33C84CA1E1203614 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */; }; - 2CF8CAF04F3CBE03E7DF0D1C /* BITAuthenticator_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */; }; - 2D100AA596363F640CFE3BF0 /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */; }; - 2D241C21A7B49C3A0502E6FE /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */; }; - 2D6EB6058B64544B06C9CD79 /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */; }; - 2D8A04FCC3E235ED7FC51448 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */; }; - 2D8AAF6B235B594A2C69994E /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2E6FA1D18CC45EF8167197DA /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */; }; - 2E9D875E8CB2A76737F34920 /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */; }; - 2EC7BD423507DFCBE95D8E89 /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */; }; - 2EDDB0FEA81328795D9606AC /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D607AD9649AF74B29019EE /* EXTScope.h */; }; - 2FD314275DCA95602CA02586 /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */; }; - 2FF65FDD87B8BB6EA51DD36D /* feedbackActivity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */; }; - 30A060B1E5479BC8D53810E0 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */; }; - 317CFEEDB2848A8FD409A50F /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */; }; - 31BB9492AFDA8C9999559AAB /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */; }; - 31CC509DA2B94A9AB24EF6AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 3353A6981718F60B7405D924 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 33593568E8FDEF06F0EE4A3A /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */; }; - 3362D47005F3E9BEA358352B /* BITRectangleImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */; }; - 33AC20898C1CE3354C460227 /* BITStoreUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */; }; - 34C8574A0944D9217BC56184 /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */; }; - 359A4D8615A1BA471317CFFD /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC39F1AD2E4583CE74D9C2B /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 361BAE6AF1C562D0A3563FEF /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */; }; - 3622839617440565AF702F22 /* Rectangle.png in Resources */ = {isa = PBXBuildFile; fileRef = 33E997B4175AFC16EB235986 /* Rectangle.png */; }; - 365115926027C6DB435E30D1 /* BITImageAnnotationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */; }; - 3656C525B641AE4813545424 /* BITHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */; }; - 366920F898A46F3636CEC345 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */; }; - 36B43E7F12DE5316B678B0D5 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */; }; - 373961A175C4802E0671D3A0 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */; }; - 37D6F17F83F29FCDD74A14A4 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */; }; - 38178C845D54C64115F572DC /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D607AD9649AF74B29019EE /* EXTScope.h */; }; - 381AA6E9C668B337B315BB41 /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */; }; - 38723DFBBE55310952E8AEB1 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */; }; - 38959F59DBB16864888169B2 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */; }; - 389CC7C595810690AC4F9477 /* Pods-Blog-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */; }; - 38D2050023F32C245EEB18DB /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */; }; - 395820EA4FAB28B3F7BC6CB6 /* extobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CEB319B56B9E9E04D27915 /* extobjc.h */; }; - 39AC0785B92DEED377498D5C /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3A213CE1F40C1E15730D7D83 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */; }; - 3A2ADA8C9FEA07027C8A59B1 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3AA768A534536F1DE32EA739 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3AC7A036D41EC442E21BEBD8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 3ADC96295CB0DAAD2965FE8C /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */; }; - 3AE3672685E458AFCD2F44FB /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */; }; - 3B19A007A7F625CBC793CC29 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */; }; - 3B4B26C28AE1D73FEA28E2C7 /* BITCrashAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */; }; - 3C6C547974CB5E15FC33305D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 3C7DC18908F9788ADA6D55D5 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */; }; - 3CB8598031796B218308589A /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */; }; - 3D4F37D9F38D9118298EB8F2 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */; }; - 3DC787265ABCF0140C76F59E /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */; }; - 3E8FE604ECF464D71FA66475 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */; }; - 3EA1CE7224EB298F5AFBC5AA /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */; }; - 3ED7969A67DBB1D88E8D0930 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */; }; - 3F0714F61A82801D3B8346D8 /* zh-Hans.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */; }; - 3F3B102105C9F3051E716C32 /* SFFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3FD1D46178BA8F6FDB797239 /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */; }; - 3FF5F8E65F95BDCDDDB1F156 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */; }; - 402DAECFE97E5C8EFA6945D9 /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */; }; - 40467043D018E30FB01BFC84 /* EXTSafeCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 40B521ABF127FC7E5593E545 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; - 40F24D23BFA2093652EEA35E /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */; }; - 416FC5318D61C6A173F56100 /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */; }; - 41D376E74F19FD5527C12DA8 /* BITFeedbackActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */; }; - 4210B239CB62DBB4FB86A42F /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */; }; - 425330D5F700D3B3705D88FC /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 427854E66C67F65C3D1EA58C /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */; }; - 427937CFB6233998DFEA854B /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */; }; - 4283E4F6A0F1CAEEDBBCD4BF /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */; }; - 42986754DD3DC2809C5D4F6A /* Cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B08CC53317FA226DE7E2F027 /* Cancel@2x.png */; }; - 434AAE7643238722D13447FA /* BITAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */; }; - 434B70DEB91169B805B19249 /* BITCrashManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */; }; - 43A65070852461DFA4DA0197 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */; }; - 44094B30260168D12A1B078B /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 19F462093848F17B8CD183C9 /* iconCamera@2x.png */; }; - 44ADB4A5E87F3D1730BA3522 /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */; }; - 44E3A069FB42F5C2B0D3E882 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */; }; - 44FA51EB9454715BB46D82C6 /* pt.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 443A2BFCCC45974DA1DE3843 /* pt.lproj */; }; - 450E107E389350939CF7B087 /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 45413FDBC6FA0D484BEBD67B /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */; }; - 4573E55737897CA4A8B39206 /* NSObject+DyCInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */; }; - 4585B286031DE9B7BD3FBEBC /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */; }; - 4596C8F591570BFEA8B0AA48 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */; }; - 4598CE7398E1FF82B9C7CE68 /* BITFeedbackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */; }; - 46691DEF1A42BC5159F2DCBC /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */; }; - 4687823C8703CA1976B569A7 /* Rectangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */; }; - 473D51590FA0313F20B086AF /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */; }; - 475599A3407596E54E462F7D /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E3B403889BC6F9D19D277C6 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 480694C8A95C4E79D3079EEB /* BITFeedbackManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */; }; - 488579FF3BCD2FC028766EFA /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 48F03942A12F6A3F62D63520 /* NSString+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */; }; - 48F5731B24D708A56ACAFCE0 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */; }; - 49012F1B75A8BD5D37C1A2E5 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */; }; - 4984E149B7D43CFE121BC83C /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */; }; - 4A0E4BE6BA3CAB01172A7160 /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */; }; - 4A90171444F708245C5035D0 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; - 4AB45D0E7A0D8DEF9AF5D009 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = E8487C0B60EDEB653E99C666 /* fwd.h */; }; - 4B4FF55EDF5F646C1E1F9E9B /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4B7F3462F67EE71A4C54BD5E /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */; }; - 4C181A8F8BAEB87A2996FE4E /* NSObject+DyCInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - 4CC7582DFA3FF4C144AF95E7 /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */; }; - 4D03BDD4D156EDD5D2697F30 /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */; }; - 4D32179BE8B1D2ADE6B47FC5 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */; }; - 4D527467D70C3490B4FC3A11 /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */; }; - 4DF590756D84789350D4C3DD /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */; }; - 4E6FF07590E89FD6811DFCE2 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */; }; - 4EC73B2A231CE6AECE4DDFA0 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4F609941BBD237787817E8D4 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */; }; - 4FA6084DE8490CF2F57523B3 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */; }; - 4FC37FAB2CAD2CBF8E6C2C07 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 4FD11552C1B4196908E81496 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */; }; - 505BC5D0E337D45624051A39 /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */; }; - 50AFD701C86ADD903692ECA1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; - 50B36EF3072ABF35FBF4CF2A /* BITKeychainUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4323EE31234804931D429D /* BITKeychainUtils.h */; }; - 50D332F8DC83743E5379CFF7 /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */; }; - 517164C704513EC46F5C4976 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */; }; - 51A009701BDA90D322D7405C /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */; }; - 51BFA2EF003121D2E7FE1EC4 /* EXTSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */; }; - 51DC872B4ED8A579377C6106 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 335E63163D0E30B59353F7C8 /* BITCrashManager.m */; }; - 51F60AC623006F2BDA43AB47 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */; }; - 532776CA91CE5870319396F3 /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */; }; - 53E1BFADA5A8C0CE6F0857DD /* BITHockeyAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */; }; - 540FB4623D9CC3EAD5AD7509 /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */; }; - 54BC32B7D3DA95EE77EF1B0A /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */; }; - 55028B4D13C905DCDE26377E /* UIFont+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 552DAF4220F1EA00AA650BC1 /* BITFeedbackUserDataViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */; }; - 555D9FF0F7CB80379897CBB5 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B569CC06E949026E572280 /* UIView+PromiseKit.m */; }; - 55719051D7D02B8246FA7900 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 55D4CACB09C4547053C91EDA /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */; }; - 5633BFB583198AD91B57F1EE /* BITArrowImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */; }; - 56ACEF1B02320380A3CA66DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; - 56D80D9E9CB69B60A1DCE653 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */; }; - 56FE7756F243B63EA920C1A9 /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */; }; - 577540BC2F4F36FC7C832E16 /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */; }; - 5793BDF913FCA4BF92073621 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */; }; - 579AE92578B43D89D1DC0ED6 /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */; }; - 57E08F67C686B24405B3446E /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 580D2B959BD536D3D1DE1F4A /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */; }; - 5827ED560814BA88E67AD96B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 583BBB9166B3F30C0EF9E5DF /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */; }; - 583F572EEB82DFD4ECB485B3 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E3B403889BC6F9D19D277C6 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 58BABC4B369A9DE271D55FCF /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */; }; - 598C9EC39DF87BFB5D3C98BB /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */; }; - 5A03B68F0651EE9C9A7837EE /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */; }; - 5A189CEEEC7BB376FAD14908 /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */; }; - 5A1BCB6C4EC6515869A89FC6 /* EXTNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 2739CFE5A18784673E3C8B0F /* EXTNil.h */; }; - 5A31C5CAEC23C52D2E3D22B9 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */; }; - 5B0E6B80ED57B5AF089A14D1 /* buttonRoundedRegular.png in Resources */ = {isa = PBXBuildFile; fileRef = 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */; }; - 5B91A7001ABDB0B159A6A605 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */; }; - 5BF63B7234D4618E25B3A5A6 /* BITAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */; }; - 5BFA0CEA175DA99F05710845 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */; }; - 5C74003B882E9EE86D060404 /* buttonRoundedDeleteHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */; }; - 5C93875B4BC69E96444A77E7 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5CBAC22A405697FC159750FE /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5D075462E1BA7190B488486C /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */; }; - 5D32CBDAEBF6DFF7CF6FDFB2 /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5DA58AB026D9D71F73694972 /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */; }; - 5DE003EB8D2EABDF00EDBB1C /* BITBlurImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */; }; - 5E0F27B1D5036867A5A2F90A /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */; }; - 5E165EAB71BAD19770E9C68E /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */; }; - 5E211EADC2486224298B17B8 /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */; }; - 5E2AD951CAED3666F1E0E552 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */; }; - 5E6EDEBDB09C191FFF81DBCE /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */; }; - 5EC3E64180520C60B09D7F3E /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5ECF79443E1FA2546A5AA388 /* SFFileWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */; }; - 5EDB1B6E6F9B3CAEA6CD8315 /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B40A12346A638AE5BB40D958 /* OMGUserAgent.h */; }; - 5FB4A07C3A86CFB75FFB5B0A /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 601AEBC0CC26A06CE5054A92 /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */; }; - 615A16B420E726DF0D0A3BAD /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */; }; - 61C6E2661145FCE200C552B1 /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */; }; - 623453C33714A3647C1AD783 /* Pods-Blog-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */; }; - 6250B782B7B1253D304D3C43 /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */; }; - 62A2B20FCBB09CBD1A4D466E /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */; }; - 62B04923FFF40CE24F3EB8D9 /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */; }; - 62B083A2D11DC5F8F831300D /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */; }; - 630BAF3F26F7AD6EDB919BD9 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */; }; - 631839B9B1D0246B828D86F6 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */; }; - 6358BA2C16CA8ED98E89FE38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 6368742B1BD0BB139888A4BE /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */; }; - 6395569F97880C12FA3D0BDD /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BBECDB2613259DCA4284788C /* DDASLLogger.h */; }; - 63CDDD3C015EDF2A5EC4AF61 /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */; }; - 6434E3693419EA71FA91FDB4 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */; }; - 644DA495CEBBC4AFC765F670 /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = CD30F7532A22486925B12E4A /* Promise+When.h */; }; - 64717D9CDE3304D3D6C20366 /* BITFeedbackComposeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */; }; - 64931B16F0AE64840E50776E /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */; }; - 64963BFF1B0E869CED1ED659 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */; }; - 649B0B8AD6001298455DE372 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */; }; - 64E0D3506B7F24C1B3A3AE8C /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */; }; - 653387A73FF2930AF73AA02C /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */; }; - 6544C3CEEC6D4AECD76DE69E /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */; }; - 65BE749C5D0754968E60F01B /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */; }; - 668D70CF2C0E7D460A2A1986 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */; }; - 66A53DDB931FB14CE1FB4798 /* SFFileWatcherDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */; }; - 66BBA89A9E0E00981CCEAD15 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */; }; - 66CB7AAE17ADE5F9DD0A415B /* FAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D59452232BBDB6A18E87B2F1 /* FAImageView.h */; }; - 66EEBA507EE8CF4E0EDEC037 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */; }; - 671889E6917F6D29DB501F29 /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */; }; - 6752FC9B469170B390D1E75E /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */; }; - 681315E8411ACB2BA91AC807 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */; }; - 687FA4BAB37C10816CCD5DD1 /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */; }; - 6882153A3E548486987B6684 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */; }; - 6888425F03EFAF28A0CDF167 /* BITUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */; }; - 68929EAD030DD651F793FE8B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 68EF378DD150B5E04FC26E03 /* BITCrashDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */; }; - 6906E61AD645DFC3BB5ED3D4 /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 696386EA4448035DB15647DF /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */; }; - 69DA3299B01517FF28DA3F3D /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */; }; - 69EAAFE5FA014AEA185B79F0 /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */; }; - 6A3688BB94FB4F874B59FC53 /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */; }; - 6A3BDEB85CDCD8627D29FDED /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */; }; - 6A854667DEDB6FE8C287536D /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */; }; - 6AA1896240A62E06D48D2A49 /* IconGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BA48468FA647EA7740B2237 /* IconGradient.png */; }; - 6AF53E7EE87CBB5EEFCCE4DA /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6B772D664EDEE75E3BE51A15 /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3308D7BDAB66931744762B7D /* DDAssert.h */; }; - 6BF3BE2FDFEA4673488DB5AF /* BITWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */; }; - 6C8A56EB97A83A0ED61F75AC /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */; }; - 6CA18F5BC87264BADBB06DBE /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6D89A1B0E087B0812CBA75EC /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 80C8E42F143FF516C3C9E62A /* YapNull.m */; }; - 6D8D81744C95AB10FBDEFBE3 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */; }; - 6DE4FCF743A42CD08C706A51 /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B40A12346A638AE5BB40D958 /* OMGUserAgent.h */; }; - 6ED1EF78B66DF426B0CA3BF1 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95CF93105862D466397FF4B1 /* YapTouch.h */; }; - 6F1D542369F35F9B8D9D640B /* BITAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */; }; - 6F30826BD6D4457F3044F1A3 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */; }; - 6F8FCF9CA86259577B0DA06E /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D09964036F500F44D0E6439F /* PromiseKit.h */; }; - 6F98BB58497A4B9F1DEE3BD9 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */; }; - 6F9DD9938002B65CA8FEAD77 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */; }; - 6FFF8EB8788895272CB3BEA8 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 700BB04BD818F0D75FEA716E /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */; }; - 71255373AD200D568D958BFE /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */; }; - 7143169542FD9DFA4C964994 /* EXTSafeCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = A94829669A15A21AC89295A3 /* EXTSafeCategory.h */; }; - 7307B08E5844A9C280225D90 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */; }; - 7308F09D2787A811C5AFAFE6 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */; }; - 733031B3E26DC1A8FB2E9EA9 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 56065D3D425D00854216D247 /* YapDatabaseViewState.h */; }; - 7332304751F927485FF1FD59 /* NSSet+ClassesList.m in Sources */ = {isa = PBXBuildFile; fileRef = 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 73B459739F3339772F6360A1 /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */; }; - 73BB30FA324B7E16D8DBB62C /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 740DAD7997A499D732640C6C /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */; }; - 74B0D181BC3C5825D0B62D35 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */; }; - 751DE155A8B203327ECB5412 /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */; }; - 7583066203DD70C7EAA9D5F4 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */; }; - 758EFA378869E03BA1331D3B /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */; }; - 75F431ABDB92F622987D93F6 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 764F5587FE34D7F5B6065AD0 /* authorize_denied@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */; }; - 7658344A7414E0854413251C /* pt-PT.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */; }; - 76A02CC857D744FD48EB75DE /* UIImage+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */; }; - 774018F361A8826FFC46914C /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */; }; - 776A3F9160B23B6624BEB615 /* BITFeedbackMessageAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */; }; - 77A4B9FAE356D6E0444D4416 /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */; }; - 783D661B13B6D0BDEB0B16C2 /* BITImageAnnotationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */; }; - 78629269CC95AF75A98BA19C /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */; }; - 789B61DCEF5173C23691E4F8 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */; }; - 78ACEE0A20CEDD3F8F40601B /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */; }; - 797EFA533450C1A24D6962BB /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */; }; - 799BFCD0F7659885C6FC80FD /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */; }; - 79A02A260804A3D90359F47E /* EXTADT.h in Headers */ = {isa = PBXBuildFile; fileRef = C762D834D70422D3F7A56BFD /* EXTADT.h */; }; - 7A07FEE90A4AAAEDF08B08F3 /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */; }; - 7A273F90EDE8BA62DAE5BD14 /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7A2E84C78A05AC35C7B2BF2D /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */; }; - 7AF3727C0E690BFB421D84BC /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */; }; - 7B0C3912E1436873C3C44F18 /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */; }; - 7BB21E6F9DF19119E80FBB26 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */; }; - 7BBE1FEBD8510E03E485BA86 /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */; }; - 7C721F95CC677F6F5DCA6F05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 7C81CFE32318324096C35F61 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */; }; - 7CB861D5F9CA795431CFDD6F /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7CCDD448F5931992C95CCF69 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = F5E14A083793793CCBE0A329 /* en.lproj */; }; - 7D80F20F4EB4FB34E9FA2750 /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */; }; - 7DC515A3EE6AADA3E5F784F6 /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BBECDB2613259DCA4284788C /* DDASLLogger.h */; }; - 7DC6588CE9B1E092EBDA1426 /* buttonRoundedRegular@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */; }; - 7DFF0727A308D78BC8736757 /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */; }; - 7E225C559075D23FBB7A9300 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = C807DB918DC08D171C49611E /* YapDatabaseStatement.m */; }; - 7E3442F187E50E964A514244 /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */; }; - 7ECC9886787400EC4BFB86DF /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */; }; - 7F2BC936C8B67D9EF6C931A1 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */; }; - 7F30B439BDDD34145F4E5AC2 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */; }; - 7F445E137F37282DAB5E8571 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */; }; - 7F46727943E4F2FE20E40D81 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 352DFB6A03780CD603976FCF /* YapDatabaseView.m */; }; - 8088B8B0202F8E1E9C30B8A5 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 80AA00517C1DD3C73A370372 /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */; }; - 80B1C9B2C6898B28A9C5EEE7 /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */; }; - 80C928E957F52C891A9D3AC6 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */; }; - 80EC7509382EC78D0F38DFC8 /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */; }; - 827C56E6150C97734E3A30FE /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */; }; - 82886CF9630AC1089504EE9E /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B45EBA63E234BB38D261731 /* Mantle.h */; }; - 82D2E92F92C65EECB84C4E13 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BF5F262FEB96CD07F5F3999 /* DDLog.h */; }; - 82FE11BE7DC92FC2FB89AFE5 /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DEB41BD56023A09D2ACD97 /* YapCache.h */; }; - 831D2D2382C0AB1F72F9136B /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */; }; - 8345BF366E7557F8E05F6DC1 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B569CC06E949026E572280 /* UIView+PromiseKit.m */; }; - 83A741FFD6E1EC529F193320 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */; }; - 83A9CFF8F9A884FBDDFD3526 /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */; }; - 83E306D53BE724A047656AA8 /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */; }; - 8403A27C9246AF1E4134B240 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8473DB69F033FFE1BD61A2F9 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */; }; - 84A955BCE4D0ECD0ECD55A0C /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */; }; - 84C83DD4E085AD4F463A4D2E /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */; }; - 84F08C0E6A8A643FB2DAED61 /* Arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */; }; - 84FE4BB023882C4BA6D15159 /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DEB41BD56023A09D2ACD97 /* YapCache.h */; }; - 8506ECC91995F0C425DA43C6 /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */; }; - 853D46F1F95D6100AA40EEA4 /* ja.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 34C9996FF9709CA210D8AF16 /* ja.lproj */; }; - 8583D4EE10F2F740EE5E6FDA /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */; }; - 85D4FD59C7DB2CB87ECCB1D5 /* Ok.png in Resources */ = {isa = PBXBuildFile; fileRef = 619FF75A6C351D8E5A76F150 /* Ok.png */; }; - 85F916C534BD8573E0F7F1FF /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */; }; - 8613CB3545379C7FD1977D3B /* BITCrashAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */; }; - 8622019213E0E3FC6061B855 /* hu.lproj in Resources */ = {isa = PBXBuildFile; fileRef = BA776DEBA98EB4903E84A0F8 /* hu.lproj */; }; - 862972EAC3F820ADE0AADFE4 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */; }; - 8650D67B04EC2D6E712043BE /* BITUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */; }; - 86CA29F91C4AC0969356038D /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */; }; - 871323991FE5F5FFD6D494AC /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */; }; - 8763048A0612B1FF06CC5DAB /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */; }; - 87F11CE08B023F5651F4142B /* feedbackActivity@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */; }; - 8847A1B446AAC234DB925200 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */; }; - 8882459B91CC68097797D8A2 /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */; }; - 8894CDEE2FBA7750422C3B23 /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */; }; - 88B4B17DA97B965289E882D7 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 20E112DDB4AE54B73DE1336C /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8934915D4D6C3D23FC95F2F3 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */; }; - 89837DE07B8D50E2967E08CF /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */; }; - 898BC7757444DDEBECA373A4 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */; }; - 89C6E7572F747013402F5A1F /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */; }; - 89DF1053D652C0B1F679B0EE /* EXTSelectorChecking.h in Headers */ = {isa = PBXBuildFile; fileRef = F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */; }; - 89E8A947D1794ED8B0C8E479 /* BITFeedbackListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */; }; - 8B6C818C7895116F3B241761 /* Pods-Blog-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */; }; - 8B8AF19E5E5F0A59377A0892 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */; }; - 8B9C4F2BF9E756BA37302392 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9D8A4B26B7D42DBB165638 /* YapSet.m */; }; - 8C0304B1E956A02CA1F24A3F /* BITArrowImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */; }; - 8C32F918D6D612BC41C5B6A1 /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = F15DAE4BDB915BFE7508024F /* Promise+Until.h */; }; - 8C5D36EA4BC591FDB0F5C74C /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */; }; - 8C911A745C6DA439B13C6FAC /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */; }; - 8CB0F6FF3E9092A1AB0B2BE8 /* buttonRoundedRegularHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */; }; - 8CBC883ABA6A9E3085B4661E /* IconGradient@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */; }; - 8D046694D1A081870958CDB6 /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = AD94996C5ACAD93E2413FFF5 /* YapTouch.m */; }; - 8D07713A62FB6E134CBFA406 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 815314C99E35FEFB96DA5AF6 /* Security.framework */; }; - 8DD3E4B84B235A8CB16CC419 /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */; }; - 8DEE065E2B7CAD5E788F1694 /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */; }; - 8E089D738485289A17AFECD2 /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */; }; - 8E921E61567BD1B92D638D04 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */; }; - 8EDA4199C7735C4146F437CA /* buttonRoundedDelete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */; }; - 90041268DFE7C8F87BA91B4E /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */; }; - 9007A7616615F565555E2BA0 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */; }; - 901CA4AC78AB32DF69EDFDF3 /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = A07DB2BC98BD53CB96177A33 /* Promise.h */; }; - 90F3950E82004FBA135FA363 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */; }; - 916FA8188A6AB953F2C06DAC /* BITAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */; }; - 91EF5504E6574D52DD312CEA /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 681E61D4F1C8003DD0002889 /* MTLModel.h */; }; - 91F699CB1C420F7842DD2ABF /* SFInjectionsNotificationsCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */; }; - 91FD0C7D348ACC2E46B05E8D /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */; }; - 9223213B27E53C6F69F52DA1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 922ACAD8060EA4EC493BAA3E /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */; }; - 9322F9A2E84D46E192713159 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */; }; - 93888661913AD24E3C314598 /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */; }; - 940ECE21F4090FAAE6BB22CA /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */; }; - 94656B2F30C95BA0905B5154 /* BITCrashDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */; }; - 94BE78190C2737277185520D /* BITActivityIndicatorButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */; }; - 94FA2A6F3DC028A304A21992 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9D8A4B26B7D42DBB165638 /* YapSet.m */; }; - 9518B22BF6A2A231D2BE822A /* Pods-Blog-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */; }; - 9586D351FD73BEE55101F1C9 /* BITStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */; }; - 963A64E58652D08395E1936F /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */; }; - 96BD0DB909C007F67B126DAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - 97B74CC70B829946B13F17E3 /* nl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */; }; - 97DD7C404140AE8D8DED2058 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 97E987F1C4F17F3D5A74C95D /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */; }; - 980635C99D0DF6BBA01D7856 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */; }; - 982FA86CD51AA95CAB005FD8 /* BITCrashMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */; }; - 984D3CDA6C07C0A399389D91 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */; }; - 98C56FCE7E336DDDBEB49861 /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */; }; - 98DAD8C91E4529FB901F5C95 /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */; }; - 997034C78D6AAFCEBAD7BC41 /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */; }; - 9A5B83B6C06DC274004AB490 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */; }; - 9A7854060F3E36645049D448 /* HockeySDKPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */; }; - 9B561F93CA12F9072CB37AF9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; - 9B59F86BA9F768A81C49CBBC /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */; }; - 9C43BD57A7426F926D045B82 /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */; }; - 9CF06A762903D205D94AA832 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */; }; - 9D06FAD78D74C34B91F70852 /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 66C92112F781616FECE24051 /* YapCollectionKey.h */; }; - 9D1618374E3D501D81B7233F /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */; }; - 9D357C0F7073E1E9BE272EFD /* BITFeedbackActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */; }; - 9DA9CFE746A849295DFB48D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; - 9DBA31DA0CD1C09106B208BA /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */; }; - 9E7DD7013EB6125BD59875C2 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */; }; - 9E8A9AA837C273BEA3FEBAA7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - A04C371A0971E9E638C8BDE2 /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 681E61D4F1C8003DD0002889 /* MTLModel.h */; }; - A0848DE5BAAD072C4651E215 /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = F8FEFB0BE1417D56700D9213 /* YapNull.h */; }; - A0FE850D3229835DA9756834 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */; }; - A12D84242452D283C235BAE9 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = B278467453160CB24D460AD6 /* Promise+Pause.h */; }; - A13437D57E7A71A77FEBEB73 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */; }; - A13CAE22B770870B02B0B8E2 /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */; }; - A14B7B87F47F19B3BF0BC680 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */; }; - A172DAA1DB4F2FC3EC1CEE6E /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A1AA7C746A3072BD08516811 /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */; }; - A1BDF09AF65D51C554B6435F /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D09964036F500F44D0E6439F /* PromiseKit.h */; }; - A1CC3AF0ABC198B87F8FF0D7 /* BITHockeyAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */; }; - A2678042952310D845833CEB /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */; }; - A269E128175C6F7FCFBE9733 /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */; }; - A2DBEB4E00810B592139F133 /* BITImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 425EC32991B418837B39D218 /* BITImageAnnotation.m */; }; - A398B0DBE5E86833CE90CD70 /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */; }; - A3E94F8CCC95879939791BEB /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */; }; - A3FA4A2F448BC016D2CEC949 /* BITActivityIndicatorButton.h in Headers */ = {isa = PBXBuildFile; fileRef = C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */; }; - A4B9FD3521B5843A1AB2924D /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */; }; - A4F69FB9CE18A4661093A112 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */; }; - A5747F5018A04396D1E7FEE3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; - A788B096C915DC19D42B0F70 /* BITFeedbackManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */; }; - A7938EC509B19FE98CD10386 /* BITWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */; }; - A7979F9C335EDE66E0D1C954 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - A7A0E01AE163188134A979C2 /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */; }; - A821C231AC63CF86F4CDDB12 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; - A82B9ED1F21314B3BFA84FCF /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A881F12A458473DF371A8028 /* Blur@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */; }; - A8F640CD9D925CAD66622F5B /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */; }; - A93C678956C3752DC11B509D /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */; }; - A95BF160FEBA39DAAAC7BB76 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */; }; - A9AAA5B9FA7DE93E709EDDC3 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */; }; - AA15C0454F552086C9F1FB29 /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = CD30F7532A22486925B12E4A /* Promise+When.h */; }; - AA78BC6660368041E95EF420 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */; }; - AA9C222864395D5FF8D0D592 /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */; }; - AAA9154621C4A2E8FB3B9526 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */; }; - AB574A6FE2D290A2BEA921F8 /* NSInvocation+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = 3166B01856C436331247B5BB /* NSInvocation+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - ABA5450142B1DAC6957036D7 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */; }; - ABD7706A209D7EA86F6E6E2C /* BITHockeyBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */; }; - ABFBD203808A4652E07EEE63 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AC1C85229F443E5032CE7443 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = C807DB918DC08D171C49611E /* YapDatabaseStatement.m */; }; - AD2C505211E4DF6C7AA26590 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */; }; - AE71429AA5039309561B5F1D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; - AF0976C67DC3152D1286CB7E /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */; }; - AF3486C5A77741D359833389 /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AF579D9221ECBF19AC1B2604 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */; }; - AF6C6F9B878C7A58A3CE84E3 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */; }; - B014C53F2219834356EBD3F5 /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */; }; - B0165E23FA6EE8302B6F7412 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B0A283E04CEAB953EBB6B873 /* BITFeedbackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */; }; - B0A66639B169D040F0A8721A /* BITImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */; }; - B1EF4D2D4FB5293EBCFBC361 /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */; }; - B2923E26CE834BF21760A7CD /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B2A1754FD9096B0C3FA42A2B /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B2C3342C6DED21C9A650E041 /* BITStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 20282B8F4754BE7E220FD707 /* BITStoreButton.h */; }; - B2F5837E394A77DFCBD7FDB2 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B3022824E71311EFFCB57FA0 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */; }; - B3126AA24860874AAB14F8E1 /* BITHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */; }; - B3BBA13966BB53F5D1763D39 /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */; }; - B512A8252F38FE4F5BA78F7C /* Arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5BE2F353665128803541EB57 /* Arrow@3x.png */; }; - B51CBB4674694292C35A335D /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */; }; - B6DEE5F88CFEAE169D08B021 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */; }; - B77722ED6A2D6E40FEF92E49 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */; }; - B7A93FC86C23255D9741BAE9 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */; }; - B7EE93409B9C21C2030E5819 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */; }; - B8134259D7BDEEFD32ADE0EA /* BITKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A353569B80DC3431CBB4045F /* BITKeychainUtils.m */; }; - B8623D92EF31A40195E01591 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */; }; - B8BFF08D923FFBDDF4BE4D45 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */; }; - B957E7C5BE895D082D2F3418 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */; }; - B96BB4A3DF7731DFB9ADD606 /* hr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = EFE57D9EBDFF786697CF0917 /* hr.lproj */; }; - B98DA984CA435F01D6FC8C96 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B99E1E0DA55482F0FB464C0F /* feedbackActivity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */; }; - BA5A0A3C4C9B5486854E3050 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */; }; - BA92F2405732E56D9E8681C7 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BA9BA6C2AC5A32232432F068 /* buttonRoundedDelete.png in Resources */ = {isa = PBXBuildFile; fileRef = 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */; }; - BAE7E0181F4F75AD9B36F492 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */; }; - BBC6870371DE9523ACE5921B /* FAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DA3911803CC22752770CDC2 /* FAImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BBFA611B5899BD31E6C6A6C7 /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */; }; - BC9E1A83A4441DD6518B68D4 /* BITAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */; }; - BCBC22418AA5B6573FDA41C0 /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */; }; - BD792E05FA3C20DE5E9DDE9E /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */; }; - BDCCDDEB669974D1E5451394 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */; }; - BDED5A65178DD6F26EE22702 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; - BE000D04A0CD2A046A72B76D /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */; }; - BE7B4E8437E1E3BD69819816 /* UIViewController+XIBSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */; }; - BEA8DA57F45AD22B78240250 /* NSMethodSignature+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */; }; - BEC7C66A9177BDE4390FF9C2 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BF3C336E70524B3495DA7FD1 /* BITFeedbackMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */; }; - BF4B2AA89C162F318F0F228A /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */; }; - BF6318467D8559861283D70D /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */; }; - BF705940E1642E4E74AF0FD8 /* Blur.png in Resources */ = {isa = PBXBuildFile; fileRef = 52973E9BB77DB4E7F8C497E2 /* Blur.png */; }; - BF986F9A15D38D498F720B81 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */; }; - BFC567E760BE5DA7DFC7DC18 /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */; }; - BFEB1F8A16D0E9951F158D20 /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */; }; - C003FF13CF64B5761E21BDE0 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */; }; - C0B4A6B9147CB6FA5B028316 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */; }; - C10C710998A7CC222D129869 /* Ok@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83B614F52437F53C5C14CC23 /* Ok@3x.png */; }; - C15D2747F77D28D04B37535B /* Ok@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 126FB1A7049C4691143B6656 /* Ok@2x.png */; }; - C1684BEDF2DFCAAAA29C0576 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C19503EBFD338DF290A1E989 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 352DFB6A03780CD603976FCF /* YapDatabaseView.m */; }; - C1D1B30F61DCF89923E7E1E3 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */; }; - C255F60342A6B2609C1CEF30 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */; }; - C2A1BC28E21BE77D71D087BB /* Cancel.png in Resources */ = {isa = PBXBuildFile; fileRef = 42B8A6E679CAADE1D110DD14 /* Cancel.png */; }; - C2ADB4E8E535BECBCF148362 /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D212ED7F0BC4815B93AACF /* YapSet.h */; }; - C3313F7A2EBD21A7E104381B /* NSString+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C332AEB9E70BE6E212C33D50 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */; }; - C359F74AB9028E62A66EF35B /* BITFeedbackListViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */; }; - C3F947D4818229BA9F033CE2 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */; }; - C41D5A6FF08A83DDF516A174 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */; }; - C42DDEA440B46D9055F13F66 /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */; }; - C4DF98A27146DEDC01A53D55 /* UIFont+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */; }; - C5BEE63A7107EAD96DAA07F7 /* de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 6FECC3F313145297F55198B3 /* de.lproj */; }; - C634C280C4300E6A0C646E49 /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */; }; - C718C00357E2672EBD89EA63 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = DB4997275289D86523E96F96 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C81133360E8D319060FBEED9 /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */; }; - C851783905ACB2F7B703B8CF /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */; }; - C8D92AE7FEADDCA0B6B02FF2 /* EXTNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C96644955BA8E5B39C0091D6 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C98B439DD05FFC242D9453B0 /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */; }; - C99A5422607A850076E62283 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */; }; - C9A0BA6AFF44D8615F71C34E /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */; }; - CA1F75DFCB6C263F5C409A62 /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */; }; - CA44149FDA7E001D8557F476 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */; }; - CA54A939953D38E6875C9F42 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */; }; - CA65A28CAFF5EC09FE5A96FA /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = F15DAE4BDB915BFE7508024F /* Promise+Until.h */; }; - CA7E6B9D12EB45507D57ADE7 /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 366C30DD854276061F3DCE87 /* YapDatabase.m */; }; - CA7EB85F1C5BC4A194991562 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */; }; - CAECDBED2DAF84D91AB11274 /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */; }; - CB223926804423E49A5A5824 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */; }; - CB6EB8E9AEDD34BFEEABA58D /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CB741F35A014C8782AC2C09D /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B45EBA63E234BB38D261731 /* Mantle.h */; }; - CB80BDDEBE5EDD21B081FF0D /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */; }; - CC94D4E62080E0E7A881E9FF /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */; }; - CCC6FB8BC3D520BFDCC5980F /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = A07DB2BC98BD53CB96177A33 /* Promise.h */; }; - CCECB14FCAD9E1C9AE39EBAE /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */; }; - CCFF0C75FB7C1BF8CD126172 /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */; }; - CD6BF96754FE8FEBDF321ED1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; - CD7F9FB609D89A8D7196C3E9 /* BITAuthenticationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */; }; - CDD92A2DF8FB0BD53B4F756A /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */; }; - CE0611136FB578FDE0886C25 /* BITFeedbackListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */; }; - CE1CAA8EA4FF0F486029B2A8 /* EXTConcreteProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CE58430AB89390ABBCF35F0B /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */; }; - CE6FFB3A0C3F65F28C85E628 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CEAEAB81E42E26684819274F /* NSSet+ClassesList.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */; }; - CEC123A0A96AAA404038A3E7 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */; }; - CED1B21879C98CBE83335C6A /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */; }; - CEEE97BB9DF57CD8CE115A23 /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */; }; - CEF13BE513720692B3374883 /* BITHockeyBaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */; }; - CF31C80DC4D60D9823D67D48 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */; }; - CF60BCA8ED25838E30023121 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */; }; - CFE4FB2A7155A6A0F4275A3C /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */; }; - D04AE730F72A5FBC1C5BCA4D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - D0BDC6C49431A2AEAFF31AE8 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */; }; - D0DA6DA208E47E90E094CE42 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D1241EBB44BFF19F6BADEA49 /* EXTADT.m in Sources */ = {isa = PBXBuildFile; fileRef = 55BF87C50521DCFA948B4BC4 /* EXTADT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D1E4D8171EA543C83D8C4424 /* Pods-Blog-dyci-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */; }; - D21C0627F7CFE3D4EC8F382A /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */; }; - D2443038E946268CE02AD0BA /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */; }; - D27DD77FD9293B9642A273D5 /* BITFeedbackComposeViewControllerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */; }; - D31A9C4B2BF571D22C36414A /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 801D1290FA2159F94FA473CE /* HockeySDK.h */; }; - D39F02FC656D57FA59879EF1 /* BITCrashDetailsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */; }; - D4A513047BA2ECEBF30C8801 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95CF93105862D466397FF4B1 /* YapTouch.h */; }; - D4DCF83CAF0B4FBFA18FC8D1 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */; }; - D4FF339DF867ACACDEBD6DA3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; - D5020E7ECCAF04DC38D5DB1A /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */; }; - D685A4AD682893037CEDC033 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */; }; - D78216778E9E8942F2C61DE7 /* NSMethodSignature+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D7D60AF37F12D611B7FEE13F /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */; }; - D7D91F271089C77B03C34BC1 /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */; }; - D7F3836685955E380B72CF15 /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */; }; - D80B06453EA858A3B621F472 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */; }; - D81761F971BFF9691A2D1AE2 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */; }; - D87B42B1DA6746B18BE9FA5B /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */; }; - D8AD9418DF748B0FE90F1301 /* NSInvocation+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */; }; - D9052A1F0B123A8347B408CE /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */; }; - D991D06118598EF884808CA8 /* BITUpdateViewControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */; }; - D9FEF2C5B7D68840E84F70EC /* BITBlurImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */; }; - DA3EBFB7F35B0B139A169092 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */; }; - DAFF879CA18F3C2D56EC8C47 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */; }; - DBA8839126A6661F16D62E95 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */; }; - DC724855ECB5AB6A836F101B /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D212ED7F0BC4815B93AACF /* YapSet.h */; }; - DC79C0BD7FDEEAD775BC259A /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */; }; - DC8A9F87DF3E68A27379A1D6 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */; }; - DD336455A1A189E6ECF74E72 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DD4B5AB58F9360D382B0B83D /* Arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = C63C6B4830C908886C0A3DFE /* Arrow.png */; }; - DD9AD0E008DB1711174D26D8 /* BITAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */; }; - DDA21D12A0B46FC9015F5D44 /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */; }; - DDC7BDB224936824E3D7CA11 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */; }; - DE59FE7DA6AFF5DF6EDF08FB /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */; }; - DF33978E0A200D57CE119DA4 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 56065D3D425D00854216D247 /* YapDatabaseViewState.h */; }; - E00F55EF439E7B61B60E1AB1 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */; }; - E01725E9CBF7A1F36D4C460D /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */; }; - E026C8A4AC598768FE6646E6 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */; }; - E05CC058D20BC6F5B9D62748 /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 80C8E42F143FF516C3C9E62A /* YapNull.m */; }; - E102D296B3DBF58F3C2F8DD5 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B703A6BEDE896B8C431D62F /* CoreText.framework */; }; - E19390CC74CBB7D5D1AD6001 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; - E1AAABEFAB34CCF4388D1ECE /* Pods-Blog-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */; }; - E23A19858A29C197C4201CE7 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */; }; - E2687EF644F9D897D01DA634 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */; }; - E2DEB55BDD022D8EF1585105 /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */; }; - E3017334E173182B2B606B96 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */; }; - E324CCDEA9AE70CE5D92597C /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */; }; - E377A242856FEF1278D86FD8 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */; }; - E3BA482292B60E0D073C5181 /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E4B7DDDDA99DFC8D50A6C820 /* SFDynamicCodeInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E4CAE5157E74CE9E11D04C23 /* BITAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */; }; - E53793B47F8328B5DAE4D95C /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E5A316E2DFDD5301C5D8357A /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */; }; - E619955A59DB1672D67519D8 /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E6D403BFB899C113772B89E3 /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */; }; - E72AF258DE71961AE3DD016F /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */; }; - E77C60B27E7B98B039C64B53 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */; }; - E7B7C236D37160B9631C3B40 /* buttonRoundedRegularHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */; }; - E804560DB814B5D3EB6B575D /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E87CC9E89F45FC44EDC38DCE /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */; }; - E894908D76BD3E691C1EF8E4 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */; }; - E89B345DA7F5A8875053B2D9 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E8D37034F6D57E4BF9E8644D /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */; }; - E8FF03ABFEE352DCDD126C5D /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */; }; - E988E94B1BFB115C47CF3544 /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */; }; - E9D61300A119B987410CC635 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A3446FBF50420B4587F51D /* BITHockeyManager.m */; }; - E9F3588DA566EF4AC45BF937 /* feedbackActivity~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */; }; - EA3D19F46458DA82EA8C8997 /* BITRectangleImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */; }; - EA4B6634105544D9DB3DC7F3 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = B278467453160CB24D460AD6 /* Promise+Pause.h */; }; - EBC7A5F91EBC266F144248E3 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EC2F93AF6B37D9CF08790017 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */; }; - EC7888F313861EB2A3C15930 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */; }; - ECB6019CF2F87810C457E0FB /* authorize_denied@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */; }; - ED3EE4D4C3FE7BD9EE6A6442 /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */; }; - ED513D17AA917975C45E1DDE /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */; }; - ED71612B7E5C55E67A9CD3D7 /* Pods-Blog-HockeySDK-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */; }; - ED9A72EB0039788CD9058FCB /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */; }; - EDA79C4FDC5687095A2D5D0C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; - EE02BFE1C460EFEBE6CA3BE2 /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */; }; - EE45AA7E08DBC9A4CED4079C /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */; }; - EE65ABFA13A107278BC930DA /* BITHockeyBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */; }; - EE9088D88A19811D9C62959D /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EE9DB7E03B202EDF18A7A42C /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */; }; - EEB73E1655A4EC59C8CB3553 /* buttonRoundedDeleteHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */; }; - EEC59969A820ED4750677479 /* BITFeedbackUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */; }; - EF87829D14547703BD95F3DD /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A023FC3597928617A456E3AB /* HockeySDKPrivate.h */; }; - EF91452CAB580EB7873357AB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; - EFBD9718309DF9AFD4DA807A /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */; }; - F02543E2AEB22EC50BF27DE8 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */; }; - F028B587A53814CF348686C3 /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F061D4A9F32D5A3FF8A91431 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */; }; - F09A545BFC9446E16EFE3C14 /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */; }; - F0F8BD75ADEA165EC5C5BA4E /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */; }; - F12A0F2DB5D2C27F5BE35875 /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */; }; - F176870EF14BD5CB6A604EB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */; }; - F1E77F9CD684689D26275238 /* Pods-Blog-libextobjc-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */; }; - F25835FEC33F5B39AAE8683F /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */; }; - F43CFDA9CD6D48DD1556F35D /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */; }; - F50FCC6AA419D64EE2DE6324 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F5BF817F6ED18C282E8586D2 /* BITHockeyBaseManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */; }; - F5CCF21A0EE9AF0C160E25B6 /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */; }; - F68E476BAFF734CB55FD91EF /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F692961C9F213BE5DAB6091F /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */; }; - F6AEBC821E8F7214BC4600B8 /* BITHockeyAppClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */; }; - F6FD2FE35E0FBD0F0DCDADCC /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */; }; - F744EC8F7FAFBFE901A35FE8 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */; }; - F7707861D956A53A688A0324 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */; }; - F7744DD06EF3A1B61F182190 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */; }; - F7875444042582062E71C77F /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */; }; - F79A5AE91BA6CDA685EB5437 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F7A2B4505D30D65D46AC0935 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = DB4997275289D86523E96F96 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F7F38349537CD19B790CCB36 /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */; }; - F8462834ED0701ADCA869ABE /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */; }; - F84ABBB0D60951D7EB17C87D /* authorize_denied.png in Resources */ = {isa = PBXBuildFile; fileRef = D9611CD8143D152BA4AD4E90 /* authorize_denied.png */; }; - F85255D94410C962AD2B394C /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */; }; - F89D31ADC8AE7DE3B2699165 /* BITFeedbackListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */; }; - F8BAA0756F5686504C6BCE6D /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */; }; - F94637285D72CDD0A26EC1FF /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */; }; - F9603754229CEF292F09B37A /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */; }; - F9DD594C2C8E9F080B6718B5 /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */; }; - FA399ABB945E98BAFC788309 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */; }; - FAAC642C0461EB6E3C43C411 /* Cancel@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */; }; - FACFADCC24B5EA6164BEED1E /* it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = B280C102D9EA5CD778F7B27D /* it.lproj */; }; - FB00DB9CF67C9C17A9C83F10 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */; }; - FB26F51901F0A66030885D2A /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */; }; - FB4CEAF4FC10A4D31A53BB58 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */; }; - FBF07A65853F1C5C30DA0597 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */; }; - FE19FE2695E36056439EA90D /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */; }; - FF36B4AC9ABF8E175ED2364C /* iconCamera.png in Resources */ = {isa = PBXBuildFile; fileRef = A948FC7FF58BAB60A6134B4B /* iconCamera.png */; }; + 006014E8BA5E146790852651 /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD68BB8AC0A4426E4BDC2F33 /* NSDictionary+MTLMappingAdditions.h */; }; + 007278E80CBA8C820245A624 /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = ABF0A3DC6F7B3CACB365F9E9 /* PromiseKit.h */; }; + 010C43C0C8FE5FF7081A4B05 /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D21CF6343452B39D1F23F1B /* Promise.h */; }; + 02633754BEC86A4F5E795473 /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 95CABBF84686B359A2A56DFA /* YapDatabaseSearchResultsViewConnection.m */; }; + 02786E4B720F6D434435860B /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D5DCA01F10BA4FD24940BA39 /* YapDatabaseManager.m */; }; + 02ADCB553DD47E4646F86D03 /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 430D4015B66A6348BDA4A4F0 /* YapDatabaseConnection.h */; }; + 02AFF858DA0710AEFFC6DF6E /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = D88DB7DBE67FC1348C3F6B49 /* YapDatabase.m */; }; + 0319D5DD94F3E60566F24917 /* EXTADT.h in Headers */ = {isa = PBXBuildFile; fileRef = 5557F5C3B77F20BF3593DB8D /* EXTADT.h */; }; + 031C84CD5A30E56BD6529ED3 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B04DC02A616720F04639C4C0 /* YapDatabaseOptions.h */; }; + 032F04B47E08177E89894B88 /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2CEA1E36322DE7B613A202 /* YapDatabaseRelationship.m */; }; + 0422704034C841151B327CDE /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = B4131255F51100E365966084 /* YapDatabaseFilteredViewTypes.m */; }; + 04717018D4BB0ACC4D3A47B4 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 97CBC90A4DF603F4642B501D /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; + 04B3BFEAC12701CEB402B352 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 96D258030D8724E7DD74EE2B /* MTLJSONAdapter.h */; }; + 061D18DB081A57C5BB6A7ECD /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DABCCCE8BEF6206FEC25A8 /* YapDatabaseSearchQueue.h */; }; + 06B765C1758D5850F18ADEF8 /* Pods-Blog-dyci-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A0DE404418DCA421BB2D73BD /* Pods-Blog-dyci-dummy.m */; }; + 06C3A76D147A2AC4E13EF8A4 /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C49C83B7CBE18A300CC153B /* Promise+Until.h */; }; + 0730F110A40A070913B76842 /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 93728C71A367B7E37DBB6B0B /* Pods-samhuri.net-ObjectiveSugar-dummy.m */; }; + 07854F33F97884AB8C85C5FF /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BCDF5200733F01F4DAD9DEF0 /* DDTTYLogger.h */; }; + 07AAE01179AF45A20C9B3F7F /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D8CD90FA4FA233C2CAD2C63A /* YapDatabaseRelationshipTransaction.m */; }; + 083C4BE99D67E441E0B153CA /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 778D01A67F28AF1084FF534F /* YapCollectionKey.h */; }; + 084509E4D2B9CA784E8BF901 /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 13DC1E5D42291A5555C0596C /* YapDatabaseSearchResultsViewTransaction.h */; }; + 086FB68FA39CB67E2C3D3969 /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 111EF94E1B337F4F35737B12 /* YapDatabaseManager.h */; }; + 08923DB1B91EE706A8E6D870 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = F898E608C33F24CA436ADC22 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 08F9BEBEF81DC5B71FB90F1D /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = F68712B855461DE60CD93549 /* PMKPromise+Pause.m */; }; + 0AB091CC22DB23E3356D5854 /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0570976EE6011FDCF1AF731D /* MTLModel.h */; }; + 0ACC5AF85E6039FD3CF0BDA6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A57B60FBD9273517143A70E /* CoreGraphics.framework */; }; + 0C30A3B3557014EBEC953D5F /* UIViewController+XIBSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = BD2E52552669B0C25984F3EA /* UIViewController+XIBSupport.h */; }; + 0CB9CEB24E2CAABF48B8BDFB /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = C9F19B9E01BF8A9412971806 /* YapDatabaseViewState.h */; }; + 0CC94FDEF06D2D5E596D7CC4 /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 1012ADBA1C1EE5F67AEFAD07 /* MTLTransformerErrorHandling.h */; }; + 0CED95A3956815A0DD5AB5C5 /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AD60F3E0EE18BE2A402E9E6 /* YapRowidSet.h */; }; + 0DA555FD0B7ED69EDAFFC6D7 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 87A8D4DE46F2CD9E3C04A3C0 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0DB9499E2E0D820F7FF3FAB7 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 7788EF603DC253CBF8E59AF4 /* YDBCKChangeQueue.h */; }; + 0DF4D044968DCB38B604CF77 /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = C45A2DD65FDC2446D33AF32D /* EXTScope.h */; }; + 0E21193252EFB3269B721A38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 0EE86BDF3F95F3942BC58D7E /* FAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 019860EA86E3333754A118CF /* FAImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0F120D8ABAA1509C2558077B /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = C1C5DB95EA609317C04605CD /* YapDatabaseRelationshipConnection.m */; }; + 1124D7F5F97A3139D672D6AA /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = A737617288D47BA2C0BBB0C4 /* YDBCKChangeQueue.m */; }; + 114FA638E77F616B6886BE8E /* Pods-Blog-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F27518FAB6467FE1B8652143 /* Pods-Blog-MBProgressHUD-dummy.m */; }; + 11A26F8A30F0A98FF7FD6AC2 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = F739B9F1A5AE759A708258F7 /* MTLValueTransformer.h */; }; + 11D3DB1C1AF12EB21F485DA2 /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 41E388D3FBC015C89D28232B /* YapDatabaseSearchResultsViewOptions.m */; }; + 143FD0210608AAA8BA2E8DEE /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 696FF7236D9F0771565477E9 /* Pods-samhuri.net-PromiseKit-dummy.m */; }; + 14A784E715FF62D5C956E3B9 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B3433CB1EE6BEBCB7E37C3F /* YapDatabaseViewConnection.m */; }; + 15BE0FEF1625BDBABCA0BF3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 15EEFB712F6EC6BDC730E01F /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E1C98CB22AE52D72D3F0B6 /* NSNotificationCenter+PromiseKit.m */; }; + 16437742B83F1FA1D351689C /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C3A3C7112DF62ECE234290B /* YapCache.h */; }; + 16F63546E3BFE2B1110D9EC8 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 394775BD9716A6B922F8A83F /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 17135209101B3692C47CF6E1 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = AD8AF9D13D293D65A2F409AE /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1720F225D461895EBA71E5ED /* NSObject+DyCInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B2CF78D15A198E07CABE7B5 /* NSObject+DyCInjection.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; + 186F3C7A5E9C26879C50A770 /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = F83DEE8A947BDA68520686F4 /* YapDatabaseRelationship.h */; }; + 189A003F771416F88D0E97B5 /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 74517E5BC04CB8182F1D2C73 /* NSArray+ObjectiveSugar.h */; }; + 18C31E5E04863C2AE8DDD614 /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EA0BD2E14D672C4B8DFDD3 /* YapDatabaseCloudKitTransaction.m */; }; + 1910E7DB5E87334EA305A450 /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 927C5BCB782CA2932CD848E9 /* Mantle.h */; }; + 1940B206E5A0FD6F8F38076F /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 76FD5D7EFDF79BEA0BEF9CFA /* YapDatabaseFilteredViewConnection.m */; }; + 19BE41899EDC487AD72CDE6E /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = A737617288D47BA2C0BBB0C4 /* YDBCKChangeQueue.m */; }; + 1B7DD697F81240BCD743B5A5 /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 95CABBF84686B359A2A56DFA /* YapDatabaseSearchResultsViewConnection.m */; }; + 1C59F0ACDFC00FDBE1B75228 /* EXTSafeCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = D6E1CD7FF0796A95407C305D /* EXTSafeCategory.h */; }; + 1C809FC222D3A1520C34C7FA /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B503A4E186A9191477A20CA /* YapDatabaseRelationshipTransaction.h */; }; + 1C9BBF50F4C2A8835328BEE2 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A32FB475DAAC023A8148381B /* YapDatabaseSearchQueuePrivate.h */; }; + 1CEB1C5D30301ABB38B73B22 /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 76FD5D7EFDF79BEA0BEF9CFA /* YapDatabaseFilteredViewConnection.m */; }; + 1D028BC22CA9BBC9844B31C5 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AA76D10F70500D6C8A292BA /* YapTouch.h */; }; + 1D1A8E4C9F745A2C3D00462A /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 13DC1E5D42291A5555C0596C /* YapDatabaseSearchResultsViewTransaction.h */; }; + 1D5803478D837C5A0598B890 /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DDEB84C888037D165734ACC /* NSDictionary+ObjectiveSugar.h */; }; + 1E4A2E38B1E56E82E623541C /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F1EEF1C23F92ACAEF73177EA /* UIActionSheet+PromiseKit.h */; }; + 1F346EE4794618A1C330F696 /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E9163A016BD340ED9A0634 /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 201FCF857693BA92943ED9D0 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E5997C4BAA1458169BC29AD /* YapDatabaseSecondaryIndexHandler.h */; }; + 207BA94CAE841F27162DB969 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 208AE1FFF710E8C2CFFF683F /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0570976EE6011FDCF1AF731D /* MTLModel.h */; }; + 20D68B7EDDEF04C31E0A99B5 /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = CDFCFC54DD78EEB487B45A97 /* YapDatabaseExtensionTransaction.m */; }; + 21CCB37AF35FCF90607A5405 /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C8B493B1F1A9E6D0D32180 /* YapDatabaseViewOptions.m */; }; + 225BF167691AD0316F83158F /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DA88510D1CF1CE9D997D6D1 /* YapDatabaseExtensionConnection.h */; }; + 226B768E2BC94148CDB1336A /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CE1691FEB2D19356A30BD8 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 227B3270977A75328BEF0CF7 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 11882F3D1AD5DF4975C370A1 /* MTLReflection.h */; }; + 237B6176D5063A9DD5BAC07F /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 46AD077D333F4613956EEA81 /* DDAbstractDatabaseLogger.h */; }; + 23F02225D0D0ED4B95510D9A /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0C708FBAFAF8AC567299B9 /* NSObject+MTLComparisonAdditions.h */; }; + 2431F68F6FF540D20DA92FDD /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 626C35BAA2E88342B363467C /* OMGHTTPURLRQ.h */; }; + 25910731450BD56237C7C83A /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = F58373D9AD906CA4AD3B263F /* YapDatabaseExtension.h */; }; + 259E9F70BEDBD8A604937A6A /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 0705765BAAF575E1289E3DFF /* ObjectiveSugar.h */; }; + 25C0259C09E112763E0242BB /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = A26A0935B16D5511AE97006D /* YapDatabaseViewChange.m */; }; + 25D33C7CDBDEB7BA24F5AB5A /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1680A5EC3A9255C890754A /* YapDatabaseQuery.h */; }; + 261779FFF9B031970D4568DC /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = EB0844151A9D59AA6785F0AC /* OMGUserAgent.h */; }; + 267BC540C21D4A46E67CF1A3 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BD2329311D8F12C2CB4E2FC /* YapDatabaseSecondaryIndex.m */; }; + 26E584CD89E60FBB38FA60F2 /* NSMethodSignature+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = 3570A27E1912E4317E2CFD78 /* NSMethodSignature+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 270881A8F2A8DE5D31DF9DBF /* Pods-samhuri.net-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8318CED5C521567ECE7B24BF /* Pods-samhuri.net-dummy.m */; }; + 273AA8F68577AF87862B5493 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDCE51A72DF7193ED439B80 /* YDBCKRecord.h */; }; + 2751397BE7471979E228787D /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 626C35BAA2E88342B363467C /* OMGHTTPURLRQ.h */; }; + 27879A81FA9B1B24EEEDE85C /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 607A55B125779C00F3796B8F /* EXTKeyPathCoding.h */; }; + 279607AE7751C183A1388CB2 /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D0AEB84C3555ED9C8396F69 /* YapDatabaseViewPrivate.h */; }; + 289A7ADC898C9857A555E4C7 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BE346B79FF72450AD8610995 /* YDBCKRecordTableInfo.h */; }; + 29A42FF7EFE251E3E6577F85 /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 271D15C867DCC0A2602FFD5A /* YapMurmurHash.h */; }; + 29D34725F1D248782A351FD5 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E868E720F4575CE9CDF3F013 /* Pods-Blog-CocoaLumberjack-dummy.m */; }; + 29E38942118D86C2C6C7776D /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA637BF494DC7153595C6E1 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2A1382079B9365B735B368EF /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BCDF5200733F01F4DAD9DEF0 /* DDTTYLogger.h */; }; + 2B1428A962D3064BFC40FA9F /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 893A1E71C1504C1FBA6191A5 /* YapDatabaseViewPage.h */; }; + 2B18E68AB3BD67922E89FD53 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04E151C4A03CCA86A696FD88 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; + 2B966CEBA07DA3C9D9BD627A /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 21A3C088DD2D75B6DD5428CC /* metamacros.h */; }; + 2B96DD075ABD7A6D68AE83E2 /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DABCCCE8BEF6206FEC25A8 /* YapDatabaseSearchQueue.h */; }; + 2BEA55B4B150722724C5E7EF /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA301CED7FB7D2E5F754B85 /* YDBCKMappingTableInfo.m */; }; + 2CA58B9FEE2DDB8B14BA1F23 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 115262744791CBF66600635D /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2CBD93F7ABB49EB5E3F1638A /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B3F208E7DE573E799DCD212 /* YapDatabaseRelationshipEdgePrivate.h */; }; + 2D15FDE0CB8F92DAF7FFB025 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5FA03A2434E4CC7808C13E /* YapDatabaseViewOptions.h */; }; + 2DBA8B7F1A563A609F1E3B16 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 2DE4537F242303C013DA5930 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 115262744791CBF66600635D /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2E0D68F7A717BB188A46856E /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = 7520ED68436BF156BCAA46C7 /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2EADA69FBB6852A9F28FC81F /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 7261D0799C416EE07379F2F7 /* YapDatabaseQuery.m */; }; + 2EEBC974CB111F7BA056C3CE /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = A07201523D9CE6A220594FF6 /* YDBCKChangeSet.m */; }; + 300BC6EF3F7EB02ED00F4984 /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C55F4F424EF263A307FA8780 /* YapDatabaseViewTypes.h */; }; + 304506059C008D23D4AB92EA /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BED57E963964C10055995A23 /* NSDictionary+MTLManipulationAdditions.h */; }; + 305CE45F3B7FE3084D481F4E /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A4864FDF80B8A6F2E394419A /* YapDatabaseExtensionPrivate.h */; }; + 313093AB994C291025C42DA7 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 018B635C2A7387D2E8746B59 /* YapDatabaseViewChange.h */; }; + 31667140EC6F5613A6A7C724 /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A0C3F88247BE87206E00A5C7 /* YapDatabaseRelationshipOptions.h */; }; + 32820AAD33F6306AE8280FBB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 727395CC1A9030F8730CBDAD /* QuartzCore.framework */; }; + 32945A9B4907285F73E7C8C9 /* UINib+StoryBoardSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 6391C9313BB6D62E89094BA3 /* UINib+StoryBoardSupport.h */; }; + 32D384F45CA1DE51F00DDFB0 /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = B6974179CA89116FBE359EAC /* YapDatabaseSecondaryIndexSetup.h */; }; + 331C03B88AC3EB727D5FC9E3 /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D97919B9ACC34331670C706 /* YapSet.h */; }; + 332163BF23EE294BABFB8DD5 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1A9F7C77AAA7FBA688BD0C /* YapDatabaseConnectionDefaults.m */; }; + 3475653C37D300E5F83F1998 /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CCAEFBD810088779F9102E69 /* YapDatabaseSecondaryIndexPrivate.h */; }; + 34DE1B34863D026C8A352CFC /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC6BE3683E6EBECC7ABD956 /* YapDatabaseFullTextSearch.h */; }; + 34E484D317F42980F95F8153 /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 680E7B48A7FB11E735021FD2 /* YapDatabaseViewPageMetadata.m */; }; + 35040D7098C065D3ED577614 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EC49C1F2D5045D414D79FA3 /* DDDispatchQueueLogFormatter.h */; }; + 352AA1FC697BB22015BA2B09 /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0441D72DB21FA8E7477E6462 /* CALayer+PromiseKit.h */; }; + 3575C47D5F548CFF8C88E7DE /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = 74368F30159C4791083968EB /* YapDatabaseViewMappings.h */; }; + 35799F6993AB86F9EDF876DE /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF068D02E1A7453F2475E2D /* YapDatabaseLogging.m */; }; + 35A70834B17E958C659A051F /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 7261D0799C416EE07379F2F7 /* YapDatabaseQuery.m */; }; + 361838378A8F46808D480B0B /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 028D43A0D9937EB44BE357F6 /* YapDatabaseCloudKitOptions.m */; }; + 3705413FEE7D656182FA308F /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD6DC1B0227D55F92AEFF7B /* PMKPromise.m */; }; + 37340D8CF5C8D263382D5D22 /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF5CB1CA85B850BC5D9BB60 /* YapDatabaseFilteredViewConnection.h */; }; + 373BF0884E8220A443131BDC /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 51D4598E2D6D1CDE33BEEB7E /* YapDatabaseConnectionState.m */; }; + 375DF8FE0CFB2D4BAAB4D15D /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 550FDFE8B11958BDE7993708 /* YapDebugDictionary.h */; }; + 38D1268A437E93189F46CE00 /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A493307163E90210CEAC2763 /* NSValueTransformer+MTLInversionAdditions.h */; }; + 391149480C5DC86B5843C234 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 89958C5C350197F2AFAE9B1F /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 39E79385E85025F0F3FE54D9 /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDDF22F8C266EA03F3A5A63 /* YapDatabaseConnectionState.h */; }; + 3AEF1572EAB6436374FA60DC /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 139C78E6FC222EA96A7EAC5B /* YapDatabaseFullTextSearchPrivate.h */; }; + 3C13AAA2B6D278E3EEF15A7C /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = AA73766412FFF96C9C50B150 /* MBProgressHUD.h */; }; + 3D1996FADAED4C52ABB78EB6 /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BB4648950DE909E252E7936E /* NSArray+MTLManipulationAdditions.h */; }; + 3DEB91287F5A260DFED43371 /* NSString+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 9149C3FD759DD1854F6588AD /* NSString+FontAwesome.h */; }; + 3E0E541EB549F19B55413A1F /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = CB02B0138F7473DFA25F5DD3 /* NSMutableArray+ObjectiveSugar.h */; }; + 3E83ACAC80069C361F95C6C7 /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2269B0009C2BB71CADDC3BEA /* YapDatabaseCloudKitConnection.h */; }; + 3E9E37F08781622ABEFB3352 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = ACDDE4884088550E97172FBB /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3EBA11B2D851FF2E67CC8A8D /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 069A1E878EDD2439935FF6E0 /* YapDatabaseFilteredViewTransaction.m */; }; + 3F13336C24FF42CAD5468E12 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F2FB8360E38D885677E0E81 /* YapDatabaseCloudKitOptions.h */; }; + 3F3FF90091495BAB92CD1D47 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FF68E79B1F8BB4D1B7406A8 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3F4D70189053051210DFF045 /* UIImage+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 702214069E0992DB33BFCB87 /* UIImage+FontAwesome.h */; }; + 3F6CB2638B1102879450DA01 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2748CEA180F7803342F7FAD7 /* EXTRuntimeExtensions.h */; }; + 3FE26BEB0B262B7C14A7E993 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = F4A5E660EFC85E32D48DD290 /* YapDatabaseSearchResultsViewOptions.h */; }; + 411F9813592B8F94B63B3971 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 448A2ED3857676BE02DD33ED /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4142005E118F0C37B8372BFA /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AF2B2E0A81E0DD9796D8A97 /* YapDatabaseCloudKitTransaction.h */; }; + 427879C3866A9CCF9B0F8607 /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE7CB4A86FA1575C30CF09F /* YapDatabaseTransaction.m */; }; + 437749733AB27A80C4C63E2E /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E861C217837964BA989E22 /* YapDatabaseViewConnection.h */; }; + 437ADFADBC8D58931185FD07 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ABD42B673212827FC5E81A5 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 43B4F4DB6A1086E9F4690B44 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 11882F3D1AD5DF4975C370A1 /* MTLReflection.h */; }; + 440328D881351DFFB147A166 /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 463BF6DA8C1A27CF33CDB663 /* YapDatabaseViewTypes.m */; }; + 442E0B3BEEC7B700B7DDB11C /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C25C18EDBCFB3E906BEF2A8 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4482A974917D24DA146F4631 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 875CABB27D093345C39A37B9 /* YDBCKRecord.m */; }; + 44A4E86908B0174DA5A67369 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 14A523023A6DA314A88773A5 /* YapDatabaseCloudKit.h */; }; + 44CA5BDED05BF4254DC32F01 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDCE51A72DF7193ED439B80 /* YDBCKRecord.h */; }; + 4506F91EF2D3222F684A59C5 /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AF5275CEEEF926AF0DB2B3C /* YDBCKRecordInfo.m */; }; + 45412CC2BB5D213FB67BD039 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F157F7A3BB5A8B5C2F8CEB /* fwd.h */; }; + 45823C01A4E5CD396D4BA721 /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B695DFFFDB25BE7116B2087 /* YapDatabaseSecondaryIndexConnection.m */; }; + 45CA6E2ED4475F6CD60F9170 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1AC70B2E6F98BAFDE91815 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 46408695ACCE12C9AE77A179 /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = B4131255F51100E365966084 /* YapDatabaseFilteredViewTypes.m */; }; + 4659C206956E794BF2D52606 /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B26003246FDBD5BA627380D /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 46819BDD105D897F2082EFD3 /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = AD8D9A5807D7E5A062CBD709 /* PMKPromise+Until.m */; }; + 46AF1E6F49A604A67B688408 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AB6BD7C6483216C4ACA18FC7 /* YapSet.m */; }; + 46BBE3316611C849E8BDC609 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 65F175D40C5348F45F2FC008 /* NSDictionary+YapDatabase.h */; }; + 46E2284FF1426253D8FF1C83 /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 1012ADBA1C1EE5F67AEFAD07 /* MTLTransformerErrorHandling.h */; }; + 46EE0143ED3BE1A0DA33EB36 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 473EEBC2FEAD1ACEDB48D4C2 /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDC2797360DF3158A0767F /* NSNotificationCenter+PromiseKit.h */; }; + 47653146227DD367FB93579F /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF0B93BAC605F17004F6CD2 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 479C203C5A6EF2A71ED86BB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 484C4AF0FCFB815E2DF5E36C /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = E25CD85C4DE585411AB566EA /* YapDatabaseViewRangeOptions.m */; }; + 488F3C30C467E0CECAB8D1B5 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = D964FE09DE68BCB5D20E0401 /* DDFileLogger.h */; }; + 489796E03BBF60758C999AF7 /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 121F6E2F3971D6843C6C7744 /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 48B3644075F7F42AE543CA0F /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F12A1E40F2507C889FA5D333 /* NSURLConnection+PromiseKit.h */; }; + 48DB89271690922B6BEF8A8C /* SFInjectionsNotificationsCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D8D2403436A868469FEAC58 /* SFInjectionsNotificationsCenter.h */; }; + 4967312EBEA6FE1F0269A8B0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A728A7038B93F49C1AF580CC /* UIKit.framework */; }; + 4969840CA0A65C9A397507E3 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0512709CBCE950CD01019FB /* MTLModel+NSCoding.h */; }; + 4A9F5467AEAAC1A5679F82DE /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EC49C1F2D5045D414D79FA3 /* DDDispatchQueueLogFormatter.h */; }; + 4AA2473D3E0128BDE06E27C8 /* EXTSafeCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 58ADFF30E4FDDFA9F54968B1 /* EXTSafeCategory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4ABC3F5F3B1DD6F42E434E38 /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5595B3E63E77218798DCBD /* YapDatabaseViewTransaction.h */; }; + 4B3B179E367295DEE5EA3C67 /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C524B6F27EA326EBE7A0C3F /* YapDatabaseOptions.m */; }; + 4C9F2D62B8A88D90830E0962 /* SFInjectionsNotificationsCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = ED427B33FA9860A3A82FDEE1 /* SFInjectionsNotificationsCenter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4CBB569FE2F1D2ECD4D8DD7B /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F82D7B599BBA652983F0F0 /* YapDatabaseCloudKitTypes.h */; }; + 4CEE884E81983CB5CA7231D1 /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 51D4598E2D6D1CDE33BEEB7E /* YapDatabaseConnectionState.m */; }; + 4D385D0024B8677644573246 /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C06CAE726289F6445467F9A /* YapDatabase.h */; }; + 4D849158D2C1D5A2847CD985 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA637BF494DC7153595C6E1 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4F18D530D7864D2414DCA153 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3E27A330AA369572FAE3AF /* YapMemoryTable.h */; }; + 4FD83C988DD7F0F1E402EFA3 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A6B32A18EB5D6189C25B4DF /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5035100E79F4E8312104305C /* SFDynamicCodeInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4173459AF3169992A1637415 /* SFDynamicCodeInjection.h */; }; + 503993297A03E5D2DE2CF539 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9209F135A52FADB5ADE74A71 /* YapDatabaseViewPage.mm */; }; + 50873E2A7EC32DC7E6037DD7 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 43ABE9ABED87C617D8D80E2E /* YapDatabaseFullTextSearchTransaction.h */; }; + 50A1A829C08984B62AC98236 /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FCB3936FB7DF989AEF2A47B /* YapCache.m */; }; + 50E6DF64BE6D1F22B8D8D4CC /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = B28B0047E7244D0F9DCC0A2F /* YapDebugDictionary.m */; }; + 52279138C2472B6B20F02713 /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C8B493B1F1A9E6D0D32180 /* YapDatabaseViewOptions.m */; }; + 52713D11702C5A23384A9318 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = F71A5C3CA2C0B9B5496E3593 /* YapMemoryTable.m */; }; + 52942D0DB9200F027FC747D4 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1AC70B2E6F98BAFDE91815 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5316265ED08A3A1D0884375A /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EA0BD2E14D672C4B8DFDD3 /* YapDatabaseCloudKitTransaction.m */; }; + 5353E669066413FFF3B5BE31 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3103FCC5031A2FC97D9BC5BD /* UIViewController+PromiseKit.h */; }; + 53916A496A04EE86A624AB9C /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 028D43A0D9937EB44BE357F6 /* YapDatabaseCloudKitOptions.m */; }; + 5397E81AA7113C812E9BD6C8 /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 3426675EE4D4FAFE7AFFA942 /* YapNull.m */; }; + 53ADF8F88ABBC0A41689371B /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 91DF1E461B85883DB27A4E6D /* YapNull.h */; }; + 53B1C1CA62630A4A4896AAD1 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 018B635C2A7387D2E8746B59 /* YapDatabaseViewChange.h */; }; + 53BE664DEFC604F98EE55123 /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = D88DB7DBE67FC1348C3F6B49 /* YapDatabase.m */; }; + 53DAB50F296179AE1D291BCD /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7DE22D0718DBF5998961F6 /* YapDatabaseFilteredViewPrivate.h */; }; + 54AB5AE2A43063BB6337888E /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A00D5299252C011CC473FCA /* Promise+When.h */; }; + 54BCFC0905B254A2C7B694E3 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = CAE5CF5EE3A6B7929D509FEE /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 54C2F5F9E06DF8A7F4FBD69E /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DDEB84C888037D165734ACC /* NSDictionary+ObjectiveSugar.h */; }; + 553E3738F415EB22ADBB548A /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DD68BB8AC0A4426E4BDC2F33 /* NSDictionary+MTLMappingAdditions.h */; }; + 55AFE33137C0EBE5DDAD4825 /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 893A1E71C1504C1FBA6191A5 /* YapDatabaseViewPage.h */; }; + 55C39A9BE5BCDBCB9B3B0B45 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ABD42B673212827FC5E81A5 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 55D688CA026F8CE000717C91 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C1353326DB9842825BD81A7 /* YapDatabasePrivate.h */; }; + 569E8C68C6256D94551F2C1E /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F60AF673DA4C939545D0F7A /* DDAssert.h */; }; + 5736C8BB86579C0C6CC04D69 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E17C94312100A6A34609501A /* YDBCKMappingTableInfo.h */; }; + 5770DB279B3DC5BF3179BC04 /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE843FE97312C580966579D /* YapDatabaseSearchResultsView.h */; }; + 589417946D005158189C08BD /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 5565B6D59A778DE079752FD9 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 58FDB5919E15700B45A3DA70 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A64AB9C063419461BB0FBEF /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5932B9C275E2C6A29984AEB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 599A604600B977E6C2859526 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F18A8ECF8D6A5847C4D5795 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; + 59CAAE2877DB0BEE51FEDA24 /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1C7EFC29224158A569516A /* YapDatabaseFullTextSearchConnection.m */; }; + 5ACB8C7E43CBD127D43D0B4F /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 06A342A54EE29B38F9E7653E /* OMGFormURLEncode.h */; }; + 5ACC40FFA06D6E21E30433E6 /* EXTConcreteProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 751A30C904130798C32E5FD2 /* EXTConcreteProtocol.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5AFF13E92E364D95AD74B8FC /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EE00BAAA10DFD6C99B73AA /* YDBCKChangeRecord.m */; }; + 5BA44F98E6683D719B9919E4 /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 271D15C867DCC0A2602FFD5A /* YapMurmurHash.h */; }; + 5C42394FEA83F4D3056D8D4C /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = E4DD695693E021CEBD152CA3 /* YapDatabaseSearchQueue.m */; }; + 5C77FF5BB5CEA5B2CDBADDC2 /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 41E388D3FBC015C89D28232B /* YapDatabaseSearchResultsViewOptions.m */; }; + 5CFB125C9057C2EE0BB1BDFF /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F9E39F49069861FF25457A /* YapWhitelistBlacklist.m */; }; + 5D6179AF54F053FC28F1B846 /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = B28B0047E7244D0F9DCC0A2F /* YapDebugDictionary.m */; }; + 5DA84A25B3381BECEF1E43AE /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3103FCC5031A2FC97D9BC5BD /* UIViewController+PromiseKit.h */; }; + 5E37DC76E4B761DEC6155D81 /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = CDFCFC54DD78EEB487B45A97 /* YapDatabaseExtensionTransaction.m */; }; + 5E84678DAFA724F767109DD2 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1A9F7C77AAA7FBA688BD0C /* YapDatabaseConnectionDefaults.m */; }; + 5ECEC553E00DC82C73844C9C /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 65049D2D974535631AB3E5A4 /* YDBCKRecordInfo.h */; }; + 5F271A96FBDD391AC18CD4FA /* UINib+StoryBoardSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 32AE252D43E9E7D203A02B6F /* UINib+StoryBoardSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5F57DD1876CAEA3136825153 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 5F66C750002B6F6DC079238F /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BED57E963964C10055995A23 /* NSDictionary+MTLManipulationAdditions.h */; }; + 5F7A59C20F0C4934A646D9D9 /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B11DC33D0CCD5E3444F804F /* YapDatabaseSecondaryIndexOptions.h */; }; + 6006BA9E0193C97294FB6B93 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = A07201523D9CE6A220594FF6 /* YDBCKChangeSet.m */; }; + 60790BDC445EDA4A4FD5B085 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 490F82B1624BDD41BFA7EF52 /* DDMultiFormatter.h */; }; + 609EBAE172E5291FF297E99A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A728A7038B93F49C1AF580CC /* UIKit.framework */; }; + 61F77877B13AF32BD043E9F4 /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE18A8BF148A6607B8465DD /* YapDatabaseRelationshipPrivate.h */; }; + 6216BF22EF586574D5419DE8 /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 2638C55815EA16F59D32BD4F /* NSDictionary+MTLJSONKeyPath.h */; }; + 6221D0104115BAA59DF79A8D /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D499CE6B6D895B99724A365 /* YapDatabaseSearchResultsViewPrivate.h */; }; + 62CBBED80E15A3BD22DB9EBC /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E9666EC9C43D3A469AFE76B5 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 63A8079967F6D5B82630ABC1 /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2269B0009C2BB71CADDC3BEA /* YapDatabaseCloudKitConnection.h */; }; + 647C024C22AFAF28054DFD35 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E63A8662DE2283DD7A2109E /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 64CA4D42E316A68C32E2BC56 /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = EB0844151A9D59AA6785F0AC /* OMGUserAgent.h */; }; + 65777D51585F1E40950F4A57 /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B11DC33D0CCD5E3444F804F /* YapDatabaseSecondaryIndexOptions.h */; }; + 657A4925313C510FB0406EB5 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7CF4688A3F7F3C9CDE8E70 /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 671AA13C202600F707D7683A /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 1721AB8249C341DD71E46ADA /* CALayer+PromiseKit.m */; }; + 676D6AB9FBE98793BEAA3C40 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0544571D18B51B563C648EFC /* YapDatabaseCloudKitTypes.m */; }; + 67A01F4B45A0398599F94485 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7CF4688A3F7F3C9CDE8E70 /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 682F62E5283445D884DD9D3D /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CD8E79BCC9B16D6CA1B2281 /* YDBCKAttachRequest.h */; }; + 68A14302852771112B6B66A5 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 568E96CB7C9284802B29EF28 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 68CCE238E65D95598442DED4 /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A493307163E90210CEAC2763 /* NSValueTransformer+MTLInversionAdditions.h */; }; + 698B2D60E58670FC8391D1CF /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DA47CC2FA06F627843677D8 /* YapDatabaseFilteredViewTransaction.h */; }; + 6B1B0210FE9A3F1DD4227409 /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 322824FC9722D13BBC7CE737 /* YapDatabaseView.h */; }; + 6BA87A783EEBB0E773C32190 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FFD76B30B1ECC79A05E174E /* DDASLLogCapture.h */; }; + 6C91FB79139DC218D81853D5 /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 483FF0E9205BE6B1A805D6E2 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */; }; + 6D30EFAD1140528611A25A89 /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFF45978CB15C2083B1F5AD /* YapDatabaseFullTextSearchTransaction.m */; }; + 6D638882CADBC1CD79F89864 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A57B60FBD9273517143A70E /* CoreGraphics.framework */; }; + 6DB614B123D1A2DE45629DFF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A57B60FBD9273517143A70E /* CoreGraphics.framework */; }; + 6EF564DBF7F55238BE5695F0 /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEF71774D45E3A1EE052688 /* YapDatabaseStatement.h */; }; + 6FF14434934256F943FBD020 /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 65049D2D974535631AB3E5A4 /* YDBCKRecordInfo.h */; }; + 70B3FDABCFC197AD04D6A1E7 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 051235799B7032D47E39867E /* UIView+PromiseKit.m */; }; + 70D789013E6BCCE797C2BA10 /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = CFAF5D08020A121DA15433A5 /* YapDatabaseConnection.m */; }; + 7108F83809D90C5A48695066 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FFD76B30B1ECC79A05E174E /* DDASLLogCapture.h */; }; + 724EE0A7ED089CBA13467B89 /* NSSet+ClassesList.h in Headers */ = {isa = PBXBuildFile; fileRef = C0766591699F17E76E7ADD05 /* NSSet+ClassesList.h */; }; + 72844365118A5F509D202921 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 97CBC90A4DF603F4642B501D /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; + 7294BFE6AACD8F1F41826E48 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 568E96CB7C9284802B29EF28 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 73EC3492CA749A2CDF6301DF /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A2AAE231859CDB7288DDB6 /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 73FCEB917DBAFFEFC4958B67 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 448A2ED3857676BE02DD33ED /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 746662E1073998EC3410F768 /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A4864FDF80B8A6F2E394419A /* YapDatabaseExtensionPrivate.h */; }; + 7477F8F6442374C3FE8D524F /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DA47CC2FA06F627843677D8 /* YapDatabaseFilteredViewTransaction.h */; }; + 7505A518CBE27FED4F96F2CA /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 550FDFE8B11958BDE7993708 /* YapDebugDictionary.h */; }; + 75A46073731A296E8BE5C1FD /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AD60F3E0EE18BE2A402E9E6 /* YapRowidSet.h */; }; + 764FA53827E760593EDF6727 /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF5CB1CA85B850BC5D9BB60 /* YapDatabaseFilteredViewConnection.h */; }; + 76F5354BB7DEC08D30EBD320 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C25C18EDBCFB3E906BEF2A8 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 773CE065818BB92B220E3BC6 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EFFE5B4A09FA24BA7BB9DE4 /* YapDatabaseLogging.h */; }; + 77847A4E1E5D914B8FEF1F92 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E1C98CB22AE52D72D3F0B6 /* NSNotificationCenter+PromiseKit.m */; }; + 795C2E621AD9E723D5B09D41 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CE1691FEB2D19356A30BD8 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7A62BAED2105AF82B304C5C7 /* extobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 38635682B66EAF250E54FD97 /* extobjc.h */; }; + 7A6CBF8CBFB20965072E7CE1 /* Pods-Blog-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 41003AB92985EC0D28B719B7 /* Pods-Blog-dummy.m */; }; + 7B6AF4502D05199E261B62DC /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CA970E765A796F9AA9E3388 /* YapDatabaseFilteredView.h */; }; + 7BF7AE5B55528AAB475A6557 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 2971F3289A76979FCF97BE78 /* UIActionSheet+PromiseKit.m */; }; + 7C00EB68FE53CD7F0E94063E /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 621D3194E797DB4C590CE5BA /* YapRowidSet.mm */; }; + 7C29F2A23656D02A1AE0EC6C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 7C4EF536CD6FCD7850D153A0 /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F846FF1FD33FD6F959657DE /* DDASLLogger.h */; }; + 7CCAE77D3451064F88345154 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = BAB47E6E5EA2646070AD0D8B /* YapDatabaseSecondaryIndexTransaction.m */; }; + 7CD8843AFE086468FEFFF3EA /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE7CB4A86FA1575C30CF09F /* YapDatabaseTransaction.m */; }; + 7DB76AB912D57937EAA22C0C /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C1353326DB9842825BD81A7 /* YapDatabasePrivate.h */; }; + 7E5A7246FA09A51E98ADBA0C /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFF021E9C2C5F614A43FB876 /* YapDatabaseSecondaryIndexConnection.h */; }; + 7E73003B1AC7C2962567E8D9 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E8859B22B1954BDB4C0ABB02 /* NSString+ObjectiveSugar.h */; }; + 7F7F00CB343149CFA3096C69 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD6EB482887E90278BBEC38 /* YapDatabaseViewMappingsPrivate.h */; }; + 7F9E3AA572F8CA18A64E72D2 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 14A523023A6DA314A88773A5 /* YapDatabaseCloudKit.h */; }; + 7FB69A82894AF7D29BC4812A /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5748D5EB761180E83A2F36C3 /* YapDatabaseFilteredViewTypes.h */; }; + 802C253CA91538E2E0E7F99F /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B7B9A6FF39635B81E45A4B /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8038A3415F61A562837C9D6F /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B290C83771E877663A34F2D3 /* YapDatabaseExtensionTransaction.h */; }; + 8315C4D535C79D0D9D319E90 /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 07629F896665B1DF6A6BE3B1 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 83767E226A63945F9C31C693 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 618CBDC6E4D9429F7BD1871B /* YapDatabaseViewRangeOptions.h */; }; + 83C16C1BF38CD5B13D968774 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FE59F63E87AA199B09DE4E86 /* NSSet+ObjectiveSugar.h */; }; + 84620A8EBD98706B8EA49BFE /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8D9861CA1A71E165BD9F19 /* NSNumber+ObjectiveSugar.h */; }; + 8466A08591303857CAB7B219 /* SFFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E235285A6EFDBFA22F6BAFA /* SFFileWatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 84D10AF87CF9B0CDB761C0F8 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E63A8662DE2283DD7A2109E /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 85DA74609FFA49D69504AA15 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F157F7A3BB5A8B5C2F8CEB /* fwd.h */; }; + 866BECB952024A9ABB0CB589 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 0705765BAAF575E1289E3DFF /* ObjectiveSugar.h */; }; + 8723F07E8977751EFA8512EF /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 07629F896665B1DF6A6BE3B1 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 87B0BFF3D48984DDBA43C5FA /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A64AB9C063419461BB0FBEF /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 87DE6875FA51B9C9088FC439 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = A26A0935B16D5511AE97006D /* YapDatabaseViewChange.m */; }; + 88018EA5F607B560E90527FD /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE24DAF5D5487D463D087B0 /* UIView+PromiseKit.h */; }; + 882A9080D29034FB5F657D0D /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1DE2F2D0411CBE3F9B24C4 /* YapDatabaseCloudKitConnection.m */; }; + 893D86C42BE715BF335D589E /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E5D9F65C3F2EC536F02DBF /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */; }; + 895526EB5DC344BC189BE0B5 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE24DAF5D5487D463D087B0 /* UIView+PromiseKit.h */; }; + 895FF1D841B70188F877C93D /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D8B99D93DE4BEBA8680832 /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 89A57991E3EB3F8310D4D77E /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 24CEEC92E985267A216118BC /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 89CE0665B545C06FDEA20C39 /* EXTNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 28331EC47FBE28DD57A54F64 /* EXTNil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8A72306D222BF256855D741E /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2EC7C15D6D296C2BCA1E8B /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8BB39E7AFF58DEBE7D7B8B3A /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CA970E765A796F9AA9E3388 /* YapDatabaseFilteredView.h */; }; + 8C81F7A0D55CC68EB2392582 /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 28B07B0D2B5C3A2FE74B2F30 /* YapDatabaseSearchResultsViewConnection.h */; }; + 8DF97984FF1C864955B07801 /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D499CE6B6D895B99724A365 /* YapDatabaseSearchResultsViewPrivate.h */; }; + 8EC5F245E1DDBF71FD300C65 /* EXTNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 100E5F151A6977DE4CDE06DD /* EXTNil.h */; }; + 8EF01D6088512E0946A67B30 /* UIFont+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A9B921CA5C69EFC590A73D9 /* UIFont+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8F3BC29A86896DB48EA2591F /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA301CED7FB7D2E5F754B85 /* YDBCKMappingTableInfo.m */; }; + 8F4EC2144160505836F54163 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = C9F19B9E01BF8A9412971806 /* YapDatabaseViewState.h */; }; + 8F6911D070152DFFC37B718E /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F18A8ECF8D6A5847C4D5795 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; + 8FADDE948A11D473E5D1C4A1 /* FAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F24C4064550417DBB7C479 /* FAImageView.h */; }; + 8FC625324AC7EA96B4D1D7EE /* EXTADT.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F47D5CCFAA96E7E02FA17 /* EXTADT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8FFF553D83B004C63AD6E3E3 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 139FA44960812F484EFEDD40 /* Pods-Blog-FontAwesome+iOS-dummy.m */; }; + 904CCA6D53ECDCA8C1C8CC45 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B110C8CF0F897215306F171E /* Pods-samhuri.net-YapDatabase-dummy.m */; }; + 90517FEE3630015B9F8BF6E2 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = 59EE2F0E3914209B06438A13 /* YapDatabaseViewState.m */; }; + 90544F255CBA8EDA8C9F8482 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FE59F63E87AA199B09DE4E86 /* NSSet+ObjectiveSugar.h */; }; + 90757ECE79E4261FDB2C145D /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1DE2F2D0411CBE3F9B24C4 /* YapDatabaseCloudKitConnection.m */; }; + 911168A744E456E6AAD4D93F /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDDF22F8C266EA03F3A5A63 /* YapDatabaseConnectionState.h */; }; + 9203D26B3457A4EB0FD3F561 /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B41FD80DDC18F40AD63D9C /* YDBCKAttachRequest.m */; }; + 92602E5AB891BE20667AC712 /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 06A342A54EE29B38F9E7653E /* OMGFormURLEncode.h */; }; + 92B6B539CF4300751F9C3EFD /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 46AD077D333F4613956EEA81 /* DDAbstractDatabaseLogger.h */; }; + 934BFD94C6D6615AB76F4DB4 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EFFE5B4A09FA24BA7BB9DE4 /* YapDatabaseLogging.h */; }; + 93E9CA7CB0F5B6F3E04F5BB2 /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E861C217837964BA989E22 /* YapDatabaseViewConnection.h */; }; + 949235AAD32E3428F281F029 /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = B829BF4A69D5F410E44FD02D /* NSURLConnection+PromiseKit.m */; }; + 94A28D459CC8B3C0692A5BF2 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = B0820F5C1DF51ECA1481401F /* YapDatabaseSecondaryIndexHandler.m */; }; + 94FE8CBC8A7BAE618E5236FD /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EE00BAAA10DFD6C99B73AA /* YDBCKChangeRecord.m */; }; + 951D5F75CBD3D5C76A843630 /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0C40ADC59A3E1EF7E81884 /* YapDatabaseFullTextSearchConnection.h */; }; + 954521148ED74D90AC1CF383 /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6113A0025C6201B4EF7BB7B7 /* YapDatabaseSearchResultsView.m */; }; + 971F4AE8770DE545180630F5 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9209F135A52FADB5ADE74A71 /* YapDatabaseViewPage.mm */; }; + 975B8F8BDD88328B40343816 /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5748D5EB761180E83A2F36C3 /* YapDatabaseFilteredViewTypes.h */; }; + 976787BA31567C92207D33B1 /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD6DC1B0227D55F92AEFF7B /* PMKPromise.m */; }; + 97A4CE74D32515AD3163CA43 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D8D0E6FBB7A2E4A268D78E /* YapDatabaseFullTextSearchHandler.h */; }; + 97D0DE2C7DC3484F2A7C4880 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 139C78E6FC222EA96A7EAC5B /* YapDatabaseFullTextSearchPrivate.h */; }; + 9883CC97B7E7AEEDC2825A48 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0126C7A9D39433380C36B1D7 /* UIViewController+PromiseKit.m */; }; + 98BE1BC20D24D2FF86E50FFE /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B3433CB1EE6BEBCB7E37C3F /* YapDatabaseViewConnection.m */; }; + 9967B79C602BEBF6A3EB1A2A /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E8859B22B1954BDB4C0ABB02 /* NSString+ObjectiveSugar.h */; }; + 998BC6652425691AD237B164 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 7788EF603DC253CBF8E59AF4 /* YDBCKChangeQueue.h */; }; + 9A03C9B25B1BD8F483B1CDDE /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6113A0025C6201B4EF7BB7B7 /* YapDatabaseSearchResultsView.m */; }; + 9A85326EC85FE1C5CF24FFAC /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = EE2AC1EF6BAA4B4DA7E27F81 /* NSDictionary+YapDatabase.m */; }; + 9B80F833C0407DE8B92345E6 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E237A63D60C73D644A3871 /* YapDatabaseSecondaryIndexTransaction.h */; }; + 9BAFBBABF7A51D9ACB8D21D7 /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D6302948C80F92670463179 /* YDBCKMergeInfo.m */; }; + 9C1D05CD50AD9E9AAE2E2E15 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + 9C8B35B239257C1D8FFA3C0D /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5217A211C5C601BB8942DA /* DDContextFilterLogFormatter.h */; }; + 9DBD099D8F19DE4AFC9534DF /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 8757793F80FD989BA2AE5B1E /* YapTouch.m */; }; + 9DCB7AEACF0B58D0B02911CD /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5217A211C5C601BB8942DA /* DDContextFilterLogFormatter.h */; }; + 9DEDCCB6BA7AF9329776A193 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = CB7ABF26964D2F416C94020B /* NSError+MTLModelException.h */; }; + 9DFFEA5305F8EBA63F971EA7 /* UIViewController+XIBSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 617EA3676143E248C2981FB5 /* UIViewController+XIBSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9E1B6DDF9D255FBD792BF9A3 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 24CEEC92E985267A216118BC /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9E4869860E5428AA1EAC7999 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E17C94312100A6A34609501A /* YDBCKMappingTableInfo.h */; }; + 9EAFA6A4FE9C6BCDAEBBA891 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E76F5AAD897BF143B85DE1C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */; }; + 9EE286C2824470FF308B76B5 /* NSSet+ClassesList.m in Sources */ = {isa = PBXBuildFile; fileRef = BC92BC85B7AF56AB0A13FA42 /* NSSet+ClassesList.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9EFB648848D35D5F971D3259 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = E9856364F3283E9A464BDA7E /* YapDatabaseView.m */; }; + 9F508752E78123A8D41B5DD4 /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B3F208E7DE573E799DCD212 /* YapDatabaseRelationshipEdgePrivate.h */; }; + 9F5D0714E748BC882DAD2220 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D0B78A70B1E4225FC963D2 /* YapDatabaseConnectionDefaults.h */; }; + 9F826FDEEDD815A3457D1C2B /* NSInvocation+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = 969DE89CC9747DE2AC92D5B2 /* NSInvocation+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9F85280D963FE73E91D3D0CE /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3E27A330AA369572FAE3AF /* YapMemoryTable.h */; }; + 9FA8D0F9379BD7A54B791DE9 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9BA335F8BC830E31B4B3D9 /* YDBCKChangeSet.h */; }; + 9FD0AA2B2EC6D853061244BC /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B668EF3535796EB6DD269A99 /* YDBCKRecordTableInfo.m */; }; + 9FE2061BF64EB1CBE32EF5E5 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9CC38384F1B87AC4CAE9034 /* EXTRuntimeExtensions.h */; }; + A01335D1E7B8F255F7C27F39 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 10603BF79B7DFDDCCF3BFC66 /* YDBCKChangeRecord.h */; }; + A0345FB4604B1B5B49AD1B4A /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2CEA1E36322DE7B613A202 /* YapDatabaseRelationship.m */; }; + A0E4F29E1912E92B002B37EA /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = AB9602AC41DC5C51CC420655 /* YapDatabaseString.h */; }; + A0EBD9E5CED5EA4F070D1240 /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = 7520ED68436BF156BCAA46C7 /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A19733A1ABBEB1A0513C9EB1 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 07C0B6CB1385BEDE2C9D4D5F /* YapDatabaseSearchResultsViewTransaction.m */; }; + A219D6B7CB836238402429E8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + A23833108BEE164794B408E5 /* UIFont+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 8ACCCE62B677AF18750C741A /* UIFont+FontAwesome.h */; }; + A239A0DC9FF037B046A03924 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F337CFC490A2A341EE50238 /* YapDatabaseFullTextSearchHandler.m */; }; + A23FA79EFEF43BF9E8F08788 /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = F83DEE8A947BDA68520686F4 /* YapDatabaseRelationship.h */; }; + A2BDA6C2992D651749D7E387 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E5997C4BAA1458169BC29AD /* YapDatabaseSecondaryIndexHandler.h */; }; + A4AC9A3FBA83BF24CCD63936 /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 80124F51C7A9292CEF244DA8 /* YapDatabaseViewPageMetadata.h */; }; + A5B44CCE660C209747F09565 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CCC65A93E5BDB00B0BDD149 /* PMKPromise+When.m */; }; + A5F70A87847824459EE00B1E /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D3E12D689D8F53C298619F /* YapDatabaseViewChangePrivate.h */; }; + A647FC1C0A4ED4420402313F /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = F71A5C3CA2C0B9B5496E3593 /* YapMemoryTable.m */; }; + A651DCBA46D87B2D42BC04BF /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 322824FC9722D13BBC7CE737 /* YapDatabaseView.h */; }; + A6BB5D97261D9139B4F2EAC3 /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = B6974179CA89116FBE359EAC /* YapDatabaseSecondaryIndexSetup.h */; }; + A6C9D3FF87C19312E76B1EAA /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 463BF6DA8C1A27CF33CDB663 /* YapDatabaseViewTypes.m */; }; + A712124E5D86A5F50819A1B8 /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C43B0AD1F7A2D0163AE6649 /* DDLog+LOGV.h */; }; + A7CBBDFBB425E2A66D83BDB3 /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE18A8BF148A6607B8465DD /* YapDatabaseRelationshipPrivate.h */; }; + A7E68FF641354FE390DDCE5C /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 3426675EE4D4FAFE7AFFA942 /* YapNull.m */; }; + A865E8AFA20F1762AFCBC27E /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = F68712B855461DE60CD93549 /* PMKPromise+Pause.m */; }; + A86EA3D67DAA4AC4771EAB65 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD7AA0F9B2CF6E489B7C551 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AA157300478DA1F9C6E25920 /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D97919B9ACC34331670C706 /* YapSet.h */; }; + AA4D6241DA7E735C8494621F /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 761774F1F04B46F6556F5CC9 /* YapDatabaseSecondaryIndexSetup.m */; }; + AA5406CAE6B5561C0B577B0F /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AB6BD7C6483216C4ACA18FC7 /* YapSet.m */; }; + AA55E970E3CA8173268EA4C0 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C49C3E026C8ABCF08D62AAE /* YapDatabaseTransaction.h */; }; + AA840E442D7908F96C58C13F /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D8CD90FA4FA233C2CAD2C63A /* YapDatabaseRelationshipTransaction.m */; }; + AACE79482817E4901850AC27 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 66ED5D2CE855C5471738A4CD /* YapDatabaseViewTransaction.m */; }; + AB2ED999D375FB2782964F4B /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E9666EC9C43D3A469AFE76B5 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AB8733835A2E2953A5FE6CAF /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 490F82B1624BDD41BFA7EF52 /* DDMultiFormatter.h */; }; + ABEF91EEE9355BE5CBF2DE94 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + ACEF25DFE6F3A8CEB8FBB5E7 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0544571D18B51B563C648EFC /* YapDatabaseCloudKitTypes.m */; }; + AD59335B000A0DCB60A34ACE /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 394775BD9716A6B922F8A83F /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AE0E1EB9A601E3417A7C072C /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F9E39F49069861FF25457A /* YapWhitelistBlacklist.m */; }; + AE1D72EBE567A007948A7583 /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BB4648950DE909E252E7936E /* NSArray+MTLManipulationAdditions.h */; }; + AE5C9CB85EB9912148462EDF /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 772970F701DCCCE05E9A2AA7 /* UIAlertView+PromiseKit.h */; }; + AEB566AE61FE8AB9753653BA /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8C1F4CA7F0C8FF0599CBB1 /* Promise+Pause.h */; }; + AF02515268159636EEE17633 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD7AA0F9B2CF6E489B7C551 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AF42C4B2A67DBC8090419680 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC42217EA628E4D86E53497 /* YapDatabaseStatement.m */; }; + AF557472F544DB65BEE328C3 /* NSObject+DyCInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7403C2C75CB3AA66D6D67F /* NSObject+DyCInjection.h */; }; + AF7388A520C66CA5455EECA0 /* NSMethodSignature+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 25E252AC875D821E3D6D1A1F /* NSMethodSignature+EXT.h */; }; + AF920BB6DCDF4428D985F48A /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F556494B46A24BCB0D3D7EBB /* Pods-samhuri.net-MBProgressHUD-dummy.m */; }; + B0071E220B25C9755A13539F /* EXTSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = AD9FADFBB92752B65D32C6AC /* EXTSynthesize.h */; }; + B083C6AE92BD46C0FF526815 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9BA335F8BC830E31B4B3D9 /* YDBCKChangeSet.h */; }; + B0B3BBB412586BD1D172CE40 /* Pods-Blog-libextobjc-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64614B34AFB493E3DE383E04 /* Pods-Blog-libextobjc-dummy.m */; }; + B0DA87C0E3F889EAD30B2D75 /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED7CB96EF39D2D9DBD71071 /* YapDatabaseExtensionConnection.m */; }; + B18417141EFE151FA0C66E50 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0126C7A9D39433380C36B1D7 /* UIViewController+PromiseKit.m */; }; + B1A8934EF6791E3F9064C0DA /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = F0F0F6FFCD6F1CF5B5C7F4E2 /* YapDatabaseRelationshipEdge.m */; }; + B1F9780E368D16B34DA8951B /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F2FB8360E38D885677E0E81 /* YapDatabaseCloudKitOptions.h */; }; + B282931B14178141DD571D83 /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F82D7B599BBA652983F0F0 /* YapDatabaseCloudKitTypes.h */; }; + B2A6E99DF6AD94096D4CA791 /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 430D4015B66A6348BDA4A4F0 /* YapDatabaseConnection.h */; }; + B2AD164BCA6268CD7F07D4CA /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 121F6E2F3971D6843C6C7744 /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B3A0893FABDA7C443D624412 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AF2B2E0A81E0DD9796D8A97 /* YapDatabaseCloudKitTransaction.h */; }; + B4DC8C489DF56A84752CDFB3 /* UIImage+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = F10F3EF1AB70D31CBF52AA9C /* UIImage+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B5031C2E5D0F21A7AA328858 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = D964FE09DE68BCB5D20E0401 /* DDFileLogger.h */; }; + B5CC2865379B5526DDD20B2D /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B9990732724AE424A6A8E4BA /* YapDatabaseRelationshipConnection.h */; }; + B611B614747F1491E34AF258 /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D21CF6343452B39D1F23F1B /* Promise.h */; }; + B74870F31379FCD7E9B7E463 /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDC2797360DF3158A0767F /* NSNotificationCenter+PromiseKit.h */; }; + B759A4284411C0D2137E33EA /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AD9EA625D69D809F8C167C /* YapDatabaseRelationshipNode.h */; }; + B87F5B56108A9646F00B0870 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E52F4EDECC4713F896D9F15 /* YapDatabaseViewRangeOptionsPrivate.h */; }; + BA3D47D61A1560E7D095CD5A /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 65F175D40C5348F45F2FC008 /* NSDictionary+YapDatabase.h */; }; + BAE22D464D652FDC71CFD488 /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B290C83771E877663A34F2D3 /* YapDatabaseExtensionTransaction.h */; }; + BBA7326ABC942808CF383F2A /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A2AAE231859CDB7288DDB6 /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BC20DB8266805AB1C3797003 /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CCAEFBD810088779F9102E69 /* YapDatabaseSecondaryIndexPrivate.h */; }; + BC5662ED414EBB61E6DC824D /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F846FF1FD33FD6F959657DE /* DDASLLogger.h */; }; + BC6CD5EC915DAD06D3F4CA1A /* NSString+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = 92E7690ECAAF33C6713E4247 /* NSString+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BD6C157EC15F147BCF30C1E0 /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C55F4F424EF263A307FA8780 /* YapDatabaseViewTypes.h */; }; + BDE307BF9117EC732E2AA51D /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = F0F0F6FFCD6F1CF5B5C7F4E2 /* YapDatabaseRelationshipEdge.m */; }; + BDFA87E43D10C20988A43155 /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D3E12D689D8F53C298619F /* YapDatabaseViewChangePrivate.h */; }; + BEB2FF99318B10AA3C733F89 /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D6302948C80F92670463179 /* YDBCKMergeInfo.m */; }; + BF466CFE3912EECFB530C52C /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 5565B6D59A778DE079752FD9 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BF47FD79B2E87D2B09BAE813 /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = AB9602AC41DC5C51CC420655 /* YapDatabaseString.h */; }; + BFF292F2FE73AA30D7989727 /* SFDynamicCodeInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AAE9CC530AD122FB1E38F /* SFDynamicCodeInjection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C055CA5E0182EC6E95586425 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2EC7C15D6D296C2BCA1E8B /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C14EA8880A44E8AADA426FAC /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DF11510132D09E18F9806F9 /* YapCollectionKey.m */; }; + C2B41FAB1CA30EC8AAC489BB /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F60AF673DA4C939545D0F7A /* DDAssert.h */; }; + C2C1D64AE92E539ECC98BCA8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + C2CA89E650D5618784001682 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D8D0E6FBB7A2E4A268D78E /* YapDatabaseFullTextSearchHandler.h */; }; + C30481F22F86D0E7575DC872 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0D22D6AB0C8943B17FA95A /* YapDatabaseSecondaryIndex.h */; }; + C33405ABF05292601AF2793A /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 2638C55815EA16F59D32BD4F /* NSDictionary+MTLJSONKeyPath.h */; }; + C3650B3005D93D6FE09B4852 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F41CE10194A25458B48B387 /* YDBCKMergeInfo.h */; }; + C3C98729A24B5CDEEBFABB5A /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 49BC100D8645BDEE247597FA /* YapWhitelistBlacklist.h */; }; + C3D2F4025C264A1AEB3A7725 /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 778D01A67F28AF1084FF534F /* YapCollectionKey.h */; }; + C3FECB1320330B4C9F4E251F /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A6B32A18EB5D6189C25B4DF /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C4F34AE51B8B93B10D261A9E /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE843FE97312C580966579D /* YapDatabaseSearchResultsView.h */; }; + C5A3C0F9AFE62E4E7100ED4D /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = CAE5CF5EE3A6B7929D509FEE /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C5BF0C97F4BC45CA25C65595 /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = 44248AE71488047264DE9108 /* YapDatabaseViewMappings.m */; }; + C5C00A2D7CA1D073D3B7F31C /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = 44248AE71488047264DE9108 /* YapDatabaseViewMappings.m */; }; + C6324995954E76371BA617CC /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B7B9A6FF39635B81E45A4B /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C6477EC21E8ED0FCC9AC88A7 /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C524B6F27EA326EBE7A0C3F /* YapDatabaseOptions.m */; }; + C64B194A14B64B1771C2B911 /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7966AE914FE98BBE8A13E630 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C6603FFF9C35D119FC738712 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 89958C5C350197F2AFAE9B1F /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C6865AD78C23139610D1C6E7 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B04DC02A616720F04639C4C0 /* YapDatabaseOptions.h */; }; + C6FBA98297064F8DF2424DD5 /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = AD8D9A5807D7E5A062CBD709 /* PMKPromise+Until.m */; }; + C72E220C51F35B1D6618FC53 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 875CABB27D093345C39A37B9 /* YDBCKRecord.m */; }; + C7B81C4524C8A9CB9D4B0B1A /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 927C5BCB782CA2932CD848E9 /* Mantle.h */; }; + C7DDBED040F3BDBE7E430B7E /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42D5362F4243FAD90D2AFE8B /* YapDatabaseFilteredView.m */; }; + C7DFFD455B6E7537A5955A41 /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1C7EFC29224158A569516A /* YapDatabaseFullTextSearchConnection.m */; }; + C8116D31FF4C3D5D663F41EF /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 871C8E5B1D402BBACA10F750 /* YapDatabaseFullTextSearch.m */; }; + C82709EAD2D8375A54B1FC8E /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 80124F51C7A9292CEF244DA8 /* YapDatabaseViewPageMetadata.h */; }; + C8A6ACE0179A933BDF238907 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = E25CD85C4DE585411AB566EA /* YapDatabaseViewRangeOptions.m */; }; + C8AFE74B4D5AA91C1E49E174 /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0C40ADC59A3E1EF7E81884 /* YapDatabaseFullTextSearchConnection.h */; }; + C9B253A5D9AB238B6742E92D /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 66ED5D2CE855C5471738A4CD /* YapDatabaseViewTransaction.m */; }; + C9B41218A767368C451C2049 /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = B829BF4A69D5F410E44FD02D /* NSURLConnection+PromiseKit.m */; }; + C9BD3DFB4A4857595D58C8D0 /* EXTConcreteProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F75B83C8CA022F144C79A6 /* EXTConcreteProtocol.h */; }; + CA474A69695646CA3EBA5E57 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD6EB482887E90278BBEC38 /* YapDatabaseViewMappingsPrivate.h */; }; + CA712B5C98FDA8865963FA89 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 83D0B78A70B1E4225FC963D2 /* YapDatabaseConnectionDefaults.h */; }; + CAA84C40E989DD914062B1DF /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7966AE914FE98BBE8A13E630 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CADC6DB028719FD2EC8CDFC3 /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A9109FACFD8FC84C66C5B67 /* UIAlertView+PromiseKit.m */; }; + CB2CFF8573E4424B76600ACF /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B695DFFFDB25BE7116B2087 /* YapDatabaseSecondaryIndexConnection.m */; }; + CB430386C14F95A4EF192CBA /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 202587B098BFFE3D8A215D55 /* YapMurmurHash.m */; }; + CB65DEF1676DE12E0BD9E6B7 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B9B64CD8250C8B801684C4 /* DDLog.h */; }; + CBBD95C08FEB3896A5116918 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = B0820F5C1DF51ECA1481401F /* YapDatabaseSecondaryIndexHandler.m */; }; + CBC0C14016518E7E8DB52DBA /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF068D02E1A7453F2475E2D /* YapDatabaseLogging.m */; }; + CC2F6B074909DD44E194E792 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F337CFC490A2A341EE50238 /* YapDatabaseFullTextSearchHandler.m */; }; + CCC4D47A3CB0EC6D2A00E6FB /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 87A8D4DE46F2CD9E3C04A3C0 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CCC72F0C3528E61665B8CFEB /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BE346B79FF72450AD8610995 /* YDBCKRecordTableInfo.h */; }; + CCE4F3B55C700812AF7C1953 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A728A7038B93F49C1AF580CC /* UIKit.framework */; }; + CD492E46FD7A18057EEC8EC1 /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6B096E4237AF380C124A38 /* YapDatabaseRelationshipOptions.m */; }; + CD57CEB233BEAF932F635656 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = AA73766412FFF96C9C50B150 /* MBProgressHUD.h */; }; + CDA4E9218D63E4CD91EE17A7 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F1EEF1C23F92ACAEF73177EA /* UIActionSheet+PromiseKit.h */; }; + CE88EC5C37D884674A27B15B /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AD9EA625D69D809F8C167C /* YapDatabaseRelationshipNode.h */; }; + CEC1984D4590C2C533571426 /* Pods-samhuri.net-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EFD6B51D5A428BCA4A5281B /* Pods-samhuri.net-Mantle-dummy.m */; }; + CED4450FBC744BC5713F078E /* Pods-Blog-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ABCD475DA228B250D699E2A0 /* Pods-Blog-PromiseKit-dummy.m */; }; + CF3557D9A46695948DE6E17D /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C3A3C7112DF62ECE234290B /* YapCache.h */; }; + CFBCD1E0865FF1929DB29590 /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 695619A16E7BDE7EF40388E1 /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CFCC635BA4C3719018A282EE /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = CFAF5D08020A121DA15433A5 /* YapDatabaseConnection.m */; }; + D01D70B1B94FF82E14D88CE5 /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C43B0AD1F7A2D0163AE6649 /* DDLog+LOGV.h */; }; + D0FAE53186D7E50388FA0968 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = F898E608C33F24CA436ADC22 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D119E8217F9ED6FC387627AF /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FA7F699E333D64284CD33EA3 /* EXTScope.h */; }; + D1A806D66E4DFEEC4B3F4BAB /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B46BC0D2A7872BCE0E5B488 /* YapDatabaseCloudKitPrivate.h */; }; + D1AF278B7AF28D793AE07871 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = F4A5E660EFC85E32D48DD290 /* YapDatabaseSearchResultsViewOptions.h */; }; + D1D338B961733063DE277F5D /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFF45978CB15C2083B1F5AD /* YapDatabaseFullTextSearchTransaction.m */; }; + D1FA0657170B0CF2034BF3F0 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F41CE10194A25458B48B387 /* YDBCKMergeInfo.h */; }; + D212904FE419499290FC3995 /* SFFileWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = A5679935F1AC019A492EB49A /* SFFileWatcher.h */; }; + D232C2D9DFD14089F6F7137C /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = C45A2DD65FDC2446D33AF32D /* EXTScope.h */; }; + D26F8ADC144DF8B17FBBCBB0 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 10603BF79B7DFDDCCF3BFC66 /* YDBCKChangeRecord.h */; }; + D306AFC88764FE0D66834CA6 /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFF021E9C2C5F614A43FB876 /* YapDatabaseSecondaryIndexConnection.h */; }; + D3A0975042A20D8E34409624 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8D9861CA1A71E165BD9F19 /* NSNumber+ObjectiveSugar.h */; }; + D3C0013A470927120DC900B1 /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC6BE3683E6EBECC7ABD956 /* YapDatabaseFullTextSearch.h */; }; + D56B6F8BAD641A284BF6AC94 /* EXTSelectorChecking.m in Sources */ = {isa = PBXBuildFile; fileRef = E3AAF075E262B52833D80D33 /* EXTSelectorChecking.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D573CDB3ABCC67C4971C6A46 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FF68E79B1F8BB4D1B7406A8 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D5D783109A5027A4B8828A54 /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A0C3F88247BE87206E00A5C7 /* YapDatabaseRelationshipOptions.h */; }; + D6271F4FDFF45F4408D26039 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D2B9BC4C787C119E4BBA0FA /* YapDatabaseExtension.m */; }; + D6927C16D775E7D1ED60E6FC /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = ABF0A3DC6F7B3CACB365F9E9 /* PromiseKit.h */; }; + D6B75424FA8712A32121213E /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A32FB475DAAC023A8148381B /* YapDatabaseSearchQueuePrivate.h */; }; + D6F64959F96B08E0602F5836 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CCC65A93E5BDB00B0BDD149 /* PMKPromise+When.m */; }; + D7258D251116A80ADECB6F49 /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D241FA4492890A3E10B0832 /* YapDatabaseRelationshipEdge.h */; }; + D78C45D6638A9F3BBB5D2646 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + D7FFC617C8AFBE7CE419B4A0 /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FCB3936FB7DF989AEF2A47B /* YapCache.m */; }; + D81C400BCE0049C9556B2C61 /* SFFileWatcherDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9437F9CC43DBFC52EB280527 /* SFFileWatcherDelegate.h */; }; + D8A0337220F814C97AA50E4A /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2748CEA180F7803342F7FAD7 /* EXTRuntimeExtensions.h */; }; + D8BA613C570F69CCE1037A5D /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AA76D10F70500D6C8A292BA /* YapTouch.h */; }; + D98C851526E00E76807E498F /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8C1F4CA7F0C8FF0599CBB1 /* Promise+Pause.h */; }; + D9A444D46DB802DC74302D71 /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0C708FBAFAF8AC567299B9 /* NSObject+MTLComparisonAdditions.h */; }; + D9B29F604339B6BFCF638F52 /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 8757793F80FD989BA2AE5B1E /* YapTouch.m */; }; + D9D8681B96A6504D9F7E903C /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BD2329311D8F12C2CB4E2FC /* YapDatabaseSecondaryIndex.m */; }; + DA38AD94A6E7FCB6D0EDB975 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 607A55B125779C00F3796B8F /* EXTKeyPathCoding.h */; }; + DA48C043756A36C07C413B66 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B9B64CD8250C8B801684C4 /* DDLog.h */; }; + DAFB2D70CF106A613BCEC599 /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 74517E5BC04CB8182F1D2C73 /* NSArray+ObjectiveSugar.h */; }; + DB00A52AA904314BAAA83526 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 21A3C088DD2D75B6DD5428CC /* metamacros.h */; }; + DB5F9E8B606C1978B6E141B6 /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B26003246FDBD5BA627380D /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DC889096BB2C749C7A236309 /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A9109FACFD8FC84C66C5B67 /* UIAlertView+PromiseKit.m */; }; + DC92A41DCD9FE0B3A75A187A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + DCCD82B8254FB2764D1EA24A /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 618CBDC6E4D9429F7BD1871B /* YapDatabaseViewRangeOptions.h */; }; + DD8293C5A02FB0D3D139BF79 /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C49C83B7CBE18A300CC153B /* Promise+Until.h */; }; + DDCF98A34920BC45BB9CCF5B /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 772970F701DCCCE05E9A2AA7 /* UIAlertView+PromiseKit.h */; }; + DE627D3327C28105B9650969 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + DF535824B8181F1A748599DB /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = BAB47E6E5EA2646070AD0D8B /* YapDatabaseSecondaryIndexTransaction.m */; }; + DF88F54D6A2739A175E77731 /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DA88510D1CF1CE9D997D6D1 /* YapDatabaseExtensionConnection.h */; }; + DFFC4610AE949D671081345D /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0512709CBCE950CD01019FB /* MTLModel+NSCoding.h */; }; + E10C1811CAD301C48B810F03 /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D5DCA01F10BA4FD24940BA39 /* YapDatabaseManager.m */; }; + E145B7C63186909C5CF1B36A /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = F58373D9AD906CA4AD3B263F /* YapDatabaseExtension.h */; }; + E167C7D652996A5C1DAD882B /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BBAEAC3E46F05C59FABB08A /* YapDatabaseCloudKit.m */; }; + E1754C86DC1F2F89333D5398 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = C2BEBD9D75D076A7EFC2DE03 /* YapDatabaseSecondaryIndexOptions.m */; }; + E1CDC95B8228EFAABA82BF19 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 069A1E878EDD2439935FF6E0 /* YapDatabaseFilteredViewTransaction.m */; }; + E2063EDDF7C1DBDBDCAE5412 /* EXTSelectorChecking.h in Headers */ = {isa = PBXBuildFile; fileRef = F1008F84D460EFEDFAD69BA1 /* EXTSelectorChecking.h */; }; + E311EE67F80D566CB809B606 /* NSInvocation+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 959FF069CB18290713BC769B /* NSInvocation+EXT.h */; }; + E31C74A2BD9D5F628F3EFED2 /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 28B07B0D2B5C3A2FE74B2F30 /* YapDatabaseSearchResultsViewConnection.h */; }; + E3302D566833816821808A4C /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C06CAE726289F6445467F9A /* YapDatabase.h */; }; + E444B4F69E05FDFC8F1296BE /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = E9856364F3283E9A464BDA7E /* YapDatabaseView.m */; }; + E468D703E60619450EE1A35B /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = CB7ABF26964D2F416C94020B /* NSError+MTLModelException.h */; }; + E4C8659D04155936B58AF39C /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B41FD80DDC18F40AD63D9C /* YDBCKAttachRequest.m */; }; + E517BAF3731C543A80E1242E /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42D5362F4243FAD90D2AFE8B /* YapDatabaseFilteredView.m */; }; + E53A809DB9E5717F30123C33 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04E151C4A03CCA86A696FD88 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; + E581B3041A8331818065606D /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0D22D6AB0C8943B17FA95A /* YapDatabaseSecondaryIndex.h */; }; + E59A2109D5A26079CC0D189A /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = 59EE2F0E3914209B06438A13 /* YapDatabaseViewState.m */; }; + E6BCA3C3F301BCA7B8789C49 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = F739B9F1A5AE759A708258F7 /* MTLValueTransformer.h */; }; + E7290823A559F41688C614AC /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 680E7B48A7FB11E735021FD2 /* YapDatabaseViewPageMetadata.m */; }; + E7386BF1ADE8E73CBDAA543A /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = 74368F30159C4791083968EB /* YapDatabaseViewMappings.h */; }; + E769A7B2C0D7F8C7F667E603 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 727395CC1A9030F8730CBDAD /* QuartzCore.framework */; }; + E871613FA4A37B63CD931AA4 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 202587B098BFFE3D8A215D55 /* YapMurmurHash.m */; }; + E89845841EAE33AE949C01A1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + E8CE98E6C35BA513E70001A2 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF0B93BAC605F17004F6CD2 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E8E3F0799EEAE0073D292877 /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D241FA4492890A3E10B0832 /* YapDatabaseRelationshipEdge.h */; }; + E8E7B6EACC1E1C1774658902 /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 91DF1E461B85883DB27A4E6D /* YapNull.h */; }; + E8FE26FF6DB03D2B623E763F /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = CB02B0138F7473DFA25F5DD3 /* NSMutableArray+ObjectiveSugar.h */; }; + E911DB59987529E705152984 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 051235799B7032D47E39867E /* UIView+PromiseKit.m */; }; + E98577F92ACDD8403743D862 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D2B9BC4C787C119E4BBA0FA /* YapDatabaseExtension.m */; }; + E9B2B7B96561DA48E635432A /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7DE22D0718DBF5998961F6 /* YapDatabaseFilteredViewPrivate.h */; }; + EA22E1BEF349328677F3E118 /* Pods-Blog-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 515A225DF1FFFE59C0C370ED /* Pods-Blog-Mantle-dummy.m */; }; + EA74403792BFDE010A7E2E97 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC42217EA628E4D86E53497 /* YapDatabaseStatement.m */; }; + EB44EB55B34D901BF96DD60A /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED7CB96EF39D2D9DBD71071 /* YapDatabaseExtensionConnection.m */; }; + EB68659D79AB452B832022AB /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEF71774D45E3A1EE052688 /* YapDatabaseStatement.h */; }; + EB7ED358793D57DF6EB54230 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 1721AB8249C341DD71E46ADA /* CALayer+PromiseKit.m */; }; + EC4C8AA78886BA7F3464D6A5 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DF11510132D09E18F9806F9 /* YapCollectionKey.m */; }; + EC4CED1EBC9D5C239E47F4DD /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 00D7CA8BCAA182A1493D935E /* metamacros.h */; }; + EE65AC86712362BEDB01933B /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C49C3E026C8ABCF08D62AAE /* YapDatabaseTransaction.h */; }; + EEB0E65BF2391112E499A16C /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D0AEB84C3555ED9C8396F69 /* YapDatabaseViewPrivate.h */; }; + EEB0E85511F2C7C2FE0B591D /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 761774F1F04B46F6556F5CC9 /* YapDatabaseSecondaryIndexSetup.m */; }; + EEE7B50AAA345FE8CACB1397 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 43ABE9ABED87C617D8D80E2E /* YapDatabaseFullTextSearchTransaction.h */; }; + EF0434253B4E206AFB68BCE8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + EF06BDD804A101A9E47E494B /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A00D5299252C011CC473FCA /* Promise+When.h */; }; + EF10CB667996004059079FFC /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 871C8E5B1D402BBACA10F750 /* YapDatabaseFullTextSearch.m */; }; + F055492D1CCCD40E2E2E1E4B /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 07C0B6CB1385BEDE2C9D4D5F /* YapDatabaseSearchResultsViewTransaction.m */; }; + F05B77BDD854106841BA0361 /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6B096E4237AF380C124A38 /* YapDatabaseRelationshipOptions.m */; }; + F05FA54270BCDFA9AB14ACDE /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 111EF94E1B337F4F35737B12 /* YapDatabaseManager.h */; }; + F0BAB68B6E7E04C2941BC968 /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 695619A16E7BDE7EF40388E1 /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F0FAFF8CEB1C94B71D0AC287 /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B46BC0D2A7872BCE0E5B488 /* YapDatabaseCloudKitPrivate.h */; }; + F150558503AD73293376B102 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CD8E79BCC9B16D6CA1B2281 /* YDBCKAttachRequest.h */; }; + F185C864B7048A8C2B89548E /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0441D72DB21FA8E7477E6462 /* CALayer+PromiseKit.h */; }; + F23CB6BA2E540C70AB233642 /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1680A5EC3A9255C890754A /* YapDatabaseQuery.h */; }; + F3261AF43CB95F086BD85818 /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 49BC100D8645BDEE247597FA /* YapWhitelistBlacklist.h */; }; + F3337E1689F494F191DF086C /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B668EF3535796EB6DD269A99 /* YDBCKRecordTableInfo.m */; }; + F33B8CC37F98E193E1864F52 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E237A63D60C73D644A3871 /* YapDatabaseSecondaryIndexTransaction.h */; }; + F41DDB6904ADD968BA5286A4 /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = E4DD695693E021CEBD152CA3 /* YapDatabaseSearchQueue.m */; }; + F5BE38FABDEABFFA2B8885E8 /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 621D3194E797DB4C590CE5BA /* YapRowidSet.mm */; }; + F7018B2FEFC25C7CB3333FD4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7493F604FA469FA60BE578 /* Foundation.framework */; }; + F7C0D230052F494A190B6190 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 99903441A04F6251BACB6347 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F83B6A38CD8E094BC46050F5 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 99903441A04F6251BACB6347 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F84F979A69FC75B92AC470B3 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = C2BEBD9D75D076A7EFC2DE03 /* YapDatabaseSecondaryIndexOptions.m */; }; + F8807F84945029450AD4CAB6 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E52F4EDECC4713F896D9F15 /* YapDatabaseViewRangeOptionsPrivate.h */; }; + F8E89B444F764E0E757ECFA7 /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F12A1E40F2507C889FA5D333 /* NSURLConnection+PromiseKit.h */; }; + F935904665F57CFF6F97330B /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5595B3E63E77218798DCBD /* YapDatabaseViewTransaction.h */; }; + F94420F56B77B0E89D50E2A8 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 627184489D5EBF1552526088 /* Pods-Blog-ObjectiveSugar-dummy.m */; }; + F9B23C71FCBA07AD7E3340C5 /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BBAEAC3E46F05C59FABB08A /* YapDatabaseCloudKit.m */; }; + F9DE3A93F85737AD64988353 /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AF5275CEEEF926AF0DB2B3C /* YDBCKRecordInfo.m */; }; + FA9567D0747DFECE6FFEC058 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = EE2AC1EF6BAA4B4DA7E27F81 /* NSDictionary+YapDatabase.m */; }; + FCA6AFA9ABB138729AF45285 /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B9990732724AE424A6A8E4BA /* YapDatabaseRelationshipConnection.h */; }; + FCAE41BC0E0F435A51F81A3D /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D41DB392D0A015621D80477 /* EXTKeyPathCoding.h */; }; + FCCB32ADDFB26A113C554EA6 /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = C1C5DB95EA609317C04605CD /* YapDatabaseRelationshipConnection.m */; }; + FCEA38D1DBA93B4503846D60 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = ACDDE4884088550E97172FBB /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FD6413396174DA9A54DBD0FA /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 2971F3289A76979FCF97BE78 /* UIActionSheet+PromiseKit.m */; }; + FDA35F014DC8B1D73B538F1C /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B503A4E186A9191477A20CA /* YapDatabaseRelationshipTransaction.h */; }; + FDA8D8306CCC3DE315295FE4 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5FA03A2434E4CC7808C13E /* YapDatabaseViewOptions.h */; }; + FDB4795F4FBD27F100625124 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 96D258030D8724E7DD74EE2B /* MTLJSONAdapter.h */; }; + FE4483CBA0B3B904681D9571 /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E9163A016BD340ED9A0634 /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FF6EA1536FB54FA695B3AC6F /* Pods-Blog-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A80A57CC9BC2511CFE951B10 /* Pods-Blog-YapDatabase-dummy.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0392BC935A3C45CFAE543C93 /* PBXContainerItemProxy */ = { + 0380361FF1413F74C4A101EA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 5BD2074B159E9210760E9DB5; - remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; + remoteGlobalIDString = 933D59FF84B37ABF25196FCC; + remoteInfo = "Pods-Blog-CocoaLumberjack"; }; - 0419C1FE94EE9D9B08D4EBEC /* PBXContainerItemProxy */ = { + 03FD26F69E23B5F5A931026D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 8861BE957C1BECEC7AF91A6A; - remoteInfo = "Pods-Blog-dyci"; + remoteGlobalIDString = 9F2499755D3C1A797413EF0B; + remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; }; - 0860F97A7332B7F7AB8387E8 /* PBXContainerItemProxy */ = { + 1C0ADAD4F7661DE7C3FC85AC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 648C49E133EBBA75C3AAFDA4; - remoteInfo = "Pods-Blog-libextobjc"; - }; - 287751CB24496F7565E799F2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = A8CE6CB2212F69AE3CEB6AA5; - remoteInfo = "Pods-Blog-HockeySDK"; - }; - 43CC5EA2EA1056BD0A23F4B7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5BD2074B159E9210760E9DB5; - remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; - }; - 4C0062421264F0DCE06FCF15 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = D2DF925ADA674F79DA5E6068; - remoteInfo = "Pods-samhuri.net-YapDatabase"; - }; - 5D9B9C4FD114FAFC9A004A7C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = B87AEE12D90E4DCCF1925DD2; + remoteGlobalIDString = BE5FB715F2D1F25E7D8D514D; remoteInfo = "Pods-samhuri.net-ObjectiveSugar"; }; - 7769941031EACB297620FC9B /* PBXContainerItemProxy */ = { + 2532FE30E4BD4DDDEA448827 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 6B1A3F24490A28B85D2B98C1; - remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; - }; - 85F75ADC437227173BD0667E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 01A548EABEB19F541F1F515D; - remoteInfo = "Pods-Blog-HockeySDK-HockeySDKResources"; - }; - 8B532E7FB9AA2549525B35DB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8211A052C1AAC5E293FA96C2; - remoteInfo = "Pods-Blog-CocoaLumberjack"; - }; - 8F73AD80A1C7E4628DEE4422 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 67A3295FD88C690191799374; + remoteGlobalIDString = 258E7FD66319006E5831FB62; remoteInfo = "Pods-samhuri.net-Mantle"; }; - A1181F09A76257BCBDC14053 /* PBXContainerItemProxy */ = { + 28617D0A522B479A592D5A40 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 616C3574E0905042A0B01C50; - remoteInfo = "Pods-Blog-MBProgressHUD"; - }; - A8A084FC311102959385E5DB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3485909229C96C0CEDDEA195; - remoteInfo = "Pods-Blog-FontAwesome+iOS"; - }; - AE28E234790B43E99DB08DC6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = C36C4EC3CA5B8EECA9F1955A; - remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; - }; - B0F432DAB713FB66577ACC41 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1AB623BF51767BC8616138AD; + remoteGlobalIDString = 69FD1941C48121DFFA9064DC; remoteInfo = "Pods-Blog-PromiseKit"; }; - B22944CA0DE6754CA74EDC17 /* PBXContainerItemProxy */ = { + 3B1C925B383879C4E3B36C01 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 9DC286E133EA91C3F1E9A620; - remoteInfo = "Pods-samhuri.net-MBProgressHUD"; - }; - BBD8244BB14FD16D754293D7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; - proxyType = 1; - remoteGlobalIDString = C36C4EC3CA5B8EECA9F1955A; + remoteGlobalIDString = 9AE020A5B0331F61BB9BA486; remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; }; - C008BE0034689574AA3AA3DF /* PBXContainerItemProxy */ = { + 69EC2885C31FF2394F804B49 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 6B1A3F24490A28B85D2B98C1; - remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; + remoteGlobalIDString = FEB2358A8A8921EA03106F9C; + remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; }; - C0FF3A5FBE08C3FBA3025D23 /* PBXContainerItemProxy */ = { + 8979330C80751A602AD6F642 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 9829AFDADE0EBCC51945CF1C; + remoteGlobalIDString = 959BE7EAC1D1BA9C8E7C54C2; + remoteInfo = "Pods-Blog-FontAwesome+iOS"; + }; + 8E81853821C06B1066D61027 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = C7F04ECE886762ED3FA79A9D; + remoteInfo = "Pods-samhuri.net-YapDatabase"; + }; + 95496173F56488507D0B7995 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4555EFCA01A64B46AF19B850; remoteInfo = "Pods-Blog-Mantle"; }; - DBBEBB89D5C8E33025B7D434 /* PBXContainerItemProxy */ = { + 98AA565C864E294BD6FE37B2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 9280BB320B2800EA80D4AB33; - remoteInfo = "Pods-samhuri.net-PromiseKit"; + remoteGlobalIDString = 9AE020A5B0331F61BB9BA486; + remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; }; - E55E1FFB8D4C2AC1590EC7EA /* PBXContainerItemProxy */ = { + A4259C2A26951E5CB536F88D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = A9E6C8019CC73D066D5B7B12; + remoteGlobalIDString = 073F96D2C8AEBAAA030407A5; remoteInfo = "Pods-Blog-ObjectiveSugar"; }; - F7EAE850BEC0DA840CDFD11A /* PBXContainerItemProxy */ = { + B69E82AFBA2C38FB0E338B76 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = C115EC8724564E3170B95575; + remoteGlobalIDString = D10BA62430326F67DC64EA50; remoteInfo = "Pods-Blog-YapDatabase"; }; - FFCA5E90EBED3AC42CF4669B /* PBXContainerItemProxy */ = { + C0B592B62D305C0CF9813AF2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; proxyType = 1; - remoteGlobalIDString = 8211A052C1AAC5E293FA96C2; + remoteGlobalIDString = 391A9C79B2802A8B4F34AB2C; + remoteInfo = "Pods-samhuri.net-MBProgressHUD"; + }; + C5CF947D5B98B269D55E9B92 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9F2499755D3C1A797413EF0B; + remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; + }; + C74F2AA984E9B636DAE63781 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52D3FF8D846ECE1F86C892FE; + remoteInfo = "Pods-Blog-MBProgressHUD"; + }; + CC2C3CF6281DBFCFB8943C05 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 933D59FF84B37ABF25196FCC; remoteInfo = "Pods-Blog-CocoaLumberjack"; }; + CCD01497F1C2B230451D1F2F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 02C5320E551707DF82875510; + remoteInfo = "Pods-samhuri.net-PromiseKit"; + }; + D553AB20031EE5D22C4D4EAE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = FEB2358A8A8921EA03106F9C; + remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; + }; + D9C64C7C93AF1A4B71C8C094 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1763E9C4A542A603D7BF6501; + remoteInfo = "Pods-Blog-libextobjc"; + }; + DC5E8667C20349A676995F35 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A459747F1DBE1539ED418DBE /* Project object */; + proxyType = 1; + remoteGlobalIDString = B9A71FAE22E1053F06F80757; + remoteInfo = "Pods-Blog-dyci"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchSnippetOptions.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m; sourceTree = ""; }; - 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-FontAwesome+iOS-dummy.m"; sourceTree = ""; }; - 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyAppClient.m; path = Classes/BITHockeyAppClient.m; sourceTree = ""; }; - 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedDeleteHighlighted@2x.png"; path = "Resources/buttonRoundedDeleteHighlighted@2x.png"; sourceTree = ""; }; - 0168F964DD215127BAB2FB25 /* Pods-Blog-FontAwesome+iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-FontAwesome+iOS-prefix.pch"; sourceTree = ""; }; - 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAppStoreHeader.h; path = Classes/BITAppStoreHeader.h; sourceTree = ""; }; - 02A409006397ACD50DC712F2 /* Pods-Blog-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit.xcconfig"; sourceTree = ""; }; - 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; - 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; - 03D212ED7F0BC4815B93AACF /* YapSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapSet.h; path = YapDatabase/Utilities/YapSet.h; sourceTree = ""; }; - 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+FontAwesome.m"; sourceTree = ""; }; - 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManagerPrivate.h; path = Classes/BITCrashManagerPrivate.h; sourceTree = ""; }; - 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-dyci.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dyci-dummy.m"; sourceTree = ""; }; - 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseStatement.h; path = YapDatabase/Internal/YapDatabaseStatement.h; sourceTree = ""; }; - 080BDF5F127AA4AF3BB7630D /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipConnection.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m; sourceTree = ""; }; - 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITImageAnnotationViewController.h; path = Classes/BITImageAnnotationViewController.h; sourceTree = ""; }; - 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredView.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h; sourceTree = ""; }; - 0BA48468FA647EA7740B2237 /* IconGradient.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = IconGradient.png; path = Resources/IconGradient.png; sourceTree = ""; }; - 0BC9F5FB29551F575CC3D1FD /* Pods-samhuri.net-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-YapDatabase-prefix.pch"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; sourceTree = ""; }; - 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = "zh-Hans.lproj"; path = "Resources/zh-Hans.lproj"; sourceTree = ""; }; - 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTypes.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.m; sourceTree = ""; }; - 0D2752084F69F3909D28D926 /* Pods-Blog-FontAwesome+iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS.xcconfig"; sourceTree = ""; }; - 0DA3911803CC22752770CDC2 /* FAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FAImageView.m; sourceTree = ""; }; - 0E9A393EFD29ADC14A40D488 /* Pods-Blog-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Blog-acknowledgements.markdown"; sourceTree = ""; }; - 0E9CEB7A047399EA6AD0B1E6 /* Pods-samhuri.net-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-samhuri.net-environment.h"; sourceTree = ""; }; - 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ClassesList.m"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.m"; sourceTree = ""; }; - 126FB1A7049C4691143B6656 /* Ok@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Ok@2x.png"; path = "Resources/Ok@2x.png"; sourceTree = ""; }; - 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackListViewController.h; path = Classes/BITFeedbackListViewController.h; sourceTree = ""; }; - 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity~ipad.png"; path = "Resources/feedbackActivity~ipad.png"; sourceTree = ""; }; - 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc-Private.xcconfig"; sourceTree = ""; }; - 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionConnection.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m; sourceTree = ""; }; - 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipNode.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h; sourceTree = ""; }; - 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTypes.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.m; sourceTree = ""; }; - 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.m; sourceTree = ""; }; - 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashDetails.m; path = Classes/BITCrashDetails.m; sourceTree = ""; }; - 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLTransformerErrorHandling.m; path = Mantle/MTLTransformerErrorHandling.m; sourceTree = ""; }; - 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PromiseKit.h"; path = "objc/UIViewController+PromiseKit.h"; sourceTree = ""; }; - 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+PromiseKit.m"; path = "objc/NSNotificationCenter+PromiseKit.m"; sourceTree = ""; }; - 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationship.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h; sourceTree = ""; }; - 19F462093848F17B8CD183C9 /* iconCamera@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "iconCamera@2x.png"; path = "Resources/iconCamera@2x.png"; sourceTree = ""; }; - 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; - 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-HockeySDK.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; - 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFDynamicCodeInjection.h; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.h"; sourceTree = ""; }; - 1B703A6BEDE896B8C431D62F /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; - 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; - 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionPrivate.h; path = YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h; sourceTree = ""; }; - 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAuthenticator.m; path = Classes/BITAuthenticator.m; sourceTree = ""; }; - 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackListViewCell.h; path = Classes/BITFeedbackListViewCell.h; sourceTree = ""; }; - 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewConnection.m; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.m; sourceTree = ""; }; - 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearch.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h; sourceTree = ""; }; - 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewTransaction.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.m; sourceTree = ""; }; - 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-HockeySDK-Private.xcconfig"; sourceTree = ""; }; - 20282B8F4754BE7E220FD707 /* BITStoreButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreButton.h; path = Classes/BITStoreButton.h; sourceTree = ""; }; - 20E112DDB4AE54B73DE1336C /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; - 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMappingTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.m; sourceTree = ""; }; - 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAppStoreHeader.m; path = Classes/BITAppStoreHeader.m; sourceTree = ""; }; - 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMemoryTable.h; path = YapDatabase/Internal/YapMemoryTable.h; sourceTree = ""; }; - 23DEB41BD56023A09D2ACD97 /* YapCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCache.h; path = YapDatabase/Utilities/YapCache.h; sourceTree = ""; }; - 24D607AD9649AF74B29019EE /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; - 261E60A2F8407C25ECD19683 /* feedbackActivity.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = feedbackActivity.png; path = Resources/feedbackActivity.png; sourceTree = ""; }; - 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLJSONKeyPath.m"; path = "Mantle/NSDictionary+MTLJSONKeyPath.m"; sourceTree = ""; }; - 2739CFE5A18784673E3C8B0F /* EXTNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTNil.h; path = extobjc/EXTNil.h; sourceTree = ""; }; - 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; - 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAttributedLabel.m; path = Classes/BITAttributedLabel.m; sourceTree = ""; }; - 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashAttachment.h; path = Classes/BITCrashAttachment.h; sourceTree = ""; }; - 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptions.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h; sourceTree = ""; }; - 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; - 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; - 2C3CED34A8221E061CBC3394 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; - 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Cancel@3x.png"; path = "Resources/Cancel@3x.png"; sourceTree = ""; }; - 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewOptions.h; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.h; sourceTree = ""; }; - 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-FontAwesome+iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; - 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsView.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.m; sourceTree = ""; }; - 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabase.h; path = YapDatabase/YapDatabase.h; sourceTree = ""; }; - 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseManager.m; path = YapDatabase/Internal/YapDatabaseManager.m; sourceTree = ""; }; - 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexConnection.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m; sourceTree = ""; }; - 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; - 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitOptions.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.m; sourceTree = ""; }; - 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackActivity.h; path = Classes/BITFeedbackActivity.h; sourceTree = ""; }; - 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.h; sourceTree = ""; }; - 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+FontAwesome.h"; sourceTree = ""; }; - 30DF5DDA18287D6016B5E408 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-CocoaLumberjack-prefix.pch"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; - 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; - 3166B01856C436331247B5BB /* NSInvocation+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+EXT.m"; path = "extobjc/NSInvocation+EXT.m"; sourceTree = ""; }; - 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; - 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMergeInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.h; sourceTree = ""; }; - 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+PromiseKit.h"; path = "objc/NSURLConnection+PromiseKit.h"; sourceTree = ""; }; - 3308D7BDAB66931744762B7D /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; - 335E63163D0E30B59353F7C8 /* BITCrashManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashManager.m; path = Classes/BITCrashManager.m; sourceTree = ""; }; - 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ObjectiveSugar.h; path = Classes/ObjectiveSugar.h; sourceTree = ""; }; - 33944845AD0433274A6390F4 /* Pods-Blog-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase.xcconfig"; sourceTree = ""; }; - 33E997B4175AFC16EB235986 /* Rectangle.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Rectangle.png; path = Resources/Rectangle.png; sourceTree = ""; }; - 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashReportTextFormatter.m; path = Classes/BITCrashReportTextFormatter.m; sourceTree = ""; }; - 34C9996FF9709CA210D8AF16 /* ja.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = ja.lproj; path = Resources/ja.lproj; sourceTree = ""; }; - 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFDynamicCodeInjection.m; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.m"; sourceTree = ""; }; - 352DFB6A03780CD603976FCF /* YapDatabaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseView.m; path = YapDatabase/Extensions/Views/YapDatabaseView.m; sourceTree = ""; }; - 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeRecord.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.m; sourceTree = ""; }; - 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexHandler.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.m; sourceTree = ""; }; - 366C30DD854276061F3DCE87 /* YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabase.m; path = YapDatabase/YapDatabase.m; sourceTree = ""; }; - 36DC4EF50A17023C7709F5E7 /* Pods-samhuri.net-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-PromiseKit-prefix.pch"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; sourceTree = ""; }; - 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITArrowImageAnnotation.m; path = Classes/BITArrowImageAnnotation.m; sourceTree = ""; }; - 37A3446FBF50420B4587F51D /* BITHockeyManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyManager.m; path = Classes/BITHockeyManager.m; sourceTree = ""; }; - 37B57CAE9B3BD6B83562BCDE /* Pods-Blog-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-environment.h"; sourceTree = ""; }; - 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHTTPOperation.m; path = Classes/BITHTTPOperation.m; sourceTree = ""; }; - 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLJSONKeyPath.h"; path = "Mantle/NSDictionary+MTLJSONKeyPath.h"; sourceTree = ""; }; - 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabasePrivate.h; path = YapDatabase/Internal/YapDatabasePrivate.h; sourceTree = ""; }; - 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateViewControllerPrivate.h; path = Classes/BITUpdateViewControllerPrivate.h; sourceTree = ""; }; - 38A4A0C030E070441BF3EB86 /* Pods-samhuri.net-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-samhuri.net-resources.sh"; sourceTree = ""; }; - 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexOptions.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.m; sourceTree = ""; }; - 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackUserDataViewController.m; path = Classes/BITFeedbackUserDataViewController.m; sourceTree = ""; }; - 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManager.h; path = Classes/BITStoreUpdateManager.h; sourceTree = ""; }; - 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+DyCInjection.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.h"; sourceTree = ""; }; - 3B45EBA63E234BB38D261731 /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; - 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTransaction.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m; sourceTree = ""; }; - 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapWhitelistBlacklist.h; path = YapDatabase/Utilities/YapWhitelistBlacklist.h; sourceTree = ""; }; - 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; - 3BF5F262FEB96CD07F5F3999 /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; - 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchHandler.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.h; sourceTree = ""; }; - 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewOptions.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.m; sourceTree = ""; }; - 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+PromiseKit.m"; path = "objc/UIActionSheet+PromiseKit.m"; sourceTree = ""; }; - 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackListViewCell.m; path = Classes/BITFeedbackListViewCell.m; sourceTree = ""; }; - 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; - 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitConnection.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.m; sourceTree = ""; }; - 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HockeySDKPrivate.m; path = Classes/HockeySDKPrivate.m; sourceTree = ""; }; - 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexTransaction.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h; sourceTree = ""; }; - 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDebugDictionary.m; path = YapDatabase/Internal/YapDebugDictionary.m; sourceTree = ""; }; - 412CC4C8070F307CC821193A /* YapDatabaseString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseString.h; path = YapDatabase/Internal/YapDatabaseString.h; sourceTree = ""; }; - 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINib+StoryBoardSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.h"; sourceTree = ""; }; - 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; - 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticator_Private.h; path = Classes/BITAuthenticator_Private.h; sourceTree = ""; }; - 425EC32991B418837B39D218 /* BITImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITImageAnnotation.m; path = Classes/BITImageAnnotation.m; sourceTree = ""; }; - 42B8A6E679CAADE1D110DD14 /* Cancel.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Cancel.png; path = Resources/Cancel.png; sourceTree = ""; }; - 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; - 443A2BFCCC45974DA1DE3843 /* pt.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = pt.lproj; path = Resources/pt.lproj; sourceTree = ""; }; - 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Rectangle@2x.png"; path = "Resources/Rectangle@2x.png"; sourceTree = ""; }; - 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; - 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManager.h; path = Classes/BITUpdateManager.h; sourceTree = ""; }; - 44EBAE26A008D2AE7831CD11 /* Pods-samhuri.net-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit.xcconfig"; sourceTree = ""; }; - 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGFormURLEncode.h; sourceTree = ""; }; - 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+ObjectiveSugar.h"; path = "Classes/NSMutableArray+ObjectiveSugar.h"; sourceTree = ""; }; - 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; - 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseQuery.h; path = YapDatabase/Utilities/YapDatabaseQuery.h; sourceTree = ""; }; - 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-MBProgressHUD-dummy.m"; sourceTree = ""; }; - 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTransaction.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h; sourceTree = ""; }; - 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLMappingAdditions.m"; path = "Mantle/NSDictionary+MTLMappingAdditions.m"; sourceTree = ""; }; - 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAppVersionMetaInfo.h; path = Classes/BITAppVersionMetaInfo.h; sourceTree = ""; }; - 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedRegularHighlighted@2x.png"; path = "Resources/buttonRoundedRegularHighlighted@2x.png"; sourceTree = ""; }; - 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITImageAnnotationViewController.m; path = Classes/BITImageAnnotationViewController.m; sourceTree = ""; }; - 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-ObjectiveSugar-dummy.m"; sourceTree = ""; }; - 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyAttachment.h; path = Classes/BITHockeyAttachment.h; sourceTree = ""; }; - 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.debug.xcconfig"; sourceTree = ""; }; - 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; - 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; - 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPageMetadata.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h; sourceTree = ""; }; - 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; - 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITStoreUpdateManager.m; path = Classes/BITStoreUpdateManager.m; sourceTree = ""; }; - 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGFormURLEncode.m; sourceTree = ""; }; - 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+XIBSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.h"; sourceTree = ""; }; - 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-YapDatabase-dummy.m"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-dummy.m"; sourceTree = ""; }; - 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITWebTableViewCell.m; path = Classes/BITWebTableViewCell.m; sourceTree = ""; }; - 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase-Private.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig"; sourceTree = ""; }; - 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKit.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.h; sourceTree = ""; }; - 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSynthesize.h; path = extobjc/EXTSynthesize.h; sourceTree = ""; }; - 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionState.h; path = YapDatabase/Internal/YapDatabaseConnectionState.h; sourceTree = ""; }; - 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchPrivate.h; path = YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h; sourceTree = ""; }; - 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndex.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m; sourceTree = ""; }; - 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.release.xcconfig"; sourceTree = ""; }; - 503A183E45FBBEA1173DFD4E /* Pods-Blog-libextobjc-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-libextobjc-prefix.pch"; sourceTree = ""; }; - 510E05D35CA23A13291F868F /* Pods-Blog-HockeySDK.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-HockeySDK.xcconfig"; sourceTree = ""; }; - 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+ObjectiveSugar.h"; path = "Classes/NSDictionary+ObjectiveSugar.h"; sourceTree = ""; }; - 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexOptions.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.h; sourceTree = ""; }; - 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyManagerDelegate.h; path = Classes/BITHockeyManagerDelegate.h; sourceTree = ""; }; - 52973E9BB77DB4E7F8C497E2 /* Blur.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Blur.png; path = Resources/Blur.png; sourceTree = ""; }; - 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsView.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.h; sourceTree = ""; }; - 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredView.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m; sourceTree = ""; }; - 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS-Private.xcconfig"; sourceTree = ""; }; - 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Until.m"; path = "objc/PMKPromise+Until.m"; sourceTree = ""; }; - 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackListViewController.m; path = Classes/BITFeedbackListViewController.m; sourceTree = ""; }; - 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.h; sourceTree = ""; }; - 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManagerDelegate.h; path = Classes/BITUpdateManagerDelegate.h; sourceTree = ""; }; - 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKAttachRequest.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.m; sourceTree = ""; }; - 55A4E2B60DDDE0E6E3686762 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-MBProgressHUD-prefix.pch"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; sourceTree = ""; }; - 55BF87C50521DCFA948B4BC4 /* EXTADT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTADT.m; path = extobjc/EXTADT.m; sourceTree = ""; }; - 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-MBProgressHUD-dummy.m"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-dummy.m"; sourceTree = ""; }; - 56065D3D425D00854216D247 /* YapDatabaseViewState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewState.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.h; sourceTree = ""; }; - 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; - 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManagerDelegate.h; path = Classes/BITStoreUpdateManagerDelegate.h; sourceTree = ""; }; - 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PromiseKit.m"; path = "objc/CALayer+PromiseKit.m"; sourceTree = ""; }; - 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedRegular.png; path = Resources/buttonRoundedRegular.png; sourceTree = ""; }; - 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-PromiseKit-dummy.m"; sourceTree = ""; }; - 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashReportTextFormatter.h; path = Classes/BITCrashReportTextFormatter.h; sourceTree = ""; }; - 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; - 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITUpdateViewController.m; path = Classes/BITUpdateViewController.m; sourceTree = ""; }; - 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCollectionKey.m; path = YapDatabase/Utilities/YapCollectionKey.m; sourceTree = ""; }; - 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyHelper.h; path = Classes/BITHockeyHelper.h; sourceTree = ""; }; - 5BE2F353665128803541EB57 /* Arrow@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Arrow@3x.png"; path = "Resources/Arrow@3x.png"; sourceTree = ""; }; - 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewOptions.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.h; sourceTree = ""; }; - 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackMessageAttachment.m; path = Classes/BITFeedbackMessageAttachment.m; sourceTree = ""; }; - 5CF2FA58D5BE220B9B0E1AF0 /* Pods-Blog-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; - 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+EXT.h"; path = "extobjc/NSMethodSignature+EXT.h"; sourceTree = ""; }; - 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; - 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+PromiseKit.h"; path = "objc/UIActionSheet+PromiseKit.h"; sourceTree = ""; }; - 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@2x.png"; path = "Resources/feedbackActivity@2x.png"; sourceTree = ""; }; - 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci-Private.xcconfig"; sourceTree = ""; }; - 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewOptions.m; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.m; sourceTree = ""; }; - 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManagerDelegate.h; path = Classes/BITFeedbackManagerDelegate.h; sourceTree = ""; }; - 619FF75A6C351D8E5A76F150 /* Ok.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Ok.png; path = Resources/Ok.png; sourceTree = ""; }; - 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; - 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; - 633B5CB45BD5145F5BFC6281 /* Pods-Blog-dyci-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-dyci-prefix.pch"; sourceTree = ""; }; - 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManagerDelegate.h; path = Classes/BITCrashManagerDelegate.h; sourceTree = ""; }; - 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdgePrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h; sourceTree = ""; }; - 63AFCE5FFB1990294B4EB79F /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; - 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-samhuri.net-dummy.m"; sourceTree = ""; }; - 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-Mantle-dummy.m"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-dummy.m"; sourceTree = ""; }; - 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle-Private.xcconfig"; sourceTree = ""; }; - 6581603B55DBEF96247E815B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-ObjectiveSugar-prefix.pch"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; - 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackComposeViewControllerDelegate.h; path = Classes/BITFeedbackComposeViewControllerDelegate.h; sourceTree = ""; }; - 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; - 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; - 66C92112F781616FECE24051 /* YapCollectionKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCollectionKey.h; path = YapDatabase/Utilities/YapCollectionKey.h; sourceTree = ""; }; - 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITRectangleImageAnnotation.h; path = Classes/BITRectangleImageAnnotation.h; sourceTree = ""; }; - 66E2AAE6B5911FAAFC70C7F2 /* Pods-Blog-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-YapDatabase-prefix.pch"; sourceTree = ""; }; - 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseLogging.h; path = YapDatabase/Internal/YapDatabaseLogging.h; sourceTree = ""; }; - 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMemoryTable.m; path = YapDatabase/Internal/YapMemoryTable.m; sourceTree = ""; }; - 681E61D4F1C8003DD0002889 /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; - 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAttributedLabel.h; path = Classes/BITAttributedLabel.h; sourceTree = ""; }; - 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; - 693A6E55BFD6258368D2CCCF /* Pods-samhuri.net-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack.xcconfig"; sourceTree = ""; }; - 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+XIBSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.m"; sourceTree = ""; }; - 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; - 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+FontAwesome.h"; sourceTree = ""; }; - 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyBaseManager.m; path = Classes/BITHockeyBaseManager.m; sourceTree = ""; }; - 6C523A395E279637F7F1564D /* Pods-Blog-libextobjc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc.xcconfig"; sourceTree = ""; }; - 6C6329951268398B43509B8E /* Pods-Blog-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; - 6D844884C2AF03CF2238630A /* libPods-Blog.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackMessage.h; path = Classes/BITFeedbackMessage.h; sourceTree = ""; }; - 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackManager.m; path = Classes/BITFeedbackManager.m; sourceTree = ""; }; - 6E44BD212C5DBCBC81100F48 /* Pods-samhuri.net-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-samhuri.net-acknowledgements.plist"; sourceTree = ""; }; - 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YapDatabase.m"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.m"; sourceTree = ""; }; - 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitConnection.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.h; sourceTree = ""; }; - 6FAAC7962D183FFE47391AB9 /* fr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = fr.lproj; path = Resources/fr.lproj; sourceTree = ""; }; - 6FECC3F313145297F55198B3 /* de.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = de.lproj; path = Resources/de.lproj; sourceTree = ""; }; - 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewConnection.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.m; sourceTree = ""; }; - 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionConnection.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h; sourceTree = ""; }; - 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashDetailsPrivate.h; path = Classes/BITCrashDetailsPrivate.h; sourceTree = ""; }; - 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexPrivate.h; path = YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h; sourceTree = ""; }; - 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+ObjectiveSugar.m"; path = "Classes/NSMutableArray+ObjectiveSugar.m"; sourceTree = ""; }; - 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITStoreButton.m; path = Classes/BITStoreButton.m; sourceTree = ""; }; - 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTNil.m; path = extobjc/EXTNil.m; sourceTree = ""; }; - 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapWhitelistBlacklist.m; path = YapDatabase/Utilities/YapWhitelistBlacklist.m; sourceTree = ""; }; - 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedDeleteHighlighted.png; path = Resources/buttonRoundedDeleteHighlighted.png; sourceTree = ""; }; - 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase-Private.xcconfig"; sourceTree = ""; }; - 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; - 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackActivity.m; path = Classes/BITFeedbackActivity.m; sourceTree = ""; }; - 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-ObjectiveSugar-dummy.m"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-dummy.m"; sourceTree = ""; }; - 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseManagerPrivate.h; path = Classes/BITHockeyBaseManagerPrivate.h; sourceTree = ""; }; - 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitPrivate.h; path = YapDatabase/Extensions/CloudKit/Internal/YapDatabaseCloudKitPrivate.h; sourceTree = ""; }; - 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h; sourceTree = ""; }; - 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseManager.h; path = YapDatabase/Internal/YapDatabaseManager.h; sourceTree = ""; }; - 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLTransformerErrorHandling.h; path = Mantle/MTLTransformerErrorHandling.h; sourceTree = ""; }; - 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipOptions.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m; sourceTree = ""; }; - 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKit.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.m; sourceTree = ""; }; - 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLMappingAdditions.h"; path = "Mantle/NSDictionary+MTLMappingAdditions.h"; sourceTree = ""; }; - 7DEB1DA3BA9A26F9296364B6 /* Pods-Blog-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-PromiseKit-prefix.pch"; sourceTree = ""; }; - 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCache.m; path = YapDatabase/Utilities/YapCache.m; sourceTree = ""; }; - 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Rectangle@3x.png"; path = "Resources/Rectangle@3x.png"; sourceTree = ""; }; - 7F1B5146C965858B92A60454 /* Pods-samhuri.net-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle.xcconfig"; sourceTree = ""; }; - 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; - 801D1290FA2159F94FA473CE /* HockeySDK.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDK.h; path = Classes/HockeySDK.h; sourceTree = ""; }; - 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit-Private.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig"; sourceTree = ""; }; - 80B569CC06E949026E572280 /* UIView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+PromiseKit.m"; path = "objc/UIView+PromiseKit.m"; sourceTree = ""; }; - 80C8E42F143FF516C3C9E62A /* YapNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapNull.m; path = YapDatabase/Internal/YapNull.m; sourceTree = ""; }; - 8146B2DACA711A176F8EC65B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 815314C99E35FEFB96DA5AF6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKAttachRequest.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.h; sourceTree = ""; }; - 83B614F52437F53C5C14CC23 /* Ok@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Ok@3x.png"; path = "Resources/Ok@3x.png"; sourceTree = ""; }; - 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@2x~ipad.png"; path = "Resources/feedbackActivity@2x~ipad.png"; sourceTree = ""; }; - 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFInjectionsNotificationsCenter.m; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.m"; sourceTree = ""; }; - 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; - 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackMessage.m; path = Classes/BITFeedbackMessage.m; sourceTree = ""; }; - 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedRegular@2x.png"; path = "Resources/buttonRoundedRegular@2x.png"; sourceTree = ""; }; - 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+PromiseKit.m"; path = "objc/NSURLConnection+PromiseKit.m"; sourceTree = ""; }; - 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = ru.lproj; path = Resources/ru.lproj; sourceTree = ""; }; - 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dummy.m"; sourceTree = ""; }; - 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChange.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h; sourceTree = ""; }; - 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedDelete.png; path = Resources/buttonRoundedDelete.png; sourceTree = ""; }; - 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedRegularHighlighted.png; path = Resources/buttonRoundedRegularHighlighted.png; sourceTree = ""; }; - 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTypes.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h; sourceTree = ""; }; - 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcherDelegate.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcherDelegate.h"; sourceTree = ""; }; - 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChangePrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h; sourceTree = ""; }; - 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; - 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchTransaction.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m; sourceTree = ""; }; - 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchHandler.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.m; sourceTree = ""; }; - 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackComposeViewController.m; path = Classes/BITFeedbackComposeViewController.m; sourceTree = ""; }; - 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtension.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.h; sourceTree = ""; }; - 8D4323EE31234804931D429D /* BITKeychainUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITKeychainUtils.h; path = Classes/BITKeychainUtils.h; sourceTree = ""; }; - 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITImageAnnotation.h; path = Classes/BITImageAnnotation.h; sourceTree = ""; }; - 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; - 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; - 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewRangeOptions.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m; sourceTree = ""; }; - 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTransaction.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m; sourceTree = ""; }; - 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHTTPOperation.h; path = Classes/BITHTTPOperation.h; sourceTree = ""; }; - 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManagerPrivate.h; path = Classes/BITUpdateManagerPrivate.h; sourceTree = ""; }; - 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITRectangleImageAnnotation.m; path = Classes/BITRectangleImageAnnotation.m; sourceTree = ""; }; - 908FD89BD83CABAE73497EB3 /* Pods-samhuri.net-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-samhuri.net-acknowledgements.markdown"; sourceTree = ""; }; - 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; - 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.release.xcconfig"; sourceTree = ""; }; - 92C665F6305FD98E3F869913 /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = Vendor/CrashReporter.framework; sourceTree = ""; }; - 92E383A8776E341CD4CAA48A /* Pods-Blog-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack.xcconfig"; sourceTree = ""; }; - 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PromiseKit.m"; path = "objc/UIViewController+PromiseKit.m"; sourceTree = ""; }; - 95087C4EE90196EFC714E9E3 /* Pods-Blog-dyci.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci.xcconfig"; sourceTree = ""; }; - 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-YapDatabase-dummy.m"; sourceTree = ""; }; - 95CF93105862D466397FF4B1 /* YapTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapTouch.h; path = YapDatabase/Internal/YapTouch.h; sourceTree = ""; }; - 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+ObjectiveSugar.h"; path = "Classes/NSString+ObjectiveSugar.h"; sourceTree = ""; }; - 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtension.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.m; sourceTree = ""; }; - 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitOptions.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.h; sourceTree = ""; }; - 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionDefaults.m; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.m; sourceTree = ""; }; - 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchConnection.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m; sourceTree = ""; }; - 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeSet.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.h; sourceTree = ""; }; - 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; - 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexSetup.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h; sourceTree = ""; }; - 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITActivityIndicatorButton.m; path = Classes/BITActivityIndicatorButton.m; sourceTree = ""; }; - 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTransaction.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.m; sourceTree = ""; }; - 9AB446BEFF53A4FBAF8114C9 /* Pods-Blog-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle.xcconfig"; sourceTree = ""; }; - 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = extobjc/EXTScope.m; sourceTree = ""; }; - 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+ObjectiveSugar.h"; path = "Classes/NSArray+ObjectiveSugar.h"; sourceTree = ""; }; - 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTypes.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.h; sourceTree = ""; }; - 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PromiseKit.h"; path = "objc/CALayer+PromiseKit.h"; sourceTree = ""; }; - 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; - 9CBE9CD5457F95EC9CCB50E1 /* FontAwesome.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = FontAwesome.ttf; path = Resources/FontAwesome.ttf; sourceTree = ""; }; - 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+PromiseKit.h"; path = "objc/NSNotificationCenter+PromiseKit.h"; sourceTree = ""; }; - 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Blur@2x.png"; path = "Resources/Blur@2x.png"; sourceTree = ""; }; - 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapDatabaseViewPage.mm; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm; sourceTree = ""; }; - 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManager.h; path = Classes/BITFeedbackManager.h; sourceTree = ""; }; - 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-libextobjc.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeQueue.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.m; sourceTree = ""; }; - 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = "pt-PT.lproj"; path = "Resources/pt-PT.lproj"; sourceTree = ""; }; - 9E3B403889BC6F9D19D277C6 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; - 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewTransaction.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.h; sourceTree = ""; }; - 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMurmurHash.h; path = YapDatabase/Utilities/YapMurmurHash.h; sourceTree = ""; }; - 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPage.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h; sourceTree = ""; }; - 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; - A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchConnection.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h; sourceTree = ""; }; - A023FC3597928617A456E3AB /* HockeySDKPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDKPrivate.h; path = Classes/HockeySDKPrivate.h; sourceTree = ""; }; - A07DB2BC98BD53CB96177A33 /* Promise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Promise.h; path = objc/PromiseKit/Promise.h; sourceTree = ""; }; - A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+ObjectiveSugar.m"; path = "Classes/NSString+ObjectiveSugar.m"; sourceTree = ""; }; - A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTConcreteProtocol.m; path = extobjc/EXTConcreteProtocol.m; sourceTree = ""; }; - A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecord.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.m; sourceTree = ""; }; - A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAppVersionMetaInfo.m; path = Classes/BITAppVersionMetaInfo.m; sourceTree = ""; }; - A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDKFeatureConfig.h; path = Classes/HockeySDKFeatureConfig.h; sourceTree = ""; }; - A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipTransaction.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h; sourceTree = ""; }; - A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipTransaction.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m; sourceTree = ""; }; - A32A01FF0A29D45FACE89BAA /* Pods-Blog-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar.xcconfig"; sourceTree = ""; }; - A353569B80DC3431CBB4045F /* BITKeychainUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITKeychainUtils.m; path = Classes/BITKeychainUtils.m; sourceTree = ""; }; - A3D858279C71419EA04223FF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeRecord.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.h; sourceTree = ""; }; - A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Blur@3x.png"; path = "Resources/Blur@3x.png"; sourceTree = ""; }; - A61395B78F311A97B3E1F8AE /* bg.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = bg.png; path = Resources/bg.png; sourceTree = ""; }; - A6CC972B2528EAAD054CE30C /* Pods-samhuri.net-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-Mantle-prefix.pch"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; sourceTree = ""; }; - A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-libextobjc-dummy.m"; sourceTree = ""; }; - A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITBlurImageAnnotation.h; path = Classes/BITBlurImageAnnotation.h; sourceTree = ""; }; - A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseLogging.m; path = YapDatabase/Internal/YapDatabaseLogging.m; sourceTree = ""; }; - A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle-Private.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig"; sourceTree = ""; }; - A7CEB319B56B9E9E04D27915 /* extobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = extobjc.h; path = extobjc/extobjc.h; sourceTree = ""; }; - A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptionsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h; sourceTree = ""; }; - A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseViewController.h; path = Classes/BITHockeyBaseViewController.h; sourceTree = ""; }; - A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTransaction.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.h; sourceTree = ""; }; - A94829669A15A21AC89295A3 /* EXTSafeCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSafeCategory.h; path = extobjc/EXTSafeCategory.h; sourceTree = ""; }; - A948FC7FF58BAB60A6134B4B /* iconCamera.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = iconCamera.png; path = Resources/iconCamera.png; sourceTree = ""; }; - AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTypes.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.m; sourceTree = ""; }; - AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeQueue.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.h; sourceTree = ""; }; - ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackUserDataViewController.h; path = Classes/BITFeedbackUserDataViewController.h; sourceTree = ""; }; - AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueuePrivate.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueuePrivate.h; sourceTree = ""; }; - AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIFont+FontAwesome.h"; sourceTree = ""; }; - AC9D8A4B26B7D42DBB165638 /* YapSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapSet.m; path = YapDatabase/Utilities/YapSet.m; sourceTree = ""; }; - ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGHTTPURLRQ.m; sourceTree = ""; }; - AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionTransaction.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m; sourceTree = ""; }; - AD94996C5ACAD93E2413FFF5 /* YapTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapTouch.m; path = YapDatabase/Internal/YapTouch.m; sourceTree = ""; }; - ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappingsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h; sourceTree = ""; }; - AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexTransaction.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m; sourceTree = ""; }; - AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexSetup.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m; sourceTree = ""; }; - AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-CocoaLumberjack-dummy.m"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-dummy.m"; sourceTree = ""; }; - AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-CocoaLumberjack-dummy.m"; sourceTree = ""; }; - AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit-Private.xcconfig"; sourceTree = ""; }; - AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManagerPrivate.h; path = Classes/BITStoreUpdateManagerPrivate.h; sourceTree = ""; }; - B020B116677D81960C8473B5 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar.xcconfig"; sourceTree = ""; }; - B08CC53317FA226DE7E2F027 /* Cancel@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Cancel@2x.png"; path = "Resources/Cancel@2x.png"; sourceTree = ""; }; - B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGHTTPURLRQ.h; sourceTree = ""; }; - B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchSnippetOptions.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h; sourceTree = ""; }; - B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFFileWatcher.m; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.m"; sourceTree = ""; }; - B278467453160CB24D460AD6 /* Promise+Pause.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Pause.h"; path = "objc/PromiseKit/Promise+Pause.h"; sourceTree = ""; }; - B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-HockeySDK-dummy.m"; sourceTree = ""; }; - B280C102D9EA5CD778F7B27D /* it.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = it.lproj; path = Resources/it.lproj; sourceTree = ""; }; - B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewChange.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m; sourceTree = ""; }; - B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackMessageAttachment.h; path = Classes/BITFeedbackMessageAttachment.h; sourceTree = ""; }; - B40A12346A638AE5BB40D958 /* OMGUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGUserAgent.h; sourceTree = ""; }; - B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; - B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+ObjectiveSugar.m"; path = "Classes/NSArray+ObjectiveSugar.m"; sourceTree = ""; }; - B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+PromiseKit.h"; path = "objc/UIAlertView+PromiseKit.h"; sourceTree = ""; }; - B5145EAD52ED69ACF83CEF7F /* Pods-samhuri.net-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase.xcconfig"; sourceTree = ""; }; - B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; - B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchQueue.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.m; sourceTree = ""; }; - B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipConnection.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h; sourceTree = ""; }; - B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+FontAwesome.m"; sourceTree = ""; }; - B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipOptions.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h; sourceTree = ""; }; - B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; - B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+ObjectiveSugar.m"; path = "Classes/NSNumber+ObjectiveSugar.m"; sourceTree = ""; }; - B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; - B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSelectorChecking.m; path = extobjc/EXTSelectorChecking.m; sourceTree = ""; }; - B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewConnection.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h; sourceTree = ""; }; - B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashDetails.h; path = Classes/BITCrashDetails.h; sourceTree = ""; }; - B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "IconGradient@2x.png"; path = "Resources/IconGradient@2x.png"; sourceTree = ""; }; - BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.m; sourceTree = ""; }; - BA776DEBA98EB4903E84A0F8 /* hu.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = hu.lproj; path = Resources/hu.lproj; sourceTree = ""; }; - BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearch.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m; sourceTree = ""; }; - BBECDB2613259DCA4284788C /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; - BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMappingTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.h; sourceTree = ""; }; - BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnection.h; path = YapDatabase/YapDatabaseConnection.h; sourceTree = ""; }; - BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAuthenticationViewController.m; path = Classes/BITAuthenticationViewController.m; sourceTree = ""; }; - BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMurmurHash.m; path = YapDatabase/Utilities/YapMurmurHash.m; sourceTree = ""; }; - BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyAttachment.m; path = Classes/BITHockeyAttachment.m; sourceTree = ""; }; - BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnection.m; path = YapDatabase/YapDatabaseConnection.m; sourceTree = ""; }; - C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticator.h; path = Classes/BITAuthenticator.h; sourceTree = ""; }; - C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITActivityIndicatorButton.h; path = Classes/BITActivityIndicatorButton.h; sourceTree = ""; }; - C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseOptions.h; path = YapDatabase/YapDatabaseOptions.h; sourceTree = ""; }; - C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+ObjectiveSugar.m"; path = "Classes/NSDictionary+ObjectiveSugar.m"; sourceTree = ""; }; - C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+PromiseKit.h"; path = "objc/UIView+PromiseKit.h"; sourceTree = ""; }; - C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-Mantle-dummy.m"; sourceTree = ""; }; - C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITWebTableViewCell.h; path = Classes/BITWebTableViewCell.h; sourceTree = ""; }; - C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; - C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFInjectionsNotificationsCenter.h; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.h"; sourceTree = ""; }; - C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@3x.png"; path = "Resources/feedbackActivity@3x.png"; sourceTree = ""; }; - C63C6B4830C908886C0A3DFE /* Arrow.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Arrow.png; path = Resources/Arrow.png; sourceTree = ""; }; - C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ClassesList.h"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.h"; sourceTree = ""; }; - C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseView.h; path = YapDatabase/Extensions/Views/YapDatabaseView.h; sourceTree = ""; }; - C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyHelper.m; path = Classes/BITHockeyHelper.m; sourceTree = ""; }; - C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseTransaction.m; path = YapDatabase/YapDatabaseTransaction.m; sourceTree = ""; }; - C762D834D70422D3F7A56BFD /* EXTADT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTADT.h; path = extobjc/EXTADT.h; sourceTree = ""; }; - C807DB918DC08D171C49611E /* YapDatabaseStatement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseStatement.m; path = YapDatabase/Internal/YapDatabaseStatement.m; sourceTree = ""; }; - C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexConnection.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h; sourceTree = ""; }; - C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; - C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = nl.lproj; path = Resources/nl.lproj; sourceTree = ""; }; - C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; - CA2C8071DC8343F160D1F9BE /* Pods-Blog-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Blog-acknowledgements.plist"; sourceTree = ""; }; - CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "authorize_denied@3x.png"; path = "Resources/authorize_denied@3x.png"; sourceTree = ""; }; - CA617FB64E3352C20A0DC0C7 /* Pods-Blog-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD.xcconfig"; sourceTree = ""; }; - CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseQuery.m; path = YapDatabase/Utilities/YapDatabaseQuery.m; sourceTree = ""; }; - CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-PromiseKit-dummy.m"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-dummy.m"; sourceTree = ""; }; - CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionState.m; path = YapDatabase/Internal/YapDatabaseConnectionState.m; sourceTree = ""; }; - CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ObjectiveSugar.m"; path = "Classes/NSSet+ObjectiveSugar.m"; sourceTree = ""; }; - CD30F7532A22486925B12E4A /* Promise+When.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+When.h"; path = "objc/PromiseKit/Promise+When.h"; sourceTree = ""; }; - CD8F14FC27B9F842F9FC0F9E /* Pods-Blog-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-Mantle-prefix.pch"; sourceTree = ""; }; - CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewPrivate.h; path = YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h; sourceTree = ""; }; - CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; - CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Pause.m"; path = "objc/PMKPromise+Pause.m"; sourceTree = ""; }; - CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticationViewController.h; path = Classes/BITAuthenticationViewController.h; sourceTree = ""; }; - CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyBaseViewController.m; path = Classes/BITHockeyBaseViewController.m; sourceTree = ""; }; - D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITUpdateManager.m; path = Classes/BITUpdateManager.m; sourceTree = ""; }; - D0609C4BB316F6C406515655 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = extobjc/metamacros.h; sourceTree = ""; }; - D09964036F500F44D0E6439F /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = objc/PromiseKit.h; sourceTree = ""; }; - D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UINib+StoryBoardSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.m"; sourceTree = ""; }; - D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipPrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h; sourceTree = ""; }; - D1E37A53CE49826B04F4AD43 /* es.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = es.lproj; path = Resources/es.lproj; sourceTree = ""; }; - D38CB005D50C21616F93C7CF /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; - D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+EXT.m"; path = "extobjc/NSMethodSignature+EXT.m"; sourceTree = ""; }; - D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+DyCInjection.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.m"; sourceTree = ""; }; - D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexHandler.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.h; sourceTree = ""; }; - D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndex.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h; sourceTree = ""; }; - D52919E3E0B4582879052E43 /* Pods-Blog-HockeySDK-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-HockeySDK-prefix.pch"; sourceTree = ""; }; - D59452232BBDB6A18E87B2F1 /* FAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FAImageView.h; sourceTree = ""; }; - D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseTransaction.h; path = YapDatabase/YapDatabaseTransaction.h; sourceTree = ""; }; - D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; - D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseManager.h; path = Classes/BITHockeyBaseManager.h; sourceTree = ""; }; - D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTypes.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.h; sourceTree = ""; }; - D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "authorize_denied@2x.png"; path = "Resources/authorize_denied@2x.png"; sourceTree = ""; }; - D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecord.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.h; sourceTree = ""; }; - D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappings.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h; sourceTree = ""; }; - D9611CD8143D152BA4AD4E90 /* authorize_denied.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = authorize_denied.png; path = Resources/authorize_denied.png; sourceTree = ""; }; - D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+EXT.h"; path = "extobjc/NSInvocation+EXT.h"; sourceTree = ""; }; - D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackComposeViewController.h; path = Classes/BITFeedbackComposeViewController.h; sourceTree = ""; }; - DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTConcreteProtocol.h; path = extobjc/EXTConcreteProtocol.h; sourceTree = ""; }; - DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YapDatabase.h"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.h"; sourceTree = ""; }; - DB4997275289D86523E96F96 /* OMGUserAgent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGUserAgent.m; sourceTree = ""; }; - DBB53A3B54F3EE0DFCE4CCB4 /* Pods-Blog-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Blog-resources.sh"; sourceTree = ""; }; - DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSafeCategory.m; path = extobjc/EXTSafeCategory.m; sourceTree = ""; }; - DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchTransaction.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h; sourceTree = ""; }; - DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; - DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseOptions.m; path = YapDatabase/YapDatabaseOptions.m; sourceTree = ""; }; - DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashMetaData.m; path = Classes/BITCrashMetaData.m; sourceTree = ""; }; - DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionDefaults.h; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.h; sourceTree = ""; }; - DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewConnection.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.h; sourceTree = ""; }; - E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITArrowImageAnnotation.h; path = Classes/BITArrowImageAnnotation.h; sourceTree = ""; }; - E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapRowidSet.h; path = YapDatabase/Internal/YapRowidSet.h; sourceTree = ""; }; - E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMergeInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.m; sourceTree = ""; }; - E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapRowidSet.mm; path = YapDatabase/Internal/YapRowidSet.mm; sourceTree = ""; }; - E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ObjectiveSugar.h"; path = "Classes/NSSet+ObjectiveSugar.h"; sourceTree = ""; }; - E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationship.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m; sourceTree = ""; }; - E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManager.h; path = Classes/BITCrashManager.h; sourceTree = ""; }; - E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; - E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = extobjc/EXTScope.h; sourceTree = ""; }; - E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateViewController.h; path = Classes/BITUpdateViewController.h; sourceTree = ""; }; - E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewPageMetadata.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m; sourceTree = ""; }; - E8487C0B60EDEB653E99C666 /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = objc/PromiseKit/fwd.h; sourceTree = ""; }; - E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTransaction.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h; sourceTree = ""; }; - E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedDelete@2x.png"; path = "Resources/buttonRoundedDelete@2x.png"; sourceTree = ""; }; - E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; - E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdge.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h; sourceTree = ""; }; - EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITBlurImageAnnotation.m; path = Classes/BITBlurImageAnnotation.m; sourceTree = ""; }; - EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; - ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipEdge.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m; sourceTree = ""; }; - ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+When.m"; path = "objc/PMKPromise+When.m"; sourceTree = ""; }; - EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - EDDEE98F8825954BC4DC86D8 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; - EE5B7F50E59D05A920195088 /* Pods-samhuri.net-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD.xcconfig"; sourceTree = ""; }; - EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; - EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FontAwesome.m"; sourceTree = ""; }; - EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashMetaData.h; path = Classes/BITCrashMetaData.h; sourceTree = ""; }; - EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcher.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.h"; sourceTree = ""; }; - EFE57D9EBDFF786697CF0917 /* hr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = hr.lproj; path = Resources/hr.lproj; sourceTree = ""; }; - F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyAppClient.h; path = Classes/BITHockeyAppClient.h; sourceTree = ""; }; - F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.debug.xcconfig"; sourceTree = ""; }; - F15DAE4BDB915BFE7508024F /* Promise+Until.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Until.h"; path = "objc/PromiseKit/Promise+Until.h"; sourceTree = ""; }; - F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeSet.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.m; sourceTree = ""; }; - F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewConnection.h; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.h; sourceTree = ""; }; - F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSelectorChecking.h; path = extobjc/EXTSelectorChecking.h; sourceTree = ""; }; - F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuickLook.framework; sourceTree = DEVELOPER_DIR; }; - F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueue.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.h; sourceTree = ""; }; - F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewConnection.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m; sourceTree = ""; }; - F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewState.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.m; sourceTree = ""; }; - F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+PromiseKit.m"; path = "objc/UIAlertView+PromiseKit.m"; sourceTree = ""; }; - F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDebugDictionary.h; path = YapDatabase/Internal/YapDebugDictionary.h; sourceTree = ""; }; - F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewMappings.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m; sourceTree = ""; }; - F5E14A083793793CCBE0A329 /* en.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = en.lproj; path = Resources/en.lproj; sourceTree = ""; }; - F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManagerPrivate.h; path = Classes/BITFeedbackManagerPrivate.h; sourceTree = ""; }; - F7845BE27C17D31150410488 /* Pods-Blog-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-MBProgressHUD-prefix.pch"; sourceTree = ""; }; - F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashAttachment.m; path = Classes/BITCrashAttachment.m; sourceTree = ""; }; - F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Arrow@2x.png"; path = "Resources/Arrow@2x.png"; sourceTree = ""; }; - F8FEFB0BE1417D56700D9213 /* YapNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapNull.h; path = YapDatabase/Internal/YapNull.h; sourceTree = ""; }; - FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; - FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PMKPromise.m; path = objc/PMKPromise.m; sourceTree = ""; }; - FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyManager.h; path = Classes/BITHockeyManager.h; sourceTree = ""; }; - FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionTransaction.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h; sourceTree = ""; }; - FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; - FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewPrivate.h; path = YapDatabase/Extensions/SearchResults/Internal/YapDatabaseSearchResultsViewPrivate.h; sourceTree = ""; }; - FFC39F1AD2E4583CE74D9C2B /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; - FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+ObjectiveSugar.h"; path = "Classes/NSNumber+ObjectiveSugar.h"; sourceTree = ""; }; + 006E0DA169F28E5934F4D1EB /* Pods-Blog-FontAwesome+iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-FontAwesome+iOS-prefix.pch"; sourceTree = ""; }; + 00B41FD80DDC18F40AD63D9C /* YDBCKAttachRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKAttachRequest.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.m; sourceTree = ""; }; + 00D7CA8BCAA182A1493D935E /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = extobjc/metamacros.h; sourceTree = ""; }; + 0126C7A9D39433380C36B1D7 /* UIViewController+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PromiseKit.m"; path = "objc/UIViewController+PromiseKit.m"; sourceTree = ""; }; + 01661BE48596AA6B643AEF4B /* Pods-Blog-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Blog-acknowledgements.markdown"; sourceTree = ""; }; + 018B635C2A7387D2E8746B59 /* YapDatabaseViewChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChange.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h; sourceTree = ""; }; + 019860EA86E3333754A118CF /* FAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FAImageView.m; sourceTree = ""; }; + 028D43A0D9937EB44BE357F6 /* YapDatabaseCloudKitOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitOptions.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.m; sourceTree = ""; }; + 0441D72DB21FA8E7477E6462 /* CALayer+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PromiseKit.h"; path = "objc/CALayer+PromiseKit.h"; sourceTree = ""; }; + 047CAC3F0081277E69633741 /* Pods-samhuri.net-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack.xcconfig"; sourceTree = ""; }; + 04E151C4A03CCA86A696FD88 /* YapDatabaseFullTextSearchSnippetOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchSnippetOptions.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m; sourceTree = ""; }; + 051235799B7032D47E39867E /* UIView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+PromiseKit.m"; path = "objc/UIView+PromiseKit.m"; sourceTree = ""; }; + 0544571D18B51B563C648EFC /* YapDatabaseCloudKitTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTypes.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.m; sourceTree = ""; }; + 0570976EE6011FDCF1AF731D /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; + 069A1E878EDD2439935FF6E0 /* YapDatabaseFilteredViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTransaction.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m; sourceTree = ""; }; + 06A342A54EE29B38F9E7653E /* OMGFormURLEncode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGFormURLEncode.h; sourceTree = ""; }; + 0705765BAAF575E1289E3DFF /* ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ObjectiveSugar.h; path = Classes/ObjectiveSugar.h; sourceTree = ""; }; + 07629F896665B1DF6A6BE3B1 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; + 07C0B6CB1385BEDE2C9D4D5F /* YapDatabaseSearchResultsViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewTransaction.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.m; sourceTree = ""; }; + 085F7144E1717A488F4A4B8F /* libPods-Blog-FontAwesome+iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-FontAwesome+iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0923E09FB2B4D9ADD78364C1 /* libPods-Blog-dyci.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-dyci.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A389D4334A5CC05AFE30BAB /* libPods-Blog-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0ABD42B673212827FC5E81A5 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; + 0B3F208E7DE573E799DCD212 /* YapDatabaseRelationshipEdgePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdgePrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h; sourceTree = ""; }; + 0B46BC0D2A7872BCE0E5B488 /* YapDatabaseCloudKitPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitPrivate.h; path = YapDatabase/Extensions/CloudKit/Internal/YapDatabaseCloudKitPrivate.h; sourceTree = ""; }; + 0BA301CED7FB7D2E5F754B85 /* YDBCKMappingTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMappingTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.m; sourceTree = ""; }; + 0C06CAE726289F6445467F9A /* YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabase.h; path = YapDatabase/YapDatabase.h; sourceTree = ""; }; + 0D0AEB84C3555ED9C8396F69 /* YapDatabaseViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h; sourceTree = ""; }; + 0E9AAE9CC530AD122FB1E38F /* SFDynamicCodeInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFDynamicCodeInjection.m; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.m"; sourceTree = ""; }; + 0ED7CB96EF39D2D9DBD71071 /* YapDatabaseExtensionConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionConnection.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m; sourceTree = ""; }; + 0F337CFC490A2A341EE50238 /* YapDatabaseFullTextSearchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchHandler.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.m; sourceTree = ""; }; + 0F72E758229840BFDA03E9D7 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; + 0F7403C2C75CB3AA66D6D67F /* NSObject+DyCInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+DyCInjection.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.h"; sourceTree = ""; }; + 100E5F151A6977DE4CDE06DD /* EXTNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTNil.h; path = extobjc/EXTNil.h; sourceTree = ""; }; + 1012ADBA1C1EE5F67AEFAD07 /* MTLTransformerErrorHandling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLTransformerErrorHandling.h; path = Mantle/MTLTransformerErrorHandling.h; sourceTree = ""; }; + 10603BF79B7DFDDCCF3BFC66 /* YDBCKChangeRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeRecord.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.h; sourceTree = ""; }; + 11106F6F5AC85AA20672DBE7 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 111EF94E1B337F4F35737B12 /* YapDatabaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseManager.h; path = YapDatabase/Internal/YapDatabaseManager.h; sourceTree = ""; }; + 115262744791CBF66600635D /* NSArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+ObjectiveSugar.m"; path = "Classes/NSArray+ObjectiveSugar.m"; sourceTree = ""; }; + 11882F3D1AD5DF4975C370A1 /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; + 121F6E2F3971D6843C6C7744 /* NSSet+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ObjectiveSugar.m"; path = "Classes/NSSet+ObjectiveSugar.m"; sourceTree = ""; }; + 12E048691E61BE10906EE260 /* libPods-samhuri.net-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1359E22249ACF4B99C930AF4 /* Pods-Blog-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-YapDatabase-prefix.pch"; sourceTree = ""; }; + 139C78E6FC222EA96A7EAC5B /* YapDatabaseFullTextSearchPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchPrivate.h; path = YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h; sourceTree = ""; }; + 139FA44960812F484EFEDD40 /* Pods-Blog-FontAwesome+iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-FontAwesome+iOS-dummy.m"; sourceTree = ""; }; + 13A7F49442B8323F78300FE7 /* Pods-Blog-dyci.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci.xcconfig"; sourceTree = ""; }; + 13DC1E5D42291A5555C0596C /* YapDatabaseSearchResultsViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewTransaction.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.h; sourceTree = ""; }; + 14A523023A6DA314A88773A5 /* YapDatabaseCloudKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKit.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.h; sourceTree = ""; }; + 15D8D0E6FBB7A2E4A268D78E /* YapDatabaseFullTextSearchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchHandler.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.h; sourceTree = ""; }; + 1721AB8249C341DD71E46ADA /* CALayer+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PromiseKit.m"; path = "objc/CALayer+PromiseKit.m"; sourceTree = ""; }; + 19B9B64CD8250C8B801684C4 /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; + 1A0F2B023408B41F9DE9A572 /* libPods-Blog-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1AD6EB482887E90278BBEC38 /* YapDatabaseViewMappingsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappingsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h; sourceTree = ""; }; + 1AEF22D9BD67A39FE7B11B61 /* FontAwesome.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = FontAwesome.ttf; path = Resources/FontAwesome.ttf; sourceTree = ""; }; + 1B503A4E186A9191477A20CA /* YapDatabaseRelationshipTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipTransaction.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h; sourceTree = ""; }; + 1B7493F604FA469FA60BE578 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 1C43B0AD1F7A2D0163AE6649 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; + 1CA970E765A796F9AA9E3388 /* YapDatabaseFilteredView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredView.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h; sourceTree = ""; }; + 1CC6BE3683E6EBECC7ABD956 /* YapDatabaseFullTextSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearch.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h; sourceTree = ""; }; + 1D6302948C80F92670463179 /* YDBCKMergeInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMergeInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.m; sourceTree = ""; }; + 1D97919B9ACC34331670C706 /* YapSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapSet.h; path = YapDatabase/Utilities/YapSet.h; sourceTree = ""; }; + 1DA47CC2FA06F627843677D8 /* YapDatabaseFilteredViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTransaction.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h; sourceTree = ""; }; + 1E235285A6EFDBFA22F6BAFA /* SFFileWatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFFileWatcher.m; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.m"; sourceTree = ""; }; + 1EC49C1F2D5045D414D79FA3 /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; + 1F60AF673DA4C939545D0F7A /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; + 1FA5CB64FA0D13BEFF382020 /* Pods-samhuri.net-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD.xcconfig"; sourceTree = ""; }; + 1FCB3936FB7DF989AEF2A47B /* YapCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCache.m; path = YapDatabase/Utilities/YapCache.m; sourceTree = ""; }; + 202587B098BFFE3D8A215D55 /* YapMurmurHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMurmurHash.m; path = YapDatabase/Utilities/YapMurmurHash.m; sourceTree = ""; }; + 21A3C088DD2D75B6DD5428CC /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; + 2269B0009C2BB71CADDC3BEA /* YapDatabaseCloudKitConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitConnection.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.h; sourceTree = ""; }; + 24CEEC92E985267A216118BC /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; + 25E252AC875D821E3D6D1A1F /* NSMethodSignature+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+EXT.h"; path = "extobjc/NSMethodSignature+EXT.h"; sourceTree = ""; }; + 2638C55815EA16F59D32BD4F /* NSDictionary+MTLJSONKeyPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLJSONKeyPath.h"; path = "Mantle/NSDictionary+MTLJSONKeyPath.h"; sourceTree = ""; }; + 2695B06CF5AB9C425F09BE4C /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; + 271D15C867DCC0A2602FFD5A /* YapMurmurHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMurmurHash.h; path = YapDatabase/Utilities/YapMurmurHash.h; sourceTree = ""; }; + 2748CEA180F7803342F7FAD7 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; + 28331EC47FBE28DD57A54F64 /* EXTNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTNil.m; path = extobjc/EXTNil.m; sourceTree = ""; }; + 28B07B0D2B5C3A2FE74B2F30 /* YapDatabaseSearchResultsViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewConnection.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.h; sourceTree = ""; }; + 292C878169C1F367964F328B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-ObjectiveSugar-prefix.pch"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; + 2971F3289A76979FCF97BE78 /* UIActionSheet+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+PromiseKit.m"; path = "objc/UIActionSheet+PromiseKit.m"; sourceTree = ""; }; + 2A5FA03A2434E4CC7808C13E /* YapDatabaseViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewOptions.h; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.h; sourceTree = ""; }; + 2B2CF78D15A198E07CABE7B5 /* NSObject+DyCInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+DyCInjection.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.m"; sourceTree = ""; }; + 2B817BF06D517F6E6B0F245B /* libPods-samhuri.net-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2C524B6F27EA326EBE7A0C3F /* YapDatabaseOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseOptions.m; path = YapDatabase/YapDatabaseOptions.m; sourceTree = ""; }; + 2D241FA4492890A3E10B0832 /* YapDatabaseRelationshipEdge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdge.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h; sourceTree = ""; }; + 2D2B9BC4C787C119E4BBA0FA /* YapDatabaseExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtension.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.m; sourceTree = ""; }; + 2D41DB392D0A015621D80477 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; + 2DF11510132D09E18F9806F9 /* YapCollectionKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCollectionKey.m; path = YapDatabase/Utilities/YapCollectionKey.m; sourceTree = ""; }; + 2DFB95AC176895913CB280B0 /* libPods-samhuri.net-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2FEC46F2AF7EAB28497B5E2D /* libPods-samhuri.net.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3103FCC5031A2FC97D9BC5BD /* UIViewController+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PromiseKit.h"; path = "objc/UIViewController+PromiseKit.h"; sourceTree = ""; }; + 322824FC9722D13BBC7CE737 /* YapDatabaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseView.h; path = YapDatabase/Extensions/Views/YapDatabaseView.h; sourceTree = ""; }; + 32AE252D43E9E7D203A02B6F /* UINib+StoryBoardSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UINib+StoryBoardSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.m"; sourceTree = ""; }; + 3426675EE4D4FAFE7AFFA942 /* YapNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapNull.m; path = YapDatabase/Internal/YapNull.m; sourceTree = ""; }; + 3570A27E1912E4317E2CFD78 /* NSMethodSignature+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+EXT.m"; path = "extobjc/NSMethodSignature+EXT.m"; sourceTree = ""; }; + 357B78B152E6ABB4AC8A5933 /* Pods-samhuri.net.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.release.xcconfig"; sourceTree = ""; }; + 36E1C98CB22AE52D72D3F0B6 /* NSNotificationCenter+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+PromiseKit.m"; path = "objc/NSNotificationCenter+PromiseKit.m"; sourceTree = ""; }; + 36F157F7A3BB5A8B5C2F8CEB /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = objc/PromiseKit/fwd.h; sourceTree = ""; }; + 38635682B66EAF250E54FD97 /* extobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = extobjc.h; path = extobjc/extobjc.h; sourceTree = ""; }; + 388DA8DE533AD6EB14A8CB70 /* Pods-Blog-libextobjc-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc-Private.xcconfig"; sourceTree = ""; }; + 394775BD9716A6B922F8A83F /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; + 3A9B921CA5C69EFC590A73D9 /* UIFont+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FontAwesome.m"; sourceTree = ""; }; + 3B11DC33D0CCD5E3444F804F /* YapDatabaseSecondaryIndexOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexOptions.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.h; sourceTree = ""; }; + 3B7DE22D0718DBF5998961F6 /* YapDatabaseFilteredViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewPrivate.h; path = YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h; sourceTree = ""; }; + 3D0C708FBAFAF8AC567299B9 /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; + 3D499CE6B6D895B99724A365 /* YapDatabaseSearchResultsViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewPrivate.h; path = YapDatabase/Extensions/SearchResults/Internal/YapDatabaseSearchResultsViewPrivate.h; sourceTree = ""; }; + 3EE519CFA4B7B862085CD37D /* Pods-samhuri.net-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar.xcconfig"; sourceTree = ""; }; + 3F2FB8360E38D885677E0E81 /* YapDatabaseCloudKitOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitOptions.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.h; sourceTree = ""; }; + 41003AB92985EC0D28B719B7 /* Pods-Blog-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dummy.m"; sourceTree = ""; }; + 4173459AF3169992A1637415 /* SFDynamicCodeInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFDynamicCodeInjection.h; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.h"; sourceTree = ""; }; + 41E388D3FBC015C89D28232B /* YapDatabaseSearchResultsViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewOptions.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.m; sourceTree = ""; }; + 42B122AD5FD52D735455E7BB /* libPods-Blog-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 42D5362F4243FAD90D2AFE8B /* YapDatabaseFilteredView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredView.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m; sourceTree = ""; }; + 430D4015B66A6348BDA4A4F0 /* YapDatabaseConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnection.h; path = YapDatabase/YapDatabaseConnection.h; sourceTree = ""; }; + 43ABE9ABED87C617D8D80E2E /* YapDatabaseFullTextSearchTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchTransaction.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h; sourceTree = ""; }; + 43D3E12D689D8F53C298619F /* YapDatabaseViewChangePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChangePrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h; sourceTree = ""; }; + 44248AE71488047264DE9108 /* YapDatabaseViewMappings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewMappings.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m; sourceTree = ""; }; + 448A2ED3857676BE02DD33ED /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; + 45CE1691FEB2D19356A30BD8 /* NSDictionary+MTLMappingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLMappingAdditions.m"; path = "Mantle/NSDictionary+MTLMappingAdditions.m"; sourceTree = ""; }; + 4601410D955CE7A1DD4D5D8C /* libPods-Blog-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4602C45EA109522D10031774 /* libPods-Blog-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 463BF6DA8C1A27CF33CDB663 /* YapDatabaseViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTypes.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.m; sourceTree = ""; }; + 46A936A1BCA72C46112CF015 /* Pods-samhuri.net-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-Mantle-prefix.pch"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; sourceTree = ""; }; + 46AD077D333F4613956EEA81 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; + 47F2BDE9B87144F1305C6B92 /* Pods-Blog-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-PromiseKit-prefix.pch"; sourceTree = ""; }; + 483FF0E9205BE6B1A805D6E2 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-CocoaLumberjack-dummy.m"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-dummy.m"; sourceTree = ""; }; + 490F82B1624BDD41BFA7EF52 /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; + 49BC100D8645BDEE247597FA /* YapWhitelistBlacklist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapWhitelistBlacklist.h; path = YapDatabase/Utilities/YapWhitelistBlacklist.h; sourceTree = ""; }; + 4A00D5299252C011CC473FCA /* Promise+When.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+When.h"; path = "objc/PromiseKit/Promise+When.h"; sourceTree = ""; }; + 4AA76D10F70500D6C8A292BA /* YapTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapTouch.h; path = YapDatabase/Internal/YapTouch.h; sourceTree = ""; }; + 4AF2B2E0A81E0DD9796D8A97 /* YapDatabaseCloudKitTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTransaction.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.h; sourceTree = ""; }; + 4AF5275CEEEF926AF0DB2B3C /* YDBCKRecordInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.m; sourceTree = ""; }; + 4C1353326DB9842825BD81A7 /* YapDatabasePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabasePrivate.h; path = YapDatabase/Internal/YapDatabasePrivate.h; sourceTree = ""; }; + 4D21CF6343452B39D1F23F1B /* Promise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Promise.h; path = objc/PromiseKit/Promise.h; sourceTree = ""; }; + 4DA88510D1CF1CE9D997D6D1 /* YapDatabaseExtensionConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionConnection.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h; sourceTree = ""; }; + 4DDEB84C888037D165734ACC /* NSDictionary+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+ObjectiveSugar.h"; path = "Classes/NSDictionary+ObjectiveSugar.h"; sourceTree = ""; }; + 4E52F4EDECC4713F896D9F15 /* YapDatabaseViewRangeOptionsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptionsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h; sourceTree = ""; }; + 4E5997C4BAA1458169BC29AD /* YapDatabaseSecondaryIndexHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexHandler.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.h; sourceTree = ""; }; + 4E63A8662DE2283DD7A2109E /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; + 4E8C691946D53D2358B656F1 /* Pods-samhuri.net-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle.xcconfig"; sourceTree = ""; }; + 4EA637BF494DC7153595C6E1 /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; + 4EF0B93BAC605F17004F6CD2 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; + 4EFD6B51D5A428BCA4A5281B /* Pods-samhuri.net-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-Mantle-dummy.m"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-dummy.m"; sourceTree = ""; }; + 4F41CE10194A25458B48B387 /* YDBCKMergeInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMergeInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.h; sourceTree = ""; }; + 5025B3F1C269F7E111948F47 /* libPods-samhuri.net-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 502A024737D6DB1A06A9800E /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; + 515A225DF1FFFE59C0C370ED /* Pods-Blog-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-Mantle-dummy.m"; sourceTree = ""; }; + 51D4598E2D6D1CDE33BEEB7E /* YapDatabaseConnectionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionState.m; path = YapDatabase/Internal/YapDatabaseConnectionState.m; sourceTree = ""; }; + 550FDFE8B11958BDE7993708 /* YapDebugDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDebugDictionary.h; path = YapDatabase/Internal/YapDebugDictionary.h; sourceTree = ""; }; + 5557F5C3B77F20BF3593DB8D /* EXTADT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTADT.h; path = extobjc/EXTADT.h; sourceTree = ""; }; + 5565B6D59A778DE079752FD9 /* NSDictionary+MTLJSONKeyPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLJSONKeyPath.m"; path = "Mantle/NSDictionary+MTLJSONKeyPath.m"; sourceTree = ""; }; + 568E96CB7C9284802B29EF28 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; + 5748D5EB761180E83A2F36C3 /* YapDatabaseFilteredViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTypes.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h; sourceTree = ""; }; + 586D8328430703749F5D8A97 /* Pods-samhuri.net-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-samhuri.net-acknowledgements.markdown"; sourceTree = ""; }; + 58ADFF30E4FDDFA9F54968B1 /* EXTSafeCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSafeCategory.m; path = extobjc/EXTSafeCategory.m; sourceTree = ""; }; + 59EE2F0E3914209B06438A13 /* YapDatabaseViewState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewState.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.m; sourceTree = ""; }; + 5A57B60FBD9273517143A70E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + 5AC42217EA628E4D86E53497 /* YapDatabaseStatement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseStatement.m; path = YapDatabase/Internal/YapDatabaseStatement.m; sourceTree = ""; }; + 5BBAEAC3E46F05C59FABB08A /* YapDatabaseCloudKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKit.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.m; sourceTree = ""; }; + 5D1680A5EC3A9255C890754A /* YapDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseQuery.h; path = YapDatabase/Utilities/YapDatabaseQuery.h; sourceTree = ""; }; + 5D44436B84CE219249722A17 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-MBProgressHUD-prefix.pch"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; sourceTree = ""; }; + 5DD7AA0F9B2CF6E489B7C551 /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; + 5DDCE51A72DF7193ED439B80 /* YDBCKRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecord.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.h; sourceTree = ""; }; + 5DE843FE97312C580966579D /* YapDatabaseSearchResultsView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsView.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.h; sourceTree = ""; }; + 5EFFE5B4A09FA24BA7BB9DE4 /* YapDatabaseLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseLogging.h; path = YapDatabase/Internal/YapDatabaseLogging.h; sourceTree = ""; }; + 5F5595B3E63E77218798DCBD /* YapDatabaseViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTransaction.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h; sourceTree = ""; }; + 5FF32382393789A975F51850 /* Pods-Blog-libextobjc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc.xcconfig"; sourceTree = ""; }; + 607A55B125779C00F3796B8F /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; + 6113A0025C6201B4EF7BB7B7 /* YapDatabaseSearchResultsView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsView.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.m; sourceTree = ""; }; + 617EA3676143E248C2981FB5 /* UIViewController+XIBSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+XIBSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.m"; sourceTree = ""; }; + 618CBDC6E4D9429F7BD1871B /* YapDatabaseViewRangeOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptions.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h; sourceTree = ""; }; + 621D3194E797DB4C590CE5BA /* YapRowidSet.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapRowidSet.mm; path = YapDatabase/Internal/YapRowidSet.mm; sourceTree = ""; }; + 626C35BAA2E88342B363467C /* OMGHTTPURLRQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGHTTPURLRQ.h; sourceTree = ""; }; + 627184489D5EBF1552526088 /* Pods-Blog-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-ObjectiveSugar-dummy.m"; sourceTree = ""; }; + 6391C9313BB6D62E89094BA3 /* UINib+StoryBoardSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINib+StoryBoardSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.h"; sourceTree = ""; }; + 64614B34AFB493E3DE383E04 /* Pods-Blog-libextobjc-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-libextobjc-dummy.m"; sourceTree = ""; }; + 65049D2D974535631AB3E5A4 /* YDBCKRecordInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.h; sourceTree = ""; }; + 65F175D40C5348F45F2FC008 /* NSDictionary+YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YapDatabase.h"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.h"; sourceTree = ""; }; + 66A2AAE231859CDB7288DDB6 /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; + 66BDC2797360DF3158A0767F /* NSNotificationCenter+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+PromiseKit.h"; path = "objc/NSNotificationCenter+PromiseKit.h"; sourceTree = ""; }; + 66ED5D2CE855C5471738A4CD /* YapDatabaseViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTransaction.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m; sourceTree = ""; }; + 680E7B48A7FB11E735021FD2 /* YapDatabaseViewPageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewPageMetadata.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m; sourceTree = ""; }; + 695619A16E7BDE7EF40388E1 /* NSString+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+ObjectiveSugar.m"; path = "Classes/NSString+ObjectiveSugar.m"; sourceTree = ""; }; + 696FF7236D9F0771565477E9 /* Pods-samhuri.net-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-PromiseKit-dummy.m"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-dummy.m"; sourceTree = ""; }; + 6A1A9F7C77AAA7FBA688BD0C /* YapDatabaseConnectionDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionDefaults.m; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.m; sourceTree = ""; }; + 6BD2329311D8F12C2CB4E2FC /* YapDatabaseSecondaryIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndex.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m; sourceTree = ""; }; + 6BE69EC5EE6108F191686D8A /* Pods-Blog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.release.xcconfig"; sourceTree = ""; }; + 6C49C3E026C8ABCF08D62AAE /* YapDatabaseTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseTransaction.h; path = YapDatabase/YapDatabaseTransaction.h; sourceTree = ""; }; + 6CD8E79BCC9B16D6CA1B2281 /* YDBCKAttachRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKAttachRequest.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.h; sourceTree = ""; }; + 6DD6DC1B0227D55F92AEFF7B /* PMKPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PMKPromise.m; path = objc/PMKPromise.m; sourceTree = ""; }; + 6E76F5AAD897BF143B85DE1C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; + 6F846FF1FD33FD6F959657DE /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; + 6FFD76B30B1ECC79A05E174E /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; + 702214069E0992DB33BFCB87 /* UIImage+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+FontAwesome.h"; sourceTree = ""; }; + 7261D0799C416EE07379F2F7 /* YapDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseQuery.m; path = YapDatabase/Utilities/YapDatabaseQuery.m; sourceTree = ""; }; + 727395CC1A9030F8730CBDAD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 72C09719BA31DD21A9D63CBC /* Pods-Blog-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-environment.h"; sourceTree = ""; }; + 74368F30159C4791083968EB /* YapDatabaseViewMappings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappings.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h; sourceTree = ""; }; + 74517E5BC04CB8182F1D2C73 /* NSArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+ObjectiveSugar.h"; path = "Classes/NSArray+ObjectiveSugar.h"; sourceTree = ""; }; + 751A30C904130798C32E5FD2 /* EXTConcreteProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTConcreteProtocol.m; path = extobjc/EXTConcreteProtocol.m; sourceTree = ""; }; + 7520ED68436BF156BCAA46C7 /* OMGHTTPURLRQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGHTTPURLRQ.m; sourceTree = ""; }; + 75E861C217837964BA989E22 /* YapDatabaseViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewConnection.h; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.h; sourceTree = ""; }; + 761774F1F04B46F6556F5CC9 /* YapDatabaseSecondaryIndexSetup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexSetup.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m; sourceTree = ""; }; + 76FD5D7EFDF79BEA0BEF9CFA /* YapDatabaseFilteredViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewConnection.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m; sourceTree = ""; }; + 772970F701DCCCE05E9A2AA7 /* UIAlertView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+PromiseKit.h"; path = "objc/UIAlertView+PromiseKit.h"; sourceTree = ""; }; + 7788EF603DC253CBF8E59AF4 /* YDBCKChangeQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeQueue.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.h; sourceTree = ""; }; + 778D01A67F28AF1084FF534F /* YapCollectionKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCollectionKey.h; path = YapDatabase/Utilities/YapCollectionKey.h; sourceTree = ""; }; + 790E8112B1AC50292F6FB3DA /* Pods-samhuri.net.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.debug.xcconfig"; sourceTree = ""; }; + 7966AE914FE98BBE8A13E630 /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; + 7A2CEA1E36322DE7B613A202 /* YapDatabaseRelationship.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationship.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m; sourceTree = ""; }; + 7A2EC7C15D6D296C2BCA1E8B /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + 7A583BA8294D5CF5B640CC7C /* Pods-Blog-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; + 7B0D22D6AB0C8943B17FA95A /* YapDatabaseSecondaryIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndex.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h; sourceTree = ""; }; + 7B695DFFFDB25BE7116B2087 /* YapDatabaseSecondaryIndexConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexConnection.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m; sourceTree = ""; }; + 7C25C18EDBCFB3E906BEF2A8 /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; + 7C378D3559C2E95A012B2067 /* Pods-Blog-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle-Private.xcconfig"; sourceTree = ""; }; + 7C3CAE50DF07C5BFB1DC593A /* Pods-Blog-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD.xcconfig"; sourceTree = ""; }; + 7C49C83B7CBE18A300CC153B /* Promise+Until.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Until.h"; path = "objc/PromiseKit/Promise+Until.h"; sourceTree = ""; }; + 7CCC65A93E5BDB00B0BDD149 /* PMKPromise+When.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+When.m"; path = "objc/PMKPromise+When.m"; sourceTree = ""; }; + 7CE24DAF5D5487D463D087B0 /* UIView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+PromiseKit.h"; path = "objc/UIView+PromiseKit.h"; sourceTree = ""; }; + 7E9F47D5CCFAA96E7E02FA17 /* EXTADT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTADT.m; path = extobjc/EXTADT.m; sourceTree = ""; }; + 80124F51C7A9292CEF244DA8 /* YapDatabaseViewPageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPageMetadata.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h; sourceTree = ""; }; + 8318CED5C521567ECE7B24BF /* Pods-samhuri.net-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-samhuri.net-dummy.m"; sourceTree = ""; }; + 8353B2B60726B8ABFF1B0E49 /* libPods-samhuri.net-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 83D0B78A70B1E4225FC963D2 /* YapDatabaseConnectionDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionDefaults.h; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.h; sourceTree = ""; }; + 851D13C2DC982B98A27FB79E /* Pods-samhuri.net-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-samhuri.net-environment.h"; sourceTree = ""; }; + 85AD9EA625D69D809F8C167C /* YapDatabaseRelationshipNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipNode.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h; sourceTree = ""; }; + 85B0206D33F44E1C159E1220 /* Pods-Blog-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase-Private.xcconfig"; sourceTree = ""; }; + 871C8E5B1D402BBACA10F750 /* YapDatabaseFullTextSearch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearch.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m; sourceTree = ""; }; + 8757793F80FD989BA2AE5B1E /* YapTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapTouch.m; path = YapDatabase/Internal/YapTouch.m; sourceTree = ""; }; + 875CABB27D093345C39A37B9 /* YDBCKRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecord.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.m; sourceTree = ""; }; + 87A8D4DE46F2CD9E3C04A3C0 /* OMGUserAgent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGUserAgent.m; sourceTree = ""; }; + 88B5E01D4E758FF30A2E6A3A /* Pods-samhuri.net-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-samhuri.net-resources.sh"; sourceTree = ""; }; + 893A1E71C1504C1FBA6191A5 /* YapDatabaseViewPage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPage.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h; sourceTree = ""; }; + 89958C5C350197F2AFAE9B1F /* MTLTransformerErrorHandling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLTransformerErrorHandling.m; path = Mantle/MTLTransformerErrorHandling.m; sourceTree = ""; }; + 89B5E4BE6F67F9DA3D4CCA9D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; + 89F82D7B599BBA652983F0F0 /* YapDatabaseCloudKitTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTypes.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.h; sourceTree = ""; }; + 8A64AB9C063419461BB0FBEF /* NSNumber+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+ObjectiveSugar.m"; path = "Classes/NSNumber+ObjectiveSugar.m"; sourceTree = ""; }; + 8A6B32A18EB5D6189C25B4DF /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; + 8AC5053941243B222152C4A3 /* Pods-Blog-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-MBProgressHUD-prefix.pch"; sourceTree = ""; }; + 8ACCCE62B677AF18750C741A /* UIFont+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIFont+FontAwesome.h"; sourceTree = ""; }; + 8B3433CB1EE6BEBCB7E37C3F /* YapDatabaseViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewConnection.m; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.m; sourceTree = ""; }; + 8C1C7EFC29224158A569516A /* YapDatabaseFullTextSearchConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchConnection.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m; sourceTree = ""; }; + 8E1DE2F2D0411CBE3F9B24C4 /* YapDatabaseCloudKitConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitConnection.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.m; sourceTree = ""; }; + 90C8B493B1F1A9E6D0D32180 /* YapDatabaseViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewOptions.m; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.m; sourceTree = ""; }; + 9149C3FD759DD1854F6588AD /* NSString+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+FontAwesome.h"; sourceTree = ""; }; + 91DF1E461B85883DB27A4E6D /* YapNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapNull.h; path = YapDatabase/Internal/YapNull.h; sourceTree = ""; }; + 9209F135A52FADB5ADE74A71 /* YapDatabaseViewPage.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapDatabaseViewPage.mm; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm; sourceTree = ""; }; + 927C5BCB782CA2932CD848E9 /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; + 92E7690ECAAF33C6713E4247 /* NSString+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+FontAwesome.m"; sourceTree = ""; }; + 93728C71A367B7E37DBB6B0B /* Pods-samhuri.net-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-ObjectiveSugar-dummy.m"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-dummy.m"; sourceTree = ""; }; + 9437F9CC43DBFC52EB280527 /* SFFileWatcherDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcherDelegate.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcherDelegate.h"; sourceTree = ""; }; + 959FF069CB18290713BC769B /* NSInvocation+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+EXT.h"; path = "extobjc/NSInvocation+EXT.h"; sourceTree = ""; }; + 95CABBF84686B359A2A56DFA /* YapDatabaseSearchResultsViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewConnection.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.m; sourceTree = ""; }; + 969DE89CC9747DE2AC92D5B2 /* NSInvocation+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+EXT.m"; path = "extobjc/NSInvocation+EXT.m"; sourceTree = ""; }; + 96D258030D8724E7DD74EE2B /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; + 97C20E085FAD3540B86F458B /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-CocoaLumberjack-prefix.pch"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; + 97CBC90A4DF603F4642B501D /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; + 9925BFB2EC2D32EB21E7F35D /* Pods-Blog-FontAwesome+iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS.xcconfig"; sourceTree = ""; }; + 99903441A04F6251BACB6347 /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; + 9A9109FACFD8FC84C66C5B67 /* UIAlertView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+PromiseKit.m"; path = "objc/UIAlertView+PromiseKit.m"; sourceTree = ""; }; + 9AD60F3E0EE18BE2A402E9E6 /* YapRowidSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapRowidSet.h; path = YapDatabase/Internal/YapRowidSet.h; sourceTree = ""; }; + 9B26003246FDBD5BA627380D /* NSDictionary+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+ObjectiveSugar.m"; path = "Classes/NSDictionary+ObjectiveSugar.m"; sourceTree = ""; }; + 9C3A3C7112DF62ECE234290B /* YapCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCache.h; path = YapDatabase/Utilities/YapCache.h; sourceTree = ""; }; + 9D8D2403436A868469FEAC58 /* SFInjectionsNotificationsCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFInjectionsNotificationsCenter.h; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.h"; sourceTree = ""; }; + 9E62686774C090876DB0F82D /* libPods-Blog-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F18A8ECF8D6A5847C4D5795 /* YapDatabaseFullTextSearchSnippetOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchSnippetOptions.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h; sourceTree = ""; }; + 9FF68E79B1F8BB4D1B7406A8 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; + A07201523D9CE6A220594FF6 /* YDBCKChangeSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeSet.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.m; sourceTree = ""; }; + A0C3F88247BE87206E00A5C7 /* YapDatabaseRelationshipOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipOptions.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h; sourceTree = ""; }; + A0DE404418DCA421BB2D73BD /* Pods-Blog-dyci-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dyci-dummy.m"; sourceTree = ""; }; + A26A0935B16D5511AE97006D /* YapDatabaseViewChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewChange.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m; sourceTree = ""; }; + A32FB475DAAC023A8148381B /* YapDatabaseSearchQueuePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueuePrivate.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueuePrivate.h; sourceTree = ""; }; + A43CEB2F45BCFBE47CDAD9E6 /* Pods-samhuri.net-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-samhuri.net-acknowledgements.plist"; sourceTree = ""; }; + A4864FDF80B8A6F2E394419A /* YapDatabaseExtensionPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionPrivate.h; path = YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h; sourceTree = ""; }; + A493307163E90210CEAC2763 /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; + A5679935F1AC019A492EB49A /* SFFileWatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcher.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.h"; sourceTree = ""; }; + A5B7B9A6FF39635B81E45A4B /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; + A5E237A63D60C73D644A3871 /* YapDatabaseSecondaryIndexTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexTransaction.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h; sourceTree = ""; }; + A5E281EA06DB793C11934A11 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; + A63AF4E96D3FFBB901566204 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; + A662A59246F0266687AFE7BD /* Pods-samhuri.net-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle-Private.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig"; sourceTree = ""; }; + A67F3C3CBB8234A8A55560EB /* Pods-samhuri.net-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit.xcconfig"; sourceTree = ""; }; + A6EA0BD2E14D672C4B8DFDD3 /* YapDatabaseCloudKitTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTransaction.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.m; sourceTree = ""; }; + A728A7038B93F49C1AF580CC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + A737617288D47BA2C0BBB0C4 /* YDBCKChangeQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeQueue.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.m; sourceTree = ""; }; + A79C62018FC7D61FC892B8ED /* Pods-Blog-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack.xcconfig"; sourceTree = ""; }; + A80A57CC9BC2511CFE951B10 /* Pods-Blog-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-YapDatabase-dummy.m"; sourceTree = ""; }; + A91C97D59400E0E8E775CC8E /* Pods-Blog-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; + A9CC38384F1B87AC4CAE9034 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; + AA0C40ADC59A3E1EF7E81884 /* YapDatabaseFullTextSearchConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchConnection.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h; sourceTree = ""; }; + AA5D725DD28059FD73285797 /* Pods-Blog-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit-Private.xcconfig"; sourceTree = ""; }; + AA73766412FFF96C9C50B150 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; + AB6BD7C6483216C4ACA18FC7 /* YapSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapSet.m; path = YapDatabase/Utilities/YapSet.m; sourceTree = ""; }; + AB9602AC41DC5C51CC420655 /* YapDatabaseString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseString.h; path = YapDatabase/Internal/YapDatabaseString.h; sourceTree = ""; }; + ABCD475DA228B250D699E2A0 /* Pods-Blog-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-PromiseKit-dummy.m"; sourceTree = ""; }; + ABF0A3DC6F7B3CACB365F9E9 /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = objc/PromiseKit.h; sourceTree = ""; }; + ACDDE4884088550E97172FBB /* NSMutableArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+ObjectiveSugar.m"; path = "Classes/NSMutableArray+ObjectiveSugar.m"; sourceTree = ""; }; + AD6BD3B8D3881A5F877A9274 /* Pods-Blog-dyci-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-dyci-prefix.pch"; sourceTree = ""; }; + AD8AF9D13D293D65A2F409AE /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; + AD8D9A5807D7E5A062CBD709 /* PMKPromise+Until.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Until.m"; path = "objc/PMKPromise+Until.m"; sourceTree = ""; }; + AD9FADFBB92752B65D32C6AC /* EXTSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSynthesize.h; path = extobjc/EXTSynthesize.h; sourceTree = ""; }; + AF09DF8C934DA6A7807A6599 /* libPods-Blog-libextobjc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-libextobjc.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B04DC02A616720F04639C4C0 /* YapDatabaseOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseOptions.h; path = YapDatabase/YapDatabaseOptions.h; sourceTree = ""; }; + B0820F5C1DF51ECA1481401F /* YapDatabaseSecondaryIndexHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexHandler.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.m; sourceTree = ""; }; + B110C8CF0F897215306F171E /* Pods-samhuri.net-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-YapDatabase-dummy.m"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-dummy.m"; sourceTree = ""; }; + B28B0047E7244D0F9DCC0A2F /* YapDebugDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDebugDictionary.m; path = YapDatabase/Internal/YapDebugDictionary.m; sourceTree = ""; }; + B290C83771E877663A34F2D3 /* YapDatabaseExtensionTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionTransaction.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h; sourceTree = ""; }; + B2CDADA292CB17CBF9806392 /* Pods-Blog-dyci-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci-Private.xcconfig"; sourceTree = ""; }; + B4131255F51100E365966084 /* YapDatabaseFilteredViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTypes.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.m; sourceTree = ""; }; + B5E5D9F65C3F2EC536F02DBF /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; + B668EF3535796EB6DD269A99 /* YDBCKRecordTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.m; sourceTree = ""; }; + B67404390A415311D1A79EF0 /* Pods-Blog-libextobjc-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-libextobjc-prefix.pch"; sourceTree = ""; }; + B6974179CA89116FBE359EAC /* YapDatabaseSecondaryIndexSetup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexSetup.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h; sourceTree = ""; }; + B6AD115EFAD07000265DADE1 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS-Private.xcconfig"; sourceTree = ""; }; + B6DABCCCE8BEF6206FEC25A8 /* YapDatabaseSearchQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueue.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.h; sourceTree = ""; }; + B829BF4A69D5F410E44FD02D /* NSURLConnection+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+PromiseKit.m"; path = "objc/NSURLConnection+PromiseKit.m"; sourceTree = ""; }; + B9990732724AE424A6A8E4BA /* YapDatabaseRelationshipConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipConnection.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h; sourceTree = ""; }; + B9E9163A016BD340ED9A0634 /* OMGFormURLEncode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGFormURLEncode.m; sourceTree = ""; }; + BAB47E6E5EA2646070AD0D8B /* YapDatabaseSecondaryIndexTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexTransaction.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m; sourceTree = ""; }; + BB4648950DE909E252E7936E /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; + BBF421417655F564F2EFFEC2 /* Pods-Blog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.debug.xcconfig"; sourceTree = ""; }; + BC6B096E4237AF380C124A38 /* YapDatabaseRelationshipOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipOptions.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m; sourceTree = ""; }; + BC92BC85B7AF56AB0A13FA42 /* NSSet+ClassesList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ClassesList.m"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.m"; sourceTree = ""; }; + BCDF5200733F01F4DAD9DEF0 /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; + BD2E52552669B0C25984F3EA /* UIViewController+XIBSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+XIBSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.h"; sourceTree = ""; }; + BD314DF9974DB78D1E306A86 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; + BE346B79FF72450AD8610995 /* YDBCKRecordTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.h; sourceTree = ""; }; + BE9DD4A10CE198419A387F67 /* Pods-Blog-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit.xcconfig"; sourceTree = ""; }; + BED57E963964C10055995A23 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; + BFDDF22F8C266EA03F3A5A63 /* YapDatabaseConnectionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionState.h; path = YapDatabase/Internal/YapDatabaseConnectionState.h; sourceTree = ""; }; + C0766591699F17E76E7ADD05 /* NSSet+ClassesList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ClassesList.h"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.h"; sourceTree = ""; }; + C1C5DB95EA609317C04605CD /* YapDatabaseRelationshipConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipConnection.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m; sourceTree = ""; }; + C2BEBD9D75D076A7EFC2DE03 /* YapDatabaseSecondaryIndexOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexOptions.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.m; sourceTree = ""; }; + C3F75B83C8CA022F144C79A6 /* EXTConcreteProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTConcreteProtocol.h; path = extobjc/EXTConcreteProtocol.h; sourceTree = ""; }; + C45A2DD65FDC2446D33AF32D /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; + C55F4F424EF263A307FA8780 /* YapDatabaseViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTypes.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.h; sourceTree = ""; }; + C67F0D5908EC9D3726BD8B56 /* Pods-Blog-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase.xcconfig"; sourceTree = ""; }; + C87D906012B46ECD982DCC85 /* Pods-Blog-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Blog-resources.sh"; sourceTree = ""; }; + C963BED315F794EEB97E8847 /* libPods-samhuri.net-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + C9D8B99D93DE4BEBA8680832 /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = extobjc/EXTScope.m; sourceTree = ""; }; + C9F19B9E01BF8A9412971806 /* YapDatabaseViewState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewState.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.h; sourceTree = ""; }; + CAE18A8BF148A6607B8465DD /* YapDatabaseRelationshipPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipPrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h; sourceTree = ""; }; + CAE5CF5EE3A6B7929D509FEE /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; + CB02B0138F7473DFA25F5DD3 /* NSMutableArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+ObjectiveSugar.h"; path = "Classes/NSMutableArray+ObjectiveSugar.h"; sourceTree = ""; }; + CB7ABF26964D2F416C94020B /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; + CC10242FF2E2FB94FBB70C95 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase-Private.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig"; sourceTree = ""; }; + CCAEFBD810088779F9102E69 /* YapDatabaseSecondaryIndexPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexPrivate.h; path = YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h; sourceTree = ""; }; + CCF068D02E1A7453F2475E2D /* YapDatabaseLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseLogging.m; path = YapDatabase/Internal/YapDatabaseLogging.m; sourceTree = ""; }; + CD5217A211C5C601BB8942DA /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; + CDFCFC54DD78EEB487B45A97 /* YapDatabaseExtensionTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionTransaction.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m; sourceTree = ""; }; + CFA597FC68FCB50DFD4B36E9 /* Pods-Blog-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle.xcconfig"; sourceTree = ""; }; + CFAF5D08020A121DA15433A5 /* YapDatabaseConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnection.m; path = YapDatabase/YapDatabaseConnection.m; sourceTree = ""; }; + CFF5CB1CA85B850BC5D9BB60 /* YapDatabaseFilteredViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewConnection.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h; sourceTree = ""; }; + D0512709CBCE950CD01019FB /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; + D145721ABD37DFD7D6596756 /* libPods-Blog-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + D3D19D16BD6956BBD418DD9F /* Pods-Blog-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; + D5DCA01F10BA4FD24940BA39 /* YapDatabaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseManager.m; path = YapDatabase/Internal/YapDatabaseManager.m; sourceTree = ""; }; + D5EE00BAAA10DFD6C99B73AA /* YDBCKChangeRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeRecord.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.m; sourceTree = ""; }; + D5F9E39F49069861FF25457A /* YapWhitelistBlacklist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapWhitelistBlacklist.m; path = YapDatabase/Utilities/YapWhitelistBlacklist.m; sourceTree = ""; }; + D6E1CD7FF0796A95407C305D /* EXTSafeCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSafeCategory.h; path = extobjc/EXTSafeCategory.h; sourceTree = ""; }; + D88DB7DBE67FC1348C3F6B49 /* YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabase.m; path = YapDatabase/YapDatabase.m; sourceTree = ""; }; + D8CD90FA4FA233C2CAD2C63A /* YapDatabaseRelationshipTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipTransaction.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m; sourceTree = ""; }; + D964FE09DE68BCB5D20E0401 /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; + DA3E27A330AA369572FAE3AF /* YapMemoryTable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMemoryTable.h; path = YapDatabase/Internal/YapMemoryTable.h; sourceTree = ""; }; + DA8C1F4CA7F0C8FF0599CBB1 /* Promise+Pause.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Pause.h"; path = "objc/PromiseKit/Promise+Pause.h"; sourceTree = ""; }; + DB9BA335F8BC830E31B4B3D9 /* YDBCKChangeSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeSet.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.h; sourceTree = ""; }; + DD68BB8AC0A4426E4BDC2F33 /* NSDictionary+MTLMappingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLMappingAdditions.h"; path = "Mantle/NSDictionary+MTLMappingAdditions.h"; sourceTree = ""; }; + DE7CF4688A3F7F3C9CDE8E70 /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; + DEE7CB4A86FA1575C30CF09F /* YapDatabaseTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseTransaction.m; path = YapDatabase/YapDatabaseTransaction.m; sourceTree = ""; }; + DFF021E9C2C5F614A43FB876 /* YapDatabaseSecondaryIndexConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexConnection.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h; sourceTree = ""; }; + E17C94312100A6A34609501A /* YDBCKMappingTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMappingTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.h; sourceTree = ""; }; + E1C5D5A492E5A962CB895FF2 /* libPods-Blog.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E25CD85C4DE585411AB566EA /* YapDatabaseViewRangeOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewRangeOptions.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m; sourceTree = ""; }; + E25F557AC62487BAD11F8723 /* Pods-Blog-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-Mantle-prefix.pch"; sourceTree = ""; }; + E2B46B45406845B278821690 /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; + E3AAF075E262B52833D80D33 /* EXTSelectorChecking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSelectorChecking.m; path = extobjc/EXTSelectorChecking.m; sourceTree = ""; }; + E45CC82DF7C2F81C87DB5437 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; + E4DD695693E021CEBD152CA3 /* YapDatabaseSearchQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchQueue.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.m; sourceTree = ""; }; + E823B9DE4788A0DC7589B06D /* Pods-Blog-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Blog-acknowledgements.plist"; sourceTree = ""; }; + E868E720F4575CE9CDF3F013 /* Pods-Blog-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-CocoaLumberjack-dummy.m"; sourceTree = ""; }; + E8859B22B1954BDB4C0ABB02 /* NSString+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+ObjectiveSugar.h"; path = "Classes/NSString+ObjectiveSugar.h"; sourceTree = ""; }; + E9666EC9C43D3A469AFE76B5 /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; + E9856364F3283E9A464BDA7E /* YapDatabaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseView.m; path = YapDatabase/Extensions/Views/YapDatabaseView.m; sourceTree = ""; }; + E9B3A65FB870B381C96E13FB /* libPods-samhuri.net-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E9F24C4064550417DBB7C479 /* FAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FAImageView.h; sourceTree = ""; }; + EAEF71774D45E3A1EE052688 /* YapDatabaseStatement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseStatement.h; path = YapDatabase/Internal/YapDatabaseStatement.h; sourceTree = ""; }; + EB0844151A9D59AA6785F0AC /* OMGUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGUserAgent.h; sourceTree = ""; }; + EBFF45978CB15C2083B1F5AD /* YapDatabaseFullTextSearchTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchTransaction.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m; sourceTree = ""; }; + ED427B33FA9860A3A82FDEE1 /* SFInjectionsNotificationsCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFInjectionsNotificationsCenter.m; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.m"; sourceTree = ""; }; + EE2AC1EF6BAA4B4DA7E27F81 /* NSDictionary+YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YapDatabase.m"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.m"; sourceTree = ""; }; + EFC4BFB2F35671DE2CAFE25D /* Pods-samhuri.net-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase.xcconfig"; sourceTree = ""; }; + F0038913625D773251DD267D /* Pods-Blog-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; + F0BFED617CAB311A56EF5021 /* Pods-samhuri.net-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-PromiseKit-prefix.pch"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; sourceTree = ""; }; + F0F0F6FFCD6F1CF5B5C7F4E2 /* YapDatabaseRelationshipEdge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipEdge.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m; sourceTree = ""; }; + F1008F84D460EFEDFAD69BA1 /* EXTSelectorChecking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSelectorChecking.h; path = extobjc/EXTSelectorChecking.h; sourceTree = ""; }; + F10F3EF1AB70D31CBF52AA9C /* UIImage+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+FontAwesome.m"; sourceTree = ""; }; + F12A1E40F2507C889FA5D333 /* NSURLConnection+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+PromiseKit.h"; path = "objc/NSURLConnection+PromiseKit.h"; sourceTree = ""; }; + F13E009D6FECD79EEB69FB6E /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; + F1EEF1C23F92ACAEF73177EA /* UIActionSheet+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+PromiseKit.h"; path = "objc/UIActionSheet+PromiseKit.h"; sourceTree = ""; }; + F27518FAB6467FE1B8652143 /* Pods-Blog-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-MBProgressHUD-dummy.m"; sourceTree = ""; }; + F4160D85743F1CB0E0846076 /* Pods-samhuri.net-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-YapDatabase-prefix.pch"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; sourceTree = ""; }; + F4A5E660EFC85E32D48DD290 /* YapDatabaseSearchResultsViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewOptions.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.h; sourceTree = ""; }; + F556494B46A24BCB0D3D7EBB /* Pods-samhuri.net-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-MBProgressHUD-dummy.m"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-dummy.m"; sourceTree = ""; }; + F57C611C836127CA362CE1A6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit-Private.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig"; sourceTree = ""; }; + F58373D9AD906CA4AD3B263F /* YapDatabaseExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtension.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.h; sourceTree = ""; }; + F68712B855461DE60CD93549 /* PMKPromise+Pause.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Pause.m"; path = "objc/PMKPromise+Pause.m"; sourceTree = ""; }; + F71A5C3CA2C0B9B5496E3593 /* YapMemoryTable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMemoryTable.m; path = YapDatabase/Internal/YapMemoryTable.m; sourceTree = ""; }; + F739B9F1A5AE759A708258F7 /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; + F83DEE8A947BDA68520686F4 /* YapDatabaseRelationship.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationship.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h; sourceTree = ""; }; + F898E608C33F24CA436ADC22 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; + FA7F699E333D64284CD33EA3 /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = extobjc/EXTScope.h; sourceTree = ""; }; + FC8D9861CA1A71E165BD9F19 /* NSNumber+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+ObjectiveSugar.h"; path = "Classes/NSNumber+ObjectiveSugar.h"; sourceTree = ""; }; + FE59F63E87AA199B09DE4E86 /* NSSet+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ObjectiveSugar.h"; path = "Classes/NSSet+ObjectiveSugar.h"; sourceTree = ""; }; + FF1AC70B2E6F98BAFDE91815 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; + FFE40F155D0FE76D2165F38C /* Pods-Blog-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 017C3CFCF4C78A8C15E10E1B /* Frameworks */ = { + 07BBBDF62208B2F1FE4582D1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3AC7A036D41EC442E21BEBD8 /* Foundation.framework in Frameworks */, + 5932B9C275E2C6A29984AEB4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 042CD0B4654C296714E66AC6 /* Frameworks */ = { + 0A9C3F5B3176F26BB49D164B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4FC37FAB2CAD2CBF8E6C2C07 /* Foundation.framework in Frameworks */, + C2C1D64AE92E539ECC98BCA8 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 0DB499050712621EF0A3D99B /* Frameworks */ = { + 1D058B458616C25B0E00D803 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CD6BF96754FE8FEBDF321ED1 /* CoreGraphics.framework in Frameworks */, - 55719051D7D02B8246FA7900 /* Foundation.framework in Frameworks */, + 2DBA8B7F1A563A609F1E3B16 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 18CBC231E81E3F25F2B29CEC /* Frameworks */ = { + 1E76F60649179D6E28988A96 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 245B96990AEE7EB650DC2F51 /* Foundation.framework in Frameworks */, + 6DB614B123D1A2DE45629DFF /* CoreGraphics.framework in Frameworks */, + F7018B2FEFC25C7CB3333FD4 /* Foundation.framework in Frameworks */, + 4967312EBEA6FE1F0269A8B0 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 212646A327A36C6E21D805ED /* Frameworks */ = { + 23433B528991D32C5D469C39 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9E8A9AA837C273BEA3FEBAA7 /* Foundation.framework in Frameworks */, + ABEF91EEE9355BE5CBF2DE94 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2F201F2279A9EE0887AF626C /* Frameworks */ = { + 2E03423DB83D6038A14C1E70 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A7979F9C335EDE66E0D1C954 /* Foundation.framework in Frameworks */, + 46EE0143ED3BE1A0DA33EB36 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 640A98ED60C73829A487BB92 /* Frameworks */ = { + 49EC2CEE0899B7C8527D047D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 96BD0DB909C007F67B126DAE /* Foundation.framework in Frameworks */, + D78C45D6638A9F3BBB5D2646 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7E22B725FEA5D0B23D8978A5 /* Frameworks */ = { + 669F86AA964330010A7CB5C0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AE71429AA5039309561B5F1D /* CoreGraphics.framework in Frameworks */, - 6358BA2C16CA8ED98E89FE38 /* Foundation.framework in Frameworks */, + 9C1D05CD50AD9E9AAE2E2E15 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 86CE15570A9AFE070C73350E /* Frameworks */ = { + 7B25B45C52F6C955BF4B204C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1B51A4C3E72B77BCD9D1E6CB /* Foundation.framework in Frameworks */, + 5F57DD1876CAEA3136825153 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8EA6066ED975E46EE8916233 /* Frameworks */ = { + 839804D053B3266B1C844EE6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7C721F95CC677F6F5DCA6F05 /* Foundation.framework in Frameworks */, + 0ACC5AF85E6039FD3CF0BDA6 /* CoreGraphics.framework in Frameworks */, + 0E21193252EFB3269B721A38 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 902F51CB28190D4B4C62202A /* Frameworks */ = { + A65E5570DC7497A0AD9648B5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9223213B27E53C6F69F52DA1 /* Foundation.framework in Frameworks */, + DE627D3327C28105B9650969 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9CC3CCB093D5340D959B1DFB /* Frameworks */ = { + AC99459EEF91A4323FFD7FF0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D04AE730F72A5FBC1C5BCA4D /* Foundation.framework in Frameworks */, + EF0434253B4E206AFB68BCE8 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B0F2DBB238B5DED8F895DA2D /* Frameworks */ = { + B1740C151585A54038053B5B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3C6C547974CB5E15FC33305D /* Foundation.framework in Frameworks */, - 9DA9CFE746A849295DFB48D8 /* QuartzCore.framework in Frameworks */, - 56ACEF1B02320380A3CA66DC /* UIKit.framework in Frameworks */, + 6D638882CADBC1CD79F89864 /* CoreGraphics.framework in Frameworks */, + 7C29F2A23656D02A1AE0EC6C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B362CD93E9AA897FE27D50AE /* Frameworks */ = { + B53F612E7DE611CA2F78D2EE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 00498625488DDDBBC8B9AD3A /* CoreGraphics.framework in Frameworks */, - 31CC509DA2B94A9AB24EF6AE /* Foundation.framework in Frameworks */, - 9B561F93CA12F9072CB37AF9 /* UIKit.framework in Frameworks */, + A219D6B7CB836238402429E8 /* Foundation.framework in Frameworks */, + E769A7B2C0D7F8C7F667E603 /* QuartzCore.framework in Frameworks */, + 609EBAE172E5291FF297E99A /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - BC850847C2F569C84E19CB20 /* Frameworks */ = { + C5F55CBE7650F89384075E00 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 00F3C0F4EF36A78C4A2FA21E /* Foundation.framework in Frameworks */, + 479C203C5A6EF2A71ED86BB4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - BF77B42BCAFC95F7D3F388CE /* Frameworks */ = { + DC0B5BA9A51958208FA390B9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 11AE5E3E769018CD73B6942F /* AssetsLibrary.framework in Frameworks */, - EDA79C4FDC5687095A2D5D0C /* CoreGraphics.framework in Frameworks */, - E102D296B3DBF58F3C2F8DD5 /* CoreText.framework in Frameworks */, - 5827ED560814BA88E67AD96B /* Foundation.framework in Frameworks */, - D5020E7ECCAF04DC38D5DB1A /* MobileCoreServices.framework in Frameworks */, - 50AFD701C86ADD903692ECA1 /* QuartzCore.framework in Frameworks */, - 6F30826BD6D4457F3044F1A3 /* QuickLook.framework in Frameworks */, - 8D07713A62FB6E134CBFA406 /* Security.framework in Frameworks */, - F176870EF14BD5CB6A604EB6 /* SystemConfiguration.framework in Frameworks */, - A821C231AC63CF86F4CDDB12 /* UIKit.framework in Frameworks */, + 15BE0FEF1625BDBABCA0BF3E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C2741CDB7203567CBB15DADB /* Frameworks */ = { + DC1989958DE4B939C07C47FD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D4FF339DF867ACACDEBD6DA3 /* Foundation.framework in Frameworks */, - A5747F5018A04396D1E7FEE3 /* QuartzCore.framework in Frameworks */, - 1DE3763D1115834749720FAC /* UIKit.framework in Frameworks */, + 207BA94CAE841F27162DB969 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D0A3007A5E9024BAC0D4F0F1 /* Frameworks */ = { + E4EC0BA84D5EBE42C9E7404C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1605A38ADF978E1402B7E819 /* Foundation.framework in Frameworks */, + E89845841EAE33AE949C01A1 /* Foundation.framework in Frameworks */, + 32820AAD33F6306AE8280FBB /* QuartzCore.framework in Frameworks */, + CCE4F3B55C700812AF7C1953 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D91D130B86EA34C4DE9AEA1B /* Frameworks */ = { + F231F172716EB41AB6EF0D61 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3353A6981718F60B7405D924 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E2482817C051914AB957CA03 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E27E83DC91112BE1FC645AE9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 68929EAD030DD651F793FE8B /* Foundation.framework in Frameworks */, + DC92A41DCD9FE0B3A75A187A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03DAC8F8940B778391897613 /* Pods-Blog */ = { + 010032464C6AF340487A884E /* UIView */ = { isa = PBXGroup; children = ( - 0E9A393EFD29ADC14A40D488 /* Pods-Blog-acknowledgements.markdown */, - CA2C8071DC8343F160D1F9BE /* Pods-Blog-acknowledgements.plist */, - 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */, - 37B57CAE9B3BD6B83562BCDE /* Pods-Blog-environment.h */, - DBB53A3B54F3EE0DFCE4CCB4 /* Pods-Blog-resources.sh */, - F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */, - 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */, - ); - name = "Pods-Blog"; - path = "Target Support Files/Pods-Blog"; - sourceTree = ""; - }; - 06C699C9D1E5D919FB73EFB5 /* Support Files */ = { - isa = PBXGroup; - children = ( - 0D2752084F69F3909D28D926 /* Pods-Blog-FontAwesome+iOS.xcconfig */, - 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */, - 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */, - 0168F964DD215127BAB2FB25 /* Pods-Blog-FontAwesome+iOS-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-FontAwesome+iOS"; - sourceTree = ""; - }; - 0BC83F863481A98345A644AC /* UmbrellaHeader */ = { - isa = PBXGroup; - children = ( - A7CEB319B56B9E9E04D27915 /* extobjc.h */, - ); - name = UmbrellaHeader; - sourceTree = ""; - }; - 0C4E82992C75E1413FFDC218 /* CALayer */ = { - isa = PBXGroup; - children = ( - 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */, - 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */, - ); - name = CALayer; - sourceTree = ""; - }; - 0E264491497DB2B8B13EA759 /* Mantle */ = { - isa = PBXGroup; - children = ( - 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */, - 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */, - 681E61D4F1C8003DD0002889 /* MTLModel.h */, - 9E3B403889BC6F9D19D277C6 /* MTLModel.m */, - 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */, - 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */, - 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */, - EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */, - 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */, - 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */, - 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */, - E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */, - 3B45EBA63E234BB38D261731 /* Mantle.h */, - 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */, - EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */, - 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */, - 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */, - FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */, - B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */, - 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */, - 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */, - 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */, - 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */, - 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */, - 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */, - 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */, - B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */, - 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, - 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, - 869D99B6082B44D49D8F63E2 /* Support Files */, - 9254B9837ABA1A282E45F20E /* extobjc */, - ); - path = Mantle; - sourceTree = ""; - }; - 1144662171E2AEDEDB146205 /* NSNotificationCenter */ = { - isa = PBXGroup; - children = ( - 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */, - 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */, - ); - name = NSNotificationCenter; - sourceTree = ""; - }; - 1415E21256108515D191198F /* Support Files */ = { - isa = PBXGroup; - children = ( - 510E05D35CA23A13291F868F /* Pods-Blog-HockeySDK.xcconfig */, - 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */, - B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */, - D52919E3E0B4582879052E43 /* Pods-Blog-HockeySDK-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-HockeySDK"; - sourceTree = ""; - }; - 19D5E8B87190963760EB1E49 /* ObjectiveSugar */ = { - isa = PBXGroup; - children = ( - 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */, - B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */, - 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */, - C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */, - 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */, - 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */, - FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */, - B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */, - E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */, - CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */, - 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */, - A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */, - 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */, - 5EE4FC32200369999AE54FA1 /* Support Files */, - ); - path = ObjectiveSugar; - sourceTree = ""; - }; - 1A16BC45C350E036B8325A0B /* EXTSelectorChecking */ = { - isa = PBXGroup; - children = ( - F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */, - B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */, - ); - name = EXTSelectorChecking; - sourceTree = ""; - }; - 1CBF91F61B86A763CA47300B /* UserAgent */ = { - isa = PBXGroup; - children = ( - B40A12346A638AE5BB40D958 /* OMGUserAgent.h */, - DB4997275289D86523E96F96 /* OMGUserAgent.m */, - ); - name = UserAgent; - sourceTree = ""; - }; - 1D770690B8B24F0BBA0DFEE4 /* Core */ = { - isa = PBXGroup; - children = ( - E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */, - 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */, - BBECDB2613259DCA4284788C /* DDASLLogger.h */, - 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */, - DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */, - 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */, - 3308D7BDAB66931744762B7D /* DDAssert.h */, - 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */, - 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */, - 3BF5F262FEB96CD07F5F3999 /* DDLog.h */, - FFC39F1AD2E4583CE74D9C2B /* DDLog.m */, - 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */, - 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */, - 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */, - ); - name = Core; - sourceTree = ""; - }; - 22B8BE4A5AC0301E0705D980 /* Until */ = { - isa = PBXGroup; - children = ( - 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */, - F15DAE4BDB915BFE7508024F /* Promise+Until.h */, - ); - name = Until; - sourceTree = ""; - }; - 24743C495390B7D114063BCA /* Products */ = { - isa = PBXGroup; - children = ( - 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */, - 6D844884C2AF03CF2238630A /* libPods-Blog.a */, - 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */, - 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */, - 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */, - BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */, - 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */, - A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */, - 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */, - 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */, - CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */, - 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */, - 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */, - 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */, - E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */, - C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */, - 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */, - F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */, - 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */, - F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */, - E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */, - ); - name = Products; - sourceTree = ""; - }; - 247F469EE6B466ED8584AFDA /* Support Files */ = { - isa = PBXGroup; - children = ( - 6C523A395E279637F7F1564D /* Pods-Blog-libextobjc.xcconfig */, - 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */, - A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */, - 503A183E45FBBEA1173DFD4E /* Pods-Blog-libextobjc-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-libextobjc"; - sourceTree = ""; - }; - 2EDC9E33B7F3A0BF1E523C57 /* Pause */ = { - isa = PBXGroup; - children = ( - CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */, - B278467453160CB24D460AD6 /* Promise+Pause.h */, - ); - name = Pause; - sourceTree = ""; - }; - 334AA3358D8DC5CBA1D1E17C /* EXTNil */ = { - isa = PBXGroup; - children = ( - 2739CFE5A18784673E3C8B0F /* EXTNil.h */, - 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */, - ); - name = EXTNil; - sourceTree = ""; - }; - 45557B4D91E267220AB739AC /* Extensions */ = { - isa = PBXGroup; - children = ( - 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */, - 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */, - D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */, - FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */, - C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */, - 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */, - ); - name = Extensions; - sourceTree = ""; - }; - 465216F1893F1D7F37E6D565 /* Support Files */ = { - isa = PBXGroup; - children = ( - 33944845AD0433274A6390F4 /* Pods-Blog-YapDatabase.xcconfig */, - 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */, - 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */, - 66E2AAE6B5911FAAFC70C7F2 /* Pods-Blog-YapDatabase-prefix.pch */, - B5145EAD52ED69ACF83CEF7F /* Pods-samhuri.net-YapDatabase.xcconfig */, - 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */, - 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */, - 0BC9F5FB29551F575CC3D1FD /* Pods-samhuri.net-YapDatabase-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-YapDatabase"; - sourceTree = ""; - }; - 4B160F74E81A3ACE21289D80 /* dyci */ = { - isa = PBXGroup; - children = ( - C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */, - 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */, - 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */, - 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */, - EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */, - B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */, - 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */, - C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */, - 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */, - 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */, - D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */, - 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */, - 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */, - 73DF0A9D499C6CEFB3ED2480 /* Injections */, - 680C556E419BC129BD1D50A3 /* Support Files */, - ); - path = dyci; - sourceTree = ""; - }; - 4F975902C72CD77C26B4A229 = { - isa = PBXGroup; - children = ( - 080BDF5F127AA4AF3BB7630D /* Podfile */, - 7D909F94BC85F4407178FD70 /* Frameworks */, - D17157AA4B555829D3BC20D3 /* Pods */, - 24743C495390B7D114063BCA /* Products */, - F274494C8D06D7C5917909D5 /* Targets Support Files */, - ); - sourceTree = ""; - }; - 50D659B90BA65BD617E44AD8 /* RuntimeExtensions */ = { - isa = PBXGroup; - children = ( - 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */, - 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */, - D0609C4BB316F6C406515655 /* metamacros.h */, - ); - name = RuntimeExtensions; - sourceTree = ""; - }; - 5974F7E40F47723CC39B091B /* OMGHTTPURLRQ */ = { - isa = PBXGroup; - children = ( - 9C9706A7F65A092803310FFC /* FormURLEncode */, - EFF3004BED7175E06A337BE9 /* RQ */, - E82BDBAB557EBA7CAFEC8486 /* Support Files */, - 1CBF91F61B86A763CA47300B /* UserAgent */, - ); - path = OMGHTTPURLRQ; - sourceTree = ""; - }; - 5A17E4320F98798C85AD86F1 /* EXTADT */ = { - isa = PBXGroup; - children = ( - C762D834D70422D3F7A56BFD /* EXTADT.h */, - 55BF87C50521DCFA948B4BC4 /* EXTADT.m */, - ); - name = EXTADT; - sourceTree = ""; - }; - 5CCB68046BA7799C23C20D98 /* Resources */ = { - isa = PBXGroup; - children = ( - C63C6B4830C908886C0A3DFE /* Arrow.png */, - F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */, - 5BE2F353665128803541EB57 /* Arrow@3x.png */, - 52973E9BB77DB4E7F8C497E2 /* Blur.png */, - 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */, - A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */, - 42B8A6E679CAADE1D110DD14 /* Cancel.png */, - B08CC53317FA226DE7E2F027 /* Cancel@2x.png */, - 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */, - 0BA48468FA647EA7740B2237 /* IconGradient.png */, - B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */, - 619FF75A6C351D8E5A76F150 /* Ok.png */, - 126FB1A7049C4691143B6656 /* Ok@2x.png */, - 83B614F52437F53C5C14CC23 /* Ok@3x.png */, - 33E997B4175AFC16EB235986 /* Rectangle.png */, - 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */, - 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */, - D9611CD8143D152BA4AD4E90 /* authorize_denied.png */, - D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */, - CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */, - A61395B78F311A97B3E1F8AE /* bg.png */, - 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */, - E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */, - 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */, - 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */, - 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */, - 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */, - 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */, - 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */, - 6FECC3F313145297F55198B3 /* de.lproj */, - F5E14A083793793CCBE0A329 /* en.lproj */, - D1E37A53CE49826B04F4AD43 /* es.lproj */, - 261E60A2F8407C25ECD19683 /* feedbackActivity.png */, - 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */, - 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */, - C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */, - 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */, - 6FAAC7962D183FFE47391AB9 /* fr.lproj */, - EFE57D9EBDFF786697CF0917 /* hr.lproj */, - BA776DEBA98EB4903E84A0F8 /* hu.lproj */, - A948FC7FF58BAB60A6134B4B /* iconCamera.png */, - 19F462093848F17B8CD183C9 /* iconCamera@2x.png */, - B280C102D9EA5CD778F7B27D /* it.lproj */, - 34C9996FF9709CA210D8AF16 /* ja.lproj */, - C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */, - 443A2BFCCC45974DA1DE3843 /* pt.lproj */, - 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */, - 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */, - 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */, - ); - name = Resources; - sourceTree = ""; - }; - 5EE4FC32200369999AE54FA1 /* Support Files */ = { - isa = PBXGroup; - children = ( - A32A01FF0A29D45FACE89BAA /* Pods-Blog-ObjectiveSugar.xcconfig */, - 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */, - 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */, - 5CF2FA58D5BE220B9B0E1AF0 /* Pods-Blog-ObjectiveSugar-prefix.pch */, - B020B116677D81960C8473B5 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */, - 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */, - 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */, - 6581603B55DBEF96247E815B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-ObjectiveSugar"; - sourceTree = ""; - }; - 5F095CF9DB45BB91A6D8F423 /* UIViewController */ = { - isa = PBXGroup; - children = ( - 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */, - 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */, - ); - name = UIViewController; - sourceTree = ""; - }; - 61791142477B3C06209F32D9 /* UIView */ = { - isa = PBXGroup; - children = ( - C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */, - 80B569CC06E949026E572280 /* UIView+PromiseKit.m */, + 7CE24DAF5D5487D463D087B0 /* UIView+PromiseKit.h */, + 051235799B7032D47E39867E /* UIView+PromiseKit.m */, ); name = UIView; sourceTree = ""; }; - 662AFEFB62FA3F6EF56721F1 /* Promise */ = { + 062F56F9F241DF7D1FA1B35A /* NSMethodSignature+EXT */ = { isa = PBXGroup; children = ( - FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */, - A07DB2BC98BD53CB96177A33 /* Promise.h */, - D09964036F500F44D0E6439F /* PromiseKit.h */, - E8487C0B60EDEB653E99C666 /* fwd.h */, + 25E252AC875D821E3D6D1A1F /* NSMethodSignature+EXT.h */, + 3570A27E1912E4317E2CFD78 /* NSMethodSignature+EXT.m */, ); - name = Promise; + name = "NSMethodSignature+EXT"; sourceTree = ""; }; - 680C556E419BC129BD1D50A3 /* Support Files */ = { + 1465FE87FCD6D207D5295CCE /* UIActionSheet */ = { isa = PBXGroup; children = ( - 95087C4EE90196EFC714E9E3 /* Pods-Blog-dyci.xcconfig */, - 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */, - 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */, - 633B5CB45BD5145F5BFC6281 /* Pods-Blog-dyci-prefix.pch */, + F1EEF1C23F92ACAEF73177EA /* UIActionSheet+PromiseKit.h */, + 2971F3289A76979FCF97BE78 /* UIActionSheet+PromiseKit.m */, ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-dyci"; + name = UIActionSheet; sourceTree = ""; }; - 6C38DA294ECDF1F4F18DC098 /* UIAlertView */ = { + 15117261DB5B623F1A0BF922 /* Mantle */ = { isa = PBXGroup; children = ( - B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */, - F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */, + 96D258030D8724E7DD74EE2B /* MTLJSONAdapter.h */, + 7C25C18EDBCFB3E906BEF2A8 /* MTLJSONAdapter.m */, + 0570976EE6011FDCF1AF731D /* MTLModel.h */, + F898E608C33F24CA436ADC22 /* MTLModel.m */, + D0512709CBCE950CD01019FB /* MTLModel+NSCoding.h */, + A5B7B9A6FF39635B81E45A4B /* MTLModel+NSCoding.m */, + 11882F3D1AD5DF4975C370A1 /* MTLReflection.h */, + 7966AE914FE98BBE8A13E630 /* MTLReflection.m */, + 1012ADBA1C1EE5F67AEFAD07 /* MTLTransformerErrorHandling.h */, + 89958C5C350197F2AFAE9B1F /* MTLTransformerErrorHandling.m */, + F739B9F1A5AE759A708258F7 /* MTLValueTransformer.h */, + 568E96CB7C9284802B29EF28 /* MTLValueTransformer.m */, + 927C5BCB782CA2932CD848E9 /* Mantle.h */, + BB4648950DE909E252E7936E /* NSArray+MTLManipulationAdditions.h */, + E9666EC9C43D3A469AFE76B5 /* NSArray+MTLManipulationAdditions.m */, + 2638C55815EA16F59D32BD4F /* NSDictionary+MTLJSONKeyPath.h */, + 5565B6D59A778DE079752FD9 /* NSDictionary+MTLJSONKeyPath.m */, + BED57E963964C10055995A23 /* NSDictionary+MTLManipulationAdditions.h */, + DE7CF4688A3F7F3C9CDE8E70 /* NSDictionary+MTLManipulationAdditions.m */, + DD68BB8AC0A4426E4BDC2F33 /* NSDictionary+MTLMappingAdditions.h */, + 45CE1691FEB2D19356A30BD8 /* NSDictionary+MTLMappingAdditions.m */, + CB7ABF26964D2F416C94020B /* NSError+MTLModelException.h */, + 448A2ED3857676BE02DD33ED /* NSError+MTLModelException.m */, + 3D0C708FBAFAF8AC567299B9 /* NSObject+MTLComparisonAdditions.h */, + 5DD7AA0F9B2CF6E489B7C551 /* NSObject+MTLComparisonAdditions.m */, + A493307163E90210CEAC2763 /* NSValueTransformer+MTLInversionAdditions.h */, + 24CEEC92E985267A216118BC /* NSValueTransformer+MTLInversionAdditions.m */, + 97CBC90A4DF603F4642B501D /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, + FF1AC70B2E6F98BAFDE91815 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, + B48BD24156A32A146059AFC0 /* Support Files */, + 21213F6F0C68647D0188E48A /* extobjc */, ); - name = UIAlertView; + path = Mantle; sourceTree = ""; }; - 73DF0A9D499C6CEFB3ED2480 /* Injections */ = { + 1ABD4F340BF3DCD38202AB73 /* Support Files */ = { isa = PBXGroup; children = ( - 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */, - D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */, - ); - name = Injections; - sourceTree = ""; - }; - 7565362C02D0F84FC0BE0F9E /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92C665F6305FD98E3F869913 /* CrashReporter.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 778B85C9FAD42A3C2052898D /* libextobjc */ = { - isa = PBXGroup; - children = ( - 5A17E4320F98798C85AD86F1 /* EXTADT */, - F35826208EEC761BB9E953FA /* EXTConcreteProtocol */, - 7E01161CF74DE744D13971F0 /* EXTKeyPathCoding */, - 334AA3358D8DC5CBA1D1E17C /* EXTNil */, - E85C2E0A98B418118848AA9F /* EXTSafeCategory */, - 87B35084B36DACCDF796E74B /* EXTScope */, - 1A16BC45C350E036B8325A0B /* EXTSelectorChecking */, - A6108D62BF36A265326EA778 /* EXTSynthesize */, - DB75949A57946D7BD0A1E9DD /* NSInvocation+EXT */, - DF09FC7D9817B85622F33CA6 /* NSMethodSignature+EXT */, - 50D659B90BA65BD617E44AD8 /* RuntimeExtensions */, - 247F469EE6B466ED8584AFDA /* Support Files */, - 0BC83F863481A98345A644AC /* UmbrellaHeader */, - ); - path = libextobjc; - sourceTree = ""; - }; - 7C91F9925A3C6C9B7E817BEB /* CocoaLumberjack */ = { - isa = PBXGroup; - children = ( - 1D770690B8B24F0BBA0DFEE4 /* Core */, - 45557B4D91E267220AB739AC /* Extensions */, - CDBE0DA61015C64EBB7275CA /* Support Files */, - ); - path = CocoaLumberjack; - sourceTree = ""; - }; - 7D909F94BC85F4407178FD70 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A4659A98A9935948CE701459 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7E01161CF74DE744D13971F0 /* EXTKeyPathCoding */ = { - isa = PBXGroup; - children = ( - 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */, - ); - name = EXTKeyPathCoding; - sourceTree = ""; - }; - 869D99B6082B44D49D8F63E2 /* Support Files */ = { - isa = PBXGroup; - children = ( - 9AB446BEFF53A4FBAF8114C9 /* Pods-Blog-Mantle.xcconfig */, - 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */, - C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */, - CD8F14FC27B9F842F9FC0F9E /* Pods-Blog-Mantle-prefix.pch */, - 7F1B5146C965858B92A60454 /* Pods-samhuri.net-Mantle.xcconfig */, - A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */, - 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */, - A6CC972B2528EAAD054CE30C /* Pods-samhuri.net-Mantle-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-Mantle"; - sourceTree = ""; - }; - 87B35084B36DACCDF796E74B /* EXTScope */ = { - isa = PBXGroup; - children = ( - E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */, - 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */, - ); - name = EXTScope; - sourceTree = ""; - }; - 8F9927D3B7826EBDDFC5F9BD /* YapDatabase */ = { - isa = PBXGroup; - children = ( - 465216F1893F1D7F37E6D565 /* Support Files */, - CF936FBF92D3E19D9395FED8 /* common */, - ); - path = YapDatabase; - sourceTree = ""; - }; - 9254B9837ABA1A282E45F20E /* extobjc */ = { - isa = PBXGroup; - children = ( - 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */, - 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */, - 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */, - 24D607AD9649AF74B29019EE /* EXTScope.h */, - 20E112DDB4AE54B73DE1336C /* EXTScope.m */, - C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */, - ); - name = extobjc; - sourceTree = ""; - }; - 93C0DB3C8B3C08EF96028FDD /* Support Files */ = { - isa = PBXGroup; - children = ( - 02A409006397ACD50DC712F2 /* Pods-Blog-PromiseKit.xcconfig */, - AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */, - 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */, - 7DEB1DA3BA9A26F9296364B6 /* Pods-Blog-PromiseKit-prefix.pch */, - 44EBAE26A008D2AE7831CD11 /* Pods-samhuri.net-PromiseKit.xcconfig */, - 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */, - CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */, - 36DC4EF50A17023C7709F5E7 /* Pods-samhuri.net-PromiseKit-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-PromiseKit"; - sourceTree = ""; - }; - 96BF513252097CAD415609E9 /* NSURLConnection */ = { - isa = PBXGroup; - children = ( - 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */, - 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */, - ); - name = NSURLConnection; - sourceTree = ""; - }; - 9C9706A7F65A092803310FFC /* FormURLEncode */ = { - isa = PBXGroup; - children = ( - 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */, - 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */, - ); - name = FormURLEncode; - sourceTree = ""; - }; - A4659A98A9935948CE701459 /* iOS */ = { - isa = PBXGroup; - children = ( - C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */, - 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */, - 1B703A6BEDE896B8C431D62F /* CoreText.framework */, - A3D858279C71419EA04223FF /* Foundation.framework */, - EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */, - 8146B2DACA711A176F8EC65B /* QuartzCore.framework */, - F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */, - 815314C99E35FEFB96DA5AF6 /* Security.framework */, - 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */, - F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */, - ); - name = iOS; - sourceTree = ""; - }; - A5F1A07AB9D4CDA88A97EC75 /* MBProgressHUD */ = { - isa = PBXGroup; - children = ( - CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */, - B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */, - D774E1872460467157F00F97 /* Support Files */, - ); - path = MBProgressHUD; - sourceTree = ""; - }; - A6108D62BF36A265326EA778 /* EXTSynthesize */ = { - isa = PBXGroup; - children = ( - 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */, - ); - name = EXTSynthesize; - sourceTree = ""; - }; - B3D5BF23DDF579A3B8FE3A49 /* When */ = { - isa = PBXGroup; - children = ( - ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */, - CD30F7532A22486925B12E4A /* Promise+When.h */, - ); - name = When; - sourceTree = ""; - }; - BC1EA1AC78C8DDD903FEC1EE /* PromiseKit */ = { - isa = PBXGroup; - children = ( - 0C4E82992C75E1413FFDC218 /* CALayer */, - 1144662171E2AEDEDB146205 /* NSNotificationCenter */, - 96BF513252097CAD415609E9 /* NSURLConnection */, - 2EDC9E33B7F3A0BF1E523C57 /* Pause */, - 662AFEFB62FA3F6EF56721F1 /* Promise */, - 93C0DB3C8B3C08EF96028FDD /* Support Files */, - EC6EF1C9AFF95C9687F80EAF /* UIActionSheet */, - 6C38DA294ECDF1F4F18DC098 /* UIAlertView */, - 61791142477B3C06209F32D9 /* UIView */, - 5F095CF9DB45BB91A6D8F423 /* UIViewController */, - 22B8BE4A5AC0301E0705D980 /* Until */, - B3D5BF23DDF579A3B8FE3A49 /* When */, - ); - path = PromiseKit; - sourceTree = ""; - }; - BE3ACBCC491CBE03D5F375FE /* Resources */ = { - isa = PBXGroup; - children = ( - 9CBE9CD5457F95EC9CCB50E1 /* FontAwesome.ttf */, - ); - name = Resources; - sourceTree = ""; - }; - CD3DDD81C6C4875402FC7A81 /* HockeySDK */ = { - isa = PBXGroup; - children = ( - C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */, - 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */, - 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */, - 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */, - 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */, - A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */, - E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */, - 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */, - 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */, - 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */, - CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */, - BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */, - C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */, - 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */, - 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */, - A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */, - EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */, - 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */, - F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */, - B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */, - 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */, - 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */, - E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */, - 335E63163D0E30B59353F7C8 /* BITCrashManager.m */, - 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */, - 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */, - EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */, - DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */, - 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */, - 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */, - 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */, - 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */, - D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */, - 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */, - 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */, - 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */, - 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */, - 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */, - 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */, - 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */, - 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */, - 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */, - F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */, - 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */, - 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */, - B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */, - 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */, - ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */, - 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */, - 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */, - 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */, - F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */, - 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */, - 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */, - BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */, - D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */, - 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */, - 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */, - A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */, - D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */, - 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */, - C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */, - FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */, - 37A3446FBF50420B4587F51D /* BITHockeyManager.m */, - 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */, - 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */, - 425EC32991B418837B39D218 /* BITImageAnnotation.m */, - 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */, - 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */, - 8D4323EE31234804931D429D /* BITKeychainUtils.h */, - A353569B80DC3431CBB4045F /* BITKeychainUtils.m */, - 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */, - 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */, - 20282B8F4754BE7E220FD707 /* BITStoreButton.h */, - 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */, - 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */, - 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */, - 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */, - AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */, - 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */, - D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */, - 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */, - 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */, - E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */, - 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */, - 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */, - C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */, - 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */, - 801D1290FA2159F94FA473CE /* HockeySDK.h */, - A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */, - A023FC3597928617A456E3AB /* HockeySDKPrivate.h */, - 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */, - 7565362C02D0F84FC0BE0F9E /* Frameworks */, - 5CCB68046BA7799C23C20D98 /* Resources */, - 1415E21256108515D191198F /* Support Files */, - ); - path = HockeySDK; - sourceTree = ""; - }; - CDBE0DA61015C64EBB7275CA /* Support Files */ = { - isa = PBXGroup; - children = ( - 92E383A8776E341CD4CAA48A /* Pods-Blog-CocoaLumberjack.xcconfig */, - 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */, - AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */, - 6C6329951268398B43509B8E /* Pods-Blog-CocoaLumberjack-prefix.pch */, - 693A6E55BFD6258368D2CCCF /* Pods-samhuri.net-CocoaLumberjack.xcconfig */, - 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */, - AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */, - 30DF5DDA18287D6016B5E408 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-CocoaLumberjack"; - sourceTree = ""; - }; - CF936FBF92D3E19D9395FED8 /* common */ = { - isa = PBXGroup; - children = ( - DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */, - 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */, - 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */, - 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */, - AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */, - 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */, - A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */, - 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */, - 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */, - F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */, - BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */, - 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */, - 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */, - E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */, - D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */, - A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */, - 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */, - BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */, - 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */, - 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */, - 23DEB41BD56023A09D2ACD97 /* YapCache.h */, - 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */, - 66C92112F781616FECE24051 /* YapCollectionKey.h */, - 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */, - 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */, - 366C30DD854276061F3DCE87 /* YapDatabase.m */, - 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */, - 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */, - 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */, - 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */, - 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */, - 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */, - 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */, - A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */, - 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */, - D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */, - AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */, - BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */, - BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */, - DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */, - 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */, - 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */, - CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */, - 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */, - 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */, - 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */, - 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */, - 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */, - FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */, - AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */, - 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */, - 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */, - B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */, - F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */, - CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */, - 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */, - 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */, - 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */, - 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */, - 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */, - BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */, - A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */, - 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */, - 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */, - 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */, - 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */, - B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */, - 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */, - DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */, - 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */, - 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */, - A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */, - 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */, - 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */, - C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */, - DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */, - 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */, - 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */, - CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */, - 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */, - E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */, - B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */, - 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */, - E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */, - ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */, - 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */, - 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */, - B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */, - 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */, - D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */, - A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */, - A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */, - F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */, - B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */, - AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */, - 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */, - 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */, - DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */, - 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */, - 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */, - 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */, - FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */, - 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */, - 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */, - D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */, - 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */, - C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */, - 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */, - D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */, - 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */, - 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */, - 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */, - 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */, - 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */, - AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */, - 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */, - AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */, - 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */, - C807DB918DC08D171C49611E /* YapDatabaseStatement.m */, - 412CC4C8070F307CC821193A /* YapDatabaseString.h */, - D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */, - C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */, - C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */, - 352DFB6A03780CD603976FCF /* YapDatabaseView.m */, - 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */, - B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */, - 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */, - F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */, - 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */, - D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */, - F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */, - ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */, - 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */, - 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */, - 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */, - 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */, - 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */, - E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */, - 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */, - 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */, - 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */, - A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */, - 56065D3D425D00854216D247 /* YapDatabaseViewState.h */, - F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */, - E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */, - 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */, - 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */, - 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */, - F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */, - 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */, - 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */, - 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */, - 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */, - BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */, - F8FEFB0BE1417D56700D9213 /* YapNull.h */, - 80C8E42F143FF516C3C9E62A /* YapNull.m */, - E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */, - E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */, - 03D212ED7F0BC4815B93AACF /* YapSet.h */, - AC9D8A4B26B7D42DBB165638 /* YapSet.m */, - 95CF93105862D466397FF4B1 /* YapTouch.h */, - AD94996C5ACAD93E2413FFF5 /* YapTouch.m */, - 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */, - 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */, - ); - name = common; - sourceTree = ""; - }; - D17157AA4B555829D3BC20D3 /* Pods */ = { - isa = PBXGroup; - children = ( - 7C91F9925A3C6C9B7E817BEB /* CocoaLumberjack */, - DC06CD32346AF3CAE5BC2A6A /* FontAwesome+iOS */, - CD3DDD81C6C4875402FC7A81 /* HockeySDK */, - A5F1A07AB9D4CDA88A97EC75 /* MBProgressHUD */, - 0E264491497DB2B8B13EA759 /* Mantle */, - 5974F7E40F47723CC39B091B /* OMGHTTPURLRQ */, - 19D5E8B87190963760EB1E49 /* ObjectiveSugar */, - BC1EA1AC78C8DDD903FEC1EE /* PromiseKit */, - 8F9927D3B7826EBDDFC5F9BD /* YapDatabase */, - 4B160F74E81A3ACE21289D80 /* dyci */, - 778B85C9FAD42A3C2052898D /* libextobjc */, - ); - name = Pods; - sourceTree = ""; - }; - D774E1872460467157F00F97 /* Support Files */ = { - isa = PBXGroup; - children = ( - CA617FB64E3352C20A0DC0C7 /* Pods-Blog-MBProgressHUD.xcconfig */, - 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */, - 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */, - F7845BE27C17D31150410488 /* Pods-Blog-MBProgressHUD-prefix.pch */, - EE5B7F50E59D05A920195088 /* Pods-samhuri.net-MBProgressHUD.xcconfig */, - 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */, - 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */, - 55A4E2B60DDDE0E6E3686762 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */, + 7C3CAE50DF07C5BFB1DC593A /* Pods-Blog-MBProgressHUD.xcconfig */, + 7A583BA8294D5CF5B640CC7C /* Pods-Blog-MBProgressHUD-Private.xcconfig */, + F27518FAB6467FE1B8652143 /* Pods-Blog-MBProgressHUD-dummy.m */, + 8AC5053941243B222152C4A3 /* Pods-Blog-MBProgressHUD-prefix.pch */, + 1FA5CB64FA0D13BEFF382020 /* Pods-samhuri.net-MBProgressHUD.xcconfig */, + E45CC82DF7C2F81C87DB5437 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */, + F556494B46A24BCB0D3D7EBB /* Pods-samhuri.net-MBProgressHUD-dummy.m */, + 5D44436B84CE219249722A17 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-Blog-MBProgressHUD"; sourceTree = ""; }; - DB75949A57946D7BD0A1E9DD /* NSInvocation+EXT */ = { + 21213F6F0C68647D0188E48A /* extobjc */ = { isa = PBXGroup; children = ( - D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */, - 3166B01856C436331247B5BB /* NSInvocation+EXT.m */, + 607A55B125779C00F3796B8F /* EXTKeyPathCoding.h */, + 2748CEA180F7803342F7FAD7 /* EXTRuntimeExtensions.h */, + 4EF0B93BAC605F17004F6CD2 /* EXTRuntimeExtensions.m */, + C45A2DD65FDC2446D33AF32D /* EXTScope.h */, + CAE5CF5EE3A6B7929D509FEE /* EXTScope.m */, + 21A3C088DD2D75B6DD5428CC /* metamacros.h */, ); - name = "NSInvocation+EXT"; + name = extobjc; sourceTree = ""; }; - DC06CD32346AF3CAE5BC2A6A /* FontAwesome+iOS */ = { + 2E0A8E91CACEA8AE717A77AF /* EXTSelectorChecking */ = { isa = PBXGroup; children = ( - D59452232BBDB6A18E87B2F1 /* FAImageView.h */, - 0DA3911803CC22752770CDC2 /* FAImageView.m */, - 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */, - B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */, - AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */, - EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */, - 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */, - 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */, - BE3ACBCC491CBE03D5F375FE /* Resources */, - 06C699C9D1E5D919FB73EFB5 /* Support Files */, + F1008F84D460EFEDFAD69BA1 /* EXTSelectorChecking.h */, + E3AAF075E262B52833D80D33 /* EXTSelectorChecking.m */, + ); + name = EXTSelectorChecking; + sourceTree = ""; + }; + 2F3A2F3C92F316FEDB7F2629 /* Extensions */ = { + isa = PBXGroup; + children = ( + CD5217A211C5C601BB8942DA /* DDContextFilterLogFormatter.h */, + 394775BD9716A6B922F8A83F /* DDContextFilterLogFormatter.m */, + 1EC49C1F2D5045D414D79FA3 /* DDDispatchQueueLogFormatter.h */, + 8A6B32A18EB5D6189C25B4DF /* DDDispatchQueueLogFormatter.m */, + 490F82B1624BDD41BFA7EF52 /* DDMultiFormatter.h */, + 0ABD42B673212827FC5E81A5 /* DDMultiFormatter.m */, + ); + name = Extensions; + sourceTree = ""; + }; + 30B083DA137DAA91ACAE044A /* ObjectiveSugar */ = { + isa = PBXGroup; + children = ( + 74517E5BC04CB8182F1D2C73 /* NSArray+ObjectiveSugar.h */, + 115262744791CBF66600635D /* NSArray+ObjectiveSugar.m */, + 4DDEB84C888037D165734ACC /* NSDictionary+ObjectiveSugar.h */, + 9B26003246FDBD5BA627380D /* NSDictionary+ObjectiveSugar.m */, + CB02B0138F7473DFA25F5DD3 /* NSMutableArray+ObjectiveSugar.h */, + ACDDE4884088550E97172FBB /* NSMutableArray+ObjectiveSugar.m */, + FC8D9861CA1A71E165BD9F19 /* NSNumber+ObjectiveSugar.h */, + 8A64AB9C063419461BB0FBEF /* NSNumber+ObjectiveSugar.m */, + FE59F63E87AA199B09DE4E86 /* NSSet+ObjectiveSugar.h */, + 121F6E2F3971D6843C6C7744 /* NSSet+ObjectiveSugar.m */, + E8859B22B1954BDB4C0ABB02 /* NSString+ObjectiveSugar.h */, + 695619A16E7BDE7EF40388E1 /* NSString+ObjectiveSugar.m */, + 0705765BAAF575E1289E3DFF /* ObjectiveSugar.h */, + A862432FB71A53F68D936C65 /* Support Files */, + ); + path = ObjectiveSugar; + sourceTree = ""; + }; + 3976CBE359DE2F3865F88CCE /* Support Files */ = { + isa = PBXGroup; + children = ( + 13A7F49442B8323F78300FE7 /* Pods-Blog-dyci.xcconfig */, + B2CDADA292CB17CBF9806392 /* Pods-Blog-dyci-Private.xcconfig */, + A0DE404418DCA421BB2D73BD /* Pods-Blog-dyci-dummy.m */, + AD6BD3B8D3881A5F877A9274 /* Pods-Blog-dyci-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-dyci"; + sourceTree = ""; + }; + 3AE39B264745284FF155C056 /* libextobjc */ = { + isa = PBXGroup; + children = ( + BA1786E9834F99ED6717D327 /* EXTADT */, + DF17F8CF976B1F44127C5A35 /* EXTConcreteProtocol */, + AAEA5C82AA5AAA645F69B08F /* EXTKeyPathCoding */, + 4942D1FFD2F7BFC82FC0DDDE /* EXTNil */, + B6BD4154C451DE5A605283CC /* EXTSafeCategory */, + 5A5857711D8EB5EB917ED608 /* EXTScope */, + 2E0A8E91CACEA8AE717A77AF /* EXTSelectorChecking */, + A2A09A5BDA47DECA01FF4440 /* EXTSynthesize */, + D882DDF7A60C5F63171E310B /* NSInvocation+EXT */, + 062F56F9F241DF7D1FA1B35A /* NSMethodSignature+EXT */, + 3BDAEAEF0ABF1BC0F411F933 /* RuntimeExtensions */, + 5796EE94D2635A6D7B80D62D /* Support Files */, + CB21331C12F785B2926FAB7F /* UmbrellaHeader */, + ); + path = libextobjc; + sourceTree = ""; + }; + 3B7DF649F7EA39A2A262F57B /* Support Files */ = { + isa = PBXGroup; + children = ( + C67F0D5908EC9D3726BD8B56 /* Pods-Blog-YapDatabase.xcconfig */, + 85B0206D33F44E1C159E1220 /* Pods-Blog-YapDatabase-Private.xcconfig */, + A80A57CC9BC2511CFE951B10 /* Pods-Blog-YapDatabase-dummy.m */, + 1359E22249ACF4B99C930AF4 /* Pods-Blog-YapDatabase-prefix.pch */, + EFC4BFB2F35671DE2CAFE25D /* Pods-samhuri.net-YapDatabase.xcconfig */, + CC10242FF2E2FB94FBB70C95 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */, + B110C8CF0F897215306F171E /* Pods-samhuri.net-YapDatabase-dummy.m */, + F4160D85743F1CB0E0846076 /* Pods-samhuri.net-YapDatabase-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-YapDatabase"; + sourceTree = ""; + }; + 3BDAEAEF0ABF1BC0F411F933 /* RuntimeExtensions */ = { + isa = PBXGroup; + children = ( + A9CC38384F1B87AC4CAE9034 /* EXTRuntimeExtensions.h */, + AD8AF9D13D293D65A2F409AE /* EXTRuntimeExtensions.m */, + 00D7CA8BCAA182A1493D935E /* metamacros.h */, + ); + name = RuntimeExtensions; + sourceTree = ""; + }; + 3C521D7A55F67882C83D729A /* iOS */ = { + isa = PBXGroup; + children = ( + 5A57B60FBD9273517143A70E /* CoreGraphics.framework */, + 1B7493F604FA469FA60BE578 /* Foundation.framework */, + 727395CC1A9030F8730CBDAD /* QuartzCore.framework */, + A728A7038B93F49C1AF580CC /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 3D1213DCD6DC0DDC2D583083 /* Resources */ = { + isa = PBXGroup; + children = ( + 1AEF22D9BD67A39FE7B11B61 /* FontAwesome.ttf */, + ); + name = Resources; + sourceTree = ""; + }; + 3E3E310D90BCF50E32BA867D /* CocoaLumberjack */ = { + isa = PBXGroup; + children = ( + DDF7ECB02684F038AF9088D5 /* Core */, + 2F3A2F3C92F316FEDB7F2629 /* Extensions */, + 84E540C7CCCDD3BA1AFADE0F /* Support Files */, + ); + path = CocoaLumberjack; + sourceTree = ""; + }; + 4942D1FFD2F7BFC82FC0DDDE /* EXTNil */ = { + isa = PBXGroup; + children = ( + 100E5F151A6977DE4CDE06DD /* EXTNil.h */, + 28331EC47FBE28DD57A54F64 /* EXTNil.m */, + ); + name = EXTNil; + sourceTree = ""; + }; + 4A2FFE9258825D13D124BDE8 /* Injections */ = { + isa = PBXGroup; + children = ( + 0F7403C2C75CB3AA66D6D67F /* NSObject+DyCInjection.h */, + 2B2CF78D15A198E07CABE7B5 /* NSObject+DyCInjection.m */, + ); + name = Injections; + sourceTree = ""; + }; + 4C17EBC5D2E0E0BDAFD75F75 /* Pods */ = { + isa = PBXGroup; + children = ( + 3E3E310D90BCF50E32BA867D /* CocoaLumberjack */, + CD6072190BE3E23BDB018020 /* FontAwesome+iOS */, + 63000D5588C8EF5C1A723792 /* MBProgressHUD */, + 15117261DB5B623F1A0BF922 /* Mantle */, + C880E73B7304AE7FD83F1E44 /* OMGHTTPURLRQ */, + 30B083DA137DAA91ACAE044A /* ObjectiveSugar */, + EC7703F743F990793A852FAE /* PromiseKit */, + 8EEB0BAD75331771E005855E /* YapDatabase */, + A2E4266A5C2DEBB547B12EB5 /* dyci */, + 3AE39B264745284FF155C056 /* libextobjc */, + ); + name = Pods; + sourceTree = ""; + }; + 55A3A737637E22F710EE4BD4 /* NSURLConnection */ = { + isa = PBXGroup; + children = ( + F12A1E40F2507C889FA5D333 /* NSURLConnection+PromiseKit.h */, + B829BF4A69D5F410E44FD02D /* NSURLConnection+PromiseKit.m */, + ); + name = NSURLConnection; + sourceTree = ""; + }; + 5796EE94D2635A6D7B80D62D /* Support Files */ = { + isa = PBXGroup; + children = ( + 5FF32382393789A975F51850 /* Pods-Blog-libextobjc.xcconfig */, + 388DA8DE533AD6EB14A8CB70 /* Pods-Blog-libextobjc-Private.xcconfig */, + 64614B34AFB493E3DE383E04 /* Pods-Blog-libextobjc-dummy.m */, + B67404390A415311D1A79EF0 /* Pods-Blog-libextobjc-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-libextobjc"; + sourceTree = ""; + }; + 5A5857711D8EB5EB917ED608 /* EXTScope */ = { + isa = PBXGroup; + children = ( + FA7F699E333D64284CD33EA3 /* EXTScope.h */, + C9D8B99D93DE4BEBA8680832 /* EXTScope.m */, + ); + name = EXTScope; + sourceTree = ""; + }; + 5A842FBE62FF3FD0EF5C6611 /* UIAlertView */ = { + isa = PBXGroup; + children = ( + 772970F701DCCCE05E9A2AA7 /* UIAlertView+PromiseKit.h */, + 9A9109FACFD8FC84C66C5B67 /* UIAlertView+PromiseKit.m */, + ); + name = UIAlertView; + sourceTree = ""; + }; + 60DCA92B94ED5CEC5A4006F1 /* When */ = { + isa = PBXGroup; + children = ( + 7CCC65A93E5BDB00B0BDD149 /* PMKPromise+When.m */, + 4A00D5299252C011CC473FCA /* Promise+When.h */, + ); + name = When; + sourceTree = ""; + }; + 63000D5588C8EF5C1A723792 /* MBProgressHUD */ = { + isa = PBXGroup; + children = ( + AA73766412FFF96C9C50B150 /* MBProgressHUD.h */, + 7A2EC7C15D6D296C2BCA1E8B /* MBProgressHUD.m */, + 1ABD4F340BF3DCD38202AB73 /* Support Files */, + ); + path = MBProgressHUD; + sourceTree = ""; + }; + 6690A5B7237669C41DCD46A0 /* common */ = { + isa = PBXGroup; + children = ( + 65F175D40C5348F45F2FC008 /* NSDictionary+YapDatabase.h */, + EE2AC1EF6BAA4B4DA7E27F81 /* NSDictionary+YapDatabase.m */, + 6CD8E79BCC9B16D6CA1B2281 /* YDBCKAttachRequest.h */, + 00B41FD80DDC18F40AD63D9C /* YDBCKAttachRequest.m */, + 7788EF603DC253CBF8E59AF4 /* YDBCKChangeQueue.h */, + A737617288D47BA2C0BBB0C4 /* YDBCKChangeQueue.m */, + 10603BF79B7DFDDCCF3BFC66 /* YDBCKChangeRecord.h */, + D5EE00BAAA10DFD6C99B73AA /* YDBCKChangeRecord.m */, + DB9BA335F8BC830E31B4B3D9 /* YDBCKChangeSet.h */, + A07201523D9CE6A220594FF6 /* YDBCKChangeSet.m */, + E17C94312100A6A34609501A /* YDBCKMappingTableInfo.h */, + 0BA301CED7FB7D2E5F754B85 /* YDBCKMappingTableInfo.m */, + 4F41CE10194A25458B48B387 /* YDBCKMergeInfo.h */, + 1D6302948C80F92670463179 /* YDBCKMergeInfo.m */, + 5DDCE51A72DF7193ED439B80 /* YDBCKRecord.h */, + 875CABB27D093345C39A37B9 /* YDBCKRecord.m */, + 65049D2D974535631AB3E5A4 /* YDBCKRecordInfo.h */, + 4AF5275CEEEF926AF0DB2B3C /* YDBCKRecordInfo.m */, + BE346B79FF72450AD8610995 /* YDBCKRecordTableInfo.h */, + B668EF3535796EB6DD269A99 /* YDBCKRecordTableInfo.m */, + 9C3A3C7112DF62ECE234290B /* YapCache.h */, + 1FCB3936FB7DF989AEF2A47B /* YapCache.m */, + 778D01A67F28AF1084FF534F /* YapCollectionKey.h */, + 2DF11510132D09E18F9806F9 /* YapCollectionKey.m */, + 0C06CAE726289F6445467F9A /* YapDatabase.h */, + D88DB7DBE67FC1348C3F6B49 /* YapDatabase.m */, + 14A523023A6DA314A88773A5 /* YapDatabaseCloudKit.h */, + 5BBAEAC3E46F05C59FABB08A /* YapDatabaseCloudKit.m */, + 2269B0009C2BB71CADDC3BEA /* YapDatabaseCloudKitConnection.h */, + 8E1DE2F2D0411CBE3F9B24C4 /* YapDatabaseCloudKitConnection.m */, + 3F2FB8360E38D885677E0E81 /* YapDatabaseCloudKitOptions.h */, + 028D43A0D9937EB44BE357F6 /* YapDatabaseCloudKitOptions.m */, + 0B46BC0D2A7872BCE0E5B488 /* YapDatabaseCloudKitPrivate.h */, + 4AF2B2E0A81E0DD9796D8A97 /* YapDatabaseCloudKitTransaction.h */, + A6EA0BD2E14D672C4B8DFDD3 /* YapDatabaseCloudKitTransaction.m */, + 89F82D7B599BBA652983F0F0 /* YapDatabaseCloudKitTypes.h */, + 0544571D18B51B563C648EFC /* YapDatabaseCloudKitTypes.m */, + 430D4015B66A6348BDA4A4F0 /* YapDatabaseConnection.h */, + CFAF5D08020A121DA15433A5 /* YapDatabaseConnection.m */, + 83D0B78A70B1E4225FC963D2 /* YapDatabaseConnectionDefaults.h */, + 6A1A9F7C77AAA7FBA688BD0C /* YapDatabaseConnectionDefaults.m */, + BFDDF22F8C266EA03F3A5A63 /* YapDatabaseConnectionState.h */, + 51D4598E2D6D1CDE33BEEB7E /* YapDatabaseConnectionState.m */, + F58373D9AD906CA4AD3B263F /* YapDatabaseExtension.h */, + 2D2B9BC4C787C119E4BBA0FA /* YapDatabaseExtension.m */, + 4DA88510D1CF1CE9D997D6D1 /* YapDatabaseExtensionConnection.h */, + 0ED7CB96EF39D2D9DBD71071 /* YapDatabaseExtensionConnection.m */, + A4864FDF80B8A6F2E394419A /* YapDatabaseExtensionPrivate.h */, + B290C83771E877663A34F2D3 /* YapDatabaseExtensionTransaction.h */, + CDFCFC54DD78EEB487B45A97 /* YapDatabaseExtensionTransaction.m */, + 1CA970E765A796F9AA9E3388 /* YapDatabaseFilteredView.h */, + 42D5362F4243FAD90D2AFE8B /* YapDatabaseFilteredView.m */, + CFF5CB1CA85B850BC5D9BB60 /* YapDatabaseFilteredViewConnection.h */, + 76FD5D7EFDF79BEA0BEF9CFA /* YapDatabaseFilteredViewConnection.m */, + 3B7DE22D0718DBF5998961F6 /* YapDatabaseFilteredViewPrivate.h */, + 1DA47CC2FA06F627843677D8 /* YapDatabaseFilteredViewTransaction.h */, + 069A1E878EDD2439935FF6E0 /* YapDatabaseFilteredViewTransaction.m */, + 5748D5EB761180E83A2F36C3 /* YapDatabaseFilteredViewTypes.h */, + B4131255F51100E365966084 /* YapDatabaseFilteredViewTypes.m */, + 1CC6BE3683E6EBECC7ABD956 /* YapDatabaseFullTextSearch.h */, + 871C8E5B1D402BBACA10F750 /* YapDatabaseFullTextSearch.m */, + AA0C40ADC59A3E1EF7E81884 /* YapDatabaseFullTextSearchConnection.h */, + 8C1C7EFC29224158A569516A /* YapDatabaseFullTextSearchConnection.m */, + 15D8D0E6FBB7A2E4A268D78E /* YapDatabaseFullTextSearchHandler.h */, + 0F337CFC490A2A341EE50238 /* YapDatabaseFullTextSearchHandler.m */, + 139C78E6FC222EA96A7EAC5B /* YapDatabaseFullTextSearchPrivate.h */, + 9F18A8ECF8D6A5847C4D5795 /* YapDatabaseFullTextSearchSnippetOptions.h */, + 04E151C4A03CCA86A696FD88 /* YapDatabaseFullTextSearchSnippetOptions.m */, + 43ABE9ABED87C617D8D80E2E /* YapDatabaseFullTextSearchTransaction.h */, + EBFF45978CB15C2083B1F5AD /* YapDatabaseFullTextSearchTransaction.m */, + 5EFFE5B4A09FA24BA7BB9DE4 /* YapDatabaseLogging.h */, + CCF068D02E1A7453F2475E2D /* YapDatabaseLogging.m */, + 111EF94E1B337F4F35737B12 /* YapDatabaseManager.h */, + D5DCA01F10BA4FD24940BA39 /* YapDatabaseManager.m */, + B04DC02A616720F04639C4C0 /* YapDatabaseOptions.h */, + 2C524B6F27EA326EBE7A0C3F /* YapDatabaseOptions.m */, + 4C1353326DB9842825BD81A7 /* YapDatabasePrivate.h */, + 5D1680A5EC3A9255C890754A /* YapDatabaseQuery.h */, + 7261D0799C416EE07379F2F7 /* YapDatabaseQuery.m */, + F83DEE8A947BDA68520686F4 /* YapDatabaseRelationship.h */, + 7A2CEA1E36322DE7B613A202 /* YapDatabaseRelationship.m */, + B9990732724AE424A6A8E4BA /* YapDatabaseRelationshipConnection.h */, + C1C5DB95EA609317C04605CD /* YapDatabaseRelationshipConnection.m */, + 2D241FA4492890A3E10B0832 /* YapDatabaseRelationshipEdge.h */, + F0F0F6FFCD6F1CF5B5C7F4E2 /* YapDatabaseRelationshipEdge.m */, + 0B3F208E7DE573E799DCD212 /* YapDatabaseRelationshipEdgePrivate.h */, + 85AD9EA625D69D809F8C167C /* YapDatabaseRelationshipNode.h */, + A0C3F88247BE87206E00A5C7 /* YapDatabaseRelationshipOptions.h */, + BC6B096E4237AF380C124A38 /* YapDatabaseRelationshipOptions.m */, + CAE18A8BF148A6607B8465DD /* YapDatabaseRelationshipPrivate.h */, + 1B503A4E186A9191477A20CA /* YapDatabaseRelationshipTransaction.h */, + D8CD90FA4FA233C2CAD2C63A /* YapDatabaseRelationshipTransaction.m */, + B6DABCCCE8BEF6206FEC25A8 /* YapDatabaseSearchQueue.h */, + E4DD695693E021CEBD152CA3 /* YapDatabaseSearchQueue.m */, + A32FB475DAAC023A8148381B /* YapDatabaseSearchQueuePrivate.h */, + 5DE843FE97312C580966579D /* YapDatabaseSearchResultsView.h */, + 6113A0025C6201B4EF7BB7B7 /* YapDatabaseSearchResultsView.m */, + 28B07B0D2B5C3A2FE74B2F30 /* YapDatabaseSearchResultsViewConnection.h */, + 95CABBF84686B359A2A56DFA /* YapDatabaseSearchResultsViewConnection.m */, + F4A5E660EFC85E32D48DD290 /* YapDatabaseSearchResultsViewOptions.h */, + 41E388D3FBC015C89D28232B /* YapDatabaseSearchResultsViewOptions.m */, + 3D499CE6B6D895B99724A365 /* YapDatabaseSearchResultsViewPrivate.h */, + 13DC1E5D42291A5555C0596C /* YapDatabaseSearchResultsViewTransaction.h */, + 07C0B6CB1385BEDE2C9D4D5F /* YapDatabaseSearchResultsViewTransaction.m */, + 7B0D22D6AB0C8943B17FA95A /* YapDatabaseSecondaryIndex.h */, + 6BD2329311D8F12C2CB4E2FC /* YapDatabaseSecondaryIndex.m */, + DFF021E9C2C5F614A43FB876 /* YapDatabaseSecondaryIndexConnection.h */, + 7B695DFFFDB25BE7116B2087 /* YapDatabaseSecondaryIndexConnection.m */, + 4E5997C4BAA1458169BC29AD /* YapDatabaseSecondaryIndexHandler.h */, + B0820F5C1DF51ECA1481401F /* YapDatabaseSecondaryIndexHandler.m */, + 3B11DC33D0CCD5E3444F804F /* YapDatabaseSecondaryIndexOptions.h */, + C2BEBD9D75D076A7EFC2DE03 /* YapDatabaseSecondaryIndexOptions.m */, + CCAEFBD810088779F9102E69 /* YapDatabaseSecondaryIndexPrivate.h */, + B6974179CA89116FBE359EAC /* YapDatabaseSecondaryIndexSetup.h */, + 761774F1F04B46F6556F5CC9 /* YapDatabaseSecondaryIndexSetup.m */, + A5E237A63D60C73D644A3871 /* YapDatabaseSecondaryIndexTransaction.h */, + BAB47E6E5EA2646070AD0D8B /* YapDatabaseSecondaryIndexTransaction.m */, + EAEF71774D45E3A1EE052688 /* YapDatabaseStatement.h */, + 5AC42217EA628E4D86E53497 /* YapDatabaseStatement.m */, + AB9602AC41DC5C51CC420655 /* YapDatabaseString.h */, + 6C49C3E026C8ABCF08D62AAE /* YapDatabaseTransaction.h */, + DEE7CB4A86FA1575C30CF09F /* YapDatabaseTransaction.m */, + 322824FC9722D13BBC7CE737 /* YapDatabaseView.h */, + E9856364F3283E9A464BDA7E /* YapDatabaseView.m */, + 018B635C2A7387D2E8746B59 /* YapDatabaseViewChange.h */, + A26A0935B16D5511AE97006D /* YapDatabaseViewChange.m */, + 43D3E12D689D8F53C298619F /* YapDatabaseViewChangePrivate.h */, + 75E861C217837964BA989E22 /* YapDatabaseViewConnection.h */, + 8B3433CB1EE6BEBCB7E37C3F /* YapDatabaseViewConnection.m */, + 74368F30159C4791083968EB /* YapDatabaseViewMappings.h */, + 44248AE71488047264DE9108 /* YapDatabaseViewMappings.m */, + 1AD6EB482887E90278BBEC38 /* YapDatabaseViewMappingsPrivate.h */, + 2A5FA03A2434E4CC7808C13E /* YapDatabaseViewOptions.h */, + 90C8B493B1F1A9E6D0D32180 /* YapDatabaseViewOptions.m */, + 893A1E71C1504C1FBA6191A5 /* YapDatabaseViewPage.h */, + 9209F135A52FADB5ADE74A71 /* YapDatabaseViewPage.mm */, + 80124F51C7A9292CEF244DA8 /* YapDatabaseViewPageMetadata.h */, + 680E7B48A7FB11E735021FD2 /* YapDatabaseViewPageMetadata.m */, + 0D0AEB84C3555ED9C8396F69 /* YapDatabaseViewPrivate.h */, + 618CBDC6E4D9429F7BD1871B /* YapDatabaseViewRangeOptions.h */, + E25CD85C4DE585411AB566EA /* YapDatabaseViewRangeOptions.m */, + 4E52F4EDECC4713F896D9F15 /* YapDatabaseViewRangeOptionsPrivate.h */, + C9F19B9E01BF8A9412971806 /* YapDatabaseViewState.h */, + 59EE2F0E3914209B06438A13 /* YapDatabaseViewState.m */, + 5F5595B3E63E77218798DCBD /* YapDatabaseViewTransaction.h */, + 66ED5D2CE855C5471738A4CD /* YapDatabaseViewTransaction.m */, + C55F4F424EF263A307FA8780 /* YapDatabaseViewTypes.h */, + 463BF6DA8C1A27CF33CDB663 /* YapDatabaseViewTypes.m */, + 550FDFE8B11958BDE7993708 /* YapDebugDictionary.h */, + B28B0047E7244D0F9DCC0A2F /* YapDebugDictionary.m */, + DA3E27A330AA369572FAE3AF /* YapMemoryTable.h */, + F71A5C3CA2C0B9B5496E3593 /* YapMemoryTable.m */, + 271D15C867DCC0A2602FFD5A /* YapMurmurHash.h */, + 202587B098BFFE3D8A215D55 /* YapMurmurHash.m */, + 91DF1E461B85883DB27A4E6D /* YapNull.h */, + 3426675EE4D4FAFE7AFFA942 /* YapNull.m */, + 9AD60F3E0EE18BE2A402E9E6 /* YapRowidSet.h */, + 621D3194E797DB4C590CE5BA /* YapRowidSet.mm */, + 1D97919B9ACC34331670C706 /* YapSet.h */, + AB6BD7C6483216C4ACA18FC7 /* YapSet.m */, + 4AA76D10F70500D6C8A292BA /* YapTouch.h */, + 8757793F80FD989BA2AE5B1E /* YapTouch.m */, + 49BC100D8645BDEE247597FA /* YapWhitelistBlacklist.h */, + D5F9E39F49069861FF25457A /* YapWhitelistBlacklist.m */, + ); + name = common; + sourceTree = ""; + }; + 68E13638EFCE381FE127BEC3 /* UserAgent */ = { + isa = PBXGroup; + children = ( + EB0844151A9D59AA6785F0AC /* OMGUserAgent.h */, + 87A8D4DE46F2CD9E3C04A3C0 /* OMGUserAgent.m */, + ); + name = UserAgent; + sourceTree = ""; + }; + 6B2EDB97C989F509E76BAFB0 /* Support Files */ = { + isa = PBXGroup; + children = ( + BE9DD4A10CE198419A387F67 /* Pods-Blog-PromiseKit.xcconfig */, + AA5D725DD28059FD73285797 /* Pods-Blog-PromiseKit-Private.xcconfig */, + ABCD475DA228B250D699E2A0 /* Pods-Blog-PromiseKit-dummy.m */, + 47F2BDE9B87144F1305C6B92 /* Pods-Blog-PromiseKit-prefix.pch */, + A67F3C3CBB8234A8A55560EB /* Pods-samhuri.net-PromiseKit.xcconfig */, + F57C611C836127CA362CE1A6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */, + 696FF7236D9F0771565477E9 /* Pods-samhuri.net-PromiseKit-dummy.m */, + F0BFED617CAB311A56EF5021 /* Pods-samhuri.net-PromiseKit-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-PromiseKit"; + sourceTree = ""; + }; + 78A35AA0CED8763733E33CD1 /* Promise */ = { + isa = PBXGroup; + children = ( + 6DD6DC1B0227D55F92AEFF7B /* PMKPromise.m */, + 4D21CF6343452B39D1F23F1B /* Promise.h */, + ABF0A3DC6F7B3CACB365F9E9 /* PromiseKit.h */, + 36F157F7A3BB5A8B5C2F8CEB /* fwd.h */, + ); + name = Promise; + sourceTree = ""; + }; + 7E59186C58FC50FE972E0F58 /* Pods-Blog */ = { + isa = PBXGroup; + children = ( + 01661BE48596AA6B643AEF4B /* Pods-Blog-acknowledgements.markdown */, + E823B9DE4788A0DC7589B06D /* Pods-Blog-acknowledgements.plist */, + 41003AB92985EC0D28B719B7 /* Pods-Blog-dummy.m */, + 72C09719BA31DD21A9D63CBC /* Pods-Blog-environment.h */, + C87D906012B46ECD982DCC85 /* Pods-Blog-resources.sh */, + BBF421417655F564F2EFFEC2 /* Pods-Blog.debug.xcconfig */, + 6BE69EC5EE6108F191686D8A /* Pods-Blog.release.xcconfig */, + ); + name = "Pods-Blog"; + path = "Target Support Files/Pods-Blog"; + sourceTree = ""; + }; + 84E540C7CCCDD3BA1AFADE0F /* Support Files */ = { + isa = PBXGroup; + children = ( + A79C62018FC7D61FC892B8ED /* Pods-Blog-CocoaLumberjack.xcconfig */, + D3D19D16BD6956BBD418DD9F /* Pods-Blog-CocoaLumberjack-Private.xcconfig */, + E868E720F4575CE9CDF3F013 /* Pods-Blog-CocoaLumberjack-dummy.m */, + A91C97D59400E0E8E775CC8E /* Pods-Blog-CocoaLumberjack-prefix.pch */, + 047CAC3F0081277E69633741 /* Pods-samhuri.net-CocoaLumberjack.xcconfig */, + 502A024737D6DB1A06A9800E /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */, + 483FF0E9205BE6B1A805D6E2 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */, + 97C20E085FAD3540B86F458B /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-CocoaLumberjack"; + sourceTree = ""; + }; + 8A87376AB677F65B53CAC26F /* Products */ = { + isa = PBXGroup; + children = ( + E1C5D5A492E5A962CB895FF2 /* libPods-Blog.a */, + 42B122AD5FD52D735455E7BB /* libPods-Blog-CocoaLumberjack.a */, + 085F7144E1717A488F4A4B8F /* libPods-Blog-FontAwesome+iOS.a */, + 4602C45EA109522D10031774 /* libPods-Blog-MBProgressHUD.a */, + 9E62686774C090876DB0F82D /* libPods-Blog-Mantle.a */, + D145721ABD37DFD7D6596756 /* libPods-Blog-OMGHTTPURLRQ.a */, + 0A389D4334A5CC05AFE30BAB /* libPods-Blog-ObjectiveSugar.a */, + 4601410D955CE7A1DD4D5D8C /* libPods-Blog-PromiseKit.a */, + 1A0F2B023408B41F9DE9A572 /* libPods-Blog-YapDatabase.a */, + 0923E09FB2B4D9ADD78364C1 /* libPods-Blog-dyci.a */, + AF09DF8C934DA6A7807A6599 /* libPods-Blog-libextobjc.a */, + 2FEC46F2AF7EAB28497B5E2D /* libPods-samhuri.net.a */, + C963BED315F794EEB97E8847 /* libPods-samhuri.net-CocoaLumberjack.a */, + 2B817BF06D517F6E6B0F245B /* libPods-samhuri.net-MBProgressHUD.a */, + E9B3A65FB870B381C96E13FB /* libPods-samhuri.net-Mantle.a */, + 12E048691E61BE10906EE260 /* libPods-samhuri.net-OMGHTTPURLRQ.a */, + 2DFB95AC176895913CB280B0 /* libPods-samhuri.net-ObjectiveSugar.a */, + 8353B2B60726B8ABFF1B0E49 /* libPods-samhuri.net-PromiseKit.a */, + 5025B3F1C269F7E111948F47 /* libPods-samhuri.net-YapDatabase.a */, + ); + name = Products; + sourceTree = ""; + }; + 8BA253154481D3E1520B88C0 /* FormURLEncode */ = { + isa = PBXGroup; + children = ( + 06A342A54EE29B38F9E7653E /* OMGFormURLEncode.h */, + B9E9163A016BD340ED9A0634 /* OMGFormURLEncode.m */, + ); + name = FormURLEncode; + sourceTree = ""; + }; + 8EEB0BAD75331771E005855E /* YapDatabase */ = { + isa = PBXGroup; + children = ( + 3B7DF649F7EA39A2A262F57B /* Support Files */, + 6690A5B7237669C41DCD46A0 /* common */, + ); + path = YapDatabase; + sourceTree = ""; + }; + 9686A9B540B627DE44652255 /* NSNotificationCenter */ = { + isa = PBXGroup; + children = ( + 66BDC2797360DF3158A0767F /* NSNotificationCenter+PromiseKit.h */, + 36E1C98CB22AE52D72D3F0B6 /* NSNotificationCenter+PromiseKit.m */, + ); + name = NSNotificationCenter; + sourceTree = ""; + }; + 9D220A4BC4E3B6816136AEB5 /* RQ */ = { + isa = PBXGroup; + children = ( + 626C35BAA2E88342B363467C /* OMGHTTPURLRQ.h */, + 7520ED68436BF156BCAA46C7 /* OMGHTTPURLRQ.m */, + ); + name = RQ; + sourceTree = ""; + }; + 9FF97D5EECEF806D7E676217 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 7E59186C58FC50FE972E0F58 /* Pods-Blog */, + FE0438D1483263B1B43C3E65 /* Pods-samhuri.net */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + A2A09A5BDA47DECA01FF4440 /* EXTSynthesize */ = { + isa = PBXGroup; + children = ( + AD9FADFBB92752B65D32C6AC /* EXTSynthesize.h */, + ); + name = EXTSynthesize; + sourceTree = ""; + }; + A2E4266A5C2DEBB547B12EB5 /* dyci */ = { + isa = PBXGroup; + children = ( + C0766591699F17E76E7ADD05 /* NSSet+ClassesList.h */, + BC92BC85B7AF56AB0A13FA42 /* NSSet+ClassesList.m */, + 4173459AF3169992A1637415 /* SFDynamicCodeInjection.h */, + 0E9AAE9CC530AD122FB1E38F /* SFDynamicCodeInjection.m */, + A5679935F1AC019A492EB49A /* SFFileWatcher.h */, + 1E235285A6EFDBFA22F6BAFA /* SFFileWatcher.m */, + 9437F9CC43DBFC52EB280527 /* SFFileWatcherDelegate.h */, + 9D8D2403436A868469FEAC58 /* SFInjectionsNotificationsCenter.h */, + ED427B33FA9860A3A82FDEE1 /* SFInjectionsNotificationsCenter.m */, + 6391C9313BB6D62E89094BA3 /* UINib+StoryBoardSupport.h */, + 32AE252D43E9E7D203A02B6F /* UINib+StoryBoardSupport.m */, + BD2E52552669B0C25984F3EA /* UIViewController+XIBSupport.h */, + 617EA3676143E248C2981FB5 /* UIViewController+XIBSupport.m */, + 4A2FFE9258825D13D124BDE8 /* Injections */, + 3976CBE359DE2F3865F88CCE /* Support Files */, + ); + path = dyci; + sourceTree = ""; + }; + A862432FB71A53F68D936C65 /* Support Files */ = { + isa = PBXGroup; + children = ( + FFE40F155D0FE76D2165F38C /* Pods-Blog-ObjectiveSugar.xcconfig */, + A5E281EA06DB793C11934A11 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */, + 627184489D5EBF1552526088 /* Pods-Blog-ObjectiveSugar-dummy.m */, + F0038913625D773251DD267D /* Pods-Blog-ObjectiveSugar-prefix.pch */, + 3EE519CFA4B7B862085CD37D /* Pods-samhuri.net-ObjectiveSugar.xcconfig */, + 89B5E4BE6F67F9DA3D4CCA9D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */, + 93728C71A367B7E37DBB6B0B /* Pods-samhuri.net-ObjectiveSugar-dummy.m */, + 292C878169C1F367964F328B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-ObjectiveSugar"; + sourceTree = ""; + }; + AAEA5C82AA5AAA645F69B08F /* EXTKeyPathCoding */ = { + isa = PBXGroup; + children = ( + 2D41DB392D0A015621D80477 /* EXTKeyPathCoding.h */, + ); + name = EXTKeyPathCoding; + sourceTree = ""; + }; + B48BD24156A32A146059AFC0 /* Support Files */ = { + isa = PBXGroup; + children = ( + CFA597FC68FCB50DFD4B36E9 /* Pods-Blog-Mantle.xcconfig */, + 7C378D3559C2E95A012B2067 /* Pods-Blog-Mantle-Private.xcconfig */, + 515A225DF1FFFE59C0C370ED /* Pods-Blog-Mantle-dummy.m */, + E25F557AC62487BAD11F8723 /* Pods-Blog-Mantle-prefix.pch */, + 4E8C691946D53D2358B656F1 /* Pods-samhuri.net-Mantle.xcconfig */, + A662A59246F0266687AFE7BD /* Pods-samhuri.net-Mantle-Private.xcconfig */, + 4EFD6B51D5A428BCA4A5281B /* Pods-samhuri.net-Mantle-dummy.m */, + 46A936A1BCA72C46112CF015 /* Pods-samhuri.net-Mantle-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-Mantle"; + sourceTree = ""; + }; + B6BD4154C451DE5A605283CC /* EXTSafeCategory */ = { + isa = PBXGroup; + children = ( + D6E1CD7FF0796A95407C305D /* EXTSafeCategory.h */, + 58ADFF30E4FDDFA9F54968B1 /* EXTSafeCategory.m */, + ); + name = EXTSafeCategory; + sourceTree = ""; + }; + BA1786E9834F99ED6717D327 /* EXTADT */ = { + isa = PBXGroup; + children = ( + 5557F5C3B77F20BF3593DB8D /* EXTADT.h */, + 7E9F47D5CCFAA96E7E02FA17 /* EXTADT.m */, + ); + name = EXTADT; + sourceTree = ""; + }; + BC3F38BFF177D76D2E74F9C6 /* Pause */ = { + isa = PBXGroup; + children = ( + F68712B855461DE60CD93549 /* PMKPromise+Pause.m */, + DA8C1F4CA7F0C8FF0599CBB1 /* Promise+Pause.h */, + ); + name = Pause; + sourceTree = ""; + }; + C4F942945574271679C1DDF2 /* UIViewController */ = { + isa = PBXGroup; + children = ( + 3103FCC5031A2FC97D9BC5BD /* UIViewController+PromiseKit.h */, + 0126C7A9D39433380C36B1D7 /* UIViewController+PromiseKit.m */, + ); + name = UIViewController; + sourceTree = ""; + }; + C723EAFD2617A33D60D77580 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3C521D7A55F67882C83D729A /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + C880E73B7304AE7FD83F1E44 /* OMGHTTPURLRQ */ = { + isa = PBXGroup; + children = ( + 8BA253154481D3E1520B88C0 /* FormURLEncode */, + 9D220A4BC4E3B6816136AEB5 /* RQ */, + DF25D07176662286B3CD3543 /* Support Files */, + 68E13638EFCE381FE127BEC3 /* UserAgent */, + ); + path = OMGHTTPURLRQ; + sourceTree = ""; + }; + CAA3EBED69EEA8C9D36CD614 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9925BFB2EC2D32EB21E7F35D /* Pods-Blog-FontAwesome+iOS.xcconfig */, + B6AD115EFAD07000265DADE1 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */, + 139FA44960812F484EFEDD40 /* Pods-Blog-FontAwesome+iOS-dummy.m */, + 006E0DA169F28E5934F4D1EB /* Pods-Blog-FontAwesome+iOS-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-FontAwesome+iOS"; + sourceTree = ""; + }; + CB21331C12F785B2926FAB7F /* UmbrellaHeader */ = { + isa = PBXGroup; + children = ( + 38635682B66EAF250E54FD97 /* extobjc.h */, + ); + name = UmbrellaHeader; + sourceTree = ""; + }; + CD6072190BE3E23BDB018020 /* FontAwesome+iOS */ = { + isa = PBXGroup; + children = ( + E9F24C4064550417DBB7C479 /* FAImageView.h */, + 019860EA86E3333754A118CF /* FAImageView.m */, + 9149C3FD759DD1854F6588AD /* NSString+FontAwesome.h */, + 92E7690ECAAF33C6713E4247 /* NSString+FontAwesome.m */, + 8ACCCE62B677AF18750C741A /* UIFont+FontAwesome.h */, + 3A9B921CA5C69EFC590A73D9 /* UIFont+FontAwesome.m */, + 702214069E0992DB33BFCB87 /* UIImage+FontAwesome.h */, + F10F3EF1AB70D31CBF52AA9C /* UIImage+FontAwesome.m */, + 3D1213DCD6DC0DDC2D583083 /* Resources */, + CAA3EBED69EEA8C9D36CD614 /* Support Files */, ); path = "FontAwesome+iOS"; sourceTree = ""; }; - DF09FC7D9817B85622F33CA6 /* NSMethodSignature+EXT */ = { + D882DDF7A60C5F63171E310B /* NSInvocation+EXT */ = { isa = PBXGroup; children = ( - 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */, - D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */, + 959FF069CB18290713BC769B /* NSInvocation+EXT.h */, + 969DE89CC9747DE2AC92D5B2 /* NSInvocation+EXT.m */, ); - name = "NSMethodSignature+EXT"; + name = "NSInvocation+EXT"; sourceTree = ""; }; - E3EA10E244F108FAE0981354 /* Pods-samhuri.net */ = { + DD4D7BE9AA534C0C73EE8437 /* CALayer */ = { isa = PBXGroup; children = ( - 908FD89BD83CABAE73497EB3 /* Pods-samhuri.net-acknowledgements.markdown */, - 6E44BD212C5DBCBC81100F48 /* Pods-samhuri.net-acknowledgements.plist */, - 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */, - 0E9CEB7A047399EA6AD0B1E6 /* Pods-samhuri.net-environment.h */, - 38A4A0C030E070441BF3EB86 /* Pods-samhuri.net-resources.sh */, - 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */, - 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */, + 0441D72DB21FA8E7477E6462 /* CALayer+PromiseKit.h */, + 1721AB8249C341DD71E46ADA /* CALayer+PromiseKit.m */, ); - name = "Pods-samhuri.net"; - path = "Target Support Files/Pods-samhuri.net"; + name = CALayer; sourceTree = ""; }; - E82BDBAB557EBA7CAFEC8486 /* Support Files */ = { + DDF7ECB02684F038AF9088D5 /* Core */ = { isa = PBXGroup; children = ( - EDDEE98F8825954BC4DC86D8 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */, - B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */, - 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */, - 63AFCE5FFB1990294B4EB79F /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */, - D38CB005D50C21616F93C7CF /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */, - 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */, - 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */, - 2C3CED34A8221E061CBC3394 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */, + 6FFD76B30B1ECC79A05E174E /* DDASLLogCapture.h */, + 4E63A8662DE2283DD7A2109E /* DDASLLogCapture.m */, + 6F846FF1FD33FD6F959657DE /* DDASLLogger.h */, + 99903441A04F6251BACB6347 /* DDASLLogger.m */, + 46AD077D333F4613956EEA81 /* DDAbstractDatabaseLogger.h */, + 9FF68E79B1F8BB4D1B7406A8 /* DDAbstractDatabaseLogger.m */, + 1F60AF673DA4C939545D0F7A /* DDAssert.h */, + D964FE09DE68BCB5D20E0401 /* DDFileLogger.h */, + 4EA637BF494DC7153595C6E1 /* DDFileLogger.m */, + 19B9B64CD8250C8B801684C4 /* DDLog.h */, + 66A2AAE231859CDB7288DDB6 /* DDLog.m */, + 1C43B0AD1F7A2D0163AE6649 /* DDLog+LOGV.h */, + BCDF5200733F01F4DAD9DEF0 /* DDTTYLogger.h */, + 07629F896665B1DF6A6BE3B1 /* DDTTYLogger.m */, + ); + name = Core; + sourceTree = ""; + }; + DF17F8CF976B1F44127C5A35 /* EXTConcreteProtocol */ = { + isa = PBXGroup; + children = ( + C3F75B83C8CA022F144C79A6 /* EXTConcreteProtocol.h */, + 751A30C904130798C32E5FD2 /* EXTConcreteProtocol.m */, + ); + name = EXTConcreteProtocol; + sourceTree = ""; + }; + DF25D07176662286B3CD3543 /* Support Files */ = { + isa = PBXGroup; + children = ( + BD314DF9974DB78D1E306A86 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */, + A63AF4E96D3FFBB901566204 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */, + 6E76F5AAD897BF143B85DE1C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */, + E2B46B45406845B278821690 /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */, + F13E009D6FECD79EEB69FB6E /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */, + 2695B06CF5AB9C425F09BE4C /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */, + B5E5D9F65C3F2EC536F02DBF /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */, + 0F72E758229840BFDA03E9D7 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-Blog-OMGHTTPURLRQ"; sourceTree = ""; }; - E85C2E0A98B418118848AA9F /* EXTSafeCategory */ = { + E1527BF07E52A7BF3BA70CC5 /* Until */ = { isa = PBXGroup; children = ( - A94829669A15A21AC89295A3 /* EXTSafeCategory.h */, - DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */, + AD8D9A5807D7E5A062CBD709 /* PMKPromise+Until.m */, + 7C49C83B7CBE18A300CC153B /* Promise+Until.h */, ); - name = EXTSafeCategory; + name = Until; sourceTree = ""; }; - EC6EF1C9AFF95C9687F80EAF /* UIActionSheet */ = { + EC7703F743F990793A852FAE /* PromiseKit */ = { isa = PBXGroup; children = ( - 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */, - 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */, + DD4D7BE9AA534C0C73EE8437 /* CALayer */, + 9686A9B540B627DE44652255 /* NSNotificationCenter */, + 55A3A737637E22F710EE4BD4 /* NSURLConnection */, + BC3F38BFF177D76D2E74F9C6 /* Pause */, + 78A35AA0CED8763733E33CD1 /* Promise */, + 6B2EDB97C989F509E76BAFB0 /* Support Files */, + 1465FE87FCD6D207D5295CCE /* UIActionSheet */, + 5A842FBE62FF3FD0EF5C6611 /* UIAlertView */, + 010032464C6AF340487A884E /* UIView */, + C4F942945574271679C1DDF2 /* UIViewController */, + E1527BF07E52A7BF3BA70CC5 /* Until */, + 60DCA92B94ED5CEC5A4006F1 /* When */, ); - name = UIActionSheet; + path = PromiseKit; sourceTree = ""; }; - EFF3004BED7175E06A337BE9 /* RQ */ = { + FCFBF672D238373F16D538F1 = { isa = PBXGroup; children = ( - B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */, - ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */, + 11106F6F5AC85AA20672DBE7 /* Podfile */, + C723EAFD2617A33D60D77580 /* Frameworks */, + 4C17EBC5D2E0E0BDAFD75F75 /* Pods */, + 8A87376AB677F65B53CAC26F /* Products */, + 9FF97D5EECEF806D7E676217 /* Targets Support Files */, ); - name = RQ; sourceTree = ""; }; - F274494C8D06D7C5917909D5 /* Targets Support Files */ = { + FE0438D1483263B1B43C3E65 /* Pods-samhuri.net */ = { isa = PBXGroup; children = ( - 03DAC8F8940B778391897613 /* Pods-Blog */, - E3EA10E244F108FAE0981354 /* Pods-samhuri.net */, + 586D8328430703749F5D8A97 /* Pods-samhuri.net-acknowledgements.markdown */, + A43CEB2F45BCFBE47CDAD9E6 /* Pods-samhuri.net-acknowledgements.plist */, + 8318CED5C521567ECE7B24BF /* Pods-samhuri.net-dummy.m */, + 851D13C2DC982B98A27FB79E /* Pods-samhuri.net-environment.h */, + 88B5E01D4E758FF30A2E6A3A /* Pods-samhuri.net-resources.sh */, + 790E8112B1AC50292F6FB3DA /* Pods-samhuri.net.debug.xcconfig */, + 357B78B152E6ABB4AC8A5933 /* Pods-samhuri.net.release.xcconfig */, ); - name = "Targets Support Files"; - sourceTree = ""; - }; - F35826208EEC761BB9E953FA /* EXTConcreteProtocol */ = { - isa = PBXGroup; - children = ( - DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */, - A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */, - ); - name = EXTConcreteProtocol; + name = "Pods-samhuri.net"; + path = "Target Support Files/Pods-samhuri.net"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 02219F10A1FAEA1135C07C34 /* Headers */ = { + 2806A509A367737BCDB2A481 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4FD11552C1B4196908E81496 /* NSDictionary+YapDatabase.h in Headers */, - BAE7E0181F4F75AD9B36F492 /* YDBCKAttachRequest.h in Headers */, - 3C7DC18908F9788ADA6D55D5 /* YDBCKChangeQueue.h in Headers */, - C3F947D4818229BA9F033CE2 /* YDBCKChangeRecord.h in Headers */, - C255F60342A6B2609C1CEF30 /* YDBCKChangeSet.h in Headers */, - F7707861D956A53A688A0324 /* YDBCKMappingTableInfo.h in Headers */, - 0B3FCF695D5D413B70ED6178 /* YDBCKMergeInfo.h in Headers */, - A4F69FB9CE18A4661093A112 /* YDBCKRecord.h in Headers */, - F94637285D72CDD0A26EC1FF /* YDBCKRecordInfo.h in Headers */, - BDCCDDEB669974D1E5451394 /* YDBCKRecordTableInfo.h in Headers */, - 82FE11BE7DC92FC2FB89AFE5 /* YapCache.h in Headers */, - 9D06FAD78D74C34B91F70852 /* YapCollectionKey.h in Headers */, - 427854E66C67F65C3D1EA58C /* YapDatabase.h in Headers */, - 8847A1B446AAC234DB925200 /* YapDatabaseCloudKit.h in Headers */, - A2678042952310D845833CEB /* YapDatabaseCloudKitConnection.h in Headers */, - C003FF13CF64B5761E21BDE0 /* YapDatabaseCloudKitOptions.h in Headers */, - 80EC7509382EC78D0F38DFC8 /* YapDatabaseCloudKitPrivate.h in Headers */, - FB00DB9CF67C9C17A9C83F10 /* YapDatabaseCloudKitTransaction.h in Headers */, - 615A16B420E726DF0D0A3BAD /* YapDatabaseCloudKitTypes.h in Headers */, - E8D37034F6D57E4BF9E8644D /* YapDatabaseConnection.h in Headers */, - 6434E3693419EA71FA91FDB4 /* YapDatabaseConnectionDefaults.h in Headers */, - 84C83DD4E085AD4F463A4D2E /* YapDatabaseConnectionState.h in Headers */, - 21DBACBFCDFA2B79D658C923 /* YapDatabaseExtension.h in Headers */, - C851783905ACB2F7B703B8CF /* YapDatabaseExtensionConnection.h in Headers */, - 940ECE21F4090FAAE6BB22CA /* YapDatabaseExtensionPrivate.h in Headers */, - 2FD314275DCA95602CA02586 /* YapDatabaseExtensionTransaction.h in Headers */, - 38D2050023F32C245EEB18DB /* YapDatabaseFilteredView.h in Headers */, - EE02BFE1C460EFEBE6CA3BE2 /* YapDatabaseFilteredViewConnection.h in Headers */, - 0493177CCDC5B18BBF3A99BD /* YapDatabaseFilteredViewPrivate.h in Headers */, - 80C928E957F52C891A9D3AC6 /* YapDatabaseFilteredViewTransaction.h in Headers */, - 84A955BCE4D0ECD0ECD55A0C /* YapDatabaseFilteredViewTypes.h in Headers */, - A7A0E01AE163188134A979C2 /* YapDatabaseFullTextSearch.h in Headers */, - 4DF590756D84789350D4C3DD /* YapDatabaseFullTextSearchConnection.h in Headers */, - 065A6B165C710850A8D55726 /* YapDatabaseFullTextSearchHandler.h in Headers */, - 9322F9A2E84D46E192713159 /* YapDatabaseFullTextSearchPrivate.h in Headers */, - 40B521ABF127FC7E5593E545 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, - 8934915D4D6C3D23FC95F2F3 /* YapDatabaseFullTextSearchTransaction.h in Headers */, - CCECB14FCAD9E1C9AE39EBAE /* YapDatabaseLogging.h in Headers */, - 2B9882226432EDE4AAD6F9F0 /* YapDatabaseManager.h in Headers */, - 5E6EDEBDB09C191FFF81DBCE /* YapDatabaseOptions.h in Headers */, - 199577487D34AFF3066F61A0 /* YapDatabasePrivate.h in Headers */, - 473D51590FA0313F20B086AF /* YapDatabaseQuery.h in Headers */, - 69DA3299B01517FF28DA3F3D /* YapDatabaseRelationship.h in Headers */, - E988E94B1BFB115C47CF3544 /* YapDatabaseRelationshipConnection.h in Headers */, - 3ADC96295CB0DAAD2965FE8C /* YapDatabaseRelationshipEdge.h in Headers */, - 91FD0C7D348ACC2E46B05E8D /* YapDatabaseRelationshipEdgePrivate.h in Headers */, - 5DA58AB026D9D71F73694972 /* YapDatabaseRelationshipNode.h in Headers */, - 4210B239CB62DBB4FB86A42F /* YapDatabaseRelationshipOptions.h in Headers */, - 62B083A2D11DC5F8F831300D /* YapDatabaseRelationshipPrivate.h in Headers */, - 2D100AA596363F640CFE3BF0 /* YapDatabaseRelationshipTransaction.h in Headers */, - 83A9CFF8F9A884FBDDFD3526 /* YapDatabaseSearchQueue.h in Headers */, - DAFF879CA18F3C2D56EC8C47 /* YapDatabaseSearchQueuePrivate.h in Headers */, - 33593568E8FDEF06F0EE4A3A /* YapDatabaseSearchResultsView.h in Headers */, - 50D332F8DC83743E5379CFF7 /* YapDatabaseSearchResultsViewConnection.h in Headers */, - 48F5731B24D708A56ACAFCE0 /* YapDatabaseSearchResultsViewOptions.h in Headers */, - 7AF3727C0E690BFB421D84BC /* YapDatabaseSearchResultsViewPrivate.h in Headers */, - 2D6EB6058B64544B06C9CD79 /* YapDatabaseSearchResultsViewTransaction.h in Headers */, - 6D8D81744C95AB10FBDEFBE3 /* YapDatabaseSecondaryIndex.h in Headers */, - 997034C78D6AAFCEBAD7BC41 /* YapDatabaseSecondaryIndexConnection.h in Headers */, - F061D4A9F32D5A3FF8A91431 /* YapDatabaseSecondaryIndexHandler.h in Headers */, - 687FA4BAB37C10816CCD5DD1 /* YapDatabaseSecondaryIndexOptions.h in Headers */, - D7D60AF37F12D611B7FEE13F /* YapDatabaseSecondaryIndexPrivate.h in Headers */, - A3E94F8CCC95879939791BEB /* YapDatabaseSecondaryIndexSetup.h in Headers */, - 1158707815AA367832634F83 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, - 65BE749C5D0754968E60F01B /* YapDatabaseStatement.h in Headers */, - 2B4256CDE5E1D6B310E9C983 /* YapDatabaseString.h in Headers */, - 7BB21E6F9DF19119E80FBB26 /* YapDatabaseTransaction.h in Headers */, - F5CCF21A0EE9AF0C160E25B6 /* YapDatabaseView.h in Headers */, - 8B8AF19E5E5F0A59377A0892 /* YapDatabaseViewChange.h in Headers */, - 5A03B68F0651EE9C9A7837EE /* YapDatabaseViewChangePrivate.h in Headers */, - E5A316E2DFDD5301C5D8357A /* YapDatabaseViewConnection.h in Headers */, - BFEB1F8A16D0E9951F158D20 /* YapDatabaseViewMappings.h in Headers */, - E3017334E173182B2B606B96 /* YapDatabaseViewMappingsPrivate.h in Headers */, - B7EE93409B9C21C2030E5819 /* YapDatabaseViewOptions.h in Headers */, - AF0976C67DC3152D1286CB7E /* YapDatabaseViewPage.h in Headers */, - 427937CFB6233998DFEA854B /* YapDatabaseViewPageMetadata.h in Headers */, - 4585B286031DE9B7BD3FBEBC /* YapDatabaseViewPrivate.h in Headers */, - 03D39A60C40221C81476E791 /* YapDatabaseViewRangeOptions.h in Headers */, - CEC123A0A96AAA404038A3E7 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, - DF33978E0A200D57CE119DA4 /* YapDatabaseViewState.h in Headers */, - 7E3442F187E50E964A514244 /* YapDatabaseViewTransaction.h in Headers */, - 73B459739F3339772F6360A1 /* YapDatabaseViewTypes.h in Headers */, - 577540BC2F4F36FC7C832E16 /* YapDebugDictionary.h in Headers */, - 9A5B83B6C06DC274004AB490 /* YapMemoryTable.h in Headers */, - 8882459B91CC68097797D8A2 /* YapMurmurHash.h in Headers */, - 00357407E7E80CD89C172ADB /* YapNull.h in Headers */, - 46691DEF1A42BC5159F2DCBC /* YapRowidSet.h in Headers */, - DC724855ECB5AB6A836F101B /* YapSet.h in Headers */, - 6ED1EF78B66DF426B0CA3BF1 /* YapTouch.h in Headers */, - 4B7F3462F67EE71A4C54BD5E /* YapWhitelistBlacklist.h in Headers */, + 8FADDE948A11D473E5D1C4A1 /* FAImageView.h in Headers */, + 3DEB91287F5A260DFED43371 /* NSString+FontAwesome.h in Headers */, + A23833108BEE164794B408E5 /* UIFont+FontAwesome.h in Headers */, + 3F4D70189053051210DFF045 /* UIImage+FontAwesome.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 0321509A6D53679891550309 /* Headers */ = { + 383007BE542FB1A380B55D38 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 579AE92578B43D89D1DC0ED6 /* NSArray+ObjectiveSugar.h in Headers */, - 1A85F8C5E8C215FE963ECEED /* NSDictionary+ObjectiveSugar.h in Headers */, - AA78BC6660368041E95EF420 /* NSMutableArray+ObjectiveSugar.h in Headers */, - 789B61DCEF5173C23691E4F8 /* NSNumber+ObjectiveSugar.h in Headers */, - 3B19A007A7F625CBC793CC29 /* NSSet+ObjectiveSugar.h in Headers */, - 110F72CA40BECDB028624B13 /* NSString+ObjectiveSugar.h in Headers */, - 261EBF8D0B18CE82E71C3FE2 /* ObjectiveSugar.h in Headers */, + 5ACB8C7E43CBD127D43D0B4F /* OMGFormURLEncode.h in Headers */, + 2431F68F6FF540D20DA92FDD /* OMGHTTPURLRQ.h in Headers */, + 261779FFF9B031970D4568DC /* OMGUserAgent.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 19EBE4FACD915088829EE784 /* Headers */ = { + 40039E93376E6ABDBC5471AE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E377A242856FEF1278D86FD8 /* DDASLLogCapture.h in Headers */, - 7DC515A3EE6AADA3E5F784F6 /* DDASLLogger.h in Headers */, - 292B7ED5EFF49A662136C262 /* DDAbstractDatabaseLogger.h in Headers */, - 6B772D664EDEE75E3BE51A15 /* DDAssert.h in Headers */, - F09A545BFC9446E16EFE3C14 /* DDContextFilterLogFormatter.h in Headers */, - 90F3950E82004FBA135FA363 /* DDDispatchQueueLogFormatter.h in Headers */, - 580D2B959BD536D3D1DE1F4A /* DDFileLogger.h in Headers */, - 2C450FD67EF5F1B5634822AE /* DDLog+LOGV.h in Headers */, - 1C7BEE18E82F3E6D0AA497BC /* DDLog.h in Headers */, - 51F60AC623006F2BDA43AB47 /* DDMultiFormatter.h in Headers */, - DBA8839126A6661F16D62E95 /* DDTTYLogger.h in Headers */, + 352AA1FC697BB22015BA2B09 /* CALayer+PromiseKit.h in Headers */, + B74870F31379FCD7E9B7E463 /* NSNotificationCenter+PromiseKit.h in Headers */, + 48B3644075F7F42AE543CA0F /* NSURLConnection+PromiseKit.h in Headers */, + AEB566AE61FE8AB9753653BA /* Promise+Pause.h in Headers */, + DD8293C5A02FB0D3D139BF79 /* Promise+Until.h in Headers */, + EF06BDD804A101A9E47E494B /* Promise+When.h in Headers */, + B611B614747F1491E34AF258 /* Promise.h in Headers */, + 007278E80CBA8C820245A624 /* PromiseKit.h in Headers */, + 1E4A2E38B1E56E82E623541C /* UIActionSheet+PromiseKit.h in Headers */, + AE5C9CB85EB9912148462EDF /* UIAlertView+PromiseKit.h in Headers */, + 895526EB5DC344BC189BE0B5 /* UIView+PromiseKit.h in Headers */, + 5DA84A25B3381BECEF1E43AE /* UIViewController+PromiseKit.h in Headers */, + 85DA74609FFA49D69504AA15 /* fwd.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1F6FD8922D387180AF8D2238 /* Headers */ = { + 43536E496D6F4B4AC07546E6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 3E8FE604ECF464D71FA66475 /* EXTKeyPathCoding.h in Headers */, - 38723DFBBE55310952E8AEB1 /* EXTRuntimeExtensions.h in Headers */, - 2EDDB0FEA81328795D9606AC /* EXTScope.h in Headers */, - 649B0B8AD6001298455DE372 /* MTLJSONAdapter.h in Headers */, - 7F30B439BDDD34145F4E5AC2 /* MTLModel+NSCoding.h in Headers */, - A04C371A0971E9E638C8BDE2 /* MTLModel.h in Headers */, - 64963BFF1B0E869CED1ED659 /* MTLReflection.h in Headers */, - 3FD1D46178BA8F6FDB797239 /* MTLTransformerErrorHandling.h in Headers */, - 7C81CFE32318324096C35F61 /* MTLValueTransformer.h in Headers */, - CB741F35A014C8782AC2C09D /* Mantle.h in Headers */, - 5E0F27B1D5036867A5A2F90A /* NSArray+MTLManipulationAdditions.h in Headers */, - 774018F361A8826FFC46914C /* NSDictionary+MTLJSONKeyPath.h in Headers */, - A95BF160FEBA39DAAAC7BB76 /* NSDictionary+MTLManipulationAdditions.h in Headers */, - 532776CA91CE5870319396F3 /* NSDictionary+MTLMappingAdditions.h in Headers */, - 1393704B16C6C2F98E0911C1 /* NSError+MTLModelException.h in Headers */, - 0A8D2767E6C1078966DCB34C /* NSObject+MTLComparisonAdditions.h in Headers */, - 8894CDEE2FBA7750422C3B23 /* NSValueTransformer+MTLInversionAdditions.h in Headers */, - E19390CC74CBB7D5D1AD6001 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, - 9007A7616615F565555E2BA0 /* metamacros.h in Headers */, + DAFB2D70CF106A613BCEC599 /* NSArray+ObjectiveSugar.h in Headers */, + 1D5803478D837C5A0598B890 /* NSDictionary+ObjectiveSugar.h in Headers */, + E8FE26FF6DB03D2B623E763F /* NSMutableArray+ObjectiveSugar.h in Headers */, + 84620A8EBD98706B8EA49BFE /* NSNumber+ObjectiveSugar.h in Headers */, + 90544F255CBA8EDA8C9F8482 /* NSSet+ObjectiveSugar.h in Headers */, + 9967B79C602BEBF6A3EB1A2A /* NSString+ObjectiveSugar.h in Headers */, + 259E9F70BEDBD8A604937A6A /* ObjectiveSugar.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2FEAC5D1B183B6923AEE41E5 /* Headers */ = { + 6CDDD4F327D0BFCD8C19FDE6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A3FA4A2F448BC016D2CEC949 /* BITActivityIndicatorButton.h in Headers */, - 916FA8188A6AB953F2C06DAC /* BITAppStoreHeader.h in Headers */, - E026C8A4AC598768FE6646E6 /* BITAppVersionMetaInfo.h in Headers */, - 5633BFB583198AD91B57F1EE /* BITArrowImageAnnotation.h in Headers */, - 434AAE7643238722D13447FA /* BITAttributedLabel.h in Headers */, - CD7F9FB609D89A8D7196C3E9 /* BITAuthenticationViewController.h in Headers */, - DD9AD0E008DB1711174D26D8 /* BITAuthenticator.h in Headers */, - 2CF8CAF04F3CBE03E7DF0D1C /* BITAuthenticator_Private.h in Headers */, - D9FEF2C5B7D68840E84F70EC /* BITBlurImageAnnotation.h in Headers */, - 8613CB3545379C7FD1977D3B /* BITCrashAttachment.h in Headers */, - 68EF378DD150B5E04FC26E03 /* BITCrashDetails.h in Headers */, - D39F02FC656D57FA59879EF1 /* BITCrashDetailsPrivate.h in Headers */, - 1B145ADB5BE1D50E2E085976 /* BITCrashManager.h in Headers */, - 5793BDF913FCA4BF92073621 /* BITCrashManagerDelegate.h in Headers */, - 434B70DEB91169B805B19249 /* BITCrashManagerPrivate.h in Headers */, - 06A25DAC73C2E0B999C17411 /* BITCrashMetaData.h in Headers */, - BF986F9A15D38D498F720B81 /* BITCrashReportTextFormatter.h in Headers */, - 41D376E74F19FD5527C12DA8 /* BITFeedbackActivity.h in Headers */, - 64717D9CDE3304D3D6C20366 /* BITFeedbackComposeViewController.h in Headers */, - D27DD77FD9293B9642A273D5 /* BITFeedbackComposeViewControllerDelegate.h in Headers */, - C359F74AB9028E62A66EF35B /* BITFeedbackListViewCell.h in Headers */, - CE0611136FB578FDE0886C25 /* BITFeedbackListViewController.h in Headers */, - 4598CE7398E1FF82B9C7CE68 /* BITFeedbackManager.h in Headers */, - A788B096C915DC19D42B0F70 /* BITFeedbackManagerDelegate.h in Headers */, - 480694C8A95C4E79D3079EEB /* BITFeedbackManagerPrivate.h in Headers */, - 21430E4CEC9F3975CDA10ABD /* BITFeedbackMessage.h in Headers */, - 776A3F9160B23B6624BEB615 /* BITFeedbackMessageAttachment.h in Headers */, - 552DAF4220F1EA00AA650BC1 /* BITFeedbackUserDataViewController.h in Headers */, - B3126AA24860874AAB14F8E1 /* BITHTTPOperation.h in Headers */, - 0715BE8CEE93D3276F3818FB /* BITHockeyAppClient.h in Headers */, - A1CC3AF0ABC198B87F8FF0D7 /* BITHockeyAttachment.h in Headers */, - CEF13BE513720692B3374883 /* BITHockeyBaseManager.h in Headers */, - F5BF817F6ED18C282E8586D2 /* BITHockeyBaseManagerPrivate.h in Headers */, - EE65ABFA13A107278BC930DA /* BITHockeyBaseViewController.h in Headers */, - 90041268DFE7C8F87BA91B4E /* BITHockeyHelper.h in Headers */, - FA399ABB945E98BAFC788309 /* BITHockeyManager.h in Headers */, - 3A213CE1F40C1E15730D7D83 /* BITHockeyManagerDelegate.h in Headers */, - B0A66639B169D040F0A8721A /* BITImageAnnotation.h in Headers */, - 783D661B13B6D0BDEB0B16C2 /* BITImageAnnotationViewController.h in Headers */, - 50B36EF3072ABF35FBF4CF2A /* BITKeychainUtils.h in Headers */, - EA3D19F46458DA82EA8C8997 /* BITRectangleImageAnnotation.h in Headers */, - B2C3342C6DED21C9A650E041 /* BITStoreButton.h in Headers */, - 98DAD8C91E4529FB901F5C95 /* BITStoreUpdateManager.h in Headers */, - 33AC20898C1CE3354C460227 /* BITStoreUpdateManagerDelegate.h in Headers */, - 77A4B9FAE356D6E0444D4416 /* BITStoreUpdateManagerPrivate.h in Headers */, - 9E7DD7013EB6125BD59875C2 /* BITUpdateManager.h in Headers */, - E8FF03ABFEE352DCDD126C5D /* BITUpdateManagerDelegate.h in Headers */, - 8650D67B04EC2D6E712043BE /* BITUpdateManagerPrivate.h in Headers */, - CDD92A2DF8FB0BD53B4F756A /* BITUpdateViewController.h in Headers */, - D991D06118598EF884808CA8 /* BITUpdateViewControllerPrivate.h in Headers */, - A7938EC509B19FE98CD10386 /* BITWebTableViewCell.h in Headers */, - D31A9C4B2BF571D22C36414A /* HockeySDK.h in Headers */, - 006239E8AB37A87419A2748C /* HockeySDKFeatureConfig.h in Headers */, - EF87829D14547703BD95F3DD /* HockeySDKPrivate.h in Headers */, + BA3D47D61A1560E7D095CD5A /* NSDictionary+YapDatabase.h in Headers */, + F150558503AD73293376B102 /* YDBCKAttachRequest.h in Headers */, + 0DB9499E2E0D820F7FF3FAB7 /* YDBCKChangeQueue.h in Headers */, + A01335D1E7B8F255F7C27F39 /* YDBCKChangeRecord.h in Headers */, + 9FA8D0F9379BD7A54B791DE9 /* YDBCKChangeSet.h in Headers */, + 5736C8BB86579C0C6CC04D69 /* YDBCKMappingTableInfo.h in Headers */, + D1FA0657170B0CF2034BF3F0 /* YDBCKMergeInfo.h in Headers */, + 273AA8F68577AF87862B5493 /* YDBCKRecord.h in Headers */, + 5ECEC553E00DC82C73844C9C /* YDBCKRecordInfo.h in Headers */, + 289A7ADC898C9857A555E4C7 /* YDBCKRecordTableInfo.h in Headers */, + CF3557D9A46695948DE6E17D /* YapCache.h in Headers */, + 083C4BE99D67E441E0B153CA /* YapCollectionKey.h in Headers */, + 4D385D0024B8677644573246 /* YapDatabase.h in Headers */, + 7F9E3AA572F8CA18A64E72D2 /* YapDatabaseCloudKit.h in Headers */, + 63A8079967F6D5B82630ABC1 /* YapDatabaseCloudKitConnection.h in Headers */, + B1F9780E368D16B34DA8951B /* YapDatabaseCloudKitOptions.h in Headers */, + F0FAFF8CEB1C94B71D0AC287 /* YapDatabaseCloudKitPrivate.h in Headers */, + 4142005E118F0C37B8372BFA /* YapDatabaseCloudKitTransaction.h in Headers */, + B282931B14178141DD571D83 /* YapDatabaseCloudKitTypes.h in Headers */, + 02ADCB553DD47E4646F86D03 /* YapDatabaseConnection.h in Headers */, + 9F5D0714E748BC882DAD2220 /* YapDatabaseConnectionDefaults.h in Headers */, + 39E79385E85025F0F3FE54D9 /* YapDatabaseConnectionState.h in Headers */, + E145B7C63186909C5CF1B36A /* YapDatabaseExtension.h in Headers */, + 225BF167691AD0316F83158F /* YapDatabaseExtensionConnection.h in Headers */, + 305CE45F3B7FE3084D481F4E /* YapDatabaseExtensionPrivate.h in Headers */, + BAE22D464D652FDC71CFD488 /* YapDatabaseExtensionTransaction.h in Headers */, + 8BB39E7AFF58DEBE7D7B8B3A /* YapDatabaseFilteredView.h in Headers */, + 37340D8CF5C8D263382D5D22 /* YapDatabaseFilteredViewConnection.h in Headers */, + 53DAB50F296179AE1D291BCD /* YapDatabaseFilteredViewPrivate.h in Headers */, + 7477F8F6442374C3FE8D524F /* YapDatabaseFilteredViewTransaction.h in Headers */, + 975B8F8BDD88328B40343816 /* YapDatabaseFilteredViewTypes.h in Headers */, + 34DE1B34863D026C8A352CFC /* YapDatabaseFullTextSearch.h in Headers */, + 951D5F75CBD3D5C76A843630 /* YapDatabaseFullTextSearchConnection.h in Headers */, + C2CA89E650D5618784001682 /* YapDatabaseFullTextSearchHandler.h in Headers */, + 3AEF1572EAB6436374FA60DC /* YapDatabaseFullTextSearchPrivate.h in Headers */, + 8F6911D070152DFFC37B718E /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, + EEE7B50AAA345FE8CACB1397 /* YapDatabaseFullTextSearchTransaction.h in Headers */, + 773CE065818BB92B220E3BC6 /* YapDatabaseLogging.h in Headers */, + F05FA54270BCDFA9AB14ACDE /* YapDatabaseManager.h in Headers */, + 031C84CD5A30E56BD6529ED3 /* YapDatabaseOptions.h in Headers */, + 55D688CA026F8CE000717C91 /* YapDatabasePrivate.h in Headers */, + 25D33C7CDBDEB7BA24F5AB5A /* YapDatabaseQuery.h in Headers */, + 186F3C7A5E9C26879C50A770 /* YapDatabaseRelationship.h in Headers */, + FCA6AFA9ABB138729AF45285 /* YapDatabaseRelationshipConnection.h in Headers */, + E8E3F0799EEAE0073D292877 /* YapDatabaseRelationshipEdge.h in Headers */, + 9F508752E78123A8D41B5DD4 /* YapDatabaseRelationshipEdgePrivate.h in Headers */, + CE88EC5C37D884674A27B15B /* YapDatabaseRelationshipNode.h in Headers */, + D5D783109A5027A4B8828A54 /* YapDatabaseRelationshipOptions.h in Headers */, + 61F77877B13AF32BD043E9F4 /* YapDatabaseRelationshipPrivate.h in Headers */, + FDA35F014DC8B1D73B538F1C /* YapDatabaseRelationshipTransaction.h in Headers */, + 2B96DD075ABD7A6D68AE83E2 /* YapDatabaseSearchQueue.h in Headers */, + D6B75424FA8712A32121213E /* YapDatabaseSearchQueuePrivate.h in Headers */, + C4F34AE51B8B93B10D261A9E /* YapDatabaseSearchResultsView.h in Headers */, + 8C81F7A0D55CC68EB2392582 /* YapDatabaseSearchResultsViewConnection.h in Headers */, + 3FE26BEB0B262B7C14A7E993 /* YapDatabaseSearchResultsViewOptions.h in Headers */, + 8DF97984FF1C864955B07801 /* YapDatabaseSearchResultsViewPrivate.h in Headers */, + 084509E4D2B9CA784E8BF901 /* YapDatabaseSearchResultsViewTransaction.h in Headers */, + E581B3041A8331818065606D /* YapDatabaseSecondaryIndex.h in Headers */, + D306AFC88764FE0D66834CA6 /* YapDatabaseSecondaryIndexConnection.h in Headers */, + A2BDA6C2992D651749D7E387 /* YapDatabaseSecondaryIndexHandler.h in Headers */, + 65777D51585F1E40950F4A57 /* YapDatabaseSecondaryIndexOptions.h in Headers */, + 3475653C37D300E5F83F1998 /* YapDatabaseSecondaryIndexPrivate.h in Headers */, + 32D384F45CA1DE51F00DDFB0 /* YapDatabaseSecondaryIndexSetup.h in Headers */, + 9B80F833C0407DE8B92345E6 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, + 6EF564DBF7F55238BE5695F0 /* YapDatabaseStatement.h in Headers */, + A0E4F29E1912E92B002B37EA /* YapDatabaseString.h in Headers */, + EE65AC86712362BEDB01933B /* YapDatabaseTransaction.h in Headers */, + A651DCBA46D87B2D42BC04BF /* YapDatabaseView.h in Headers */, + 53B1C1CA62630A4A4896AAD1 /* YapDatabaseViewChange.h in Headers */, + BDFA87E43D10C20988A43155 /* YapDatabaseViewChangePrivate.h in Headers */, + 437749733AB27A80C4C63E2E /* YapDatabaseViewConnection.h in Headers */, + E7386BF1ADE8E73CBDAA543A /* YapDatabaseViewMappings.h in Headers */, + CA474A69695646CA3EBA5E57 /* YapDatabaseViewMappingsPrivate.h in Headers */, + 2D15FDE0CB8F92DAF7FFB025 /* YapDatabaseViewOptions.h in Headers */, + 2B1428A962D3064BFC40FA9F /* YapDatabaseViewPage.h in Headers */, + C82709EAD2D8375A54B1FC8E /* YapDatabaseViewPageMetadata.h in Headers */, + EEB0E65BF2391112E499A16C /* YapDatabaseViewPrivate.h in Headers */, + 83767E226A63945F9C31C693 /* YapDatabaseViewRangeOptions.h in Headers */, + F8807F84945029450AD4CAB6 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, + 0CB9CEB24E2CAABF48B8BDFB /* YapDatabaseViewState.h in Headers */, + F935904665F57CFF6F97330B /* YapDatabaseViewTransaction.h in Headers */, + 300BC6EF3F7EB02ED00F4984 /* YapDatabaseViewTypes.h in Headers */, + 375DF8FE0CFB2D4BAAB4D15D /* YapDebugDictionary.h in Headers */, + 4F18D530D7864D2414DCA153 /* YapMemoryTable.h in Headers */, + 29A42FF7EFE251E3E6577F85 /* YapMurmurHash.h in Headers */, + E8E7B6EACC1E1C1774658902 /* YapNull.h in Headers */, + 75A46073731A296E8BE5C1FD /* YapRowidSet.h in Headers */, + AA157300478DA1F9C6E25920 /* YapSet.h in Headers */, + 1D028BC22CA9BBC9844B31C5 /* YapTouch.h in Headers */, + F3261AF43CB95F086BD85818 /* YapWhitelistBlacklist.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3617EEAF3E08B79B59841C61 /* Headers */ = { + 727220FCE6E932E529B01CD8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9D1618374E3D501D81B7233F /* NSArray+ObjectiveSugar.h in Headers */, - 540FB4623D9CC3EAD5AD7509 /* NSDictionary+ObjectiveSugar.h in Headers */, - A0FE850D3229835DA9756834 /* NSMutableArray+ObjectiveSugar.h in Headers */, - FBF07A65853F1C5C30DA0597 /* NSNumber+ObjectiveSugar.h in Headers */, - 37D6F17F83F29FCDD74A14A4 /* NSSet+ObjectiveSugar.h in Headers */, - FB4CEAF4FC10A4D31A53BB58 /* NSString+ObjectiveSugar.h in Headers */, - A9AAA5B9FA7DE93E709EDDC3 /* ObjectiveSugar.h in Headers */, + 46BBE3316611C849E8BDC609 /* NSDictionary+YapDatabase.h in Headers */, + 682F62E5283445D884DD9D3D /* YDBCKAttachRequest.h in Headers */, + 998BC6652425691AD237B164 /* YDBCKChangeQueue.h in Headers */, + D26F8ADC144DF8B17FBBCBB0 /* YDBCKChangeRecord.h in Headers */, + B083C6AE92BD46C0FF526815 /* YDBCKChangeSet.h in Headers */, + 9E4869860E5428AA1EAC7999 /* YDBCKMappingTableInfo.h in Headers */, + C3650B3005D93D6FE09B4852 /* YDBCKMergeInfo.h in Headers */, + 44CA5BDED05BF4254DC32F01 /* YDBCKRecord.h in Headers */, + 6FF14434934256F943FBD020 /* YDBCKRecordInfo.h in Headers */, + CCC72F0C3528E61665B8CFEB /* YDBCKRecordTableInfo.h in Headers */, + 16437742B83F1FA1D351689C /* YapCache.h in Headers */, + C3D2F4025C264A1AEB3A7725 /* YapCollectionKey.h in Headers */, + E3302D566833816821808A4C /* YapDatabase.h in Headers */, + 44A4E86908B0174DA5A67369 /* YapDatabaseCloudKit.h in Headers */, + 3E83ACAC80069C361F95C6C7 /* YapDatabaseCloudKitConnection.h in Headers */, + 3F13336C24FF42CAD5468E12 /* YapDatabaseCloudKitOptions.h in Headers */, + D1A806D66E4DFEEC4B3F4BAB /* YapDatabaseCloudKitPrivate.h in Headers */, + B3A0893FABDA7C443D624412 /* YapDatabaseCloudKitTransaction.h in Headers */, + 4CBB569FE2F1D2ECD4D8DD7B /* YapDatabaseCloudKitTypes.h in Headers */, + B2A6E99DF6AD94096D4CA791 /* YapDatabaseConnection.h in Headers */, + CA712B5C98FDA8865963FA89 /* YapDatabaseConnectionDefaults.h in Headers */, + 911168A744E456E6AAD4D93F /* YapDatabaseConnectionState.h in Headers */, + 25910731450BD56237C7C83A /* YapDatabaseExtension.h in Headers */, + DF88F54D6A2739A175E77731 /* YapDatabaseExtensionConnection.h in Headers */, + 746662E1073998EC3410F768 /* YapDatabaseExtensionPrivate.h in Headers */, + 8038A3415F61A562837C9D6F /* YapDatabaseExtensionTransaction.h in Headers */, + 7B6AF4502D05199E261B62DC /* YapDatabaseFilteredView.h in Headers */, + 764FA53827E760593EDF6727 /* YapDatabaseFilteredViewConnection.h in Headers */, + E9B2B7B96561DA48E635432A /* YapDatabaseFilteredViewPrivate.h in Headers */, + 698B2D60E58670FC8391D1CF /* YapDatabaseFilteredViewTransaction.h in Headers */, + 7FB69A82894AF7D29BC4812A /* YapDatabaseFilteredViewTypes.h in Headers */, + D3C0013A470927120DC900B1 /* YapDatabaseFullTextSearch.h in Headers */, + C8AFE74B4D5AA91C1E49E174 /* YapDatabaseFullTextSearchConnection.h in Headers */, + 97A4CE74D32515AD3163CA43 /* YapDatabaseFullTextSearchHandler.h in Headers */, + 97D0DE2C7DC3484F2A7C4880 /* YapDatabaseFullTextSearchPrivate.h in Headers */, + 599A604600B977E6C2859526 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, + 50873E2A7EC32DC7E6037DD7 /* YapDatabaseFullTextSearchTransaction.h in Headers */, + 934BFD94C6D6615AB76F4DB4 /* YapDatabaseLogging.h in Headers */, + 086FB68FA39CB67E2C3D3969 /* YapDatabaseManager.h in Headers */, + C6865AD78C23139610D1C6E7 /* YapDatabaseOptions.h in Headers */, + 7DB76AB912D57937EAA22C0C /* YapDatabasePrivate.h in Headers */, + F23CB6BA2E540C70AB233642 /* YapDatabaseQuery.h in Headers */, + A23FA79EFEF43BF9E8F08788 /* YapDatabaseRelationship.h in Headers */, + B5CC2865379B5526DDD20B2D /* YapDatabaseRelationshipConnection.h in Headers */, + D7258D251116A80ADECB6F49 /* YapDatabaseRelationshipEdge.h in Headers */, + 2CBD93F7ABB49EB5E3F1638A /* YapDatabaseRelationshipEdgePrivate.h in Headers */, + B759A4284411C0D2137E33EA /* YapDatabaseRelationshipNode.h in Headers */, + 31667140EC6F5613A6A7C724 /* YapDatabaseRelationshipOptions.h in Headers */, + A7CBBDFBB425E2A66D83BDB3 /* YapDatabaseRelationshipPrivate.h in Headers */, + 1C809FC222D3A1520C34C7FA /* YapDatabaseRelationshipTransaction.h in Headers */, + 061D18DB081A57C5BB6A7ECD /* YapDatabaseSearchQueue.h in Headers */, + 1C9BBF50F4C2A8835328BEE2 /* YapDatabaseSearchQueuePrivate.h in Headers */, + 5770DB279B3DC5BF3179BC04 /* YapDatabaseSearchResultsView.h in Headers */, + E31C74A2BD9D5F628F3EFED2 /* YapDatabaseSearchResultsViewConnection.h in Headers */, + D1AF278B7AF28D793AE07871 /* YapDatabaseSearchResultsViewOptions.h in Headers */, + 6221D0104115BAA59DF79A8D /* YapDatabaseSearchResultsViewPrivate.h in Headers */, + 1D1A8E4C9F745A2C3D00462A /* YapDatabaseSearchResultsViewTransaction.h in Headers */, + C30481F22F86D0E7575DC872 /* YapDatabaseSecondaryIndex.h in Headers */, + 7E5A7246FA09A51E98ADBA0C /* YapDatabaseSecondaryIndexConnection.h in Headers */, + 201FCF857693BA92943ED9D0 /* YapDatabaseSecondaryIndexHandler.h in Headers */, + 5F7A59C20F0C4934A646D9D9 /* YapDatabaseSecondaryIndexOptions.h in Headers */, + BC20DB8266805AB1C3797003 /* YapDatabaseSecondaryIndexPrivate.h in Headers */, + A6BB5D97261D9139B4F2EAC3 /* YapDatabaseSecondaryIndexSetup.h in Headers */, + F33B8CC37F98E193E1864F52 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, + EB68659D79AB452B832022AB /* YapDatabaseStatement.h in Headers */, + BF47FD79B2E87D2B09BAE813 /* YapDatabaseString.h in Headers */, + AA55E970E3CA8173268EA4C0 /* YapDatabaseTransaction.h in Headers */, + 6B1B0210FE9A3F1DD4227409 /* YapDatabaseView.h in Headers */, + 313093AB994C291025C42DA7 /* YapDatabaseViewChange.h in Headers */, + A5F70A87847824459EE00B1E /* YapDatabaseViewChangePrivate.h in Headers */, + 93E9CA7CB0F5B6F3E04F5BB2 /* YapDatabaseViewConnection.h in Headers */, + 3575C47D5F548CFF8C88E7DE /* YapDatabaseViewMappings.h in Headers */, + 7F7F00CB343149CFA3096C69 /* YapDatabaseViewMappingsPrivate.h in Headers */, + FDA8D8306CCC3DE315295FE4 /* YapDatabaseViewOptions.h in Headers */, + 55AFE33137C0EBE5DDAD4825 /* YapDatabaseViewPage.h in Headers */, + A4AC9A3FBA83BF24CCD63936 /* YapDatabaseViewPageMetadata.h in Headers */, + 279607AE7751C183A1388CB2 /* YapDatabaseViewPrivate.h in Headers */, + DCCD82B8254FB2764D1EA24A /* YapDatabaseViewRangeOptions.h in Headers */, + B87F5B56108A9646F00B0870 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, + 8F4EC2144160505836F54163 /* YapDatabaseViewState.h in Headers */, + 4ABC3F5F3B1DD6F42E434E38 /* YapDatabaseViewTransaction.h in Headers */, + BD6C157EC15F147BCF30C1E0 /* YapDatabaseViewTypes.h in Headers */, + 7505A518CBE27FED4F96F2CA /* YapDebugDictionary.h in Headers */, + 9F85280D963FE73E91D3D0CE /* YapMemoryTable.h in Headers */, + 5BA44F98E6683D719B9919E4 /* YapMurmurHash.h in Headers */, + 53ADF8F88ABBC0A41689371B /* YapNull.h in Headers */, + 0CED95A3956815A0DD5AB5C5 /* YapRowidSet.h in Headers */, + 331C03B88AC3EB727D5FC9E3 /* YapSet.h in Headers */, + D8BA613C570F69CCE1037A5D /* YapTouch.h in Headers */, + C3C98729A24B5CDEEBFABB5A /* YapWhitelistBlacklist.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4D495846D0F8FEB49BDA4A97 /* Headers */ = { + 8620FAFE530E0C8EE200D0D0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 361BAE6AF1C562D0A3563FEF /* OMGFormURLEncode.h in Headers */, - 44ADB4A5E87F3D1730BA3522 /* OMGHTTPURLRQ.h in Headers */, - 6DE4FCF743A42CD08C706A51 /* OMGUserAgent.h in Headers */, + 189A003F771416F88D0E97B5 /* NSArray+ObjectiveSugar.h in Headers */, + 54C2F5F9E06DF8A7F4FBD69E /* NSDictionary+ObjectiveSugar.h in Headers */, + 3E0E541EB549F19B55413A1F /* NSMutableArray+ObjectiveSugar.h in Headers */, + D3A0975042A20D8E34409624 /* NSNumber+ObjectiveSugar.h in Headers */, + 83C16C1BF38CD5B13D968774 /* NSSet+ObjectiveSugar.h in Headers */, + 7E73003B1AC7C2962567E8D9 /* NSString+ObjectiveSugar.h in Headers */, + 866BECB952024A9ABB0CB589 /* ObjectiveSugar.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4E335CBC4C35B5036DAC3FEC /* Headers */ = { + 876A04184550996A43B4D8A2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4D527467D70C3490B4FC3A11 /* CALayer+PromiseKit.h in Headers */, - 288CC222D3713C4A05440D85 /* NSNotificationCenter+PromiseKit.h in Headers */, - 2D241C21A7B49C3A0502E6FE /* NSURLConnection+PromiseKit.h in Headers */, - EA4B6634105544D9DB3DC7F3 /* Promise+Pause.h in Headers */, - 8C32F918D6D612BC41C5B6A1 /* Promise+Until.h in Headers */, - 644DA495CEBBC4AFC765F670 /* Promise+When.h in Headers */, - 901CA4AC78AB32DF69EDFDF3 /* Promise.h in Headers */, - A1BDF09AF65D51C554B6435F /* PromiseKit.h in Headers */, - DA3EBFB7F35B0B139A169092 /* UIActionSheet+PromiseKit.h in Headers */, - 11F4C4C7950318CA15892432 /* UIAlertView+PromiseKit.h in Headers */, - C332AEB9E70BE6E212C33D50 /* UIView+PromiseKit.h in Headers */, - 8E921E61567BD1B92D638D04 /* UIViewController+PromiseKit.h in Headers */, - 4AB45D0E7A0D8DEF9AF5D009 /* fwd.h in Headers */, + AF557472F544DB65BEE328C3 /* NSObject+DyCInjection.h in Headers */, + 724EE0A7ED089CBA13467B89 /* NSSet+ClassesList.h in Headers */, + 5035100E79F4E8312104305C /* SFDynamicCodeInjection.h in Headers */, + D212904FE419499290FC3995 /* SFFileWatcher.h in Headers */, + D81C400BCE0049C9556B2C61 /* SFFileWatcherDelegate.h in Headers */, + 48DB89271690922B6BEF8A8C /* SFInjectionsNotificationsCenter.h in Headers */, + 32945A9B4907285F73E7C8C9 /* UINib+StoryBoardSupport.h in Headers */, + 0C30A3B3557014EBEC953D5F /* UIViewController+XIBSupport.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5AEA01D8896E8D45163C4CD6 /* Headers */ = { + AA33AA2226358F8C4735D1EB /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A398B0DBE5E86833CE90CD70 /* OMGFormURLEncode.h in Headers */, - 4D03BDD4D156EDD5D2697F30 /* OMGHTTPURLRQ.h in Headers */, - 5EDB1B6E6F9B3CAEA6CD8315 /* OMGUserAgent.h in Headers */, + 3C13AAA2B6D278E3EEF15A7C /* MBProgressHUD.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 63F1700305E3C39B19C7E875 /* Headers */ = { + AE1625F2A9FBF7B8D646529B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 14DD4FEB056E3683E7FAA171 /* NSDictionary+YapDatabase.h in Headers */, - 30A060B1E5479BC8D53810E0 /* YDBCKAttachRequest.h in Headers */, - E324CCDEA9AE70CE5D92597C /* YDBCKChangeQueue.h in Headers */, - BA5A0A3C4C9B5486854E3050 /* YDBCKChangeRecord.h in Headers */, - 7583066203DD70C7EAA9D5F4 /* YDBCKChangeSet.h in Headers */, - 64E0D3506B7F24C1B3A3AE8C /* YDBCKMappingTableInfo.h in Headers */, - A13437D57E7A71A77FEBEB73 /* YDBCKMergeInfo.h in Headers */, - 018BA01A81E14C8A35CA2440 /* YDBCKRecord.h in Headers */, - F85255D94410C962AD2B394C /* YDBCKRecordInfo.h in Headers */, - 3ED7969A67DBB1D88E8D0930 /* YDBCKRecordTableInfo.h in Headers */, - 84FE4BB023882C4BA6D15159 /* YapCache.h in Headers */, - 1268E69AB127998241200F3C /* YapCollectionKey.h in Headers */, - 93888661913AD24E3C314598 /* YapDatabase.h in Headers */, - 44E3A069FB42F5C2B0D3E882 /* YapDatabaseCloudKit.h in Headers */, - CAECDBED2DAF84D91AB11274 /* YapDatabaseCloudKitConnection.h in Headers */, - B77722ED6A2D6E40FEF92E49 /* YapDatabaseCloudKitOptions.h in Headers */, - 8583D4EE10F2F740EE5E6FDA /* YapDatabaseCloudKitPrivate.h in Headers */, - F7744DD06EF3A1B61F182190 /* YapDatabaseCloudKitTransaction.h in Headers */, - 7D80F20F4EB4FB34E9FA2750 /* YapDatabaseCloudKitTypes.h in Headers */, - 5E211EADC2486224298B17B8 /* YapDatabaseConnection.h in Headers */, - 6A3BDEB85CDCD8627D29FDED /* YapDatabaseConnectionDefaults.h in Headers */, - 751DE155A8B203327ECB5412 /* YapDatabaseConnectionState.h in Headers */, - CC94D4E62080E0E7A881E9FF /* YapDatabaseExtension.h in Headers */, - FB26F51901F0A66030885D2A /* YapDatabaseExtensionConnection.h in Headers */, - 402DAECFE97E5C8EFA6945D9 /* YapDatabaseExtensionPrivate.h in Headers */, - 58BABC4B369A9DE271D55FCF /* YapDatabaseExtensionTransaction.h in Headers */, - CA1F75DFCB6C263F5C409A62 /* YapDatabaseFilteredView.h in Headers */, - F6FD2FE35E0FBD0F0DCDADCC /* YapDatabaseFilteredViewConnection.h in Headers */, - 6250B782B7B1253D304D3C43 /* YapDatabaseFilteredViewPrivate.h in Headers */, - 6882153A3E548486987B6684 /* YapDatabaseFilteredViewTransaction.h in Headers */, - 98C56FCE7E336DDDBEB49861 /* YapDatabaseFilteredViewTypes.h in Headers */, - A8F640CD9D925CAD66622F5B /* YapDatabaseFullTextSearch.h in Headers */, - 83E306D53BE724A047656AA8 /* YapDatabaseFullTextSearchConnection.h in Headers */, - D0BDC6C49431A2AEAFF31AE8 /* YapDatabaseFullTextSearchHandler.h in Headers */, - AD2C505211E4DF6C7AA26590 /* YapDatabaseFullTextSearchPrivate.h in Headers */, - 23F91B9F7692CB33CD2E5A55 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, - C41D5A6FF08A83DDF516A174 /* YapDatabaseFullTextSearchTransaction.h in Headers */, - EC2F93AF6B37D9CF08790017 /* YapDatabaseLogging.h in Headers */, - ED3EE4D4C3FE7BD9EE6A6442 /* YapDatabaseManager.h in Headers */, - 8473DB69F033FFE1BD61A2F9 /* YapDatabaseOptions.h in Headers */, - E2687EF644F9D897D01DA634 /* YapDatabasePrivate.h in Headers */, - BF4B2AA89C162F318F0F228A /* YapDatabaseQuery.h in Headers */, - 381AA6E9C668B337B315BB41 /* YapDatabaseRelationship.h in Headers */, - 11023D424D27EEACC6A7010C /* YapDatabaseRelationshipConnection.h in Headers */, - D21C0627F7CFE3D4EC8F382A /* YapDatabaseRelationshipEdge.h in Headers */, - 71255373AD200D568D958BFE /* YapDatabaseRelationshipEdgePrivate.h in Headers */, - 21145BB5A5458AACE3E5F80F /* YapDatabaseRelationshipNode.h in Headers */, - 7A2E84C78A05AC35C7B2BF2D /* YapDatabaseRelationshipOptions.h in Headers */, - AA9C222864395D5FF8D0D592 /* YapDatabaseRelationshipPrivate.h in Headers */, - CEEE97BB9DF57CD8CE115A23 /* YapDatabaseRelationshipTransaction.h in Headers */, - ED9A72EB0039788CD9058FCB /* YapDatabaseSearchQueue.h in Headers */, - F744EC8F7FAFBFE901A35FE8 /* YapDatabaseSearchQueuePrivate.h in Headers */, - F9DD594C2C8E9F080B6718B5 /* YapDatabaseSearchResultsView.h in Headers */, - 653387A73FF2930AF73AA02C /* YapDatabaseSearchResultsViewConnection.h in Headers */, - 25F476FB0AB40481D6C6A101 /* YapDatabaseSearchResultsViewOptions.h in Headers */, - 51A009701BDA90D322D7405C /* YapDatabaseSearchResultsViewPrivate.h in Headers */, - 0A46B049564B293F7ADC6DBA /* YapDatabaseSearchResultsViewTransaction.h in Headers */, - D80B06453EA858A3B621F472 /* YapDatabaseSecondaryIndex.h in Headers */, - 797EFA533450C1A24D6962BB /* YapDatabaseSecondaryIndexConnection.h in Headers */, - 517164C704513EC46F5C4976 /* YapDatabaseSecondaryIndexHandler.h in Headers */, - B51CBB4674694292C35A335D /* YapDatabaseSecondaryIndexOptions.h in Headers */, - 7B0C3912E1436873C3C44F18 /* YapDatabaseSecondaryIndexPrivate.h in Headers */, - 671889E6917F6D29DB501F29 /* YapDatabaseSecondaryIndexSetup.h in Headers */, - 36B43E7F12DE5316B678B0D5 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, - C9A0BA6AFF44D8615F71C34E /* YapDatabaseStatement.h in Headers */, - 0E90A6CB92646ADE18C880DB /* YapDatabaseString.h in Headers */, - 04AE49F7649E6D1749B19148 /* YapDatabaseTransaction.h in Headers */, - 0B1FCFCDFD11C211B210A83B /* YapDatabaseView.h in Headers */, - B957E7C5BE895D082D2F3418 /* YapDatabaseViewChange.h in Headers */, - 2861CCFA65B2364D05AADC98 /* YapDatabaseViewChangePrivate.h in Headers */, - 416FC5318D61C6A173F56100 /* YapDatabaseViewConnection.h in Headers */, - BD792E05FA3C20DE5E9DDE9E /* YapDatabaseViewMappings.h in Headers */, - B7A93FC86C23255D9741BAE9 /* YapDatabaseViewMappingsPrivate.h in Headers */, - B6DEE5F88CFEAE169D08B021 /* YapDatabaseViewOptions.h in Headers */, - C98B439DD05FFC242D9453B0 /* YapDatabaseViewPage.h in Headers */, - 63CDDD3C015EDF2A5EC4AF61 /* YapDatabaseViewPageMetadata.h in Headers */, - A1AA7C746A3072BD08516811 /* YapDatabaseViewPrivate.h in Headers */, - 631839B9B1D0246B828D86F6 /* YapDatabaseViewRangeOptions.h in Headers */, - 8C911A745C6DA439B13C6FAC /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, - 733031B3E26DC1A8FB2E9EA9 /* YapDatabaseViewState.h in Headers */, - 831D2D2382C0AB1F72F9136B /* YapDatabaseViewTransaction.h in Headers */, - FE19FE2695E36056439EA90D /* YapDatabaseViewTypes.h in Headers */, - 505BC5D0E337D45624051A39 /* YapDebugDictionary.h in Headers */, - E77C60B27E7B98B039C64B53 /* YapMemoryTable.h in Headers */, - 86CA29F91C4AC0969356038D /* YapMurmurHash.h in Headers */, - A0848DE5BAAD072C4651E215 /* YapNull.h in Headers */, - 7DFF0727A308D78BC8736757 /* YapRowidSet.h in Headers */, - C2ADB4E8E535BECBCF148362 /* YapSet.h in Headers */, - D4A513047BA2ECEBF30C8801 /* YapTouch.h in Headers */, - 23FB52544E2C5EE3D635F748 /* YapWhitelistBlacklist.h in Headers */, + 27879A81FA9B1B24EEEDE85C /* EXTKeyPathCoding.h in Headers */, + D8A0337220F814C97AA50E4A /* EXTRuntimeExtensions.h in Headers */, + D232C2D9DFD14089F6F7137C /* EXTScope.h in Headers */, + FDB4795F4FBD27F100625124 /* MTLJSONAdapter.h in Headers */, + 4969840CA0A65C9A397507E3 /* MTLModel+NSCoding.h in Headers */, + 208AE1FFF710E8C2CFFF683F /* MTLModel.h in Headers */, + 227B3270977A75328BEF0CF7 /* MTLReflection.h in Headers */, + 46E2284FF1426253D8FF1C83 /* MTLTransformerErrorHandling.h in Headers */, + 11A26F8A30F0A98FF7FD6AC2 /* MTLValueTransformer.h in Headers */, + 1910E7DB5E87334EA305A450 /* Mantle.h in Headers */, + AE1D72EBE567A007948A7583 /* NSArray+MTLManipulationAdditions.h in Headers */, + C33405ABF05292601AF2793A /* NSDictionary+MTLJSONKeyPath.h in Headers */, + 304506059C008D23D4AB92EA /* NSDictionary+MTLManipulationAdditions.h in Headers */, + 006014E8BA5E146790852651 /* NSDictionary+MTLMappingAdditions.h in Headers */, + E468D703E60619450EE1A35B /* NSError+MTLModelException.h in Headers */, + 23F02225D0D0ED4B95510D9A /* NSObject+MTLComparisonAdditions.h in Headers */, + 68CCE238E65D95598442DED4 /* NSValueTransformer+MTLInversionAdditions.h in Headers */, + 04717018D4BB0ACC4D3A47B4 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, + 2B966CEBA07DA3C9D9BD627A /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7B4C8551CD0E88049821C3D1 /* Headers */ = { + CA2F71C7426687EBD4657B1C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 85F916C534BD8573E0F7F1FF /* CALayer+PromiseKit.h in Headers */, - EFBD9718309DF9AFD4DA807A /* NSNotificationCenter+PromiseKit.h in Headers */, - 922ACAD8060EA4EC493BAA3E /* NSURLConnection+PromiseKit.h in Headers */, - A12D84242452D283C235BAE9 /* Promise+Pause.h in Headers */, - CA65A28CAFF5EC09FE5A96FA /* Promise+Until.h in Headers */, - AA15C0454F552086C9F1FB29 /* Promise+When.h in Headers */, - CCC6FB8BC3D520BFDCC5980F /* Promise.h in Headers */, - 6F8FCF9CA86259577B0DA06E /* PromiseKit.h in Headers */, - 43A65070852461DFA4DA0197 /* UIActionSheet+PromiseKit.h in Headers */, - 583BBB9166B3F30C0EF9E5DF /* UIAlertView+PromiseKit.h in Headers */, - AAA9154621C4A2E8FB3B9526 /* UIView+PromiseKit.h in Headers */, - 082F530DE3DF7D319B500262 /* UIViewController+PromiseKit.h in Headers */, - 285BBD7615D84E9D03BD129C /* fwd.h in Headers */, + F185C864B7048A8C2B89548E /* CALayer+PromiseKit.h in Headers */, + 473EEBC2FEAD1ACEDB48D4C2 /* NSNotificationCenter+PromiseKit.h in Headers */, + F8E89B444F764E0E757ECFA7 /* NSURLConnection+PromiseKit.h in Headers */, + D98C851526E00E76807E498F /* Promise+Pause.h in Headers */, + 06C3A76D147A2AC4E13EF8A4 /* Promise+Until.h in Headers */, + 54AB5AE2A43063BB6337888E /* Promise+When.h in Headers */, + 010C43C0C8FE5FF7081A4B05 /* Promise.h in Headers */, + D6927C16D775E7D1ED60E6FC /* PromiseKit.h in Headers */, + CDA4E9218D63E4CD91EE17A7 /* UIActionSheet+PromiseKit.h in Headers */, + DDCF98A34920BC45BB9CCF5B /* UIAlertView+PromiseKit.h in Headers */, + 88018EA5F607B560E90527FD /* UIView+PromiseKit.h in Headers */, + 5353E669066413FFF3B5BE31 /* UIViewController+PromiseKit.h in Headers */, + 45412CC2BB5D213FB67BD039 /* fwd.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9EC15598BCF6DDBC2265D39F /* Headers */ = { + DC88075706318C6110BBBBBF /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 5E2AD951CAED3666F1E0E552 /* EXTKeyPathCoding.h in Headers */, - 55D4CACB09C4547053C91EDA /* EXTRuntimeExtensions.h in Headers */, - 38178C845D54C64115F572DC /* EXTScope.h in Headers */, - D4DCF83CAF0B4FBFA18FC8D1 /* MTLJSONAdapter.h in Headers */, - 6544C3CEEC6D4AECD76DE69E /* MTLModel+NSCoding.h in Headers */, - 91EF5504E6574D52DD312CEA /* MTLModel.h in Headers */, - C0B4A6B9147CB6FA5B028316 /* MTLReflection.h in Headers */, - 3DC787265ABCF0140C76F59E /* MTLTransformerErrorHandling.h in Headers */, - E72AF258DE71961AE3DD016F /* MTLValueTransformer.h in Headers */, - 82886CF9630AC1089504EE9E /* Mantle.h in Headers */, - 6A854667DEDB6FE8C287536D /* NSArray+MTLManipulationAdditions.h in Headers */, - B3BBA13966BB53F5D1763D39 /* NSDictionary+MTLJSONKeyPath.h in Headers */, - 2CE7893C33C84CA1E1203614 /* NSDictionary+MTLManipulationAdditions.h in Headers */, - 61C6E2661145FCE200C552B1 /* NSDictionary+MTLMappingAdditions.h in Headers */, - 373961A175C4802E0671D3A0 /* NSError+MTLModelException.h in Headers */, - 3EA1CE7224EB298F5AFBC5AA /* NSObject+MTLComparisonAdditions.h in Headers */, - 799BFCD0F7659885C6FC80FD /* NSValueTransformer+MTLInversionAdditions.h in Headers */, - EF91452CAB580EB7873357AB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, - CF60BCA8ED25838E30023121 /* metamacros.h in Headers */, + 0319D5DD94F3E60566F24917 /* EXTADT.h in Headers */, + C9BD3DFB4A4857595D58C8D0 /* EXTConcreteProtocol.h in Headers */, + FCAE41BC0E0F435A51F81A3D /* EXTKeyPathCoding.h in Headers */, + 8EC5F245E1DDBF71FD300C65 /* EXTNil.h in Headers */, + 9FE2061BF64EB1CBE32EF5E5 /* EXTRuntimeExtensions.h in Headers */, + 1C59F0ACDFC00FDBE1B75228 /* EXTSafeCategory.h in Headers */, + D119E8217F9ED6FC387627AF /* EXTScope.h in Headers */, + E2063EDDF7C1DBDBDCAE5412 /* EXTSelectorChecking.h in Headers */, + B0071E220B25C9755A13539F /* EXTSynthesize.h in Headers */, + E311EE67F80D566CB809B606 /* NSInvocation+EXT.h in Headers */, + AF7388A520C66CA5455EECA0 /* NSMethodSignature+EXT.h in Headers */, + 7A62BAED2105AF82B304C5C7 /* extobjc.h in Headers */, + EC4CED1EBC9D5C239E47F4DD /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B1196D876F8899E12B7CFA4D /* Headers */ = { + E34D71DF8D1954A470CCE3F0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 366920F898A46F3636CEC345 /* DDASLLogCapture.h in Headers */, - 6395569F97880C12FA3D0BDD /* DDASLLogger.h in Headers */, - E894908D76BD3E691C1EF8E4 /* DDAbstractDatabaseLogger.h in Headers */, - 030D75880C907B9471A12A8C /* DDAssert.h in Headers */, - 3CB8598031796B218308589A /* DDContextFilterLogFormatter.h in Headers */, - 0B5CC4004358FE43BEB19BC4 /* DDDispatchQueueLogFormatter.h in Headers */, - 74B0D181BC3C5825D0B62D35 /* DDFileLogger.h in Headers */, - 5A189CEEEC7BB376FAD14908 /* DDLog+LOGV.h in Headers */, - 82D2E92F92C65EECB84C4E13 /* DDLog.h in Headers */, - 6F9DD9938002B65CA8FEAD77 /* DDMultiFormatter.h in Headers */, - 56D80D9E9CB69B60A1DCE653 /* DDTTYLogger.h in Headers */, + 7108F83809D90C5A48695066 /* DDASLLogCapture.h in Headers */, + BC5662ED414EBB61E6DC824D /* DDASLLogger.h in Headers */, + 237B6176D5063A9DD5BAC07F /* DDAbstractDatabaseLogger.h in Headers */, + C2B41FAB1CA30EC8AAC489BB /* DDAssert.h in Headers */, + 9DCB7AEACF0B58D0B02911CD /* DDContextFilterLogFormatter.h in Headers */, + 4A9F5467AEAAC1A5679F82DE /* DDDispatchQueueLogFormatter.h in Headers */, + 488F3C30C467E0CECAB8D1B5 /* DDFileLogger.h in Headers */, + D01D70B1B94FF82E14D88CE5 /* DDLog+LOGV.h in Headers */, + CB65DEF1676DE12E0BD9E6B7 /* DDLog.h in Headers */, + AB8733835A2E2953A5FE6CAF /* DDMultiFormatter.h in Headers */, + 07854F33F97884AB8C85C5FF /* DDTTYLogger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B195BFFF058F9BD2913DE6DD /* Headers */ = { + E39FEDBA0B747B794822346E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4573E55737897CA4A8B39206 /* NSObject+DyCInjection.h in Headers */, - CEAEAB81E42E26684819274F /* NSSet+ClassesList.h in Headers */, - 067F19DFAA83A04CD4F0AD12 /* SFDynamicCodeInjection.h in Headers */, - 5ECF79443E1FA2546A5AA388 /* SFFileWatcher.h in Headers */, - 66A53DDB931FB14CE1FB4798 /* SFFileWatcherDelegate.h in Headers */, - 91F699CB1C420F7842DD2ABF /* SFInjectionsNotificationsCenter.h in Headers */, - 28F03C931C207959E591B425 /* UINib+StoryBoardSupport.h in Headers */, - BE7B4E8437E1E3BD69819816 /* UIViewController+XIBSupport.h in Headers */, + DA38AD94A6E7FCB6D0EDB975 /* EXTKeyPathCoding.h in Headers */, + 3F6CB2638B1102879450DA01 /* EXTRuntimeExtensions.h in Headers */, + 0DF4D044968DCB38B604CF77 /* EXTScope.h in Headers */, + 04B3BFEAC12701CEB402B352 /* MTLJSONAdapter.h in Headers */, + DFFC4610AE949D671081345D /* MTLModel+NSCoding.h in Headers */, + 0AB091CC22DB23E3356D5854 /* MTLModel.h in Headers */, + 43B4F4DB6A1086E9F4690B44 /* MTLReflection.h in Headers */, + 0CC94FDEF06D2D5E596D7CC4 /* MTLTransformerErrorHandling.h in Headers */, + E6BCA3C3F301BCA7B8789C49 /* MTLValueTransformer.h in Headers */, + C7B81C4524C8A9CB9D4B0B1A /* Mantle.h in Headers */, + 3D1996FADAED4C52ABB78EB6 /* NSArray+MTLManipulationAdditions.h in Headers */, + 6216BF22EF586574D5419DE8 /* NSDictionary+MTLJSONKeyPath.h in Headers */, + 5F66C750002B6F6DC079238F /* NSDictionary+MTLManipulationAdditions.h in Headers */, + 553E3738F415EB22ADBB548A /* NSDictionary+MTLMappingAdditions.h in Headers */, + 9DEDCCB6BA7AF9329776A193 /* NSError+MTLModelException.h in Headers */, + D9A444D46DB802DC74302D71 /* NSObject+MTLComparisonAdditions.h in Headers */, + 38D1268A437E93189F46CE00 /* NSValueTransformer+MTLInversionAdditions.h in Headers */, + 72844365118A5F509D202921 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, + DB00A52AA904314BAAA83526 /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D12B4575416664E20FFC8014 /* Headers */ = { + E64A23C6D47ABB947DEE4713 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - ED513D17AA917975C45E1DDE /* MBProgressHUD.h in Headers */, + 92602E5AB891BE20667AC712 /* OMGFormURLEncode.h in Headers */, + 2751397BE7471979E228787D /* OMGHTTPURLRQ.h in Headers */, + 64CA4D42E316A68C32E2BC56 /* OMGUserAgent.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - DAB14464EED069D138047C60 /* Headers */ = { + EE502FEE3E0A09F06D6A4596 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - CA44149FDA7E001D8557F476 /* MBProgressHUD.h in Headers */, + 6BA87A783EEBB0E773C32190 /* DDASLLogCapture.h in Headers */, + 7C4EF536CD6FCD7850D153A0 /* DDASLLogger.h in Headers */, + 92B6B539CF4300751F9C3EFD /* DDAbstractDatabaseLogger.h in Headers */, + 569E8C68C6256D94551F2C1E /* DDAssert.h in Headers */, + 9C8B35B239257C1D8FFA3C0D /* DDContextFilterLogFormatter.h in Headers */, + 35040D7098C065D3ED577614 /* DDDispatchQueueLogFormatter.h in Headers */, + B5031C2E5D0F21A7AA328858 /* DDFileLogger.h in Headers */, + A712124E5D86A5F50819A1B8 /* DDLog+LOGV.h in Headers */, + DA48C043756A36C07C413B66 /* DDLog.h in Headers */, + 60790BDC445EDA4A4FD5B085 /* DDMultiFormatter.h in Headers */, + 2A1382079B9365B735B368EF /* DDTTYLogger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - DFF040F9BF18F1C3091D5332 /* Headers */ = { + F20A1B762AF41D9D1207E2E2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 79A02A260804A3D90359F47E /* EXTADT.h in Headers */, - 0F96F43BB182086FC34BB63E /* EXTConcreteProtocol.h in Headers */, - C1D1B30F61DCF89923E7E1E3 /* EXTKeyPathCoding.h in Headers */, - 5A1BCB6C4EC6515869A89FC6 /* EXTNil.h in Headers */, - DE59FE7DA6AFF5DF6EDF08FB /* EXTRuntimeExtensions.h in Headers */, - 7143169542FD9DFA4C964994 /* EXTSafeCategory.h in Headers */, - 12DDD965846CEB2E30C4DFDF /* EXTScope.h in Headers */, - 89DF1053D652C0B1F679B0EE /* EXTSelectorChecking.h in Headers */, - 51BFA2EF003121D2E7FE1EC4 /* EXTSynthesize.h in Headers */, - D8AD9418DF748B0FE90F1301 /* NSInvocation+EXT.h in Headers */, - BEA8DA57F45AD22B78240250 /* NSMethodSignature+EXT.h in Headers */, - 395820EA4FAB28B3F7BC6CB6 /* extobjc.h in Headers */, - 1AEE436CB3B043B5DF38077E /* metamacros.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E8F679D0ECC243673A5E01F1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 66CB7AAE17ADE5F9DD0A415B /* FAImageView.h in Headers */, - 48F03942A12F6A3F62D63520 /* NSString+FontAwesome.h in Headers */, - C4DF98A27146DEDC01A53D55 /* UIFont+FontAwesome.h in Headers */, - 76A02CC857D744FD48EB75DE /* UIImage+FontAwesome.h in Headers */, + CD57CEB233BEAF932F635656 /* MBProgressHUD.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */ = { + 02C5320E551707DF82875510 /* Pods-samhuri.net-PromiseKit */ = { isa = PBXNativeTarget; - buildConfigurationList = D873DB9A461ED64BB9ADFC6C /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK-HockeySDKResources" */; + buildConfigurationList = 9C048497F44964D9517ED1F8 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */; buildPhases = ( - 1A1BA910EF2AAB1557F5143B /* Sources */, - E2482817C051914AB957CA03 /* Frameworks */, - 5BFA11D013D55C01C6F74B70 /* Resources */, + FD23331E40F62A1714897C13 /* Sources */, + E4EC0BA84D5EBE42C9E7404C /* Frameworks */, + CA2F71C7426687EBD4657B1C /* Headers */, ); buildRules = ( ); dependencies = ( - ); - name = "Pods-Blog-HockeySDK-HockeySDKResources"; - productName = "Pods-Blog-HockeySDK-HockeySDKResources"; - productReference = 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; - 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8A30BAD25CD9D6ACF3691A14 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */; - buildPhases = ( - DFB26C863C52A0807C5C37FE /* Sources */, - B0F2DBB238B5DED8F895DA2D /* Frameworks */, - 7B4C8551CD0E88049821C3D1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 7A830AE645E1C250611459D4 /* PBXTargetDependency */, - ); - name = "Pods-Blog-PromiseKit"; - productName = "Pods-Blog-PromiseKit"; - productReference = 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */; - productType = "com.apple.product-type.library.static"; - }; - 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = E615E6F99D120BF3DE46E253 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */; - buildPhases = ( - 41D88FE4B0CD302C248A6397 /* Sources */, - B362CD93E9AA897FE27D50AE /* Frameworks */, - E8F679D0ECC243673A5E01F1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-FontAwesome+iOS"; - productName = "Pods-Blog-FontAwesome+iOS"; - productReference = 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */; - productType = "com.apple.product-type.library.static"; - }; - 53B1FF7A5BCD1BFBDB74CF8C /* Pods-samhuri.net */ = { - isa = PBXNativeTarget; - buildConfigurationList = 70BBF7D3729BA8616D8B2FD5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */; - buildPhases = ( - 19AC6EAC3239740D1A87482B /* Sources */, - D91D130B86EA34C4DE9AEA1B /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 5AE608B6853AA8B8F589E0CD /* PBXTargetDependency */, - DAC53E7E3AB310A0A725B345 /* PBXTargetDependency */, - 588C00CD34936F81A25F3F40 /* PBXTargetDependency */, - 48CF909B715582226213F1E7 /* PBXTargetDependency */, - 2B1D68B75B1D29229859F938 /* PBXTargetDependency */, - CE58FA2541D5BB902AD15B98 /* PBXTargetDependency */, - CD35780C724C2BDBC4756E11 /* PBXTargetDependency */, - ); - name = "Pods-samhuri.net"; - productName = "Pods-samhuri.net"; - productReference = 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */; - productType = "com.apple.product-type.library.static"; - }; - 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */ = { - isa = PBXNativeTarget; - buildConfigurationList = D19E9045784D2E224D2D8179 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */; - buildPhases = ( - 4341FDB4458751FEC9C0AA7F /* Sources */, - 9CC3CCB093D5340D959B1DFB /* Frameworks */, - 4D495846D0F8FEB49BDA4A97 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-OMGHTTPURLRQ"; - productName = "Pods-Blog-OMGHTTPURLRQ"; - productReference = A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */; - productType = "com.apple.product-type.library.static"; - }; - 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79F0341A2504B1F86B005E20 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */; - buildPhases = ( - 2D153056967B062859515B36 /* Sources */, - 0DB499050712621EF0A3D99B /* Frameworks */, - D12B4575416664E20FFC8014 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-MBProgressHUD"; - productName = "Pods-Blog-MBProgressHUD"; - productReference = BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */; - productType = "com.apple.product-type.library.static"; - }; - 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */ = { - isa = PBXNativeTarget; - buildConfigurationList = 554A9FC9599AFACC0C49F7BF /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */; - buildPhases = ( - 94AAE7F864FE62440AA1AFDC /* Sources */, - 042CD0B4654C296714E66AC6 /* Frameworks */, - DFF040F9BF18F1C3091D5332 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-libextobjc"; - productName = "Pods-Blog-libextobjc"; - productReference = 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */; - productType = "com.apple.product-type.library.static"; - }; - 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97A7AC948FCA53B8F0FF1A7C /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */; - buildPhases = ( - 9365FE868990E97DC4B2BC25 /* Sources */, - E27E83DC91112BE1FC645AE9 /* Frameworks */, - 9EC15598BCF6DDBC2265D39F /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-Mantle"; - productName = "Pods-samhuri.net-Mantle"; - productReference = 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */; - productType = "com.apple.product-type.library.static"; - }; - 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */ = { - isa = PBXNativeTarget; - buildConfigurationList = FB5B643E8C2A2281C57B5244 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */; - buildPhases = ( - 45FD6272A5ACDBE4ED3FA39E /* Sources */, - 2F201F2279A9EE0887AF626C /* Frameworks */, - 5AEA01D8896E8D45163C4CD6 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-OMGHTTPURLRQ"; - productName = "Pods-samhuri.net-OMGHTTPURLRQ"; - productReference = F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */; - productType = "com.apple.product-type.library.static"; - }; - 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3004B9A5B57431A9E9BD9F6F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */; - buildPhases = ( - D8962C2AF4BB86CE05A22DE9 /* Sources */, - BC850847C2F569C84E19CB20 /* Frameworks */, - B1196D876F8899E12B7CFA4D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-CocoaLumberjack"; - productName = "Pods-Blog-CocoaLumberjack"; - productReference = 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */; - productType = "com.apple.product-type.library.static"; - }; - 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */ = { - isa = PBXNativeTarget; - buildConfigurationList = CBB13C5EE7C728683DDCE3EE /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */; - buildPhases = ( - 068168745DAA472272A25E12 /* Sources */, - 902F51CB28190D4B4C62202A /* Frameworks */, - B195BFFF058F9BD2913DE6DD /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-dyci"; - productName = "Pods-Blog-dyci"; - productReference = 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */; - productType = "com.apple.product-type.library.static"; - }; - 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = E479DA08961544109E5191EF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */; - buildPhases = ( - 7227691E7645F5DA6EC6E46B /* Sources */, - C2741CDB7203567CBB15DADB /* Frameworks */, - 4E335CBC4C35B5036DAC3FEC /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - DA5F5107A51FB5CC062CFC86 /* PBXTargetDependency */, + 2476B1B3E705247D0B933F91 /* PBXTargetDependency */, ); name = "Pods-samhuri.net-PromiseKit"; productName = "Pods-samhuri.net-PromiseKit"; - productReference = F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */; + productReference = 8353B2B60726B8ABFF1B0E49 /* libPods-samhuri.net-PromiseKit.a */; productType = "com.apple.product-type.library.static"; }; - 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */ = { + 073F96D2C8AEBAAA030407A5 /* Pods-Blog-ObjectiveSugar */ = { isa = PBXNativeTarget; - buildConfigurationList = 4DFDE482EC5A464FD7C21688 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */; + buildConfigurationList = 046F835A594A12A4C404CC56 /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */; buildPhases = ( - B177E72F2B39EE1471D4B105 /* Sources */, - 212646A327A36C6E21D805ED /* Frameworks */, - 1F6FD8922D387180AF8D2238 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-Mantle"; - productName = "Pods-Blog-Mantle"; - productReference = 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */; - productType = "com.apple.product-type.library.static"; - }; - 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */ = { - isa = PBXNativeTarget; - buildConfigurationList = B699A82D9D86CF9B9B7B861B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */; - buildPhases = ( - 03B1113910FCC7AF99D3DF50 /* Sources */, - 7E22B725FEA5D0B23D8978A5 /* Frameworks */, - DAB14464EED069D138047C60 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-MBProgressHUD"; - productName = "Pods-samhuri.net-MBProgressHUD"; - productReference = C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */; - productType = "com.apple.product-type.library.static"; - }; - A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */ = { - isa = PBXNativeTarget; - buildConfigurationList = E4E6D06ED821910D5ED29DC3 /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK" */; - buildPhases = ( - 860229C1A8DBE758825C4227 /* Sources */, - BF77B42BCAFC95F7D3F388CE /* Frameworks */, - 2FEAC5D1B183B6923AEE41E5 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 46DFAA83C87508B348F76552 /* PBXTargetDependency */, - ); - name = "Pods-Blog-HockeySDK"; - productName = "Pods-Blog-HockeySDK"; - productReference = 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */; - productType = "com.apple.product-type.library.static"; - }; - A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */ = { - isa = PBXNativeTarget; - buildConfigurationList = C7D9DBA985F63FC589B5384A /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */; - buildPhases = ( - 2EAB26F032E23844D4CF0B1E /* Sources */, - 18CBC231E81E3F25F2B29CEC /* Frameworks */, - 0321509A6D53679891550309 /* Headers */, + A6D4D7013B15B2589DF8A1A8 /* Sources */, + DC0B5BA9A51958208FA390B9 /* Frameworks */, + 43536E496D6F4B4AC07546E6 /* Headers */, ); buildRules = ( ); @@ -3575,51 +2737,176 @@ ); name = "Pods-Blog-ObjectiveSugar"; productName = "Pods-Blog-ObjectiveSugar"; - productReference = 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */; + productReference = 0A389D4334A5CC05AFE30BAB /* libPods-Blog-ObjectiveSugar.a */; productType = "com.apple.product-type.library.static"; }; - B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */ = { + 1763E9C4A542A603D7BF6501 /* Pods-Blog-libextobjc */ = { isa = PBXNativeTarget; - buildConfigurationList = F2ED7DC722C611BD763BC578 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */; + buildConfigurationList = 0F280357926A5D13CDEDD8E1 /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */; buildPhases = ( - EFBB71CCD21D59AED7CE399A /* Sources */, - 017C3CFCF4C78A8C15E10E1B /* Frameworks */, - 3617EEAF3E08B79B59841C61 /* Headers */, + CFA2033AFE5C498FC14D1AD6 /* Sources */, + 7B25B45C52F6C955BF4B204C /* Frameworks */, + DC88075706318C6110BBBBBF /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = "Pods-samhuri.net-ObjectiveSugar"; - productName = "Pods-samhuri.net-ObjectiveSugar"; - productReference = 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */; + name = "Pods-Blog-libextobjc"; + productName = "Pods-Blog-libextobjc"; + productReference = AF09DF8C934DA6A7807A6599 /* libPods-Blog-libextobjc.a */; productType = "com.apple.product-type.library.static"; }; - C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */ = { + 258E7FD66319006E5831FB62 /* Pods-samhuri.net-Mantle */ = { isa = PBXNativeTarget; - buildConfigurationList = CA73833601EBC26F94CD9ED5 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */; + buildConfigurationList = 33AF6F461227D51DBBA870F0 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */; buildPhases = ( - 1A95EAD7D7D5DE4ABCB1E793 /* Sources */, - 8EA6066ED975E46EE8916233 /* Frameworks */, - 63F1700305E3C39B19C7E875 /* Headers */, + D5EEBEF5BE43BC9AE0E5642C /* Sources */, + 23433B528991D32C5D469C39 /* Frameworks */, + AE1625F2A9FBF7B8D646529B /* Headers */, ); buildRules = ( ); dependencies = ( - C8710D1D5EEDA9E6BA4DF091 /* PBXTargetDependency */, ); - name = "Pods-Blog-YapDatabase"; - productName = "Pods-Blog-YapDatabase"; - productReference = CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */; + name = "Pods-samhuri.net-Mantle"; + productName = "Pods-samhuri.net-Mantle"; + productReference = E9B3A65FB870B381C96E13FB /* libPods-samhuri.net-Mantle.a */; productType = "com.apple.product-type.library.static"; }; - C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */ = { + 381AA847B0AB8B5EF724E86C /* Pods-samhuri.net */ = { isa = PBXNativeTarget; - buildConfigurationList = 28353535BEB1BB5E45A1931B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */; + buildConfigurationList = 03FFBBA5345B871725934CCD /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */; buildPhases = ( - D7C5282172CD34F6491DB706 /* Sources */, - 86CE15570A9AFE070C73350E /* Frameworks */, - 19EBE4FACD915088829EE784 /* Headers */, + C95F59E73C8C763829798C92 /* Sources */, + F231F172716EB41AB6EF0D61 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6F44E06176966D182F01FD43 /* PBXTargetDependency */, + A632BAD33409C9FCE943F920 /* PBXTargetDependency */, + DB9E2AF33DA56897963355B9 /* PBXTargetDependency */, + 80D0CF2FE793F8FC00596794 /* PBXTargetDependency */, + 1242E2A90E4C03E2E71C6A31 /* PBXTargetDependency */, + 82D3F919CB8F4FC889B19390 /* PBXTargetDependency */, + 0F085350784E0FEBD584C9E0 /* PBXTargetDependency */, + ); + name = "Pods-samhuri.net"; + productName = "Pods-samhuri.net"; + productReference = 2FEC46F2AF7EAB28497B5E2D /* libPods-samhuri.net.a */; + productType = "com.apple.product-type.library.static"; + }; + 391A9C79B2802A8B4F34AB2C /* Pods-samhuri.net-MBProgressHUD */ = { + isa = PBXNativeTarget; + buildConfigurationList = DC791368F3BB5572A35ADFDB /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */; + buildPhases = ( + 83C284EC341B68287CF1CB9C /* Sources */, + 839804D053B3266B1C844EE6 /* Frameworks */, + F20A1B762AF41D9D1207E2E2 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-MBProgressHUD"; + productName = "Pods-samhuri.net-MBProgressHUD"; + productReference = 2B817BF06D517F6E6B0F245B /* libPods-samhuri.net-MBProgressHUD.a */; + productType = "com.apple.product-type.library.static"; + }; + 4555EFCA01A64B46AF19B850 /* Pods-Blog-Mantle */ = { + isa = PBXNativeTarget; + buildConfigurationList = 69A021117011F28311B42FB1 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */; + buildPhases = ( + A3831953B6F632226E67CF21 /* Sources */, + C5F55CBE7650F89384075E00 /* Frameworks */, + E39FEDBA0B747B794822346E /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-Mantle"; + productName = "Pods-Blog-Mantle"; + productReference = 9E62686774C090876DB0F82D /* libPods-Blog-Mantle.a */; + productType = "com.apple.product-type.library.static"; + }; + 52D3FF8D846ECE1F86C892FE /* Pods-Blog-MBProgressHUD */ = { + isa = PBXNativeTarget; + buildConfigurationList = 69B66CC92AA52157CCAF7BD6 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */; + buildPhases = ( + EE78382F132DCC43FFCC33E8 /* Sources */, + B1740C151585A54038053B5B /* Frameworks */, + AA33AA2226358F8C4735D1EB /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-MBProgressHUD"; + productName = "Pods-Blog-MBProgressHUD"; + productReference = 4602C45EA109522D10031774 /* libPods-Blog-MBProgressHUD.a */; + productType = "com.apple.product-type.library.static"; + }; + 69FD1941C48121DFFA9064DC /* Pods-Blog-PromiseKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = ACD862B43194B2FECFAFC40B /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */; + buildPhases = ( + 5C8CDA11A435633D72374ABA /* Sources */, + B53F612E7DE611CA2F78D2EE /* Frameworks */, + 40039E93376E6ABDBC5471AE /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + A381F0AFB9FC14EC51B6415F /* PBXTargetDependency */, + ); + name = "Pods-Blog-PromiseKit"; + productName = "Pods-Blog-PromiseKit"; + productReference = 4601410D955CE7A1DD4D5D8C /* libPods-Blog-PromiseKit.a */; + productType = "com.apple.product-type.library.static"; + }; + 933D59FF84B37ABF25196FCC /* Pods-Blog-CocoaLumberjack */ = { + isa = PBXNativeTarget; + buildConfigurationList = 835E98716E99273C6A49831F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */; + buildPhases = ( + 289E0F1D0BEBE021C476808C /* Sources */, + A65E5570DC7497A0AD9648B5 /* Frameworks */, + E34D71DF8D1954A470CCE3F0 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-CocoaLumberjack"; + productName = "Pods-Blog-CocoaLumberjack"; + productReference = 42B122AD5FD52D735455E7BB /* libPods-Blog-CocoaLumberjack.a */; + productType = "com.apple.product-type.library.static"; + }; + 959BE7EAC1D1BA9C8E7C54C2 /* Pods-Blog-FontAwesome+iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CD2997B9CE4CD2C02C0A318D /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */; + buildPhases = ( + 30BC4D4627033424AF252DE3 /* Sources */, + 1E76F60649179D6E28988A96 /* Frameworks */, + 2806A509A367737BCDB2A481 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-FontAwesome+iOS"; + productName = "Pods-Blog-FontAwesome+iOS"; + productReference = 085F7144E1717A488F4A4B8F /* libPods-Blog-FontAwesome+iOS.a */; + productType = "com.apple.product-type.library.static"; + }; + 9AE020A5B0331F61BB9BA486 /* Pods-samhuri.net-CocoaLumberjack */ = { + isa = PBXNativeTarget; + buildConfigurationList = EAEDAE3E320ADDEFDABE67BD /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */; + buildPhases = ( + A456A2AB943ED2498DD7C48F /* Sources */, + 49EC2CEE0899B7C8527D047D /* Frameworks */, + EE502FEE3E0A09F06D6A4596 /* Headers */, ); buildRules = ( ); @@ -3627,775 +2914,734 @@ ); name = "Pods-samhuri.net-CocoaLumberjack"; productName = "Pods-samhuri.net-CocoaLumberjack"; - productReference = E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */; + productReference = C963BED315F794EEB97E8847 /* libPods-samhuri.net-CocoaLumberjack.a */; productType = "com.apple.product-type.library.static"; }; - C9EB5C0B5F4617117D7E8FE4 /* Pods-Blog */ = { + 9F2499755D3C1A797413EF0B /* Pods-samhuri.net-OMGHTTPURLRQ */ = { isa = PBXNativeTarget; - buildConfigurationList = 7C25E69DFD815A6C89871A60 /* Build configuration list for PBXNativeTarget "Pods-Blog" */; + buildConfigurationList = 0245666C236E05B5E20379C9 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */; buildPhases = ( - E7C646419CCEAD3F6FA6ACCC /* Sources */, - 640A98ED60C73829A487BB92 /* Frameworks */, + A64C7D7CCE3EE4AEADB983A6 /* Sources */, + DC1989958DE4B939C07C47FD /* Frameworks */, + 383007BE542FB1A380B55D38 /* Headers */, ); buildRules = ( ); dependencies = ( - 1A576BEA2E5DB45941A53734 /* PBXTargetDependency */, - FF73D9724CC2D810CA454ED1 /* PBXTargetDependency */, - 4E97394341B85C08FE51E3EF /* PBXTargetDependency */, - 34FA15F06FBF20B1A9A9B21B /* PBXTargetDependency */, - E59F7239014870160B97D8F2 /* PBXTargetDependency */, - D66F233A1C88D9FBA6762511 /* PBXTargetDependency */, - B78DBB1A923E52B2BE4F13F5 /* PBXTargetDependency */, - FDF7254B921C2079AC3E76F7 /* PBXTargetDependency */, - 371E87FF4BDE4A436EAFA843 /* PBXTargetDependency */, - BE5548A573A06FBD22803108 /* PBXTargetDependency */, - B1A09E5891D240AE81E687F3 /* PBXTargetDependency */, ); - name = "Pods-Blog"; - productName = "Pods-Blog"; - productReference = 6D844884C2AF03CF2238630A /* libPods-Blog.a */; + name = "Pods-samhuri.net-OMGHTTPURLRQ"; + productName = "Pods-samhuri.net-OMGHTTPURLRQ"; + productReference = 12E048691E61BE10906EE260 /* libPods-samhuri.net-OMGHTTPURLRQ.a */; productType = "com.apple.product-type.library.static"; }; - D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */ = { + B9A71FAE22E1053F06F80757 /* Pods-Blog-dyci */ = { isa = PBXNativeTarget; - buildConfigurationList = 9A3789981911518AD8EE497F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */; + buildConfigurationList = BE424F738019A375AD294C2B /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */; buildPhases = ( - 16E23CAC6D4B092656274490 /* Sources */, - D0A3007A5E9024BAC0D4F0F1 /* Frameworks */, - 02219F10A1FAEA1135C07C34 /* Headers */, + 36CC12A69037168BE620AB8E /* Sources */, + AC99459EEF91A4323FFD7FF0 /* Frameworks */, + 876A04184550996A43B4D8A2 /* Headers */, ); buildRules = ( ); dependencies = ( - D5879B9CB16E36E167AFB638 /* PBXTargetDependency */, + ); + name = "Pods-Blog-dyci"; + productName = "Pods-Blog-dyci"; + productReference = 0923E09FB2B4D9ADD78364C1 /* libPods-Blog-dyci.a */; + productType = "com.apple.product-type.library.static"; + }; + BE5FB715F2D1F25E7D8D514D /* Pods-samhuri.net-ObjectiveSugar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 854DF47726348C11AD5C18BF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */; + buildPhases = ( + 029723AFCB25A112292F8B5D /* Sources */, + 0A9C3F5B3176F26BB49D164B /* Frameworks */, + 8620FAFE530E0C8EE200D0D0 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-ObjectiveSugar"; + productName = "Pods-samhuri.net-ObjectiveSugar"; + productReference = 2DFB95AC176895913CB280B0 /* libPods-samhuri.net-ObjectiveSugar.a */; + productType = "com.apple.product-type.library.static"; + }; + C7F04ECE886762ED3FA79A9D /* Pods-samhuri.net-YapDatabase */ = { + isa = PBXNativeTarget; + buildConfigurationList = 30B532E48B56D2AA7DBD3C73 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */; + buildPhases = ( + C5BF87D7A62A5D226DBF2967 /* Sources */, + 669F86AA964330010A7CB5C0 /* Frameworks */, + 727220FCE6E932E529B01CD8 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 641B31F2868532DF66CD57DA /* PBXTargetDependency */, ); name = "Pods-samhuri.net-YapDatabase"; productName = "Pods-samhuri.net-YapDatabase"; - productReference = E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */; + productReference = 5025B3F1C269F7E111948F47 /* libPods-samhuri.net-YapDatabase.a */; + productType = "com.apple.product-type.library.static"; + }; + D10BA62430326F67DC64EA50 /* Pods-Blog-YapDatabase */ = { + isa = PBXNativeTarget; + buildConfigurationList = A6B478E3257A9CFDFE0AD95F /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */; + buildPhases = ( + E93E45EF2A3E8CF35CA2F1E4 /* Sources */, + 07BBBDF62208B2F1FE4582D1 /* Frameworks */, + 6CDDD4F327D0BFCD8C19FDE6 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 74A21CFBE398CEAAFE2A80A1 /* PBXTargetDependency */, + ); + name = "Pods-Blog-YapDatabase"; + productName = "Pods-Blog-YapDatabase"; + productReference = 1A0F2B023408B41F9DE9A572 /* libPods-Blog-YapDatabase.a */; + productType = "com.apple.product-type.library.static"; + }; + D84606E1B475E87E52D3F007 /* Pods-Blog */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8A9B20CCC94C40D967904951 /* Build configuration list for PBXNativeTarget "Pods-Blog" */; + buildPhases = ( + 822EEAF0E43CCADE1B726315 /* Sources */, + 1D058B458616C25B0E00D803 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + B384F8CD6CCA73C1842D01E7 /* PBXTargetDependency */, + 00A5538BF55BD5C38853DC4B /* PBXTargetDependency */, + 436F07481EFF1FA07A5D7B25 /* PBXTargetDependency */, + 71044624D1FBE408FEAD4058 /* PBXTargetDependency */, + 7E8E9141CFBF6222A3776A09 /* PBXTargetDependency */, + ECD7A24D72392AFA22C6394D /* PBXTargetDependency */, + 1A9A07B3A3DEC2A0FA705C56 /* PBXTargetDependency */, + A427135E4BCB20895C2E9A19 /* PBXTargetDependency */, + 7DC1EAAFE5D80815E00CA9CB /* PBXTargetDependency */, + CDDEDAD8BAF4E826ED471187 /* PBXTargetDependency */, + ); + name = "Pods-Blog"; + productName = "Pods-Blog"; + productReference = E1C5D5A492E5A962CB895FF2 /* libPods-Blog.a */; + productType = "com.apple.product-type.library.static"; + }; + FEB2358A8A8921EA03106F9C /* Pods-Blog-OMGHTTPURLRQ */ = { + isa = PBXNativeTarget; + buildConfigurationList = A00FA20655A3ECA23CF9C164 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */; + buildPhases = ( + D7A47AD20A8EBF1B98D10CFE /* Sources */, + 2E03423DB83D6038A14C1E70 /* Frameworks */, + E64A23C6D47ABB947DEE4713 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-OMGHTTPURLRQ"; + productName = "Pods-Blog-OMGHTTPURLRQ"; + productReference = D145721ABD37DFD7D6596756 /* libPods-Blog-OMGHTTPURLRQ.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 0F1F25E390D54FDB68B253BB /* Project object */ = { + A459747F1DBE1539ED418DBE /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0640; }; - buildConfigurationList = D049D6491BD63896D9A1D2F7 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = DC7D2F9FCDE079BC315B6F3A /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 4F975902C72CD77C26B4A229; - productRefGroup = 24743C495390B7D114063BCA /* Products */; + mainGroup = FCFBF672D238373F16D538F1; + productRefGroup = 8A87376AB677F65B53CAC26F /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - C9EB5C0B5F4617117D7E8FE4 /* Pods-Blog */, - 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */, - 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */, - A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */, - 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */, - 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */, - 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */, - 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */, - A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */, - 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */, - C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */, - 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */, - 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */, - 53B1FF7A5BCD1BFBDB74CF8C /* Pods-samhuri.net */, - C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */, - 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */, - 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */, - 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */, - B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */, - 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */, - D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */, + D84606E1B475E87E52D3F007 /* Pods-Blog */, + 933D59FF84B37ABF25196FCC /* Pods-Blog-CocoaLumberjack */, + 959BE7EAC1D1BA9C8E7C54C2 /* Pods-Blog-FontAwesome+iOS */, + 52D3FF8D846ECE1F86C892FE /* Pods-Blog-MBProgressHUD */, + 4555EFCA01A64B46AF19B850 /* Pods-Blog-Mantle */, + FEB2358A8A8921EA03106F9C /* Pods-Blog-OMGHTTPURLRQ */, + 073F96D2C8AEBAAA030407A5 /* Pods-Blog-ObjectiveSugar */, + 69FD1941C48121DFFA9064DC /* Pods-Blog-PromiseKit */, + D10BA62430326F67DC64EA50 /* Pods-Blog-YapDatabase */, + B9A71FAE22E1053F06F80757 /* Pods-Blog-dyci */, + 1763E9C4A542A603D7BF6501 /* Pods-Blog-libextobjc */, + 381AA847B0AB8B5EF724E86C /* Pods-samhuri.net */, + 9AE020A5B0331F61BB9BA486 /* Pods-samhuri.net-CocoaLumberjack */, + 391A9C79B2802A8B4F34AB2C /* Pods-samhuri.net-MBProgressHUD */, + 258E7FD66319006E5831FB62 /* Pods-samhuri.net-Mantle */, + 9F2499755D3C1A797413EF0B /* Pods-samhuri.net-OMGHTTPURLRQ */, + BE5FB715F2D1F25E7D8D514D /* Pods-samhuri.net-ObjectiveSugar */, + 02C5320E551707DF82875510 /* Pods-samhuri.net-PromiseKit */, + C7F04ECE886762ED3FA79A9D /* Pods-samhuri.net-YapDatabase */, ); }; /* End PBXProject section */ -/* Begin PBXResourcesBuildPhase section */ - 5BFA11D013D55C01C6F74B70 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DD4B5AB58F9360D382B0B83D /* Arrow.png in Resources */, - 84F08C0E6A8A643FB2DAED61 /* Arrow@2x.png in Resources */, - B512A8252F38FE4F5BA78F7C /* Arrow@3x.png in Resources */, - BF705940E1642E4E74AF0FD8 /* Blur.png in Resources */, - 1A8D8CC127563D53D1C0609A /* Blur@2x.png in Resources */, - A881F12A458473DF371A8028 /* Blur@3x.png in Resources */, - C2A1BC28E21BE77D71D087BB /* Cancel.png in Resources */, - 42986754DD3DC2809C5D4F6A /* Cancel@2x.png in Resources */, - FAAC642C0461EB6E3C43C411 /* Cancel@3x.png in Resources */, - 6AA1896240A62E06D48D2A49 /* IconGradient.png in Resources */, - 8CBC883ABA6A9E3085B4661E /* IconGradient@2x.png in Resources */, - 85D4FD59C7DB2CB87ECCB1D5 /* Ok.png in Resources */, - C15D2747F77D28D04B37535B /* Ok@2x.png in Resources */, - C10C710998A7CC222D129869 /* Ok@3x.png in Resources */, - 3622839617440565AF702F22 /* Rectangle.png in Resources */, - 4687823C8703CA1976B569A7 /* Rectangle@2x.png in Resources */, - 1C6F66A698AF6DF763DBEC34 /* Rectangle@3x.png in Resources */, - F84ABBB0D60951D7EB17C87D /* authorize_denied.png in Resources */, - 764F5587FE34D7F5B6065AD0 /* authorize_denied@2x.png in Resources */, - ECB6019CF2F87810C457E0FB /* authorize_denied@3x.png in Resources */, - 2350DE4E6598E2F17470A721 /* bg.png in Resources */, - BA9BA6C2AC5A32232432F068 /* buttonRoundedDelete.png in Resources */, - 8EDA4199C7735C4146F437CA /* buttonRoundedDelete@2x.png in Resources */, - EEB73E1655A4EC59C8CB3553 /* buttonRoundedDeleteHighlighted.png in Resources */, - 5C74003B882E9EE86D060404 /* buttonRoundedDeleteHighlighted@2x.png in Resources */, - 5B0E6B80ED57B5AF089A14D1 /* buttonRoundedRegular.png in Resources */, - 7DC6588CE9B1E092EBDA1426 /* buttonRoundedRegular@2x.png in Resources */, - E7B7C236D37160B9631C3B40 /* buttonRoundedRegularHighlighted.png in Resources */, - 8CB0F6FF3E9092A1AB0B2BE8 /* buttonRoundedRegularHighlighted@2x.png in Resources */, - C5BEE63A7107EAD96DAA07F7 /* de.lproj in Resources */, - 7CCDD448F5931992C95CCF69 /* en.lproj in Resources */, - 0B1357623F7E72A768B42865 /* es.lproj in Resources */, - 086DD290ABF4CE621B32B702 /* feedbackActivity.png in Resources */, - B99E1E0DA55482F0FB464C0F /* feedbackActivity@2x.png in Resources */, - 87F11CE08B023F5651F4142B /* feedbackActivity@2x~ipad.png in Resources */, - 2FF65FDD87B8BB6EA51DD36D /* feedbackActivity@3x.png in Resources */, - E9F3588DA566EF4AC45BF937 /* feedbackActivity~ipad.png in Resources */, - 2A643653ADC7A58DE971BC9F /* fr.lproj in Resources */, - B96BB4A3DF7731DFB9ADD606 /* hr.lproj in Resources */, - 8622019213E0E3FC6061B855 /* hu.lproj in Resources */, - FF36B4AC9ABF8E175ED2364C /* iconCamera.png in Resources */, - 44094B30260168D12A1B078B /* iconCamera@2x.png in Resources */, - FACFADCC24B5EA6164BEED1E /* it.lproj in Resources */, - 853D46F1F95D6100AA40EEA4 /* ja.lproj in Resources */, - 97B74CC70B829946B13F17E3 /* nl.lproj in Resources */, - 7658344A7414E0854413251C /* pt-PT.lproj in Resources */, - 44FA51EB9454715BB46D82C6 /* pt.lproj in Resources */, - 4F609941BBD237787817E8D4 /* ru.lproj in Resources */, - 3F0714F61A82801D3B8346D8 /* zh-Hans.lproj in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ - 03B1113910FCC7AF99D3DF50 /* Sources */ = { + 029723AFCB25A112292F8B5D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BA92F2405732E56D9E8681C7 /* MBProgressHUD.m in Sources */, - 31BB9492AFDA8C9999559AAB /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */, + 2CA58B9FEE2DDB8B14BA1F23 /* NSArray+ObjectiveSugar.m in Sources */, + 4659C206956E794BF2D52606 /* NSDictionary+ObjectiveSugar.m in Sources */, + FCEA38D1DBA93B4503846D60 /* NSMutableArray+ObjectiveSugar.m in Sources */, + 87B0BFF3D48984DDBA43C5FA /* NSNumber+ObjectiveSugar.m in Sources */, + 489796E03BBF60758C999AF7 /* NSSet+ObjectiveSugar.m in Sources */, + F0BAB68B6E7E04C2941BC968 /* NSString+ObjectiveSugar.m in Sources */, + 0730F110A40A070913B76842 /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 068168745DAA472272A25E12 /* Sources */ = { + 289E0F1D0BEBE021C476808C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4C181A8F8BAEB87A2996FE4E /* NSObject+DyCInjection.m in Sources */, - 7332304751F927485FF1FD59 /* NSSet+ClassesList.m in Sources */, - D1E4D8171EA543C83D8C4424 /* Pods-Blog-dyci-dummy.m in Sources */, - E4B7DDDDA99DFC8D50A6C820 /* SFDynamicCodeInjection.m in Sources */, - 3F3B102105C9F3051E716C32 /* SFFileWatcher.m in Sources */, - 0F6CAA25A3F4F17AD757108B /* SFInjectionsNotificationsCenter.m in Sources */, - 26F083E64ADEDC7CC839D698 /* UINib+StoryBoardSupport.m in Sources */, - 0B6C0CCA434D51078E039DAC /* UIViewController+XIBSupport.m in Sources */, + 647C024C22AFAF28054DFD35 /* DDASLLogCapture.m in Sources */, + F7C0D230052F494A190B6190 /* DDASLLogger.m in Sources */, + D573CDB3ABCC67C4971C6A46 /* DDAbstractDatabaseLogger.m in Sources */, + 16F63546E3BFE2B1110D9EC8 /* DDContextFilterLogFormatter.m in Sources */, + 4FD83C988DD7F0F1E402EFA3 /* DDDispatchQueueLogFormatter.m in Sources */, + 4D849158D2C1D5A2847CD985 /* DDFileLogger.m in Sources */, + BBA7326ABC942808CF383F2A /* DDLog.m in Sources */, + 55C39A9BE5BCDBCB9B3B0B45 /* DDMultiFormatter.m in Sources */, + 8723F07E8977751EFA8512EF /* DDTTYLogger.m in Sources */, + 29D34725F1D248782A351FD5 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 16E23CAC6D4B092656274490 /* Sources */ = { + 30BC4D4627033424AF252DE3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2078B49093768B0674C1B482 /* NSDictionary+YapDatabase.m in Sources */, - CA7EB85F1C5BC4A194991562 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */, - 5D075462E1BA7190B488486C /* YDBCKAttachRequest.m in Sources */, - BBFA611B5899BD31E6C6A6C7 /* YDBCKChangeQueue.m in Sources */, - F7F38349537CD19B790CCB36 /* YDBCKChangeRecord.m in Sources */, - 1AADB49BA9D1B7CB4ABF6F20 /* YDBCKChangeSet.m in Sources */, - 6368742B1BD0BB139888A4BE /* YDBCKMappingTableInfo.m in Sources */, - 1D74412FA608B2E105AF99AE /* YDBCKMergeInfo.m in Sources */, - CFE4FB2A7155A6A0F4275A3C /* YDBCKRecord.m in Sources */, - EE9DB7E03B202EDF18A7A42C /* YDBCKRecordInfo.m in Sources */, - C634C280C4300E6A0C646E49 /* YDBCKRecordTableInfo.m in Sources */, - 89837DE07B8D50E2967E08CF /* YapCache.m in Sources */, - CA54A939953D38E6875C9F42 /* YapCollectionKey.m in Sources */, - 28FE9672F83F5BB97074B2DB /* YapDatabase.m in Sources */, - 0A9DBEC8B5D7241CA7C019EF /* YapDatabaseCloudKit.m in Sources */, - DDA21D12A0B46FC9015F5D44 /* YapDatabaseCloudKitConnection.m in Sources */, - F8462834ED0701ADCA869ABE /* YapDatabaseCloudKitOptions.m in Sources */, - F43CFDA9CD6D48DD1556F35D /* YapDatabaseCloudKitTransaction.m in Sources */, - 66BBA89A9E0E00981CCEAD15 /* YapDatabaseCloudKitTypes.m in Sources */, - 2E9D875E8CB2A76737F34920 /* YapDatabaseConnection.m in Sources */, - F02543E2AEB22EC50BF27DE8 /* YapDatabaseConnectionDefaults.m in Sources */, - BFC567E760BE5DA7DFC7DC18 /* YapDatabaseConnectionState.m in Sources */, - 6F98BB58497A4B9F1DEE3BD9 /* YapDatabaseExtension.m in Sources */, - DC79C0BD7FDEEAD775BC259A /* YapDatabaseExtensionConnection.m in Sources */, - E6D403BFB899C113772B89E3 /* YapDatabaseExtensionTransaction.m in Sources */, - 601AEBC0CC26A06CE5054A92 /* YapDatabaseFilteredView.m in Sources */, - 78629269CC95AF75A98BA19C /* YapDatabaseFilteredViewConnection.m in Sources */, - CF31C80DC4D60D9823D67D48 /* YapDatabaseFilteredViewTransaction.m in Sources */, - D87B42B1DA6746B18BE9FA5B /* YapDatabaseFilteredViewTypes.m in Sources */, - 740DAD7997A499D732640C6C /* YapDatabaseFullTextSearch.m in Sources */, - 4283E4F6A0F1CAEEDBBCD4BF /* YapDatabaseFullTextSearchConnection.m in Sources */, - 7307B08E5844A9C280225D90 /* YapDatabaseFullTextSearchHandler.m in Sources */, - BDED5A65178DD6F26EE22702 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, - 317CFEEDB2848A8FD409A50F /* YapDatabaseFullTextSearchTransaction.m in Sources */, - 6A3688BB94FB4F874B59FC53 /* YapDatabaseLogging.m in Sources */, - F12A0F2DB5D2C27F5BE35875 /* YapDatabaseManager.m in Sources */, - 8C5D36EA4BC591FDB0F5C74C /* YapDatabaseOptions.m in Sources */, - 700BB04BD818F0D75FEA716E /* YapDatabaseQuery.m in Sources */, - CED1B21879C98CBE83335C6A /* YapDatabaseRelationship.m in Sources */, - 97E987F1C4F17F3D5A74C95D /* YapDatabaseRelationshipConnection.m in Sources */, - 54BC32B7D3DA95EE77EF1B0A /* YapDatabaseRelationshipEdge.m in Sources */, - A269E128175C6F7FCFBE9733 /* YapDatabaseRelationshipOptions.m in Sources */, - D7F3836685955E380B72CF15 /* YapDatabaseRelationshipTransaction.m in Sources */, - 696386EA4448035DB15647DF /* YapDatabaseSearchQueue.m in Sources */, - 06B4A6A1D18FB459C9D42814 /* YapDatabaseSearchResultsView.m in Sources */, - 1400D058565D714ED4F6FAE3 /* YapDatabaseSearchResultsViewConnection.m in Sources */, - 598C9EC39DF87BFB5D3C98BB /* YapDatabaseSearchResultsViewOptions.m in Sources */, - 862972EAC3F820ADE0AADFE4 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, - AF579D9221ECBF19AC1B2604 /* YapDatabaseSecondaryIndex.m in Sources */, - F692961C9F213BE5DAB6091F /* YapDatabaseSecondaryIndexConnection.m in Sources */, - 3AE3672685E458AFCD2F44FB /* YapDatabaseSecondaryIndexHandler.m in Sources */, - 630BAF3F26F7AD6EDB919BD9 /* YapDatabaseSecondaryIndexOptions.m in Sources */, - 4CC7582DFA3FF4C144AF95E7 /* YapDatabaseSecondaryIndexSetup.m in Sources */, - B3022824E71311EFFCB57FA0 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, - AC1C85229F443E5032CE7443 /* YapDatabaseStatement.m in Sources */, - 2E6FA1D18CC45EF8167197DA /* YapDatabaseTransaction.m in Sources */, - 7F46727943E4F2FE20E40D81 /* YapDatabaseView.m in Sources */, - 5A31C5CAEC23C52D2E3D22B9 /* YapDatabaseViewChange.m in Sources */, - 83A741FFD6E1EC529F193320 /* YapDatabaseViewConnection.m in Sources */, - EE45AA7E08DBC9A4CED4079C /* YapDatabaseViewMappings.m in Sources */, - B1EF4D2D4FB5293EBCFBC361 /* YapDatabaseViewOptions.m in Sources */, - D685A4AD682893037CEDC033 /* YapDatabaseViewPage.mm in Sources */, - F0F8BD75ADEA165EC5C5BA4E /* YapDatabaseViewPageMetadata.m in Sources */, - 0C61B768EA3C5845588195D5 /* YapDatabaseViewRangeOptions.m in Sources */, - B8BFF08D923FFBDDF4BE4D45 /* YapDatabaseViewState.m in Sources */, - 898BC7757444DDEBECA373A4 /* YapDatabaseViewTransaction.m in Sources */, - E87CC9E89F45FC44EDC38DCE /* YapDatabaseViewTypes.m in Sources */, - 89C6E7572F747013402F5A1F /* YapDebugDictionary.m in Sources */, - 38959F59DBB16864888169B2 /* YapMemoryTable.m in Sources */, - 9CF06A762903D205D94AA832 /* YapMurmurHash.m in Sources */, - E05CC058D20BC6F5B9D62748 /* YapNull.m in Sources */, - 02A3F1626976266045E1CAE9 /* YapRowidSet.mm in Sources */, - 94FA2A6F3DC028A304A21992 /* YapSet.m in Sources */, - 8D046694D1A081870958CDB6 /* YapTouch.m in Sources */, - A13CAE22B770870B02B0B8E2 /* YapWhitelistBlacklist.m in Sources */, + 0EE86BDF3F95F3942BC58D7E /* FAImageView.m in Sources */, + BC6CD5EC915DAD06D3F4CA1A /* NSString+FontAwesome.m in Sources */, + 8FFF553D83B004C63AD6E3E3 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */, + 8EF01D6088512E0946A67B30 /* UIFont+FontAwesome.m in Sources */, + B4DC8C489DF56A84752CDFB3 /* UIImage+FontAwesome.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 19AC6EAC3239740D1A87482B /* Sources */ = { + 36CC12A69037168BE620AB8E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1F75360C0928A1A733F002E3 /* Pods-samhuri.net-dummy.m in Sources */, + 1720F225D461895EBA71E5ED /* NSObject+DyCInjection.m in Sources */, + 9EE286C2824470FF308B76B5 /* NSSet+ClassesList.m in Sources */, + 06B765C1758D5850F18ADEF8 /* Pods-Blog-dyci-dummy.m in Sources */, + BFF292F2FE73AA30D7989727 /* SFDynamicCodeInjection.m in Sources */, + 8466A08591303857CAB7B219 /* SFFileWatcher.m in Sources */, + 4C9F2D62B8A88D90830E0962 /* SFInjectionsNotificationsCenter.m in Sources */, + 5F271A96FBDD391AC18CD4FA /* UINib+StoryBoardSupport.m in Sources */, + 9DFFEA5305F8EBA63F971EA7 /* UIViewController+XIBSupport.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1A1BA910EF2AAB1557F5143B /* Sources */ = { + 5C8CDA11A435633D72374ABA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 671AA13C202600F707D7683A /* CALayer+PromiseKit.m in Sources */, + 77847A4E1E5D914B8FEF1F92 /* NSNotificationCenter+PromiseKit.m in Sources */, + 949235AAD32E3428F281F029 /* NSURLConnection+PromiseKit.m in Sources */, + 08F9BEBEF81DC5B71FB90F1D /* PMKPromise+Pause.m in Sources */, + C6FBA98297064F8DF2424DD5 /* PMKPromise+Until.m in Sources */, + A5B44CCE660C209747F09565 /* PMKPromise+When.m in Sources */, + 976787BA31567C92207D33B1 /* PMKPromise.m in Sources */, + CED4450FBC744BC5713F078E /* Pods-Blog-PromiseKit-dummy.m in Sources */, + 7BF7AE5B55528AAB475A6557 /* UIActionSheet+PromiseKit.m in Sources */, + DC889096BB2C749C7A236309 /* UIAlertView+PromiseKit.m in Sources */, + 70B3FDABCFC197AD04D6A1E7 /* UIView+PromiseKit.m in Sources */, + B18417141EFE151FA0C66E50 /* UIViewController+PromiseKit.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1A95EAD7D7D5DE4ABCB1E793 /* Sources */ = { + 822EEAF0E43CCADE1B726315 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 09A76763A2E0359A0EAF4743 /* NSDictionary+YapDatabase.m in Sources */, - 389CC7C595810690AC4F9477 /* Pods-Blog-YapDatabase-dummy.m in Sources */, - 02547D51A2C2F8C01EBBA59A /* YDBCKAttachRequest.m in Sources */, - 7BBE1FEBD8510E03E485BA86 /* YDBCKChangeQueue.m in Sources */, - 7A07FEE90A4AAAEDF08B08F3 /* YDBCKChangeRecord.m in Sources */, - 4596C8F591570BFEA8B0AA48 /* YDBCKChangeSet.m in Sources */, - 4A0E4BE6BA3CAB01172A7160 /* YDBCKMappingTableInfo.m in Sources */, - F9603754229CEF292F09B37A /* YDBCKMergeInfo.m in Sources */, - 3D4F37D9F38D9118298EB8F2 /* YDBCKRecord.m in Sources */, - D7D91F271089C77B03C34BC1 /* YDBCKRecordInfo.m in Sources */, - 64931B16F0AE64840E50776E /* YDBCKRecordTableInfo.m in Sources */, - 62B04923FFF40CE24F3EB8D9 /* YapCache.m in Sources */, - 3FF5F8E65F95BDCDDDB1F156 /* YapCollectionKey.m in Sources */, - CA7E6B9D12EB45507D57ADE7 /* YapDatabase.m in Sources */, - CCFF0C75FB7C1BF8CD126172 /* YapDatabaseCloudKit.m in Sources */, - 8DEE065E2B7CAD5E788F1694 /* YapDatabaseCloudKitConnection.m in Sources */, - 78ACEE0A20CEDD3F8F40601B /* YapDatabaseCloudKitOptions.m in Sources */, - 2EC7BD423507DFCBE95D8E89 /* YapDatabaseCloudKitTransaction.m in Sources */, - F8BAA0756F5686504C6BCE6D /* YapDatabaseCloudKitTypes.m in Sources */, - 871323991FE5F5FFD6D494AC /* YapDatabaseConnection.m in Sources */, - 0D455A540F1208658E387BF3 /* YapDatabaseConnectionDefaults.m in Sources */, - 9B59F86BA9F768A81C49CBBC /* YapDatabaseConnectionState.m in Sources */, - 4D32179BE8B1D2ADE6B47FC5 /* YapDatabaseExtension.m in Sources */, - 8E089D738485289A17AFECD2 /* YapDatabaseExtensionConnection.m in Sources */, - D2443038E946268CE02AD0BA /* YapDatabaseExtensionTransaction.m in Sources */, - 963A64E58652D08395E1936F /* YapDatabaseFilteredView.m in Sources */, - B014C53F2219834356EBD3F5 /* YapDatabaseFilteredViewConnection.m in Sources */, - C99A5422607A850076E62283 /* YapDatabaseFilteredViewTransaction.m in Sources */, - D9052A1F0B123A8347B408CE /* YapDatabaseFilteredViewTypes.m in Sources */, - BE000D04A0CD2A046A72B76D /* YapDatabaseFullTextSearch.m in Sources */, - E01725E9CBF7A1F36D4C460D /* YapDatabaseFullTextSearchConnection.m in Sources */, - 7F445E137F37282DAB5E8571 /* YapDatabaseFullTextSearchHandler.m in Sources */, - 4A90171444F708245C5035D0 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, - 9C43BD57A7426F926D045B82 /* YapDatabaseFullTextSearchTransaction.m in Sources */, - 80AA00517C1DD3C73A370372 /* YapDatabaseLogging.m in Sources */, - F25835FEC33F5B39AAE8683F /* YapDatabaseManager.m in Sources */, - A93C678956C3752DC11B509D /* YapDatabaseOptions.m in Sources */, - C42DDEA440B46D9055F13F66 /* YapDatabaseQuery.m in Sources */, - 2322D7F800EF87EBEDA25406 /* YapDatabaseRelationship.m in Sources */, - 008C3E74C1C12AAA19CE4164 /* YapDatabaseRelationshipConnection.m in Sources */, - 162BCC6B284F1D323D6C178F /* YapDatabaseRelationshipEdge.m in Sources */, - F7875444042582062E71C77F /* YapDatabaseRelationshipOptions.m in Sources */, - 4984E149B7D43CFE121BC83C /* YapDatabaseRelationshipTransaction.m in Sources */, - 6752FC9B469170B390D1E75E /* YapDatabaseSearchQueue.m in Sources */, - 9DBA31DA0CD1C09106B208BA /* YapDatabaseSearchResultsView.m in Sources */, - 827C56E6150C97734E3A30FE /* YapDatabaseSearchResultsViewConnection.m in Sources */, - 0D9FE163730BFC28AF2A8571 /* YapDatabaseSearchResultsViewOptions.m in Sources */, - 06323A17E8CC7E5D9335C111 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, - A14B7B87F47F19B3BF0BC680 /* YapDatabaseSecondaryIndex.m in Sources */, - 56FE7756F243B63EA920C1A9 /* YapDatabaseSecondaryIndexConnection.m in Sources */, - CB223926804423E49A5A5824 /* YapDatabaseSecondaryIndexHandler.m in Sources */, - 1BC63E22FF3860025424C1AC /* YapDatabaseSecondaryIndexOptions.m in Sources */, - 7ECC9886787400EC4BFB86DF /* YapDatabaseSecondaryIndexSetup.m in Sources */, - DC8A9F87DF3E68A27379A1D6 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, - 7E225C559075D23FBB7A9300 /* YapDatabaseStatement.m in Sources */, - 80B1C9B2C6898B28A9C5EEE7 /* YapDatabaseTransaction.m in Sources */, - C19503EBFD338DF290A1E989 /* YapDatabaseView.m in Sources */, - D81761F971BFF9691A2D1AE2 /* YapDatabaseViewChange.m in Sources */, - EC7888F313861EB2A3C15930 /* YapDatabaseViewConnection.m in Sources */, - 0A3ACD02E348E28E61AA4E45 /* YapDatabaseViewMappings.m in Sources */, - 62A2B20FCBB09CBD1A4D466E /* YapDatabaseViewOptions.m in Sources */, - 2D8A04FCC3E235ED7FC51448 /* YapDatabaseViewPage.mm in Sources */, - BCBC22418AA5B6573FDA41C0 /* YapDatabaseViewPageMetadata.m in Sources */, - 269EA710A2E2BA29BD12A2F9 /* YapDatabaseViewRangeOptions.m in Sources */, - 668D70CF2C0E7D460A2A1986 /* YapDatabaseViewState.m in Sources */, - 7F2BC936C8B67D9EF6C931A1 /* YapDatabaseViewTransaction.m in Sources */, - 8506ECC91995F0C425DA43C6 /* YapDatabaseViewTypes.m in Sources */, - 69EAAFE5FA014AEA185B79F0 /* YapDebugDictionary.m in Sources */, - ABA5450142B1DAC6957036D7 /* YapMemoryTable.m in Sources */, - 980635C99D0DF6BBA01D7856 /* YapMurmurHash.m in Sources */, - 6D89A1B0E087B0812CBA75EC /* YapNull.m in Sources */, - CE58430AB89390ABBCF35F0B /* YapRowidSet.mm in Sources */, - 8B9C4F2BF9E756BA37302392 /* YapSet.m in Sources */, - 23F5A1C57238EE889C5D7F7B /* YapTouch.m in Sources */, - 29EEA30B90CC88EAD902908E /* YapWhitelistBlacklist.m in Sources */, + 7A6CBF8CBFB20965072E7CE1 /* Pods-Blog-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2D153056967B062859515B36 /* Sources */ = { + 83C284EC341B68287CF1CB9C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3A2ADA8C9FEA07027C8A59B1 /* MBProgressHUD.m in Sources */, - E1AAABEFAB34CCF4388D1ECE /* Pods-Blog-MBProgressHUD-dummy.m in Sources */, + 8A72306D222BF256855D741E /* MBProgressHUD.m in Sources */, + AF920BB6DCDF4428D985F48A /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2EAB26F032E23844D4CF0B1E /* Sources */ = { + A3831953B6F632226E67CF21 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5FB4A07C3A86CFB75FFB5B0A /* NSArray+ObjectiveSugar.m in Sources */, - 6CA18F5BC87264BADBB06DBE /* NSDictionary+ObjectiveSugar.m in Sources */, - B2A1754FD9096B0C3FA42A2B /* NSMutableArray+ObjectiveSugar.m in Sources */, - CE6FFB3A0C3F65F28C85E628 /* NSNumber+ObjectiveSugar.m in Sources */, - F028B587A53814CF348686C3 /* NSSet+ObjectiveSugar.m in Sources */, - 57E08F67C686B24405B3446E /* NSString+ObjectiveSugar.m in Sources */, - 0CF1CC6E91822905E427C234 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */, + 47653146227DD367FB93579F /* EXTRuntimeExtensions.m in Sources */, + C5A3C0F9AFE62E4E7100ED4D /* EXTScope.m in Sources */, + 76F5354BB7DEC08D30EBD320 /* MTLJSONAdapter.m in Sources */, + 802C253CA91538E2E0E7F99F /* MTLModel+NSCoding.m in Sources */, + 08923DB1B91EE706A8E6D870 /* MTLModel.m in Sources */, + C64B194A14B64B1771C2B911 /* MTLReflection.m in Sources */, + C6603FFF9C35D119FC738712 /* MTLTransformerErrorHandling.m in Sources */, + 7294BFE6AACD8F1F41826E48 /* MTLValueTransformer.m in Sources */, + 62CBBED80E15A3BD22DB9EBC /* NSArray+MTLManipulationAdditions.m in Sources */, + BF466CFE3912EECFB530C52C /* NSDictionary+MTLJSONKeyPath.m in Sources */, + 67A01F4B45A0398599F94485 /* NSDictionary+MTLManipulationAdditions.m in Sources */, + 226B768E2BC94148CDB1336A /* NSDictionary+MTLMappingAdditions.m in Sources */, + 411F9813592B8F94B63B3971 /* NSError+MTLModelException.m in Sources */, + A86EA3D67DAA4AC4771EAB65 /* NSObject+MTLComparisonAdditions.m in Sources */, + 9E1B6DDF9D255FBD792BF9A3 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, + 45CA6E2ED4475F6CD60F9170 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, + EA22E1BEF349328677F3E118 /* Pods-Blog-Mantle-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 41D88FE4B0CD302C248A6397 /* Sources */ = { + A456A2AB943ED2498DD7C48F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BBC6870371DE9523ACE5921B /* FAImageView.m in Sources */, - C3313F7A2EBD21A7E104381B /* NSString+FontAwesome.m in Sources */, - 7308F09D2787A811C5AFAFE6 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */, - 55028B4D13C905DCDE26377E /* UIFont+FontAwesome.m in Sources */, - 0ECCB7050A52DC2425D6A7B6 /* UIImage+FontAwesome.m in Sources */, + 84D10AF87CF9B0CDB761C0F8 /* DDASLLogCapture.m in Sources */, + F83B6A38CD8E094BC46050F5 /* DDASLLogger.m in Sources */, + 3F3FF90091495BAB92CD1D47 /* DDAbstractDatabaseLogger.m in Sources */, + AD59335B000A0DCB60A34ACE /* DDContextFilterLogFormatter.m in Sources */, + C3FECB1320330B4C9F4E251F /* DDDispatchQueueLogFormatter.m in Sources */, + 29E38942118D86C2C6C7776D /* DDFileLogger.m in Sources */, + 73EC3492CA749A2CDF6301DF /* DDLog.m in Sources */, + 437ADFADBC8D58931185FD07 /* DDMultiFormatter.m in Sources */, + 8315C4D535C79D0D9D319E90 /* DDTTYLogger.m in Sources */, + 6C91FB79139DC218D81853D5 /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4341FDB4458751FEC9C0AA7F /* Sources */ = { + A64C7D7CCE3EE4AEADB983A6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2D8AAF6B235B594A2C69994E /* OMGFormURLEncode.m in Sources */, - AF3486C5A77741D359833389 /* OMGHTTPURLRQ.m in Sources */, - F7A2B4505D30D65D46AC0935 /* OMGUserAgent.m in Sources */, - 5BFA0CEA175DA99F05710845 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */, + FE4483CBA0B3B904681D9571 /* OMGFormURLEncode.m in Sources */, + A0EBD9E5CED5EA4F070D1240 /* OMGHTTPURLRQ.m in Sources */, + 0DA555FD0B7ED69EDAFFC6D7 /* OMGUserAgent.m in Sources */, + 893D86C42BE715BF335D589E /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 45FD6272A5ACDBE4ED3FA39E /* Sources */ = { + A6D4D7013B15B2589DF8A1A8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 00EF80D2EB0E9EB28081410F /* OMGFormURLEncode.m in Sources */, - 5CBAC22A405697FC159750FE /* OMGHTTPURLRQ.m in Sources */, - C718C00357E2672EBD89EA63 /* OMGUserAgent.m in Sources */, - 984D3CDA6C07C0A399389D91 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */, + 2DE4537F242303C013DA5930 /* NSArray+ObjectiveSugar.m in Sources */, + DB5F9E8B606C1978B6E141B6 /* NSDictionary+ObjectiveSugar.m in Sources */, + 3E9E37F08781622ABEFB3352 /* NSMutableArray+ObjectiveSugar.m in Sources */, + 58FDB5919E15700B45A3DA70 /* NSNumber+ObjectiveSugar.m in Sources */, + B2AD164BCA6268CD7F07D4CA /* NSSet+ObjectiveSugar.m in Sources */, + CFBCD1E0865FF1929DB29590 /* NSString+ObjectiveSugar.m in Sources */, + F94420F56B77B0E89D50E2A8 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7227691E7645F5DA6EC6E46B /* Sources */ = { + C5BF87D7A62A5D226DBF2967 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AF6C6F9B878C7A58A3CE84E3 /* CALayer+PromiseKit.m in Sources */, - 4E6FF07590E89FD6811DFCE2 /* NSNotificationCenter+PromiseKit.m in Sources */, - C81133360E8D319060FBEED9 /* NSURLConnection+PromiseKit.m in Sources */, - 45413FDBC6FA0D484BEBD67B /* PMKPromise+Pause.m in Sources */, - BF6318467D8559861283D70D /* PMKPromise+Until.m in Sources */, - 5B91A7001ABDB0B159A6A605 /* PMKPromise+When.m in Sources */, - A4B9FD3521B5843A1AB2924D /* PMKPromise.m in Sources */, - E00F55EF439E7B61B60E1AB1 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */, - 01A4F724F2B0EEBE6DD04A30 /* UIActionSheet+PromiseKit.m in Sources */, - 6C8A56EB97A83A0ED61F75AC /* UIAlertView+PromiseKit.m in Sources */, - 555D9FF0F7CB80379897CBB5 /* UIView+PromiseKit.m in Sources */, - 681315E8411ACB2BA91AC807 /* UIViewController+PromiseKit.m in Sources */, + FA9567D0747DFECE6FFEC058 /* NSDictionary+YapDatabase.m in Sources */, + 904CCA6D53ECDCA8C1C8CC45 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */, + 9203D26B3457A4EB0FD3F561 /* YDBCKAttachRequest.m in Sources */, + 19BE41899EDC487AD72CDE6E /* YDBCKChangeQueue.m in Sources */, + 94FE8CBC8A7BAE618E5236FD /* YDBCKChangeRecord.m in Sources */, + 2EEBC974CB111F7BA056C3CE /* YDBCKChangeSet.m in Sources */, + 2BEA55B4B150722724C5E7EF /* YDBCKMappingTableInfo.m in Sources */, + BEB2FF99318B10AA3C733F89 /* YDBCKMergeInfo.m in Sources */, + 4482A974917D24DA146F4631 /* YDBCKRecord.m in Sources */, + 4506F91EF2D3222F684A59C5 /* YDBCKRecordInfo.m in Sources */, + F3337E1689F494F191DF086C /* YDBCKRecordTableInfo.m in Sources */, + D7FFC617C8AFBE7CE419B4A0 /* YapCache.m in Sources */, + EC4C8AA78886BA7F3464D6A5 /* YapCollectionKey.m in Sources */, + 53BE664DEFC604F98EE55123 /* YapDatabase.m in Sources */, + F9B23C71FCBA07AD7E3340C5 /* YapDatabaseCloudKit.m in Sources */, + 882A9080D29034FB5F657D0D /* YapDatabaseCloudKitConnection.m in Sources */, + 361838378A8F46808D480B0B /* YapDatabaseCloudKitOptions.m in Sources */, + 5316265ED08A3A1D0884375A /* YapDatabaseCloudKitTransaction.m in Sources */, + ACEF25DFE6F3A8CEB8FBB5E7 /* YapDatabaseCloudKitTypes.m in Sources */, + 70D789013E6BCCE797C2BA10 /* YapDatabaseConnection.m in Sources */, + 332163BF23EE294BABFB8DD5 /* YapDatabaseConnectionDefaults.m in Sources */, + 4CEE884E81983CB5CA7231D1 /* YapDatabaseConnectionState.m in Sources */, + D6271F4FDFF45F4408D26039 /* YapDatabaseExtension.m in Sources */, + B0DA87C0E3F889EAD30B2D75 /* YapDatabaseExtensionConnection.m in Sources */, + 5E37DC76E4B761DEC6155D81 /* YapDatabaseExtensionTransaction.m in Sources */, + E517BAF3731C543A80E1242E /* YapDatabaseFilteredView.m in Sources */, + 1CEB1C5D30301ABB38B73B22 /* YapDatabaseFilteredViewConnection.m in Sources */, + E1CDC95B8228EFAABA82BF19 /* YapDatabaseFilteredViewTransaction.m in Sources */, + 46408695ACCE12C9AE77A179 /* YapDatabaseFilteredViewTypes.m in Sources */, + C8116D31FF4C3D5D663F41EF /* YapDatabaseFullTextSearch.m in Sources */, + 59CAAE2877DB0BEE51FEDA24 /* YapDatabaseFullTextSearchConnection.m in Sources */, + A239A0DC9FF037B046A03924 /* YapDatabaseFullTextSearchHandler.m in Sources */, + 2B18E68AB3BD67922E89FD53 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, + D1D338B961733063DE277F5D /* YapDatabaseFullTextSearchTransaction.m in Sources */, + 35799F6993AB86F9EDF876DE /* YapDatabaseLogging.m in Sources */, + E10C1811CAD301C48B810F03 /* YapDatabaseManager.m in Sources */, + 4B3B179E367295DEE5EA3C67 /* YapDatabaseOptions.m in Sources */, + 2EADA69FBB6852A9F28FC81F /* YapDatabaseQuery.m in Sources */, + 032F04B47E08177E89894B88 /* YapDatabaseRelationship.m in Sources */, + FCCB32ADDFB26A113C554EA6 /* YapDatabaseRelationshipConnection.m in Sources */, + B1A8934EF6791E3F9064C0DA /* YapDatabaseRelationshipEdge.m in Sources */, + CD492E46FD7A18057EEC8EC1 /* YapDatabaseRelationshipOptions.m in Sources */, + AA840E442D7908F96C58C13F /* YapDatabaseRelationshipTransaction.m in Sources */, + F41DDB6904ADD968BA5286A4 /* YapDatabaseSearchQueue.m in Sources */, + 9A03C9B25B1BD8F483B1CDDE /* YapDatabaseSearchResultsView.m in Sources */, + 02633754BEC86A4F5E795473 /* YapDatabaseSearchResultsViewConnection.m in Sources */, + 5C77FF5BB5CEA5B2CDBADDC2 /* YapDatabaseSearchResultsViewOptions.m in Sources */, + A19733A1ABBEB1A0513C9EB1 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, + 267BC540C21D4A46E67CF1A3 /* YapDatabaseSecondaryIndex.m in Sources */, + 45823C01A4E5CD396D4BA721 /* YapDatabaseSecondaryIndexConnection.m in Sources */, + 94A28D459CC8B3C0692A5BF2 /* YapDatabaseSecondaryIndexHandler.m in Sources */, + E1754C86DC1F2F89333D5398 /* YapDatabaseSecondaryIndexOptions.m in Sources */, + AA4D6241DA7E735C8494621F /* YapDatabaseSecondaryIndexSetup.m in Sources */, + DF535824B8181F1A748599DB /* YapDatabaseSecondaryIndexTransaction.m in Sources */, + AF42C4B2A67DBC8090419680 /* YapDatabaseStatement.m in Sources */, + 7CD8843AFE086468FEFFF3EA /* YapDatabaseTransaction.m in Sources */, + 9EFB648848D35D5F971D3259 /* YapDatabaseView.m in Sources */, + 87DE6875FA51B9C9088FC439 /* YapDatabaseViewChange.m in Sources */, + 98BE1BC20D24D2FF86E50FFE /* YapDatabaseViewConnection.m in Sources */, + C5C00A2D7CA1D073D3B7F31C /* YapDatabaseViewMappings.m in Sources */, + 52279138C2472B6B20F02713 /* YapDatabaseViewOptions.m in Sources */, + 971F4AE8770DE545180630F5 /* YapDatabaseViewPage.mm in Sources */, + 34E484D317F42980F95F8153 /* YapDatabaseViewPageMetadata.m in Sources */, + 484C4AF0FCFB815E2DF5E36C /* YapDatabaseViewRangeOptions.m in Sources */, + E59A2109D5A26079CC0D189A /* YapDatabaseViewState.m in Sources */, + AACE79482817E4901850AC27 /* YapDatabaseViewTransaction.m in Sources */, + A6C9D3FF87C19312E76B1EAA /* YapDatabaseViewTypes.m in Sources */, + 5D6179AF54F053FC28F1B846 /* YapDebugDictionary.m in Sources */, + A647FC1C0A4ED4420402313F /* YapMemoryTable.m in Sources */, + E871613FA4A37B63CD931AA4 /* YapMurmurHash.m in Sources */, + A7E68FF641354FE390DDCE5C /* YapNull.m in Sources */, + 7C00EB68FE53CD7F0E94063E /* YapRowidSet.mm in Sources */, + AA5406CAE6B5561C0B577B0F /* YapSet.m in Sources */, + D9B29F604339B6BFCF638F52 /* YapTouch.m in Sources */, + 5CFB125C9057C2EE0BB1BDFF /* YapWhitelistBlacklist.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 860229C1A8DBE758825C4227 /* Sources */ = { + C95F59E73C8C763829798C92 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 94BE78190C2737277185520D /* BITActivityIndicatorButton.m in Sources */, - 6F1D542369F35F9B8D9D640B /* BITAppStoreHeader.m in Sources */, - 758EFA378869E03BA1331D3B /* BITAppVersionMetaInfo.m in Sources */, - 8C0304B1E956A02CA1F24A3F /* BITArrowImageAnnotation.m in Sources */, - E4CAE5157E74CE9E11D04C23 /* BITAttributedLabel.m in Sources */, - 5BF63B7234D4618E25B3A5A6 /* BITAuthenticationViewController.m in Sources */, - BC9E1A83A4441DD6518B68D4 /* BITAuthenticator.m in Sources */, - 5DE003EB8D2EABDF00EDBB1C /* BITBlurImageAnnotation.m in Sources */, - 3B4B26C28AE1D73FEA28E2C7 /* BITCrashAttachment.m in Sources */, - 94656B2F30C95BA0905B5154 /* BITCrashDetails.m in Sources */, - 51DC872B4ED8A579377C6106 /* BITCrashManager.m in Sources */, - 982FA86CD51AA95CAB005FD8 /* BITCrashMetaData.m in Sources */, - 11A68B2D1F0DD651E71F8290 /* BITCrashReportTextFormatter.m in Sources */, - 9D357C0F7073E1E9BE272EFD /* BITFeedbackActivity.m in Sources */, - 0097FD1F383B8AAD531EDA30 /* BITFeedbackComposeViewController.m in Sources */, - 89E8A947D1794ED8B0C8E479 /* BITFeedbackListViewCell.m in Sources */, - F89D31ADC8AE7DE3B2699165 /* BITFeedbackListViewController.m in Sources */, - B0A283E04CEAB953EBB6B873 /* BITFeedbackManager.m in Sources */, - BF3C336E70524B3495DA7FD1 /* BITFeedbackMessage.m in Sources */, - 0E3226F3116EC6833859B7FD /* BITFeedbackMessageAttachment.m in Sources */, - EEC59969A820ED4750677479 /* BITFeedbackUserDataViewController.m in Sources */, - 3656C525B641AE4813545424 /* BITHTTPOperation.m in Sources */, - F6AEBC821E8F7214BC4600B8 /* BITHockeyAppClient.m in Sources */, - 53E1BFADA5A8C0CE6F0857DD /* BITHockeyAttachment.m in Sources */, - ABD7706A209D7EA86F6E6E2C /* BITHockeyBaseManager.m in Sources */, - 06C9E68113FF9274BE5797AA /* BITHockeyBaseViewController.m in Sources */, - 145885C42ED68E062A79E894 /* BITHockeyHelper.m in Sources */, - E9D61300A119B987410CC635 /* BITHockeyManager.m in Sources */, - A2DBEB4E00810B592139F133 /* BITImageAnnotation.m in Sources */, - 365115926027C6DB435E30D1 /* BITImageAnnotationViewController.m in Sources */, - B8134259D7BDEEFD32ADE0EA /* BITKeychainUtils.m in Sources */, - 3362D47005F3E9BEA358352B /* BITRectangleImageAnnotation.m in Sources */, - 9586D351FD73BEE55101F1C9 /* BITStoreButton.m in Sources */, - 5E165EAB71BAD19770E9C68E /* BITStoreUpdateManager.m in Sources */, - 6888425F03EFAF28A0CDF167 /* BITUpdateManager.m in Sources */, - 66EEBA507EE8CF4E0EDEC037 /* BITUpdateViewController.m in Sources */, - 6BF3BE2FDFEA4673488DB5AF /* BITWebTableViewCell.m in Sources */, - 9A7854060F3E36645049D448 /* HockeySDKPrivate.m in Sources */, - ED71612B7E5C55E67A9CD3D7 /* Pods-Blog-HockeySDK-dummy.m in Sources */, + 270881A8F2A8DE5D31DF9DBF /* Pods-samhuri.net-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9365FE868990E97DC4B2BC25 /* Sources */ = { + CFA2033AFE5C498FC14D1AD6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5C93875B4BC69E96444A77E7 /* EXTRuntimeExtensions.m in Sources */, - 88B4B17DA97B965289E882D7 /* EXTScope.m in Sources */, - E804560DB814B5D3EB6B575D /* MTLJSONAdapter.m in Sources */, - E3BA482292B60E0D073C5181 /* MTLModel+NSCoding.m in Sources */, - 583F572EEB82DFD4ECB485B3 /* MTLModel.m in Sources */, - 5D32CBDAEBF6DFF7CF6FDFB2 /* MTLReflection.m in Sources */, - DD336455A1A189E6ECF74E72 /* MTLTransformerErrorHandling.m in Sources */, - CB6EB8E9AEDD34BFEEABA58D /* MTLValueTransformer.m in Sources */, - 7A273F90EDE8BA62DAE5BD14 /* NSArray+MTLManipulationAdditions.m in Sources */, - E619955A59DB1672D67519D8 /* NSDictionary+MTLJSONKeyPath.m in Sources */, - F68E476BAFF734CB55FD91EF /* NSDictionary+MTLManipulationAdditions.m in Sources */, - B0165E23FA6EE8302B6F7412 /* NSDictionary+MTLMappingAdditions.m in Sources */, - 0547E26936EECA293D929914 /* NSError+MTLModelException.m in Sources */, - 5EC3E64180520C60B09D7F3E /* NSObject+MTLComparisonAdditions.m in Sources */, - 8088B8B0202F8E1E9C30B8A5 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, - EE9088D88A19811D9C62959D /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, - 2CBAC348FD758DD87B318E35 /* Pods-samhuri.net-Mantle-dummy.m in Sources */, + 8FC625324AC7EA96B4D1D7EE /* EXTADT.m in Sources */, + 5ACC40FFA06D6E21E30433E6 /* EXTConcreteProtocol.m in Sources */, + 89CE0665B545C06FDEA20C39 /* EXTNil.m in Sources */, + 17135209101B3692C47CF6E1 /* EXTRuntimeExtensions.m in Sources */, + 4AA2473D3E0128BDE06E27C8 /* EXTSafeCategory.m in Sources */, + 895FF1D841B70188F877C93D /* EXTScope.m in Sources */, + D56B6F8BAD641A284BF6AC94 /* EXTSelectorChecking.m in Sources */, + 9F826FDEEDD815A3457D1C2B /* NSInvocation+EXT.m in Sources */, + 26E584CD89E60FBB38FA60F2 /* NSMethodSignature+EXT.m in Sources */, + B0B3BBB412586BD1D172CE40 /* Pods-Blog-libextobjc-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 94AAE7F864FE62440AA1AFDC /* Sources */ = { + D5EEBEF5BE43BC9AE0E5642C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D1241EBB44BFF19F6BADEA49 /* EXTADT.m in Sources */, - CE1CAA8EA4FF0F486029B2A8 /* EXTConcreteProtocol.m in Sources */, - C8D92AE7FEADDCA0B6B02FF2 /* EXTNil.m in Sources */, - 13A6A92C6511061D772EFCFE /* EXTRuntimeExtensions.m in Sources */, - 40467043D018E30FB01BFC84 /* EXTSafeCategory.m in Sources */, - C96644955BA8E5B39C0091D6 /* EXTScope.m in Sources */, - 1FB65F9D59C8024201DF562C /* EXTSelectorChecking.m in Sources */, - AB574A6FE2D290A2BEA921F8 /* NSInvocation+EXT.m in Sources */, - D78216778E9E8942F2C61DE7 /* NSMethodSignature+EXT.m in Sources */, - F1E77F9CD684689D26275238 /* Pods-Blog-libextobjc-dummy.m in Sources */, + E8CE98E6C35BA513E70001A2 /* EXTRuntimeExtensions.m in Sources */, + 54BCFC0905B254A2C7B694E3 /* EXTScope.m in Sources */, + 442E0B3BEEC7B700B7DDB11C /* MTLJSONAdapter.m in Sources */, + C6324995954E76371BA617CC /* MTLModel+NSCoding.m in Sources */, + D0FAE53186D7E50388FA0968 /* MTLModel.m in Sources */, + CAA84C40E989DD914062B1DF /* MTLReflection.m in Sources */, + 391149480C5DC86B5843C234 /* MTLTransformerErrorHandling.m in Sources */, + 68A14302852771112B6B66A5 /* MTLValueTransformer.m in Sources */, + AB2ED999D375FB2782964F4B /* NSArray+MTLManipulationAdditions.m in Sources */, + 589417946D005158189C08BD /* NSDictionary+MTLJSONKeyPath.m in Sources */, + 657A4925313C510FB0406EB5 /* NSDictionary+MTLManipulationAdditions.m in Sources */, + 795C2E621AD9E723D5B09D41 /* NSDictionary+MTLMappingAdditions.m in Sources */, + 73FCEB917DBAFFEFC4958B67 /* NSError+MTLModelException.m in Sources */, + AF02515268159636EEE17633 /* NSObject+MTLComparisonAdditions.m in Sources */, + 89A57991E3EB3F8310D4D77E /* NSValueTransformer+MTLInversionAdditions.m in Sources */, + 52942D0DB9200F027FC747D4 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, + CEC1984D4590C2C533571426 /* Pods-samhuri.net-Mantle-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B177E72F2B39EE1471D4B105 /* Sources */ = { + D7A47AD20A8EBF1B98D10CFE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 284F2E5F437DB6893837516D /* EXTRuntimeExtensions.m in Sources */, - 0C02DA37DC23E889BC399B0B /* EXTScope.m in Sources */, - ABFBD203808A4652E07EEE63 /* MTLJSONAdapter.m in Sources */, - 6AF53E7EE87CBB5EEFCCE4DA /* MTLModel+NSCoding.m in Sources */, - 475599A3407596E54E462F7D /* MTLModel.m in Sources */, - 488579FF3BCD2FC028766EFA /* MTLReflection.m in Sources */, - A82B9ED1F21314B3BFA84FCF /* MTLTransformerErrorHandling.m in Sources */, - B2F5837E394A77DFCBD7FDB2 /* MTLValueTransformer.m in Sources */, - 73BB30FA324B7E16D8DBB62C /* NSArray+MTLManipulationAdditions.m in Sources */, - 7CB861D5F9CA795431CFDD6F /* NSDictionary+MTLJSONKeyPath.m in Sources */, - 75F431ABDB92F622987D93F6 /* NSDictionary+MTLManipulationAdditions.m in Sources */, - EBC7A5F91EBC266F144248E3 /* NSDictionary+MTLMappingAdditions.m in Sources */, - 39AC0785B92DEED377498D5C /* NSError+MTLModelException.m in Sources */, - 165DE26398DCBFF6CDD32F60 /* NSObject+MTLComparisonAdditions.m in Sources */, - 8403A27C9246AF1E4134B240 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, - BEC7C66A9177BDE4390FF9C2 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, - 9518B22BF6A2A231D2BE822A /* Pods-Blog-Mantle-dummy.m in Sources */, + 1F346EE4794618A1C330F696 /* OMGFormURLEncode.m in Sources */, + 2E0D68F7A717BB188A46856E /* OMGHTTPURLRQ.m in Sources */, + CCC4D47A3CB0EC6D2A00E6FB /* OMGUserAgent.m in Sources */, + 9EAFA6A4FE9C6BCDAEBBA891 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D7C5282172CD34F6491DB706 /* Sources */ = { + E93E45EF2A3E8CF35CA2F1E4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 97DD7C404140AE8D8DED2058 /* DDASLLogCapture.m in Sources */, - 19130D1EB925B80E2DA82E2A /* DDASLLogger.m in Sources */, - 425330D5F700D3B3705D88FC /* DDAbstractDatabaseLogger.m in Sources */, - 6FFF8EB8788895272CB3BEA8 /* DDContextFilterLogFormatter.m in Sources */, - 4B4FF55EDF5F646C1E1F9E9B /* DDDispatchQueueLogFormatter.m in Sources */, - 008DE6052787417F2DF2F262 /* DDFileLogger.m in Sources */, - 0FA120DD932050587D67E8B2 /* DDLog.m in Sources */, - B98DA984CA435F01D6FC8C96 /* DDMultiFormatter.m in Sources */, - A172DAA1DB4F2FC3EC1CEE6E /* DDTTYLogger.m in Sources */, - 40F24D23BFA2093652EEA35E /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */, + 9A85326EC85FE1C5CF24FFAC /* NSDictionary+YapDatabase.m in Sources */, + FF6EA1536FB54FA695B3AC6F /* Pods-Blog-YapDatabase-dummy.m in Sources */, + E4C8659D04155936B58AF39C /* YDBCKAttachRequest.m in Sources */, + 1124D7F5F97A3139D672D6AA /* YDBCKChangeQueue.m in Sources */, + 5AFF13E92E364D95AD74B8FC /* YDBCKChangeRecord.m in Sources */, + 6006BA9E0193C97294FB6B93 /* YDBCKChangeSet.m in Sources */, + 8F3BC29A86896DB48EA2591F /* YDBCKMappingTableInfo.m in Sources */, + 9BAFBBABF7A51D9ACB8D21D7 /* YDBCKMergeInfo.m in Sources */, + C72E220C51F35B1D6618FC53 /* YDBCKRecord.m in Sources */, + F9DE3A93F85737AD64988353 /* YDBCKRecordInfo.m in Sources */, + 9FD0AA2B2EC6D853061244BC /* YDBCKRecordTableInfo.m in Sources */, + 50A1A829C08984B62AC98236 /* YapCache.m in Sources */, + C14EA8880A44E8AADA426FAC /* YapCollectionKey.m in Sources */, + 02AFF858DA0710AEFFC6DF6E /* YapDatabase.m in Sources */, + E167C7D652996A5C1DAD882B /* YapDatabaseCloudKit.m in Sources */, + 90757ECE79E4261FDB2C145D /* YapDatabaseCloudKitConnection.m in Sources */, + 53916A496A04EE86A624AB9C /* YapDatabaseCloudKitOptions.m in Sources */, + 18C31E5E04863C2AE8DDD614 /* YapDatabaseCloudKitTransaction.m in Sources */, + 676D6AB9FBE98793BEAA3C40 /* YapDatabaseCloudKitTypes.m in Sources */, + CFCC635BA4C3719018A282EE /* YapDatabaseConnection.m in Sources */, + 5E84678DAFA724F767109DD2 /* YapDatabaseConnectionDefaults.m in Sources */, + 373BF0884E8220A443131BDC /* YapDatabaseConnectionState.m in Sources */, + E98577F92ACDD8403743D862 /* YapDatabaseExtension.m in Sources */, + EB44EB55B34D901BF96DD60A /* YapDatabaseExtensionConnection.m in Sources */, + 20D68B7EDDEF04C31E0A99B5 /* YapDatabaseExtensionTransaction.m in Sources */, + C7DDBED040F3BDBE7E430B7E /* YapDatabaseFilteredView.m in Sources */, + 1940B206E5A0FD6F8F38076F /* YapDatabaseFilteredViewConnection.m in Sources */, + 3EBA11B2D851FF2E67CC8A8D /* YapDatabaseFilteredViewTransaction.m in Sources */, + 0422704034C841151B327CDE /* YapDatabaseFilteredViewTypes.m in Sources */, + EF10CB667996004059079FFC /* YapDatabaseFullTextSearch.m in Sources */, + C7DFFD455B6E7537A5955A41 /* YapDatabaseFullTextSearchConnection.m in Sources */, + CC2F6B074909DD44E194E792 /* YapDatabaseFullTextSearchHandler.m in Sources */, + E53A809DB9E5717F30123C33 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, + 6D30EFAD1140528611A25A89 /* YapDatabaseFullTextSearchTransaction.m in Sources */, + CBC0C14016518E7E8DB52DBA /* YapDatabaseLogging.m in Sources */, + 02786E4B720F6D434435860B /* YapDatabaseManager.m in Sources */, + C6477EC21E8ED0FCC9AC88A7 /* YapDatabaseOptions.m in Sources */, + 35A70834B17E958C659A051F /* YapDatabaseQuery.m in Sources */, + A0345FB4604B1B5B49AD1B4A /* YapDatabaseRelationship.m in Sources */, + 0F120D8ABAA1509C2558077B /* YapDatabaseRelationshipConnection.m in Sources */, + BDE307BF9117EC732E2AA51D /* YapDatabaseRelationshipEdge.m in Sources */, + F05B77BDD854106841BA0361 /* YapDatabaseRelationshipOptions.m in Sources */, + 07AAE01179AF45A20C9B3F7F /* YapDatabaseRelationshipTransaction.m in Sources */, + 5C42394FEA83F4D3056D8D4C /* YapDatabaseSearchQueue.m in Sources */, + 954521148ED74D90AC1CF383 /* YapDatabaseSearchResultsView.m in Sources */, + 1B7DD697F81240BCD743B5A5 /* YapDatabaseSearchResultsViewConnection.m in Sources */, + 11D3DB1C1AF12EB21F485DA2 /* YapDatabaseSearchResultsViewOptions.m in Sources */, + F055492D1CCCD40E2E2E1E4B /* YapDatabaseSearchResultsViewTransaction.m in Sources */, + D9D8681B96A6504D9F7E903C /* YapDatabaseSecondaryIndex.m in Sources */, + CB2CFF8573E4424B76600ACF /* YapDatabaseSecondaryIndexConnection.m in Sources */, + CBBD95C08FEB3896A5116918 /* YapDatabaseSecondaryIndexHandler.m in Sources */, + F84F979A69FC75B92AC470B3 /* YapDatabaseSecondaryIndexOptions.m in Sources */, + EEB0E85511F2C7C2FE0B591D /* YapDatabaseSecondaryIndexSetup.m in Sources */, + 7CCAE77D3451064F88345154 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, + EA74403792BFDE010A7E2E97 /* YapDatabaseStatement.m in Sources */, + 427879C3866A9CCF9B0F8607 /* YapDatabaseTransaction.m in Sources */, + E444B4F69E05FDFC8F1296BE /* YapDatabaseView.m in Sources */, + 25C0259C09E112763E0242BB /* YapDatabaseViewChange.m in Sources */, + 14A784E715FF62D5C956E3B9 /* YapDatabaseViewConnection.m in Sources */, + C5BF0C97F4BC45CA25C65595 /* YapDatabaseViewMappings.m in Sources */, + 21CCB37AF35FCF90607A5405 /* YapDatabaseViewOptions.m in Sources */, + 503993297A03E5D2DE2CF539 /* YapDatabaseViewPage.mm in Sources */, + E7290823A559F41688C614AC /* YapDatabaseViewPageMetadata.m in Sources */, + C8A6ACE0179A933BDF238907 /* YapDatabaseViewRangeOptions.m in Sources */, + 90517FEE3630015B9F8BF6E2 /* YapDatabaseViewState.m in Sources */, + C9B253A5D9AB238B6742E92D /* YapDatabaseViewTransaction.m in Sources */, + 440328D881351DFFB147A166 /* YapDatabaseViewTypes.m in Sources */, + 50E6DF64BE6D1F22B8D8D4CC /* YapDebugDictionary.m in Sources */, + 52713D11702C5A23384A9318 /* YapMemoryTable.m in Sources */, + CB430386C14F95A4EF192CBA /* YapMurmurHash.m in Sources */, + 5397E81AA7113C812E9BD6C8 /* YapNull.m in Sources */, + F5BE38FABDEABFFA2B8885E8 /* YapRowidSet.mm in Sources */, + 46AF1E6F49A604A67B688408 /* YapSet.m in Sources */, + 9DBD099D8F19DE4AFC9534DF /* YapTouch.m in Sources */, + AE0E1EB9A601E3417A7C072C /* YapWhitelistBlacklist.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D8962C2AF4BB86CE05A22DE9 /* Sources */ = { + EE78382F132DCC43FFCC33E8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D0DA6DA208E47E90E094CE42 /* DDASLLogCapture.m in Sources */, - 289EBDC6156336AC042865AC /* DDASLLogger.m in Sources */, - E89B345DA7F5A8875053B2D9 /* DDAbstractDatabaseLogger.m in Sources */, - 3AA768A534536F1DE32EA739 /* DDContextFilterLogFormatter.m in Sources */, - B2923E26CE834BF21760A7CD /* DDDispatchQueueLogFormatter.m in Sources */, - C1684BEDF2DFCAAAA29C0576 /* DDFileLogger.m in Sources */, - 359A4D8615A1BA471317CFFD /* DDLog.m in Sources */, - 4EC73B2A231CE6AECE4DDFA0 /* DDMultiFormatter.m in Sources */, - 0890DB2288BBC937B5588EAF /* DDTTYLogger.m in Sources */, - DDC7BDB224936824E3D7CA11 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */, + C055CA5E0182EC6E95586425 /* MBProgressHUD.m in Sources */, + 114FA638E77F616B6886BE8E /* Pods-Blog-MBProgressHUD-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DFB26C863C52A0807C5C37FE /* Sources */ = { + FD23331E40F62A1714897C13 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4FA6084DE8490CF2F57523B3 /* CALayer+PromiseKit.m in Sources */, - E23A19858A29C197C4201CE7 /* NSNotificationCenter+PromiseKit.m in Sources */, - 27CDF919EC3FD849DFD6DD2C /* NSURLConnection+PromiseKit.m in Sources */, - 8763048A0612B1FF06CC5DAB /* PMKPromise+Pause.m in Sources */, - 34C8574A0944D9217BC56184 /* PMKPromise+Until.m in Sources */, - B8623D92EF31A40195E01591 /* PMKPromise+When.m in Sources */, - 8DD3E4B84B235A8CB16CC419 /* PMKPromise.m in Sources */, - 623453C33714A3647C1AD783 /* Pods-Blog-PromiseKit-dummy.m in Sources */, - 49012F1B75A8BD5D37C1A2E5 /* UIActionSheet+PromiseKit.m in Sources */, - E2DEB55BDD022D8EF1585105 /* UIAlertView+PromiseKit.m in Sources */, - 8345BF366E7557F8E05F6DC1 /* UIView+PromiseKit.m in Sources */, - 0D1A373DC590235F813C6CDD /* UIViewController+PromiseKit.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E7C646419CCEAD3F6FA6ACCC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8B6C818C7895116F3B241761 /* Pods-Blog-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EFBB71CCD21D59AED7CE399A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F50FCC6AA419D64EE2DE6324 /* NSArray+ObjectiveSugar.m in Sources */, - 6906E61AD645DFC3BB5ED3D4 /* NSDictionary+ObjectiveSugar.m in Sources */, - F79A5AE91BA6CDA685EB5437 /* NSMutableArray+ObjectiveSugar.m in Sources */, - 1EE0D8DBDD5632F652DFD0A0 /* NSNumber+ObjectiveSugar.m in Sources */, - E53793B47F8328B5DAE4D95C /* NSSet+ObjectiveSugar.m in Sources */, - 450E107E389350939CF7B087 /* NSString+ObjectiveSugar.m in Sources */, - CB80BDDEBE5EDD21B081FF0D /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */, + EB7ED358793D57DF6EB54230 /* CALayer+PromiseKit.m in Sources */, + 15EEFB712F6EC6BDC730E01F /* NSNotificationCenter+PromiseKit.m in Sources */, + C9B41218A767368C451C2049 /* NSURLConnection+PromiseKit.m in Sources */, + A865E8AFA20F1762AFCBC27E /* PMKPromise+Pause.m in Sources */, + 46819BDD105D897F2082EFD3 /* PMKPromise+Until.m in Sources */, + D6F64959F96B08E0602F5836 /* PMKPromise+When.m in Sources */, + 3705413FEE7D656182FA308F /* PMKPromise.m in Sources */, + 143FD0210608AAA8BA2E8DEE /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */, + FD6413396174DA9A54DBD0FA /* UIActionSheet+PromiseKit.m in Sources */, + CADC6DB028719FD2EC8CDFC3 /* UIAlertView+PromiseKit.m in Sources */, + E911DB59987529E705152984 /* UIView+PromiseKit.m in Sources */, + 9883CC97B7E7AEEDC2825A48 /* UIViewController+PromiseKit.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 1A576BEA2E5DB45941A53734 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-CocoaLumberjack"; - target = 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */; - targetProxy = FFCA5E90EBED3AC42CF4669B /* PBXContainerItemProxy */; - }; - 2B1D68B75B1D29229859F938 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-ObjectiveSugar"; - target = B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */; - targetProxy = 5D9B9C4FD114FAFC9A004A7C /* PBXContainerItemProxy */; - }; - 34FA15F06FBF20B1A9A9B21B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-MBProgressHUD"; - target = 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */; - targetProxy = A1181F09A76257BCBDC14053 /* PBXContainerItemProxy */; - }; - 371E87FF4BDE4A436EAFA843 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-YapDatabase"; - target = C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */; - targetProxy = F7EAE850BEC0DA840CDFD11A /* PBXContainerItemProxy */; - }; - 46DFAA83C87508B348F76552 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-HockeySDK-HockeySDKResources"; - target = 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */; - targetProxy = 85F75ADC437227173BD0667E /* PBXContainerItemProxy */; - }; - 48CF909B715582226213F1E7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-OMGHTTPURLRQ"; - target = 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */; - targetProxy = 7769941031EACB297620FC9B /* PBXContainerItemProxy */; - }; - 4E97394341B85C08FE51E3EF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-HockeySDK"; - target = A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */; - targetProxy = 287751CB24496F7565E799F2 /* PBXContainerItemProxy */; - }; - 588C00CD34936F81A25F3F40 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-Mantle"; - target = 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */; - targetProxy = 8F73AD80A1C7E4628DEE4422 /* PBXContainerItemProxy */; - }; - 5AE608B6853AA8B8F589E0CD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-CocoaLumberjack"; - target = C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */; - targetProxy = AE28E234790B43E99DB08DC6 /* PBXContainerItemProxy */; - }; - 7A830AE645E1C250611459D4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-OMGHTTPURLRQ"; - target = 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */; - targetProxy = 0392BC935A3C45CFAE543C93 /* PBXContainerItemProxy */; - }; - B1A09E5891D240AE81E687F3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-libextobjc"; - target = 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */; - targetProxy = 0860F97A7332B7F7AB8387E8 /* PBXContainerItemProxy */; - }; - B78DBB1A923E52B2BE4F13F5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-ObjectiveSugar"; - target = A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */; - targetProxy = E55E1FFB8D4C2AC1590EC7EA /* PBXContainerItemProxy */; - }; - BE5548A573A06FBD22803108 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-dyci"; - target = 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */; - targetProxy = 0419C1FE94EE9D9B08D4EBEC /* PBXContainerItemProxy */; - }; - C8710D1D5EEDA9E6BA4DF091 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-CocoaLumberjack"; - target = 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */; - targetProxy = 8B532E7FB9AA2549525B35DB /* PBXContainerItemProxy */; - }; - CD35780C724C2BDBC4756E11 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-YapDatabase"; - target = D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */; - targetProxy = 4C0062421264F0DCE06FCF15 /* PBXContainerItemProxy */; - }; - CE58FA2541D5BB902AD15B98 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-PromiseKit"; - target = 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */; - targetProxy = DBBEBB89D5C8E33025B7D434 /* PBXContainerItemProxy */; - }; - D5879B9CB16E36E167AFB638 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-CocoaLumberjack"; - target = C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */; - targetProxy = BBD8244BB14FD16D754293D7 /* PBXContainerItemProxy */; - }; - D66F233A1C88D9FBA6762511 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-OMGHTTPURLRQ"; - target = 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */; - targetProxy = 43CC5EA2EA1056BD0A23F4B7 /* PBXContainerItemProxy */; - }; - DA5F5107A51FB5CC062CFC86 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-OMGHTTPURLRQ"; - target = 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */; - targetProxy = C008BE0034689574AA3AA3DF /* PBXContainerItemProxy */; - }; - DAC53E7E3AB310A0A725B345 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-MBProgressHUD"; - target = 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */; - targetProxy = B22944CA0DE6754CA74EDC17 /* PBXContainerItemProxy */; - }; - E59F7239014870160B97D8F2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-Mantle"; - target = 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */; - targetProxy = C0FF3A5FBE08C3FBA3025D23 /* PBXContainerItemProxy */; - }; - FDF7254B921C2079AC3E76F7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-PromiseKit"; - target = 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */; - targetProxy = B0F432DAB713FB66577ACC41 /* PBXContainerItemProxy */; - }; - FF73D9724CC2D810CA454ED1 /* PBXTargetDependency */ = { + 00A5538BF55BD5C38853DC4B /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Blog-FontAwesome+iOS"; - target = 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */; - targetProxy = A8A084FC311102959385E5DB /* PBXContainerItemProxy */; + target = 959BE7EAC1D1BA9C8E7C54C2 /* Pods-Blog-FontAwesome+iOS */; + targetProxy = 8979330C80751A602AD6F642 /* PBXContainerItemProxy */; + }; + 0F085350784E0FEBD584C9E0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-YapDatabase"; + target = C7F04ECE886762ED3FA79A9D /* Pods-samhuri.net-YapDatabase */; + targetProxy = 8E81853821C06B1066D61027 /* PBXContainerItemProxy */; + }; + 1242E2A90E4C03E2E71C6A31 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-ObjectiveSugar"; + target = BE5FB715F2D1F25E7D8D514D /* Pods-samhuri.net-ObjectiveSugar */; + targetProxy = 1C0ADAD4F7661DE7C3FC85AC /* PBXContainerItemProxy */; + }; + 1A9A07B3A3DEC2A0FA705C56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-PromiseKit"; + target = 69FD1941C48121DFFA9064DC /* Pods-Blog-PromiseKit */; + targetProxy = 28617D0A522B479A592D5A40 /* PBXContainerItemProxy */; + }; + 2476B1B3E705247D0B933F91 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-OMGHTTPURLRQ"; + target = 9F2499755D3C1A797413EF0B /* Pods-samhuri.net-OMGHTTPURLRQ */; + targetProxy = C5CF947D5B98B269D55E9B92 /* PBXContainerItemProxy */; + }; + 436F07481EFF1FA07A5D7B25 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-MBProgressHUD"; + target = 52D3FF8D846ECE1F86C892FE /* Pods-Blog-MBProgressHUD */; + targetProxy = C74F2AA984E9B636DAE63781 /* PBXContainerItemProxy */; + }; + 641B31F2868532DF66CD57DA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-CocoaLumberjack"; + target = 9AE020A5B0331F61BB9BA486 /* Pods-samhuri.net-CocoaLumberjack */; + targetProxy = 98AA565C864E294BD6FE37B2 /* PBXContainerItemProxy */; + }; + 6F44E06176966D182F01FD43 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-CocoaLumberjack"; + target = 9AE020A5B0331F61BB9BA486 /* Pods-samhuri.net-CocoaLumberjack */; + targetProxy = 3B1C925B383879C4E3B36C01 /* PBXContainerItemProxy */; + }; + 71044624D1FBE408FEAD4058 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-Mantle"; + target = 4555EFCA01A64B46AF19B850 /* Pods-Blog-Mantle */; + targetProxy = 95496173F56488507D0B7995 /* PBXContainerItemProxy */; + }; + 74A21CFBE398CEAAFE2A80A1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-CocoaLumberjack"; + target = 933D59FF84B37ABF25196FCC /* Pods-Blog-CocoaLumberjack */; + targetProxy = 0380361FF1413F74C4A101EA /* PBXContainerItemProxy */; + }; + 7DC1EAAFE5D80815E00CA9CB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-dyci"; + target = B9A71FAE22E1053F06F80757 /* Pods-Blog-dyci */; + targetProxy = DC5E8667C20349A676995F35 /* PBXContainerItemProxy */; + }; + 7E8E9141CFBF6222A3776A09 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-OMGHTTPURLRQ"; + target = FEB2358A8A8921EA03106F9C /* Pods-Blog-OMGHTTPURLRQ */; + targetProxy = D553AB20031EE5D22C4D4EAE /* PBXContainerItemProxy */; + }; + 80D0CF2FE793F8FC00596794 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-OMGHTTPURLRQ"; + target = 9F2499755D3C1A797413EF0B /* Pods-samhuri.net-OMGHTTPURLRQ */; + targetProxy = 03FD26F69E23B5F5A931026D /* PBXContainerItemProxy */; + }; + 82D3F919CB8F4FC889B19390 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-PromiseKit"; + target = 02C5320E551707DF82875510 /* Pods-samhuri.net-PromiseKit */; + targetProxy = CCD01497F1C2B230451D1F2F /* PBXContainerItemProxy */; + }; + A381F0AFB9FC14EC51B6415F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-OMGHTTPURLRQ"; + target = FEB2358A8A8921EA03106F9C /* Pods-Blog-OMGHTTPURLRQ */; + targetProxy = 69EC2885C31FF2394F804B49 /* PBXContainerItemProxy */; + }; + A427135E4BCB20895C2E9A19 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-YapDatabase"; + target = D10BA62430326F67DC64EA50 /* Pods-Blog-YapDatabase */; + targetProxy = B69E82AFBA2C38FB0E338B76 /* PBXContainerItemProxy */; + }; + A632BAD33409C9FCE943F920 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-MBProgressHUD"; + target = 391A9C79B2802A8B4F34AB2C /* Pods-samhuri.net-MBProgressHUD */; + targetProxy = C0B592B62D305C0CF9813AF2 /* PBXContainerItemProxy */; + }; + B384F8CD6CCA73C1842D01E7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-CocoaLumberjack"; + target = 933D59FF84B37ABF25196FCC /* Pods-Blog-CocoaLumberjack */; + targetProxy = CC2C3CF6281DBFCFB8943C05 /* PBXContainerItemProxy */; + }; + CDDEDAD8BAF4E826ED471187 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-libextobjc"; + target = 1763E9C4A542A603D7BF6501 /* Pods-Blog-libextobjc */; + targetProxy = D9C64C7C93AF1A4B71C8C094 /* PBXContainerItemProxy */; + }; + DB9E2AF33DA56897963355B9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-Mantle"; + target = 258E7FD66319006E5831FB62 /* Pods-samhuri.net-Mantle */; + targetProxy = 2532FE30E4BD4DDDEA448827 /* PBXContainerItemProxy */; + }; + ECD7A24D72392AFA22C6394D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-ObjectiveSugar"; + target = 073F96D2C8AEBAAA030407A5 /* Pods-Blog-ObjectiveSugar */; + targetProxy = A4259C2A26951E5CB536F88D /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 1861E6EBE10E3EE5D150C0F1 /* Debug */ = { + 04604B8814FBA8D86F1FA733 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; + baseConfigurationReference = E45CC82DF7C2F81C87DB5437 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -4406,28 +3652,12 @@ }; name = Debug; }; - 2DABB3AC5C001A52AE7BA074 /* Release */ = { + 06564C97D7F187CD9EF223F6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */; + baseConfigurationReference = B6AD115EFAD07000265DADE1 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 2DDD10E59156773D9CAD8B6C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -4438,39 +3668,88 @@ }; name = Debug; }; - 36425B03E024CEB52E4239B0 /* Debug */ = { + 085ACEA4124944AE880369C9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; + baseConfigurationReference = BBF421417655F564F2EFFEC2 /* Pods-Blog.debug.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 37CB2076604AF115F25701FC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; }; + name = Debug; + }; + 158EB463B9DF14790A48FE63 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A63AF4E96D3FFBB901566204 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; name = Release; }; - 3A849FFC2BB1037E8CDF6852 /* Debug */ = { + 15B8BCBC096109EC223C95BF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 790E8112B1AC50292F6FB3DA /* Pods-samhuri.net.debug.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 1B76C733F32D50D10A5340CC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 388DA8DE533AD6EB14A8CB70 /* Pods-Blog-libextobjc-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 24924FF2D4AE3CA4E587657F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7C378D3559C2E95A012B2067 /* Pods-Blog-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 2E013803CED837E7B2775983 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -4509,398 +3788,9 @@ }; name = Debug; }; - 3F954D7F9525E453A3568D82 /* Debug */ = { + 32F8FD12344EBBC16919112F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - PRODUCT_NAME = HockeySDKResources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 5032B394B9678066E35818F7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 542B3C13756B16F539577E00 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 551CE701C85745BAE1BC02D5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 592533A8B3BFF4253C3D65FD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 5FD824BFC1C74F3B3DB84BAE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 6DF9602AE913454DC49BABB4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 6F8BA60630464A521E438CB4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 72AC371D08B5BACA2071F92B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 766933A7A59A8F43A242C40F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 799FB7B6883994AB9285242A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 7A6D7AB08D990B065CBB3A05 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 8BE288A64C41E48D2DB704F5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 8DE0D132772B46FC24052602 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 90140E78A825893EF6A01E9D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 9030B83FDB8BDBFBB8F57B79 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 92B5B2947F0D808324AB0A79 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 98D1E0C9537D925DB5F57E9D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 9AD2972A5B546634AC547CF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 9E24AB78F0471335A740C5EB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - A5029A7351F4B685927645E0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A66EFE36D6C107BFB7F51D8F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A73272AA4D1CC936CDD348B1 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - AD1C41DD3BB3869BD7AA2F85 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - B3D1CC9FDED0118366F845A9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; + baseConfigurationReference = CC10242FF2E2FB94FBB70C95 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -4915,13 +3805,13 @@ }; name = Debug; }; - B8CA34C496EEF3F6C294A0BD /* Release */ = { + 4807D71F9B8D010ABA5FC3C1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; + baseConfigurationReference = A662A59246F0266687AFE7BD /* Pods-samhuri.net-Mantle-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; @@ -4932,167 +3822,7 @@ }; name = Release; }; - BFE6DF80E26E43DF0616070E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - CAE15D4A04CFED59A0E34DBA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - CF4A8CACCFCA18C0207DC3FA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - CF52B9323446A32CB42DCE8F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - D7B612EC1D1EC9D90F7756A5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - D7EA874DA6B4740ED1B68257 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - D986CF0F024C0F07ED0B282C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - DB3A15CACB46E667CA5F426D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - DCAF0618555A3306BAC7ABF4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - E26A90B4BF790EF15C55262C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - PRODUCT_NAME = HockeySDKResources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - FAA34581F65A02F7C2DE77FF /* Release */ = { + 575BD3713A88E0B8F968806D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -5126,9 +3856,436 @@ }; name = Release; }; - FBDE8545B99104929DE471B8 /* Debug */ = { + 678ADB5836F81FAB4D0C0C7C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */; + baseConfigurationReference = AA5D725DD28059FD73285797 /* Pods-Blog-PromiseKit-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 69D27D820A56BC61DC24F86B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E45CC82DF7C2F81C87DB5437 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 6C3D43676864FF67B738B86E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 502A024737D6DB1A06A9800E /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 6ECE5237E3A8B174EEBF1275 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B6AD115EFAD07000265DADE1 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 6F0342781696482FD4BA1B80 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A63AF4E96D3FFBB901566204 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 899B25FF8F7E958D48648150 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A583BA8294D5CF5B640CC7C /* Pods-Blog-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 8C67CB657572DB5266CD3DAE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 502A024737D6DB1A06A9800E /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 917A2BAE8F4B6B5C604C11C2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7C378D3559C2E95A012B2067 /* Pods-Blog-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 918D470D506D61D6BC295904 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2695B06CF5AB9C425F09BE4C /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 944D0E6A63B8EA315EACB9B6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6BE69EC5EE6108F191686D8A /* Pods-Blog.release.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 959BE70DBC44C8CC7B0181F3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F57C611C836127CA362CE1A6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 99C402D4EE7DD1525EAB87AB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A583BA8294D5CF5B640CC7C /* Pods-Blog-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A589DDED836D26309270F381 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 357B78B152E6ABB4AC8A5933 /* Pods-samhuri.net.release.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + A7A76045900886AB659AFFD3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A5E281EA06DB793C11934A11 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A8D1E9347DA32F96EAE96000 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AA5D725DD28059FD73285797 /* Pods-Blog-PromiseKit-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + AC533CA187D51812539BBCDA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 388DA8DE533AD6EB14A8CB70 /* Pods-Blog-libextobjc-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + B3DA7BC30C802CDAB932D092 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A5E281EA06DB793C11934A11 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + C7C6D76C84CF66BB2BE1C626 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2695B06CF5AB9C425F09BE4C /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + D332A3B7A969861444E4F1A4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B2CDADA292CB17CBF9806392 /* Pods-Blog-dyci-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + D7B811F87768EA3A13C50486 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F57C611C836127CA362CE1A6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + DB59A56ED5755BDEC59A1258 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B2CDADA292CB17CBF9806392 /* Pods-Blog-dyci-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + DBEF6FA3F180B385569B0FF7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A662A59246F0266687AFE7BD /* Pods-samhuri.net-Mantle-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + E157249C54B4F8EFE2D1C8E1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D3D19D16BD6956BBD418DD9F /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + E83C5E7B22A97497D15BC6B7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CC10242FF2E2FB94FBB70C95 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + E8A62E8512F6B9030629216F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B5E4BE6F67F9DA3D4CCA9D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + EBB5BE2C9DF153284B1C3B77 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D3D19D16BD6956BBD418DD9F /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + EC003A9EF9224BF6876BEE5C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 85B0206D33F44E1C159E1220 /* Pods-Blog-YapDatabase-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; @@ -5142,208 +4299,223 @@ }; name = Debug; }; + EE64483CC8F107A4FEAA22B2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B5E4BE6F67F9DA3D4CCA9D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + FCD6ACF830355156A6D74EBD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 85B0206D33F44E1C159E1220 /* Pods-Blog-YapDatabase-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 28353535BEB1BB5E45A1931B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */ = { + 0245666C236E05B5E20379C9 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */ = { isa = XCConfigurationList; buildConfigurations = ( - 92B5B2947F0D808324AB0A79 /* Debug */, - B8CA34C496EEF3F6C294A0BD /* Release */, + C7C6D76C84CF66BB2BE1C626 /* Debug */, + 918D470D506D61D6BC295904 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3004B9A5B57431A9E9BD9F6F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */ = { + 03FFBBA5345B871725934CCD /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9030B83FDB8BDBFBB8F57B79 /* Debug */, - 9E24AB78F0471335A740C5EB /* Release */, + 15B8BCBC096109EC223C95BF /* Debug */, + A589DDED836D26309270F381 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4DFDE482EC5A464FD7C21688 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */ = { + 046F835A594A12A4C404CC56 /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6F8BA60630464A521E438CB4 /* Debug */, - D7B612EC1D1EC9D90F7756A5 /* Release */, + A7A76045900886AB659AFFD3 /* Debug */, + B3DA7BC30C802CDAB932D092 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 554A9FC9599AFACC0C49F7BF /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */ = { + 0F280357926A5D13CDEDD8E1 /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2DDD10E59156773D9CAD8B6C /* Debug */, - CAE15D4A04CFED59A0E34DBA /* Release */, + AC533CA187D51812539BBCDA /* Debug */, + 1B76C733F32D50D10A5340CC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 70BBF7D3729BA8616D8B2FD5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */ = { + 30B532E48B56D2AA7DBD3C73 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5FD824BFC1C74F3B3DB84BAE /* Debug */, - 5032B394B9678066E35818F7 /* Release */, + 32F8FD12344EBBC16919112F /* Debug */, + E83C5E7B22A97497D15BC6B7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 79F0341A2504B1F86B005E20 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */ = { + 33AF6F461227D51DBBA870F0 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */ = { isa = XCConfigurationList; buildConfigurations = ( - 36425B03E024CEB52E4239B0 /* Debug */, - CF4A8CACCFCA18C0207DC3FA /* Release */, + DBEF6FA3F180B385569B0FF7 /* Debug */, + 4807D71F9B8D010ABA5FC3C1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7C25E69DFD815A6C89871A60 /* Build configuration list for PBXNativeTarget "Pods-Blog" */ = { + 69A021117011F28311B42FB1 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */ = { isa = XCConfigurationList; buildConfigurations = ( - A5029A7351F4B685927645E0 /* Debug */, - 37CB2076604AF115F25701FC /* Release */, + 917A2BAE8F4B6B5C604C11C2 /* Debug */, + 24924FF2D4AE3CA4E587657F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8A30BAD25CD9D6ACF3691A14 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */ = { + 69B66CC92AA52157CCAF7BD6 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( - 766933A7A59A8F43A242C40F /* Debug */, - AD1C41DD3BB3869BD7AA2F85 /* Release */, + 99C402D4EE7DD1525EAB87AB /* Debug */, + 899B25FF8F7E958D48648150 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 97A7AC948FCA53B8F0FF1A7C /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */ = { + 835E98716E99273C6A49831F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */ = { isa = XCConfigurationList; buildConfigurations = ( - 90140E78A825893EF6A01E9D /* Debug */, - 551CE701C85745BAE1BC02D5 /* Release */, + E157249C54B4F8EFE2D1C8E1 /* Debug */, + EBB5BE2C9DF153284B1C3B77 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9A3789981911518AD8EE497F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */ = { + 854DF47726348C11AD5C18BF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */ = { isa = XCConfigurationList; buildConfigurations = ( - B3D1CC9FDED0118366F845A9 /* Debug */, - BFE6DF80E26E43DF0616070E /* Release */, + EE64483CC8F107A4FEAA22B2 /* Debug */, + E8A62E8512F6B9030629216F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B699A82D9D86CF9B9B7B861B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */ = { + 8A9B20CCC94C40D967904951 /* Build configuration list for PBXNativeTarget "Pods-Blog" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6DF9602AE913454DC49BABB4 /* Debug */, - CF52B9323446A32CB42DCE8F /* Release */, + 085ACEA4124944AE880369C9 /* Debug */, + 944D0E6A63B8EA315EACB9B6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C7D9DBA985F63FC589B5384A /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */ = { + 9C048497F44964D9517ED1F8 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 98D1E0C9537D925DB5F57E9D /* Debug */, - D986CF0F024C0F07ED0B282C /* Release */, + 959BE70DBC44C8CC7B0181F3 /* Debug */, + D7B811F87768EA3A13C50486 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CA73833601EBC26F94CD9ED5 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */ = { + A00FA20655A3ECA23CF9C164 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */ = { isa = XCConfigurationList; buildConfigurations = ( - FBDE8545B99104929DE471B8 /* Debug */, - 8DE0D132772B46FC24052602 /* Release */, + 6F0342781696482FD4BA1B80 /* Debug */, + 158EB463B9DF14790A48FE63 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CBB13C5EE7C728683DDCE3EE /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */ = { + A6B478E3257A9CFDFE0AD95F /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7A6D7AB08D990B065CBB3A05 /* Debug */, - 2DABB3AC5C001A52AE7BA074 /* Release */, + EC003A9EF9224BF6876BEE5C /* Debug */, + FCD6ACF830355156A6D74EBD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D049D6491BD63896D9A1D2F7 /* Build configuration list for PBXProject "Pods" */ = { + ACD862B43194B2FECFAFC40B /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3A849FFC2BB1037E8CDF6852 /* Debug */, - FAA34581F65A02F7C2DE77FF /* Release */, + 678ADB5836F81FAB4D0C0C7C /* Debug */, + A8D1E9347DA32F96EAE96000 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D19E9045784D2E224D2D8179 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */ = { + BE424F738019A375AD294C2B /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */ = { isa = XCConfigurationList; buildConfigurations = ( - DB3A15CACB46E667CA5F426D /* Debug */, - 592533A8B3BFF4253C3D65FD /* Release */, + D332A3B7A969861444E4F1A4 /* Debug */, + DB59A56ED5755BDEC59A1258 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D873DB9A461ED64BB9ADFC6C /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK-HockeySDKResources" */ = { + CD2997B9CE4CD2C02C0A318D /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3F954D7F9525E453A3568D82 /* Debug */, - E26A90B4BF790EF15C55262C /* Release */, + 06564C97D7F187CD9EF223F6 /* Debug */, + 6ECE5237E3A8B174EEBF1275 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E479DA08961544109E5191EF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */ = { + DC791368F3BB5572A35ADFDB /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( - 72AC371D08B5BACA2071F92B /* Debug */, - 9AD2972A5B546634AC547CF8 /* Release */, + 04604B8814FBA8D86F1FA733 /* Debug */, + 69D27D820A56BC61DC24F86B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E4E6D06ED821910D5ED29DC3 /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK" */ = { + DC7D2F9FCDE079BC315B6F3A /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - A66EFE36D6C107BFB7F51D8F /* Debug */, - 799FB7B6883994AB9285242A /* Release */, + 2E013803CED837E7B2775983 /* Debug */, + 575BD3713A88E0B8F968806D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E615E6F99D120BF3DE46E253 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */ = { + EAEDAE3E320ADDEFDABE67BD /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */ = { isa = XCConfigurationList; buildConfigurations = ( - 542B3C13756B16F539577E00 /* Debug */, - A73272AA4D1CC936CDD348B1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F2ED7DC722C611BD763BC578 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DCAF0618555A3306BAC7ABF4 /* Debug */, - 8BE288A64C41E48D2DB704F5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FB5B643E8C2A2281C57B5244 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1861E6EBE10E3EE5D150C0F1 /* Debug */, - D7EA874DA6B4740ED1B68257 /* Release */, + 8C67CB657572DB5266CD3DAE /* Debug */, + 6C3D43676864FF67B738B86E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 0F1F25E390D54FDB68B253BB /* Project object */; + rootObject = A459747F1DBE1539ED418DBE /* Project object */; } diff --git a/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig index d7a020c..5345711 100644 --- a/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-CocoaLumberjack.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig index bd7d96b..fad4fea 100644 --- a/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-FontAwesome+iOS.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_FONTAWESOME_IOS_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig deleted file mode 100644 index 83c62da..0000000 --- a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig +++ /dev/null @@ -1,7 +0,0 @@ -#include "Pods-Blog-HockeySDK.xcconfig" -FRAMEWORK_SEARCH_PATHS = ${PODS_BLOG_HOCKEYSDK_FRAMEWORK_SEARCH_PATHS} -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_BLOG_HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS} -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/HockeySDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_LDFLAGS = ${PODS_BLOG_HOCKEYSDK_OTHER_LDFLAGS} -ObjC -PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m deleted file mode 100644 index fce6830..0000000 --- a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Blog_HockeySDK : NSObject -@end -@implementation PodsDummy_Pods_Blog_HockeySDK -@end diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch deleted file mode 100644 index 36d0b4d..0000000 --- a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch +++ /dev/null @@ -1,5 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - -#import "Pods-Blog-environment.h" diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig deleted file mode 100644 index 80b97cc..0000000 --- a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -PODS_BLOG_HOCKEYSDK_FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" -PODS_BLOG_HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" -PODS_BLOG_HOCKEYSDK_OTHER_LDFLAGS = -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig index ac35e19..9e83fa4 100644 --- a/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-MBProgressHUD.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_MBPROGRESSHUD_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig index 3ccdb26..bcd4654 100644 --- a/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-Mantle.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_MANTLE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig index d4eb5b7..50d8115 100644 --- a/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-OMGHTTPURLRQ.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig index 23e7930..3b1d4a9 100644 --- a/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-ObjectiveSugar.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig index 29435aa..846101a 100644 --- a/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-PromiseKit.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_BLOG_PROMISEKIT_GCC_PREPROCESSOR_DEFINITIONS} -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_PROMISEKIT_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig index 3b9ed9b..febbb8e 100644 --- a/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-YapDatabase.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_YAPDATABASE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig index 6e76cf9..ce331fd 100644 --- a/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-dyci.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/dyci" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/dyci" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig index 2ef3c50..e7e6935 100644 --- a/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-libextobjc.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/libextobjc" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/libextobjc" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown index a37d006..8b53122 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown @@ -27,134 +27,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND This project uses the FontAwesome fix made by Pit Garbe that you can find at https://github.com/leberwurstsaft/FontAwesome-for-iOS Version 2.0 of the Font Awesome font, CSS, and LESS files are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0/ A mention of 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable source code is considered acceptable attribution (most common on the web). If human readable source code is not available to the end user, a mention in an 'About' or 'Credits' screen is considered acceptable (most common in desktop or mobile software) -## HockeySDK - -## Licenses - -The Hockey SDK is provided under the following license: - - The MIT License - Copyright (c) 2012-2015 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. - -Except as noted below, PLCrashReporter -is provided under the following license: - - Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. - Copyright (c) 2012 - 2015 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. - -The protobuf-c library, as well as the PLCrashLogWriterEncoding.c -file are licensed as follows: - - Copyright 2008, Dave Benson. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with - the License. You may obtain a copy of the License - at http://www.apache.org/licenses/LICENSE-2.0 Unless - required by applicable law or agreed to in writing, - software distributed under the License is distributed on - an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - -TTTAttributedLabel is licensed as follows: - - Copyright (c) 2011 Mattt Thompson (http://mattt.me/) - - 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. - -SFHFKeychainUtils is licensed as follows: - - Created by Buzz Andersen on 10/20/08. - Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. - Copyright 2008 Sci-Fi Hi-Fi. 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. - - ## MBProgressHUD Copyright (c) 2009-2015 Matej Bukovinski diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist index debe3fb..cef9831 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist @@ -46,138 +46,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND Type PSGroupSpecifier - - FooterText - ## Licenses - -The Hockey SDK is provided under the following license: - - The MIT License - Copyright (c) 2012-2015 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. - -Except as noted below, PLCrashReporter -is provided under the following license: - - Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. - Copyright (c) 2012 - 2015 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. - -The protobuf-c library, as well as the PLCrashLogWriterEncoding.c -file are licensed as follows: - - Copyright 2008, Dave Benson. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with - the License. You may obtain a copy of the License - at http://www.apache.org/licenses/LICENSE-2.0 Unless - required by applicable law or agreed to in writing, - software distributed under the License is distributed on - an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - -TTTAttributedLabel is licensed as follows: - - Copyright (c) 2011 Mattt Thompson (http://mattt.me/) - - 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. - -SFHFKeychainUtils is licensed as follows: - - Created by Buzz Andersen on 10/20/08. - Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. - Copyright 2008 Sci-Fi Hi-Fi. 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. - - Title - HockeySDK - Type - PSGroupSpecifier - FooterText Copyright (c) 2009-2015 Matej Bukovinski diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h b/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h index aea7e6b..b60356d 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h @@ -30,12 +30,6 @@ #define COCOAPODS_VERSION_MINOR_FontAwesome_iOS 0 #define COCOAPODS_VERSION_PATCH_FontAwesome_iOS 1 -// HockeySDK -#define COCOAPODS_POD_AVAILABLE_HockeySDK -#define COCOAPODS_VERSION_MAJOR_HockeySDK 3 -#define COCOAPODS_VERSION_MINOR_HockeySDK 6 -#define COCOAPODS_VERSION_PATCH_HockeySDK 4 - // MBProgressHUD #define COCOAPODS_POD_AVAILABLE_MBProgressHUD #define COCOAPODS_VERSION_MAJOR_MBProgressHUD 0 diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh b/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh index c592651..6aa9feb 100755 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh @@ -59,11 +59,9 @@ install_resource() } if [[ "$CONFIGURATION" == "Debug" ]]; then install_resource "FontAwesome+iOS/Resources/FontAwesome.ttf" - install_resource "${BUILT_PRODUCTS_DIR}/HockeySDKResources.bundle" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_resource "FontAwesome+iOS/Resources/FontAwesome.ttf" - install_resource "${BUILT_PRODUCTS_DIR}/HockeySDKResources.bundle" fi rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig b/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig index 3cc8473..42ca7de 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig @@ -1,7 +1,6 @@ -FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-HockeySDK" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "Foundation" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AssetsLibrary" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig b/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig index 3cc8473..42ca7de 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig @@ -1,7 +1,6 @@ -FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-HockeySDK" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "Foundation" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AssetsLibrary" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig index 6726b65..acf7618 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-CocoaLumberjack.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig index 277cba6..084af9c 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-MBProgressHUD.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_MBPROGRESSHUD_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig index eb606ad..b0f8bd1 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-Mantle.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_MANTLE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig index 70740f8..8422b0e 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig index 4e6bbfd..12151f6 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-ObjectiveSugar.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig index 11da95a..1d92b3c 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-PromiseKit.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_SAMHURI_NET_PROMISEKIT_GCC_PREPROCESSOR_DEFINITIONS} -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_PROMISEKIT_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig index 0e6dd2a..31572cd 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-YapDatabase.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_YAPDATABASE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig index 0a04558..64feb20 100644 --- a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-samhuri.net-CocoaLumberjack" -l"Pods-samhuri.net-MBProgressHUD" -l"Pods-samhuri.net-Mantle" -l"Pods-samhuri.net-OMGHTTPURLRQ" -l"Pods-samhuri.net-ObjectiveSugar" -l"Pods-samhuri.net-PromiseKit" -l"Pods-samhuri.net-YapDatabase" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig index 0a04558..64feb20 100644 --- a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-samhuri.net-CocoaLumberjack" -l"Pods-samhuri.net-MBProgressHUD" -l"Pods-samhuri.net-Mantle" -l"Pods-samhuri.net-OMGHTTPURLRQ" -l"Pods-samhuri.net-ObjectiveSugar" -l"Pods-samhuri.net-PromiseKit" -l"Pods-samhuri.net-YapDatabase" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file