From 0290744204b24dec9bb76d5287057647ab92efc2 Mon Sep 17 00:00:00 2001 From: Murat Baysangurov Date: Wed, 23 Aug 2017 12:23:58 +0300 Subject: [PATCH 01/61] Mobile Center initialisation moved to applicationDidFinishLaunching method --- .../MobileCenterViewController.swift | 14 +++++++++----- .../AnalyticsViewController.swift | 8 ++++++-- .../CrashesViewController.swift | 6 +++++- SasquatchMac/SasquatchMacObjC/AppDelegate.m | 18 +++++++++++++++--- .../SasquatchMacSwift/AppDelegate.swift | 15 ++++++++++++--- 5 files changed, 47 insertions(+), 14 deletions(-) diff --git a/SasquatchMac/SasquatchMac/MobileCenterViewController.swift b/SasquatchMac/SasquatchMac/MobileCenterViewController.swift index f22e4844d3..289eb49b8a 100644 --- a/SasquatchMac/SasquatchMac/MobileCenterViewController.swift +++ b/SasquatchMac/SasquatchMac/MobileCenterViewController.swift @@ -11,15 +11,19 @@ class MobileCenterViewController : NSViewController { override func viewDidLoad() { super.viewDidLoad() - mobileCenter = MobileCenterProvider.shared().mobileCenter - installIdLabel?.stringValue = mobileCenter!.installId() - appSecretLabel?.stringValue = mobileCenter!.appSecret() - logURLLabel?.stringValue = mobileCenter!.logUrl() - setEnabledButton?.state = mobileCenter!.isMobileCenterEnabled() ? 1 : 0 + updateMCState() } @IBAction func setEnabled(sender : NSButton) { mobileCenter?.setMobileCenterEnabled(sender.state == 1) sender.state = mobileCenter!.isMobileCenterEnabled() ? 1 : 0 } + + func updateMCState() { + mobileCenter = MobileCenterProvider.shared().mobileCenter + installIdLabel?.stringValue = mobileCenter?.installId() ?? "" + appSecretLabel?.stringValue = mobileCenter?.appSecret() ?? "" + logURLLabel?.stringValue = mobileCenter?.logUrl() ?? "" + setEnabledButton?.state = (mobileCenter?.isMobileCenterEnabled() ?? false) ? 1 : 0 + } } diff --git a/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift b/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift index ecc9eff616..8dcebe588c 100644 --- a/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift +++ b/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift @@ -19,14 +19,18 @@ class AnalyticsViewController : NSViewController, NSTableViewDataSource, NSTable override func viewDidLoad() { super.viewDidLoad(); - mobileCenter = MobileCenterProvider.shared().mobileCenter; - setEnabledButton?.state = mobileCenter!.isAnalyticsEnabled() ? 1 : 0; + updateMCState(); table?.delegate = self; table?.dataSource = self; NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidBegin), name: .NSControlTextDidBeginEditing, object: nil); NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidEnd), name: .NSControlTextDidEndEditing, object: nil); } + func updateMCState() { + mobileCenter = MobileCenterProvider.shared().mobileCenter; + setEnabledButton?.state = (mobileCenter?.isAnalyticsEnabled() ?? false) ? 1 : 0; + } + override func viewDidDisappear() { super.viewDidDisappear(); NotificationCenter.default.removeObserver(self); diff --git a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift index 1a34251a5a..81409d278c 100644 --- a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift +++ b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift @@ -7,8 +7,12 @@ class CrashesViewController : NSViewController { override func viewDidLoad() { super.viewDidLoad() + updateMCState() + } + + func updateMCState(){ mobileCenter = MobileCenterProvider.shared().mobileCenter - setEnabledButton?.state = mobileCenter!.isCrashesEnabled() ? 1 : 0 + setEnabledButton?.state = (mobileCenter?.isCrashesEnabled() ?? false) ? 1 : 0 } @IBAction func stackOverflowCrash(_ : Any) { diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.m b/SasquatchMac/SasquatchMacObjC/AppDelegate.m index 5521c7d273..48120bb8e2 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.m +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.m @@ -9,8 +9,7 @@ @implementation AppDelegate -- (instancetype)init { - self = [super init]; +- (void) applicationDidFinishLaunching:(NSNotification *)notification { [MSMobileCenter setLogLevel:MSLogLevelVerbose]; [MSMobileCenter setLogUrl:@"https://in-integration.dev.avalanch.es"]; @@ -22,11 +21,24 @@ - (instancetype)init { [MSMobileCenter start:@"8649b73e-6df0-4985-a039-8ab1453d44f3" withServices:@[ [MSAnalytics class], [MSCrashes class], [MSPush class] ]]; [MobileCenterProvider shared].mobileCenter = [[MobileCenterDelegateObjC alloc] init]; - return self; + [self updateMobileCenterState]; } #pragma mark - Private +- (void)updateMobileCenterState{ + NSTabViewController *tabViewController = (NSTabViewController *) NSApplication.sharedApplication.mainWindow.contentViewController; + for (NSTabViewItem *tabViewItem in tabViewController.tabViewItems) { + if ([tabViewItem.viewController isKindOfClass:[MobileCenterViewController class]]) { + [((MobileCenterViewController *) tabViewItem.viewController) updateMCState]; + } else if ([tabViewItem.viewController isKindOfClass:[AnalyticsViewController class]]) { + [((AnalyticsViewController *) tabViewItem.viewController) updateMCState]; + } else { + [((CrashesViewController *) tabViewItem.viewController) updateMCState]; + } + } +} + - (void)setupCrashes { if ([MSCrashes hasCrashedInLastSession]) { MSErrorReport *errorReport = [MSCrashes lastSessionCrashReport]; diff --git a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift index 5206362ff1..a5603f8ead 100644 --- a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift +++ b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift @@ -9,9 +9,7 @@ import MobileCenterPush @objc(AppDelegate) class AppDelegate: NSObject, NSApplicationDelegate, MSCrashesDelegate, MSPushDelegate { - override init(){ - super.init() - + func applicationDidFinishLaunching(_ notification: Notification) { // Crashes Delegate. MSCrashes.setDelegate(self); MSCrashes.setUserConfirmationHandler({ (errorReports: [MSErrorReport]) in @@ -40,6 +38,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, MSCrashesDelegate, MSPushDel MSMobileCenter.start("7ee5f412-02f7-45ea-a49c-b4ebf2911325", withServices : [ MSAnalytics.self, MSCrashes.self, MSPush.self ]) MobileCenterProvider.shared().mobileCenter = MobileCenterDelegateSwift() + updateMobileCenterState() + } + + func updateMobileCenterState() { + if let sasquatchMacView = NSApplication.shared().mainWindow?.contentViewController as? NSTabViewController { + for tabViewItem in sasquatchMacView.tabViewItems { + (tabViewItem.viewController as? MobileCenterViewController)?.updateMCState() + (tabViewItem.viewController as? AnalyticsViewController)?.updateMCState() + (tabViewItem.viewController as? CrashesViewController)?.updateMCState() + } + } } // Crashes Delegate From 0195d7e49dcf06ebb0577e3c2c7b425dd3a4e33e Mon Sep 17 00:00:00 2001 From: Murat Baysangurov Date: Wed, 23 Aug 2017 12:37:20 +0300 Subject: [PATCH 02/61] Missing spaces added --- .../SasquatchMac/ViewControllers/CrashesViewController.swift | 2 +- SasquatchMac/SasquatchMacObjC/AppDelegate.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift index 81409d278c..adac82f0bd 100644 --- a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift +++ b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift @@ -10,7 +10,7 @@ class CrashesViewController : NSViewController { updateMCState() } - func updateMCState(){ + func updateMCState() { mobileCenter = MobileCenterProvider.shared().mobileCenter setEnabledButton?.state = (mobileCenter?.isCrashesEnabled() ?? false) ? 1 : 0 } diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.m b/SasquatchMac/SasquatchMacObjC/AppDelegate.m index 48120bb8e2..89c318057e 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.m +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.m @@ -26,7 +26,7 @@ - (void) applicationDidFinishLaunching:(NSNotification *)notification { #pragma mark - Private -- (void)updateMobileCenterState{ +- (void)updateMobileCenterState { NSTabViewController *tabViewController = (NSTabViewController *) NSApplication.sharedApplication.mainWindow.contentViewController; for (NSTabViewItem *tabViewItem in tabViewController.tabViewItems) { if ([tabViewItem.viewController isKindOfClass:[MobileCenterViewController class]]) { From 79f2b35fc3d950a481d27d3603f7aa5ed7c52afa Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 13 Sep 2017 18:04:06 -0700 Subject: [PATCH 03/61] Handle custom user notification center delegate --- MobileCenterPush/MobileCenterPush/MSPush.m | 73 ++++++++++++++++++++- SasquatchMac/SasquatchMacObjC/AppDelegate.h | 2 +- SasquatchMac/SasquatchMacObjC/AppDelegate.m | 39 ++++++++--- 3 files changed, 102 insertions(+), 12 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index fbeefdb604..97a2cbbba2 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -37,11 +37,20 @@ static NSString *const kMSPushNotificationMessageKey = @"body"; static NSString *const kMSPushNotificationCustomDataKey = @"mobile_center"; +/** + * Key for NSUserNotificationCenter delegate property. + */ +static NSString *const kMSUserNotificationCenterDelegateKey = @"delegate"; + /** * Singleton */ static MSPush *sharedInstance = nil; static dispatch_once_t onceToken; +#if TARGET_OS_OSX +static id userNotificationCenterDelegate; +static void *UserNotificationCenterDelegateContext = &UserNotificationCenterDelegateContext; +#endif @implementation MSPush @@ -55,10 +64,58 @@ - (instancetype)init { // Init channel configuration. _channelConfiguration = [[MSChannelConfiguration alloc] initDefaultConfigurationWithGroupId:[self groupId]]; _appDelegate = [MSPushAppDelegate new]; + +#if TARGET_OS_OSX + NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; + + /* + * If there is a user notification center delegate already set by a customer before starting Push, assign the + * delegate to custom user notification center delegate. + */ + if (center.delegate) { + userNotificationCenterDelegate = center.delegate; + } + + // Set a delegate that will forward notifications to Push as well as a customer's delegate. + center.delegate = self; + + // Observe delegate property changes. + [center addObserver:self + forKeyPath:kMSUserNotificationCenterDelegateKey + options:NSKeyValueObservingOptionNew + context:UserNotificationCenterDelegateContext]; +#endif } return self; } +#if TARGET_OS_OSX +- (void)dealloc { + [[NSUserNotificationCenter defaultUserNotificationCenter] removeObserver:self + forKeyPath:kMSUserNotificationCenterDelegateKey + context:UserNotificationCenterDelegateContext]; +} + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { + if (context == UserNotificationCenterDelegateContext && + [keyPath isEqualToString:kMSUserNotificationCenterDelegateKey]) { + userNotificationCenterDelegate = [change objectForKey:NSKeyValueChangeNewKey]; + NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; + [center removeObserver:self forKeyPath:keyPath]; + center.delegate = self; + [center addObserver:self + forKeyPath:keyPath + options:NSKeyValueObservingOptionNew + context:UserNotificationCenterDelegateContext]; + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} +#endif + #pragma mark - MSServiceInternal + (instancetype)sharedInstance { @@ -111,7 +168,6 @@ - (void)applyEnabledState:(BOOL)isEnabled { [super applyEnabledState:isEnabled]; if (isEnabled) { #if TARGET_OS_OSX - [NSUserNotificationCenter defaultUserNotificationCenter].delegate = self; [MS_NOTIFICATION_CENTER addObserver:self selector:@selector(applicationDidFinishLaunching:) name:NSApplicationDidFinishLaunchingNotification @@ -124,7 +180,6 @@ - (void)applyEnabledState:(BOOL)isEnabled { MSLogInfo([MSPush logTag], @"Push service has been enabled."); } else { #if TARGET_OS_OSX - [NSUserNotificationCenter defaultUserNotificationCenter].delegate = nil; [MS_NOTIFICATION_CENTER removeObserver:self name:NSApplicationDidFinishLaunchingNotification object:nil]; #endif [MSAppDelegateForwarder removeDelegate:self.appDelegate]; @@ -219,9 +274,12 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification { [self didReceiveUserNotification:[notification.userInfo objectForKey:NSApplicationLaunchUserNotificationKey]]; } -- (void)userNotificationCenter:(NSUserNotificationCenter *)__unused center +- (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { [self didReceiveUserNotification:notification]; + if ([userNotificationCenterDelegate respondsToSelector:@selector(userNotificationCenter:didActivateNotification:)]) { + [userNotificationCenterDelegate userNotificationCenter:center didActivateNotification:notification]; + } } #endif @@ -258,6 +316,15 @@ - (BOOL)didReceiveRemoteNotification:(NSDictionary *)userInfo fromUserNotificati // The notification is not for Mobile Center if customData is nil. Ignore the notification. NSDictionary *customData = [userInfo objectForKey:kMSPushNotificationCustomDataKey]; if (customData) { + + // If Push is disabled, discard the notification. + if (![MSPush isEnabled]) { + MSLogVerbose( + [MSPush logTag], + @"Notification received while Push was enabled but Push is not disabled now, discard the notification."); + return YES; + } + MSLogDebug([MSPush logTag], @"Notification received.\nTitle: %@\nMessage:%@\nCustom data: %@", title, message, [customData description]); diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.h b/SasquatchMac/SasquatchMacObjC/AppDelegate.h index 270cf37898..8dcdd3e76d 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.h +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.h @@ -3,6 +3,6 @@ @import MobileCenterCrashes; @import MobileCenterPush; -@interface AppDelegate : NSObject +@interface AppDelegate : NSObject @end diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.m b/SasquatchMac/SasquatchMacObjC/AppDelegate.m index e2302dbae0..12185ba679 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.m +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.m @@ -7,6 +7,8 @@ @import MobileCenterCrashes; @import MobileCenterPush; +static NSString *const kSMLogTag = @"[SasquatchMac]"; + @implementation AppDelegate - (instancetype)init { @@ -30,14 +32,14 @@ - (instancetype)init { - (void)setupCrashes { if ([MSCrashes hasCrashedInLastSession]) { MSErrorReport *errorReport = [MSCrashes lastSessionCrashReport]; - NSLog(@"We crashed with Signal: %@", errorReport.signal); + NSLog(@"%@ We crashed with Signal: %@", kSMLogTag, errorReport.signal); MSDevice *device = [errorReport device]; NSString *osVersion = [device osVersion]; NSString *appVersion = [device appVersion]; NSString *appBuild = [device appBuild]; - NSLog(@"OS Version is: %@", osVersion); - NSLog(@"App Version is: %@", appVersion); - NSLog(@"App Build is: %@", appBuild); + NSLog(@"%@ OS Version is: %@", kSMLogTag, osVersion); + NSLog(@"%@ App Version is: %@", kSMLogTag, appVersion); + NSLog(@"%@ App Build is: %@", kSMLogTag, appBuild); } [MSCrashes setDelegate:self]; @@ -77,29 +79,50 @@ - (void)setupCrashes { - (void)setupPush { [MSPush setDelegate:self]; + [NSUserNotificationCenter defaultUserNotificationCenter].delegate = self; } #pragma mark - MSCrashesDelegate - (BOOL)crashes:(MSCrashes *)crashes shouldProcessErrorReport:(MSErrorReport *)errorReport { - NSLog(@"Should process error report with: %@", errorReport.exceptionReason); + NSLog(@"%@ Should process error report with: %@", kSMLogTag, errorReport.exceptionReason); return YES; } - (void)crashes:(MSCrashes *)crashes willSendErrorReport:(MSErrorReport *)errorReport { - NSLog(@"Will send error report with: %@", errorReport.exceptionReason); + NSLog(@"%@ Will send error report with: %@", kSMLogTag, errorReport.exceptionReason); } - (void)crashes:(MSCrashes *)crashes didSucceedSendingErrorReport:(MSErrorReport *)errorReport { - NSLog(@"Did succeed error report sending with: %@", errorReport.exceptionReason); + NSLog(@"%@ Did succeed error report sending with: %@", kSMLogTag, errorReport.exceptionReason); } - (void)crashes:(MSCrashes *)crashes didFailSendingErrorReport:(MSErrorReport *)errorReport withError:(NSError *)error { - NSLog(@"Did fail sending report with: %@, and error: %@", errorReport.exceptionReason, error.localizedDescription); + NSLog(@"%@ Did fail sending report with: %@, and error: %@", kSMLogTag, errorReport.exceptionReason, + error.localizedDescription); } #pragma mark - MSPushDelegate +- (void)application:(NSApplication *)application + didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + NSLog(@"%@ Did register for remote notifications with device token.", kSMLogTag); +} + +- (void)application:(NSApplication *)application + didFailToRegisterForRemoteNotificationsWithError:(nonnull NSError *)error { + NSLog(@"%@ Did fail to register for remote notifications with error %@.", kSMLogTag, [error localizedDescription]); +} + +- (void)application:(NSApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { + NSLog(@"%@ Did receive remote notification", kSMLogTag); +} + +- (void)userNotificationCenter:(NSUserNotificationCenter *)center + didActivateNotification:(NSUserNotification *)notification { + NSLog(@"%@ Did receive user notification", kSMLogTag); +} + - (void)push:(MSPush *)push didReceivePushNotification:(MSPushNotification *)pushNotification { // Bring any window to foreground if it was miniaturized. From 25ac0a0dfaadb050d5870d05f927e344b2aa0ce2 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 14 Sep 2017 11:25:13 -0700 Subject: [PATCH 04/61] Add unit test for handling custom user notification center delegate --- .../MobileCenterPush/Internal/MSPushPrivate.h | 14 ++++ MobileCenterPush/MobileCenterPush/MSPush.m | 7 +- .../MobileCenterPushTests/MSPushTests.m | 65 ++++++++++++++++++- 3 files changed, 83 insertions(+), 3 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h index 14d04df6e9..85dd0da0d6 100644 --- a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h +++ b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h @@ -44,10 +44,24 @@ - (void)registerForRemoteNotifications; #if TARGET_OS_OSX + +/** + * Method to return a context for observing delegate changes. + */ ++ (void *)userNotificationCenterDelegateContext; + /** * Observer to register user notification center delegate when application launches. */ - (void)applicationDidFinishLaunching:(NSNotification *)notification; + +/** + * Method that is called by NSUserNotificationCenter when its delegate changes. + */ +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context; #endif @end diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 97a2cbbba2..91b1c867bc 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -114,6 +114,11 @@ - (void)observeValueForKeyPath:(NSString *)keyPath [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } } + ++ (void *)userNotificationCenterDelegateContext { + return UserNotificationCenterDelegateContext; +} + #endif #pragma mark - MSServiceInternal @@ -318,7 +323,7 @@ - (BOOL)didReceiveRemoteNotification:(NSDictionary *)userInfo fromUserNotificati if (customData) { // If Push is disabled, discard the notification. - if (![MSPush isEnabled]) { + if (![[self class] isEnabled]) { MSLogVerbose( [MSPush logTag], @"Notification received while Push was enabled but Push is not disabled now, discard the notification."); diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 1d8647c64b..24b6a83d4b 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -167,6 +167,7 @@ - (void)testNotificationReceivedWithAlertObject { XCTestExpectation *notificationReceived = [self expectationWithDescription:@"Valid notification received."]; id pushMock = OCMPartialMock(self.sut); OCMStub([pushMock sharedInstance]).andReturn(pushMock); + OCMStub([pushMock canBeUsed]).andReturn(YES); [MSPush resetSharedInstance]; id pushDelegateMock = OCMProtocolMock(@protocol(MSPushDelegate)); __block MSPushNotification *pushNotification = nil; @@ -188,7 +189,7 @@ - (void)testNotificationReceivedWithAlertObject { OCMStub([userNotificationUserInfoMock userInfo]).andReturn(userInfo); #endif -// When + // When #if TARGET_OS_OSX [self.sut applicationDidFinishLaunching:notificationMock]; #else @@ -227,6 +228,7 @@ - (void)testNotificationReceivedWithAlertString { XCTestExpectation *notificationReceived = [self expectationWithDescription:@"Valid notification received."]; id pushMock = OCMPartialMock(self.sut); OCMStub([pushMock sharedInstance]).andReturn(pushMock); + OCMStub([pushMock canBeUsed]).andReturn(YES); [MSPush resetSharedInstance]; id pushDelegateMock = OCMProtocolMock(@protocol(MSPushDelegate)); __block MSPushNotification *pushNotification = nil; @@ -245,7 +247,7 @@ - (void)testNotificationReceivedWithAlertString { OCMStub([userNotificationUserInfoMock userInfo]).andReturn(userInfo); #endif -// When + // When #if TARGET_OS_OSX [self.sut applicationDidFinishLaunching:notificationMock]; #else @@ -379,4 +381,63 @@ - (void)testPushAppDelegateCallbacks { [pushMock stopMocking]; } +#if TARGET_OS_OSX + +- (void)testUserNotificationCenterDelegateBeforePushStart { + + // If + id userNotificationMock = OCMClassMock([NSUserNotification class]); + id userNotificationCenterDelegateMock = OCMProtocolMock(@protocol(NSUserNotificationCenterDelegate)); + id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); + OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); + OCMStub([userNotificationCenterMock delegate]).andReturn(userNotificationCenterDelegateMock); + + // When + self.sut = [MSPush new]; + id pushMock = OCMPartialMock(self.sut); + [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; + + // Then + OCMVerify([pushMock didReceiveUserNotification:userNotificationMock]); + OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock + didActivateNotification:userNotificationMock]); + + [pushMock stopMocking]; +} + +- (void)testUserNotificationCenterDelegateAfterPushStart { + + // If + id userNotificationMock = OCMClassMock([NSUserNotification class]); + id userNotificationCenterDelegateMock = OCMProtocolMock(@protocol(NSUserNotificationCenterDelegate)); + id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); + OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); + + // When + self.sut = [MSPush new]; + id pushMock = OCMPartialMock(self.sut); + [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; + + // Then + OCMVerify([pushMock didReceiveUserNotification:userNotificationMock]); + + // When + [pushMock observeValueForKeyPath:@"delegate" + ofObject:nil + change:@{ + @"new" : userNotificationCenterDelegateMock + } + context:[MSPush userNotificationCenterDelegateContext]]; + [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; + + // Then + OCMVerify([pushMock didReceiveUserNotification:userNotificationMock]); + OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock + didActivateNotification:userNotificationMock]); + + [pushMock stopMocking]; +} + +#endif + @end From 63831572c46eac9f64df77f5e165aad69ed615a4 Mon Sep 17 00:00:00 2001 From: Murat Baysangurov Date: Fri, 15 Sep 2017 12:34:40 +0300 Subject: [PATCH 05/61] Manually setup root controller --- .../Base.lproj/SasquatchMac.storyboard | 44 +++++++++++-------- SasquatchMac/SasquatchMacObjC/AppDelegate.m | 19 +++----- .../SasquatchMacSwift/AppDelegate.swift | 16 +++---- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/SasquatchMac/SasquatchMac/Base.lproj/SasquatchMac.storyboard b/SasquatchMac/SasquatchMac/Base.lproj/SasquatchMac.storyboard index 679f56b06d..f0406cad5e 100644 --- a/SasquatchMac/SasquatchMac/Base.lproj/SasquatchMac.storyboard +++ b/SasquatchMac/SasquatchMac/Base.lproj/SasquatchMac.storyboard @@ -1,7 +1,8 @@ - + - + + @@ -662,12 +663,15 @@ - + + + + @@ -691,8 +695,12 @@ + + + + @@ -710,7 +718,7 @@ - + @@ -718,7 +726,7 @@ - + @@ -726,7 +734,7 @@ - + @@ -734,7 +742,7 @@ - + @@ -742,7 +750,7 @@ - + @@ -753,7 +761,7 @@ - + @@ -761,7 +769,7 @@ - + @@ -820,7 +828,7 @@ - + @@ -855,7 +863,7 @@ - + @@ -878,7 +886,7 @@ - + @@ -911,7 +919,7 @@ - + @@ -964,7 +972,7 @@ - + @@ -1021,7 +1029,7 @@ - + @@ -1065,7 +1073,7 @@ - + @@ -1112,7 +1120,7 @@ - + diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.m b/SasquatchMac/SasquatchMacObjC/AppDelegate.m index 36ec1f75a1..479281db65 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.m +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.m @@ -21,22 +21,17 @@ - (void) applicationDidFinishLaunching:(NSNotification *)notification { [MSMobileCenter start:@"4b3f7d94-c64b-4aac-94f5-894c55c64bfe" withServices:@[ [MSAnalytics class], [MSCrashes class], [MSPush class] ]]; [MobileCenterProvider shared].mobileCenter = [[MobileCenterDelegateObjC alloc] init]; - [self updateMobileCenterState]; + + [self initUI]; } #pragma mark - Private -- (void)updateMobileCenterState { - NSTabViewController *tabViewController = (NSTabViewController *) NSApplication.sharedApplication.mainWindow.contentViewController; - for (NSTabViewItem *tabViewItem in tabViewController.tabViewItems) { - if ([tabViewItem.viewController isKindOfClass:[MobileCenterViewController class]]) { - [((MobileCenterViewController *) tabViewItem.viewController) updateMCState]; - } else if ([tabViewItem.viewController isKindOfClass:[AnalyticsViewController class]]) { - [((AnalyticsViewController *) tabViewItem.viewController) updateMCState]; - } else { - [((CrashesViewController *) tabViewItem.viewController) updateMCState]; - } - } +- (void)initUI { + NSStoryboard *mainStoryboard = [NSStoryboard storyboardWithName:@"SasquatchMac" bundle:nil]; + NSWindowController *rootController = (NSWindowController *)[mainStoryboard instantiateControllerWithIdentifier:@"rootController"]; + [rootController showWindow:self]; + [rootController.window makeKeyAndOrderFront:self]; } - (void)setupCrashes { diff --git a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift index fc97b67211..f12a9cc9a1 100644 --- a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift +++ b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift @@ -38,17 +38,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, MSCrashesDelegate, MSPushDel MSMobileCenter.start("c62b8db6-191e-496a-b1a1-267b9bf326c4", withServices : [ MSAnalytics.self, MSCrashes.self, MSPush.self ]) MobileCenterProvider.shared().mobileCenter = MobileCenterDelegateSwift() - updateMobileCenterState() + + initUI() } - func updateMobileCenterState() { - if let sasquatchMacView = NSApplication.shared().mainWindow?.contentViewController as? NSTabViewController { - for tabViewItem in sasquatchMacView.tabViewItems { - (tabViewItem.viewController as? MobileCenterViewController)?.updateMCState() - (tabViewItem.viewController as? AnalyticsViewController)?.updateMCState() - (tabViewItem.viewController as? CrashesViewController)?.updateMCState() - } - } + func initUI() { + let mainStoryboard = NSStoryboard.init(name: "SasquatchMac", bundle: nil) + let rootController = mainStoryboard.instantiateController(withIdentifier: "rootController") as! NSWindowController + rootController.showWindow(self) + rootController.window?.makeKeyAndOrderFront(self) } // Crashes Delegate From 8665025a0430ff16d93e7047bc3a68955629580d Mon Sep 17 00:00:00 2001 From: Murat Baysangurov Date: Fri, 15 Sep 2017 12:35:01 +0300 Subject: [PATCH 06/61] ViewControllers updated --- .../MobileCenterViewController.swift | 19 ++- .../AnalyticsViewController.swift | 115 ++++++++---------- .../CrashesViewController.swift | 13 +- 3 files changed, 65 insertions(+), 82 deletions(-) diff --git a/SasquatchMac/SasquatchMac/MobileCenterViewController.swift b/SasquatchMac/SasquatchMac/MobileCenterViewController.swift index 289eb49b8a..4117639ce1 100644 --- a/SasquatchMac/SasquatchMac/MobileCenterViewController.swift +++ b/SasquatchMac/SasquatchMac/MobileCenterViewController.swift @@ -2,7 +2,7 @@ import Cocoa class MobileCenterViewController : NSViewController { - var mobileCenter: MobileCenterDelegate? + var mobileCenter: MobileCenterDelegate = MobileCenterProvider.shared().mobileCenter! @IBOutlet var installIdLabel : NSTextField? @IBOutlet var appSecretLabel : NSTextField? @@ -11,19 +11,14 @@ class MobileCenterViewController : NSViewController { override func viewDidLoad() { super.viewDidLoad() - updateMCState() + installIdLabel?.stringValue = mobileCenter.installId() + appSecretLabel?.stringValue = mobileCenter.appSecret() + logURLLabel?.stringValue = mobileCenter.logUrl() + setEnabledButton?.state = mobileCenter.isMobileCenterEnabled() ? 1 : 0 } @IBAction func setEnabled(sender : NSButton) { - mobileCenter?.setMobileCenterEnabled(sender.state == 1) - sender.state = mobileCenter!.isMobileCenterEnabled() ? 1 : 0 - } - - func updateMCState() { - mobileCenter = MobileCenterProvider.shared().mobileCenter - installIdLabel?.stringValue = mobileCenter?.installId() ?? "" - appSecretLabel?.stringValue = mobileCenter?.appSecret() ?? "" - logURLLabel?.stringValue = mobileCenter?.logUrl() ?? "" - setEnabledButton?.state = (mobileCenter?.isMobileCenterEnabled() ?? false) ? 1 : 0 + mobileCenter.setMobileCenterEnabled(sender.state == 1) + sender.state = mobileCenter.isMobileCenterEnabled() ? 1 : 0 } } diff --git a/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift b/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift index 8dcebe588c..885c4080a0 100644 --- a/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift +++ b/SasquatchMac/SasquatchMac/ViewControllers/AnalyticsViewController.swift @@ -4,145 +4,138 @@ import Cocoa class AnalyticsViewController : NSViewController, NSTableViewDataSource, NSTableViewDelegate { private enum CellIdentifiers { - static let keyCellId = "keyCellId"; - static let valueCellId = "valueCellId"; + static let keyCellId = "keyCellId" + static let valueCellId = "valueCellId" } - var mobileCenter: MobileCenterDelegate?; + var mobileCenter: MobileCenterDelegate = MobileCenterProvider.shared().mobileCenter! - @IBOutlet var setEnabledButton : NSButton?; - @IBOutlet var table : NSTableView?; + @IBOutlet var setEnabledButton : NSButton? + @IBOutlet var table : NSTableView? - private var properties : [String : String] = [String : String](); - private var textBeforeEditing : String = ""; - private var totalPropsCounter : Int = 0; + private var properties : [String : String] = [String : String]() + private var textBeforeEditing : String = "" + private var totalPropsCounter : Int = 0 override func viewDidLoad() { - super.viewDidLoad(); - updateMCState(); - table?.delegate = self; - table?.dataSource = self; - NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidBegin), name: .NSControlTextDidBeginEditing, object: nil); - NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidEnd), name: .NSControlTextDidEndEditing, object: nil); - } - - func updateMCState() { - mobileCenter = MobileCenterProvider.shared().mobileCenter; - setEnabledButton?.state = (mobileCenter?.isAnalyticsEnabled() ?? false) ? 1 : 0; + super.viewDidLoad() + setEnabledButton?.state = mobileCenter.isAnalyticsEnabled() ? 1 : 0 + table?.delegate = self + table?.dataSource = self + NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidBegin), name: .NSControlTextDidBeginEditing, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(self.editingDidEnd), name: .NSControlTextDidEndEditing, object: nil) } override func viewDidDisappear() { - super.viewDidDisappear(); - NotificationCenter.default.removeObserver(self); + super.viewDidDisappear() + NotificationCenter.default.removeObserver(self) } @IBAction func trackEvent(_ : AnyObject) { - if let `mobileCenter` = mobileCenter { - mobileCenter.trackEvent("myEvent", withProperties: properties); - } + mobileCenter.trackEvent("myEvent", withProperties: properties) } @IBAction func trackPage(_ : AnyObject) { - NSLog("trackPageWithProperties: %d", properties.count); + NSLog("trackPageWithProperties: %d", properties.count) } @IBAction func addProperty(_ : AnyObject) { - let newKey = String(format:"key%d",totalPropsCounter); - let newValue = String(format:"value%d",totalPropsCounter); + let newKey = String(format:"key%d",totalPropsCounter) + let newValue = String(format:"value%d",totalPropsCounter) - self.properties.updateValue(newValue, forKey: newKey); - table?.reloadData(); + self.properties.updateValue(newValue, forKey: newKey) + table?.reloadData() - totalPropsCounter+=1; + totalPropsCounter+=1 } @IBAction func deleteProperty(_ : AnyObject) { if properties.isEmpty { - return; + return } guard let `table` = table else { - return; + return } if (table.selectedRow < 0) { - _ = properties.popFirst(); + _ = properties.popFirst() } else { - let key : String = Array(properties.keys)[table.selectedRow]; - _ = properties.removeValue(forKey: key); + let key : String = Array(properties.keys)[table.selectedRow] + _ = properties.removeValue(forKey: key) } - table.reloadData(); + table.reloadData() } @IBAction func setEnabled(sender : NSButton) { - mobileCenter?.setAnalyticsEnabled(sender.state == 1) - sender.state = mobileCenter!.isAnalyticsEnabled() ? 1 : 0 + mobileCenter.setAnalyticsEnabled(sender.state == 1) + sender.state = mobileCenter.isAnalyticsEnabled() ? 1 : 0 } //MARK: Table view source delegate func numberOfRows(in tableView: NSTableView) -> Int { - return properties.count; + return properties.count } //MARK: Table view delegate func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { guard let `tableColumn` = tableColumn else { - return nil; + return nil } - var cellValue : String = ""; - var cellId : String = ""; - let key : String = Array(properties.keys)[row]; + var cellValue : String = "" + var cellId : String = "" + let key : String = Array(properties.keys)[row] if (tableColumn == tableView.tableColumns[0]) { - cellValue = key; - cellId = CellIdentifiers.keyCellId; + cellValue = key + cellId = CellIdentifiers.keyCellId } else if (tableColumn == tableView.tableColumns[1]) { - cellValue = properties[key]!; - cellId = CellIdentifiers.valueCellId; + cellValue = properties[key]! + cellId = CellIdentifiers.valueCellId } if let cell = tableView.make(withIdentifier: cellId, owner: nil) as? NSTableCellView { - cell.textField?.stringValue = cellValue; - cell.textField?.isEditable = true; - return cell; + cell.textField?.stringValue = cellValue + cell.textField?.isEditable = true + return cell } - return nil; + return nil } //MARK: Text field events func editingDidBegin(notification : NSNotification) { guard let textField = notification.object as? NSTextField else { - return; + return } - textBeforeEditing = textField.stringValue; + textBeforeEditing = textField.stringValue } func editingDidEnd(notification : NSNotification) { guard let textField = notification.object as? NSTextField else { - return; + return } // If key if (properties.keys.contains(textBeforeEditing)) { - let oldKey : String = textBeforeEditing; - let newKey : String = textField.stringValue; + let oldKey : String = textBeforeEditing + let newKey : String = textField.stringValue if let value = properties.removeValue(forKey: oldKey) { - properties.updateValue(value, forKey: newKey); + properties.updateValue(value, forKey: newKey) } } // If value else { guard let row = table?.row(for: textField) else { - return; + return } - let key : String = Array(properties.keys)[row]; - properties.updateValue(textField.stringValue, forKey: key); + let key : String = Array(properties.keys)[row] + properties.updateValue(textField.stringValue, forKey: key) } - table?.reloadData(); + table?.reloadData() } } diff --git a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift index 3a89e3960f..89e3f8d32e 100644 --- a/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift +++ b/SasquatchMac/SasquatchMac/ViewControllers/CrashesViewController.swift @@ -2,7 +2,7 @@ import Cocoa class CrashesViewController : NSViewController, NSTableViewDataSource, NSTableViewDelegate { - var mobileCenter: MobileCenterDelegate? + var mobileCenter: MobileCenterDelegate = MobileCenterProvider.shared().mobileCenter! var crashes = [Any]() @IBOutlet var setEnabledButton : NSButton? @IBOutlet weak var crashesTableView: NSTableView! @@ -12,17 +12,12 @@ class CrashesViewController : NSViewController, NSTableViewDataSource, NSTableVi loadAllCrashes() crashesTableView.dataSource = self crashesTableView.delegate = self - updateMCState() - } - - func updateMCState() { - mobileCenter = MobileCenterProvider.shared().mobileCenter - setEnabledButton?.state = (mobileCenter?.isCrashesEnabled() ?? false) ? 1 : 0 + setEnabledButton?.state = mobileCenter.isCrashesEnabled() ? 1 : 0 } @IBAction func setEnabled(sender : NSButton) { - mobileCenter?.setCrashesEnabled(sender.state == 1) - sender.state = mobileCenter!.isCrashesEnabled() ? 1 : 0 + mobileCenter.setCrashesEnabled(sender.state == 1) + sender.state = mobileCenter.isCrashesEnabled() ? 1 : 0 } func numberOfRows(in tableView: NSTableView) -> Int { From 506ccf75a1e3295e38530fbc4694ba1b166bba9e Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 19 Sep 2017 13:38:34 -0700 Subject: [PATCH 07/61] Address PR feedback --- MobileCenterPush/MobileCenterPush/MSPush.m | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 91b1c867bc..419f79af9a 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -102,14 +102,11 @@ - (void)observeValueForKeyPath:(NSString *)keyPath context:(void *)context { if (context == UserNotificationCenterDelegateContext && [keyPath isEqualToString:kMSUserNotificationCenterDelegateKey]) { - userNotificationCenterDelegate = [change objectForKey:NSKeyValueChangeNewKey]; - NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; - [center removeObserver:self forKeyPath:keyPath]; - center.delegate = self; - [center addObserver:self - forKeyPath:keyPath - options:NSKeyValueObservingOptionNew - context:UserNotificationCenterDelegateContext]; + id delegate = [change objectForKey:NSKeyValueChangeNewKey]; + if (delegate != self) { + userNotificationCenterDelegate = delegate; + [NSUserNotificationCenter defaultUserNotificationCenter].delegate = self; + } } else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } From 9477fddba70cebd085a2dd404460ea1e5e0e7809 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 19 Sep 2017 15:21:45 -0700 Subject: [PATCH 08/61] Revise log message --- MobileCenterPush/MobileCenterPush/MSPush.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 419f79af9a..0935f566bc 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -323,7 +323,7 @@ - (BOOL)didReceiveRemoteNotification:(NSDictionary *)userInfo fromUserNotificati if (![[self class] isEnabled]) { MSLogVerbose( [MSPush logTag], - @"Notification received while Push was enabled but Push is not disabled now, discard the notification."); + @"Notification received while Push was enabled but it is disabled now, discard the notification."); return YES; } From d57eb8dbb9b64e89514ac7712bd1a5388e905565 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 19 Sep 2017 15:49:18 -0700 Subject: [PATCH 09/61] Handle other methods in user notification center delegate --- MobileCenterPush/MobileCenterPush/MSPush.m | 23 +++++++++++++++--- .../MobileCenterPushTests/MSPushTests.m | 24 +++++++++++++++---- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 0935f566bc..760a837257 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -276,6 +276,13 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification { [self didReceiveUserNotification:[notification.userInfo objectForKey:NSApplicationLaunchUserNotificationKey]]; } +- (void)userNotificationCenter:(NSUserNotificationCenter *)center + didDeliverNotification:(NSUserNotification *)notification { + if ([userNotificationCenterDelegate respondsToSelector:@selector(userNotificationCenter:didDeliverNotification:)]) { + [userNotificationCenterDelegate userNotificationCenter:center didDeliverNotification:notification]; + } +} + - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { [self didReceiveUserNotification:notification]; @@ -283,6 +290,17 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center [userNotificationCenterDelegate userNotificationCenter:center didActivateNotification:notification]; } } + +- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center + shouldPresentNotification:(NSUserNotification *)notification { + if ([userNotificationCenterDelegate + respondsToSelector:@selector(userNotificationCenter:shouldPresentNotification:)]) { + return [userNotificationCenterDelegate userNotificationCenter:center shouldPresentNotification:notification]; + } + + // This method is called when the user notification center has decided not to present your notification. Return NO. + return NO; +} #endif - (BOOL)didReceiveRemoteNotification:(NSDictionary *)userInfo fromUserNotification:(BOOL)userNotification { @@ -321,9 +339,8 @@ - (BOOL)didReceiveRemoteNotification:(NSDictionary *)userInfo fromUserNotificati // If Push is disabled, discard the notification. if (![[self class] isEnabled]) { - MSLogVerbose( - [MSPush logTag], - @"Notification received while Push was enabled but it is disabled now, discard the notification."); + MSLogVerbose([MSPush logTag], + @"Notification received while Push was enabled but it is disabled now, discard the notification."); return YES; } diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 24b6a83d4b..76c6b37998 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -304,7 +304,7 @@ - (void)testNotificationReceivedForNonMobileCenterNotification { OCMStub([userNotificationUserInfoMock userInfo]).andReturn(invalidUserInfo); #endif -// When + // When #if TARGET_OS_OSX [self.sut applicationDidFinishLaunching:notificationMock]; #else @@ -391,10 +391,17 @@ - (void)testUserNotificationCenterDelegateBeforePushStart { id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); OCMStub([userNotificationCenterMock delegate]).andReturn(userNotificationCenterDelegateMock); - - // When self.sut = [MSPush new]; id pushMock = OCMPartialMock(self.sut); + + // When + [pushMock userNotificationCenter:userNotificationCenterMock didDeliverNotification:userNotificationMock]; + + // Then + OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock + didDeliverNotification:userNotificationMock]); + + // When [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; // Then @@ -402,6 +409,13 @@ - (void)testUserNotificationCenterDelegateBeforePushStart { OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]); + // When + [pushMock userNotificationCenter:userNotificationCenterMock shouldPresentNotification:userNotificationMock]; + + // Then + OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock + shouldPresentNotification:userNotificationMock]); + [pushMock stopMocking]; } @@ -412,10 +426,10 @@ - (void)testUserNotificationCenterDelegateAfterPushStart { id userNotificationCenterDelegateMock = OCMProtocolMock(@protocol(NSUserNotificationCenterDelegate)); id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); - - // When self.sut = [MSPush new]; id pushMock = OCMPartialMock(self.sut); + + // When [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; // Then From a749354bcbcada4034b13ed721483fbd4f36981e Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 20 Sep 2017 10:38:13 -0700 Subject: [PATCH 10/61] Address feedback --- .../MobileCenterPush/Internal/MSPushPrivate.h | 4 +++ MobileCenterPush/MobileCenterPush/MSPush.m | 30 +++++++------------ 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h index 85dd0da0d6..df903e5f28 100644 --- a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h +++ b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h @@ -14,6 +14,10 @@ @property(nonatomic) BOOL pushTokenHasBeenSent; +#if TARGET_OS_OSX +@property(nonatomic) id originalUserNotificationCenterDelegate; +#endif + /** * Custom application delegate dedicated to Push. */ diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 760a837257..20f26425ec 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -48,7 +48,6 @@ static MSPush *sharedInstance = nil; static dispatch_once_t onceToken; #if TARGET_OS_OSX -static id userNotificationCenterDelegate; static void *UserNotificationCenterDelegateContext = &UserNotificationCenterDelegateContext; #endif @@ -73,7 +72,7 @@ - (instancetype)init { * delegate to custom user notification center delegate. */ if (center.delegate) { - userNotificationCenterDelegate = center.delegate; + _originalUserNotificationCenterDelegate = center.delegate; } // Set a delegate that will forward notifications to Push as well as a customer's delegate. @@ -104,7 +103,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath [keyPath isEqualToString:kMSUserNotificationCenterDelegateKey]) { id delegate = [change objectForKey:NSKeyValueChangeNewKey]; if (delegate != self) { - userNotificationCenterDelegate = delegate; + self.originalUserNotificationCenterDelegate = delegate; [NSUserNotificationCenter defaultUserNotificationCenter].delegate = self; } } else { @@ -276,30 +275,21 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification { [self didReceiveUserNotification:[notification.userInfo objectForKey:NSApplicationLaunchUserNotificationKey]]; } -- (void)userNotificationCenter:(NSUserNotificationCenter *)center - didDeliverNotification:(NSUserNotification *)notification { - if ([userNotificationCenterDelegate respondsToSelector:@selector(userNotificationCenter:didDeliverNotification:)]) { - [userNotificationCenterDelegate userNotificationCenter:center didDeliverNotification:notification]; - } -} - - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { [self didReceiveUserNotification:notification]; - if ([userNotificationCenterDelegate respondsToSelector:@selector(userNotificationCenter:didActivateNotification:)]) { - [userNotificationCenterDelegate userNotificationCenter:center didActivateNotification:notification]; + if ([self.originalUserNotificationCenterDelegate + respondsToSelector:@selector(userNotificationCenter:didActivateNotification:)]) { + [self.originalUserNotificationCenterDelegate userNotificationCenter:center didActivateNotification:notification]; } } -- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center - shouldPresentNotification:(NSUserNotification *)notification { - if ([userNotificationCenterDelegate - respondsToSelector:@selector(userNotificationCenter:shouldPresentNotification:)]) { - return [userNotificationCenterDelegate userNotificationCenter:center shouldPresentNotification:notification]; +- (void)forwardInvocation:(NSInvocation *)anInvocation { + if ([self.originalUserNotificationCenterDelegate respondsToSelector:[anInvocation selector]]) { + [anInvocation invokeWithTarget:self.originalUserNotificationCenterDelegate]; + } else { + [super forwardInvocation:anInvocation]; } - - // This method is called when the user notification center has decided not to present your notification. Return NO. - return NO; } #endif From 11250e896a3b7fca3677d8f44b381f513c337c24 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 20 Sep 2017 11:31:10 -0700 Subject: [PATCH 11/61] Fix unit test failure --- .../MobileCenterPushTests/MSPushTests.m | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 76c6b37998..993cd834ed 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -394,13 +394,6 @@ - (void)testUserNotificationCenterDelegateBeforePushStart { self.sut = [MSPush new]; id pushMock = OCMPartialMock(self.sut); - // When - [pushMock userNotificationCenter:userNotificationCenterMock didDeliverNotification:userNotificationMock]; - - // Then - OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock - didDeliverNotification:userNotificationMock]); - // When [pushMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]; @@ -409,13 +402,6 @@ - (void)testUserNotificationCenterDelegateBeforePushStart { OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock didActivateNotification:userNotificationMock]); - // When - [pushMock userNotificationCenter:userNotificationCenterMock shouldPresentNotification:userNotificationMock]; - - // Then - OCMVerify([userNotificationCenterDelegateMock userNotificationCenter:userNotificationCenterMock - shouldPresentNotification:userNotificationMock]); - [pushMock stopMocking]; } From 9989277fabd62fd309682dc97879bfaa3c8f8546 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 20 Sep 2017 12:14:46 -0700 Subject: [PATCH 12/61] Only define a constant on macOS --- MobileCenterPush/MobileCenterPush/MSPush.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 20f26425ec..6b286dbad3 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -37,10 +37,12 @@ static NSString *const kMSPushNotificationMessageKey = @"body"; static NSString *const kMSPushNotificationCustomDataKey = @"mobile_center"; +#if TARGET_OS_OSX /** * Key for NSUserNotificationCenter delegate property. */ static NSString *const kMSUserNotificationCenterDelegateKey = @"delegate"; +#endif /** * Singleton From 371c31e9350187ddaccf75cf00e36639e0a25d6f Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 21 Sep 2017 15:48:53 -0700 Subject: [PATCH 13/61] Localization script + other files --- Localization/TouchDownCheckinScript.ps1 | 266 ++++++++++++++++++ Localization/mobile-center-cultures.csv | 14 + .../mobile-center-sdks-loc-file-list.csv | 4 + 3 files changed, 284 insertions(+) create mode 100644 Localization/TouchDownCheckinScript.ps1 create mode 100644 Localization/mobile-center-cultures.csv create mode 100644 Localization/mobile-center-sdks-loc-file-list.csv diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 new file mode 100644 index 0000000000..b8f1f719df --- /dev/null +++ b/Localization/TouchDownCheckinScript.ps1 @@ -0,0 +1,266 @@ +param([String]$SrcRoot="undefined") + +#to Run the script simply run the following commnand from a PowerShell prompt +#Here is a PowerShell script to process the file from the TouchDown project + +#What would be the standard steps to enable check in process +# -Sync the Localized File on the machine +# -GIT reset –hard reset +# -GIT pull +# -Create a Temp loc branch +# -Set the Flag (ChangesAreDetected = false) +# -Call TD +# -Extract the ZIP file +# -Map the extracted file to the Local file +# -Compare the localized File with File in the Repo, if those files are different then run the command sd add +# -Set the Flag (ChangesAreDetected = True) +# -Run a Git push (Integrate the TempLocBranch to your working branch) + +#Let generate the Command Line to pull our the Touch Down file +#Here are the variables needed +# $absoluteFilePath +# $outFilePath +# $relativeFilePath +# $teamId (can be defined as a Global Variable) +#At first it will place those either in a CSV file or XML file +#You can provide the $Srcroot from the command line. If you add those variable in your path from the script, those will be automatically replaced +#The Language can also specified so that you have a very flexible way of binplacing the Localized file. + +# we need to build a command line that is like this: + +#Here is an example of Command line +#Invoke-RestMethod -Uri "http://tdbuild/api/teams/$teamId/LocalizableFiles" -Method Put -UseDefaultCredentials -ContentType "multipart/form-data; boundary=$boundary" -Body $body -OutFile $outFilePath + +$CultureSettingFile= "mobile-center-cultures.csv" +$ProjectInfo = "mobile-center-sdks-loc-file-list.csv" + +$Guid = [GUID]::NewGuid() +$TempLocBranch = "TouchDownCheckin_" + $Guid +$repoPath = $SrcRoot +$LogFile = "C:\TouchDown\TDCheckin\log.txt" +$DefaultRepoBranch = "master" +$teamId = "272" #ID for iOS +$git = "git" + +Function ProcessStart($AppToRun,$Argument,$WorkingDir) +{ + $pinfo = New-Object System.Diagnostics.ProcessStartInfo + $pinfo.FileName = $AppToRun + $pinfo.Arguments = $Argument + $pinfo.WorkingDirectory = $WorkingDir + $pinfo.CreateNoWindow = $True + $pinfo.RedirectStandardError = $true + $pinfo.RedirectStandardOutput = $true + $pinfo.UseShellExecute = $false + + $p = New-Object System.Diagnostics.Process + $p.StartInfo = $pinfo + $p.Start() | Out-Null + $p.WaitForExit() + + $output = $p.StandardOutput.ReadToEnd() + $output += $p.StandardError.ReadToEnd() + + write-host $output +} + +Function InitializeRepoForCheckin +{ + $Argument = "checkout " + $DefaultRepoBranch + ProcessStart $git $Argument $repoPath + + $Argument = "reset --hard HEAD" + ProcessStart $git $Argument $repoPath + #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow + + $Argument = "pull" + ProcessStart $git $Argument $repoPath + #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow + + $Argument = "checkout -b" + $TempLocBranch + ProcessStart $git $Argument $repoPath + #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow -redirectstandardoutput $logfile +} + +Function CheckinFilesIntoRepo +{ + #Commit the changes + $Argument = 'commit -m "Latest localized files from touchdown"' + ProcessStart $git $Argument $repoPath + + #Push the Changes to the git server you still need to merge the changes + $Argument = "push -u origin " + $TempLocBranch + ProcessStart $git $Argument $repoPath +} + +Class Cl_Culture +{ + [String]$LCID + [String]$LSBUILD + [string]$Culture + + Cl_Culture ([string]$LCID,$LSBUILD,$Culture) + { + $this.LCID =$LCID + $this.LSBUILD = $LSBUILD + $this.Culture = $Culture + } +} + +#Unzip a file +Add-Type -AssemblyName System.IO.Compression.FileSystem +Function Unzip ($zipfile,$outpath) +{ + #Remove the content of the outpath folder if it exists + write-Host "We are unzipping the zip file $zipfile to $outpath" + + $zipfile = $ExecutionContext.InvokeCommand.ExpandString($zipfile) + + if ((Test-Path -Path $outpath) -and $outpath.Contains("Unzip")) + { + write-host "Deleting the file" + Remove-Item -Recurse -Force $outpath + } + + [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath) +} + +Function GetCulture($CultureFile,$CultureToSearch) +{ + write-host $CultureFile + + $Cultures = Import-CSV $CultureFile + + ForEach ($culture in $Cultures) + { + $LCID =$culture.LCID + $LSBUILDCULTURE =$culture.LSBUILDCULTURE + $CULTURE =$culture.Culture + + if ($CultureToSearch -eq $LSBUILDCULTURE) + { + $OCulture = [Cl_Culture]::new($LCID,$LSBUILDCULTURE,$Culture) + write-host $OCulture.LSBUILD + Return $OCulture + } + } +} + +Function TouchDownTransaction ($absoluteFilePath,$outFilePath,$relativeFilePath,$teamId,$LanguageSet) +{ + $filePath = @{ FilePath = $relativeFilePath } + $filePathJson = ConvertTo-Json $filePath -Compress + + # convert file into an octet-stream + $fileBinary = [System.Text.Encoding]::GetEncoding("ISO-8859-1").GetString((Get-Content -Encoding Byte -Path $absoluteFilePath)) + + # generate form-data body + $boundary = "tdbuildFormBoundary" + + #Formatting is weird in script to keep correct format for output? + $body = @" +--$boundary +Content-Disposition: form-data; name="application/json" +Content-Type: application/json + +$filePathJson +--$boundary +Content-Disposition: form-data; name="resources"; filename="resources" +Content-Type: application/octet-stream + +$fileBinary +--$boundary-- +"@ + + write-host "Before IRM" + write-host "BODY: $body" + + Invoke-RestMethod -Uri "http://tdbuild/api/teams/$teamId/LocalizableFiles" -Method Put -UseDefaultCredentials -ContentType "multipart/form-data; boundary=$boundary" -Body $body -OutFile $outFilePath + + write-host "After IRM" +} + +Function binplace ($UnzipFileto,$relativeFilePath,$TargetPath,$LanguageSet) +{ + $Langs = $LanguageSet.split(";") + + foreach($Language in $Langs) + { + write-host "the culture file is:" + write-host $CultureFile + + $OCulture = GetCulture $CultureSettingFile $Language + $Culture = $OCulture.Culture + + $LocalizedFile = $UnzipFileto + "\" + $OCulture.Lsbuild + $relativeFilePath + $TargetPathLoc = $ExecutionContext.InvokeCommand.ExpandString($TargetPath) + $TargetPathDir = $TargetPathLoc.Substring(0,$TargetPathLoc.LastIndexOf("\")) + + write-host $LocalizedFile + write-host $TargetPathLoc + + if(!(Test-Path -Path $TargetPathDir )){ + New-Item $TargetPathDir -type directory + } + Copy-Item $LocalizedFile $TargetPathLoc + } +} + +Function AddFiletoRepo ($TargetPath,$LanguageSet) +{ + + $Langs = $LanguageSet.split(";") + + foreach($Language in $Langs) + { + $OCulture = GetCulture $CultureSettingFile $Language + + #We pull out here the culture that might be used during the string expansion. + $Culture = $OCulture.Culture + + $TargetPathLoc = $ExecutionContext.InvokeCommand.ExpandString($TargetPath) + + $FileToCheckin = $TargetPathLoc + $Argument = "add " + $FileToCheckin + + write-host $Argument + + #Start-Process $git $Argument -WorkingDirectory $repoPath + ProcessStart $git $Argument $repoPath + } +} + +Function RefreshTDFiles +{ + InitializeRepoForCheckin + + $Files = Import-CSV $ProjectInfo + + Foreach($File in $Files) + { + write-host "Start processing Files" + + $absoluteFilePath = $File.absoluteFilePath + $outFilePath = $File.outFilePath + $relativeFilePath = $File.relativeFilePath + $TargetPath = $File.TargetPath + $LanguageSet = $File.LanguageSet + + $outFilePath = $ExecutionContext.InvokeCommand.ExpandString($outFilePath) + $absoluteFilePath = $ExecutionContext.InvokeCommand.ExpandString($absoluteFilePath) + + write-host "-----TOUCHDOWN TRANSACTION-----" + TouchDownTransaction $absoluteFilePath $outFilePath $relativeFilePath $teamId $LanguageSet + + $UnzipFileTo = $outFilePath + "\Unzip\" + Unzip $outFilePath $UnzipFileTo + + binplace $UnzipFileto $relativeFilePath $TargetPath $LanguageSet + + AddFiletoRepo $TargetPath $LanguageSet + } + + CheckinFilesIntoRepo +} + +RefreshTDFiles \ No newline at end of file diff --git a/Localization/mobile-center-cultures.csv b/Localization/mobile-center-cultures.csv new file mode 100644 index 0000000000..ddb7369d74 --- /dev/null +++ b/Localization/mobile-center-cultures.csv @@ -0,0 +1,14 @@ +enu +fra +deu +ita +esn +chs +cht +jpn +kor +rus +csy +plk +ptb +trk diff --git a/Localization/mobile-center-sdks-loc-file-list.csv b/Localization/mobile-center-sdks-loc-file-list.csv new file mode 100644 index 0000000000..ffa173191d --- /dev/null +++ b/Localization/mobile-center-sdks-loc-file-list.csv @@ -0,0 +1,4 @@ +absoluteFilePath,outFilePath,relativeFilePath,TargetPath,LanguageSet +$SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,.\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,.\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,.\Puppet\Puppet\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk From 2df2aaa64bce8cd821a110b03527ca45c2037fc5 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 21 Sep 2017 15:56:14 -0700 Subject: [PATCH 14/61] Latest localized files from touchdown --- Localization/MobileCenterDistribute.zip | Bin 0 -> 5638 bytes Localization/Puppet.zip | Bin 0 -> 4598 bytes Localization/Sasquatch.zip | Bin 0 -> 3259 bytes .../mobile-center-sdks-loc-file-list.csv | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 Localization/MobileCenterDistribute.zip create mode 100644 Localization/Puppet.zip create mode 100644 Localization/Sasquatch.zip diff --git a/Localization/MobileCenterDistribute.zip b/Localization/MobileCenterDistribute.zip new file mode 100644 index 0000000000000000000000000000000000000000..310607fac35eca690db3afea68885855a96a8a59 GIT binary patch literal 5638 zcmWIWW@Zs#U|`^2cv)xaohvtemkc8VLje;5g9=bIxmedZD#kZIDKjV4IW?~&wa6v2 zxTGjEsk9_j55&kzFYXOIopsniU=RBr{%*w!Y(e!7nnzTo%iM8_|IT|$ZBf^gtfvzH zYr})?HqCW*WPf|++?jPDYr9z2JXjkl!7;_{abLj;r-Et9!J^%pDsN`;#c})W{CM%J zs*S@><;_9&{H3!0aCxO zkA3<4`qryUcI&0Yc+Wdn>tK<|Hbucde(pDx=GO{448!wI``VbFKKu5r{h|4{7R+@u zKL77?ql6__QcKZZQ$EoXPdP{jY2oISl2apG<0bcx@kqaZb74=OQX=uEYbB084X<;g>F`&u2;Zl z=+Y>3v-5SmM@t4;wHXR>bOU@w(=LtDZb6Bz(`eeIRoX2o)eQ7@~G;x#q~24Z?9#G7cs!N5RFYn*r!CvgJD z28n2a5^v%ME})4-w7Q5l(T|6LftZ#C@g}a}Wndttb|v0KE`A0EVrmrPP0SDgn@F$} W4e(|KrZWZxULe#0=89v2ARYi3_z+wG literal 0 HcmV?d00001 diff --git a/Localization/Puppet.zip b/Localization/Puppet.zip new file mode 100644 index 0000000000000000000000000000000000000000..8b78441476f5c1ba0b590e6d7a6bceb61b6f779b GIT binary patch literal 4598 zcmWIWW@Zs#U|`^2V6HdyRtQ;d`~k?j%gDeW1f-LTb)BPPd=oSC^omQ0GV{`lb0^&O zI^w|7`kuSC{f2a+ewn<33roIeBJ0OhOXl9-vz|M}^H|jUdo%U^ZFnmnapxfR0jJCRzAn$ zmTo^2`}5!OPnV(_LpX9po*t~5$e4VwaC`1NPqD|*zswoWKc8%I`hEc3@JUJ4b#WaH zADrnYwOH3Rcr<))hEH0Nu3OM(_}~nm%o1JCkkRnL89rHwx?TaJ;e#`Lvh#JlNAnl% z`n@1WH^65!{oqVL1tq#pqv;2C`Y9^a4GJAiKRDA*Ns(^IX!^mOeyTEbo&84B56<)h z44;tj5gtB_Od<@pQxGudkN{?XHNcx#{R+T7FJ^y^c>NAc3=Ek49pd#TFf%Y<_6La9 z-@wAafZ1LqUjG7C1_sRbB=PzWurV-Twzr7a|A3u=0kb_qynY5wpni<{nt1&RTnr4D z^%?Q{9k>}7Fw1-5^(XK!FkqI4#OrV11?xvEF9N(-f$_q?zzc*9z!bKC55xlin%76N literal 0 HcmV?d00001 diff --git a/Localization/Sasquatch.zip b/Localization/Sasquatch.zip new file mode 100644 index 0000000000000000000000000000000000000000..ab2573e5611da52578ee71cde82e7e09e9149969 GIT binary patch literal 3259 zcmWIWW@Zs#U|`^2_`1#1d*S;i>rNo=5fBRjadNS)b5x9PVrHIRaY<2TUV3qE-$uSe z20Sj`y?(M!-pKry;fVSHChp*;W?|Wyz6;76K73V~VtCC{{qEh#ceW--H3%2o=w2tY zY`<-6Ps$}QudJoB@Qjnt?;4>6Myr4wa zX-I~6QK@cF=uiytk|N!ZK_BASGG|qWuCw1z3~`{tL&68E!x@=G7;rbUfGsT~fZ6B@ z@FrIOPM|rMZ6D(G7cnw0U^YRB*RRdQz<}8jK-Q0~3PyPT2~a;~g-pEuxy%d7xDT(1NCE;AjIom!vWThmXQOzS%LmyVBiHp2Ve}Ra)NjO(%`Y6 literal 0 HcmV?d00001 diff --git a/Localization/mobile-center-sdks-loc-file-list.csv b/Localization/mobile-center-sdks-loc-file-list.csv index ffa173191d..74ff4e7306 100644 --- a/Localization/mobile-center-sdks-loc-file-list.csv +++ b/Localization/mobile-center-sdks-loc-file-list.csv @@ -1,4 +1,4 @@ absoluteFilePath,outFilePath,relativeFilePath,TargetPath,LanguageSet -$SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,.\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk -$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,.\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk -$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,.\Puppet\Puppet\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,..\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,..\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,..\Puppet\Puppet\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk From da75cd8dc347683b8c0460f23a7a85afc5aa59df Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 21 Sep 2017 22:06:35 -0700 Subject: [PATCH 15/61] updating loc script --- Localization/MobileCenterDistribute.zip | Bin 5638 -> 0 bytes Localization/Puppet.zip | Bin 4598 -> 0 bytes Localization/Sasquatch.zip | Bin 3259 -> 0 bytes Localization/TouchDownCheckinScript.ps1 | 49 +++++++----------- Localization/mobile-center-cultures.csv | 28 +++++----- .../mobile-center-sdks-loc-file-list.csv | 6 +-- 6 files changed, 36 insertions(+), 47 deletions(-) delete mode 100644 Localization/MobileCenterDistribute.zip delete mode 100644 Localization/Puppet.zip delete mode 100644 Localization/Sasquatch.zip diff --git a/Localization/MobileCenterDistribute.zip b/Localization/MobileCenterDistribute.zip deleted file mode 100644 index 310607fac35eca690db3afea68885855a96a8a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5638 zcmWIWW@Zs#U|`^2cv)xaohvtemkc8VLje;5g9=bIxmedZD#kZIDKjV4IW?~&wa6v2 zxTGjEsk9_j55&kzFYXOIopsniU=RBr{%*w!Y(e!7nnzTo%iM8_|IT|$ZBf^gtfvzH zYr})?HqCW*WPf|++?jPDYr9z2JXjkl!7;_{abLj;r-Et9!J^%pDsN`;#c})W{CM%J zs*S@><;_9&{H3!0aCxO zkA3<4`qryUcI&0Yc+Wdn>tK<|Hbucde(pDx=GO{448!wI``VbFKKu5r{h|4{7R+@u zKL77?ql6__QcKZZQ$EoXPdP{jY2oISl2apG<0bcx@kqaZb74=OQX=uEYbB084X<;g>F`&u2;Zl z=+Y>3v-5SmM@t4;wHXR>bOU@w(=LtDZb6Bz(`eeIRoX2o)eQ7@~G;x#q~24Z?9#G7cs!N5RFYn*r!CvgJD z28n2a5^v%ME})4-w7Q5l(T|6LftZ#C@g}a}Wndttb|v0KE`A0EVrmrPP0SDgn@F$} W4e(|KrZWZxULe#0=89v2ARYi3_z+wG diff --git a/Localization/Puppet.zip b/Localization/Puppet.zip deleted file mode 100644 index 8b78441476f5c1ba0b590e6d7a6bceb61b6f779b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4598 zcmWIWW@Zs#U|`^2V6HdyRtQ;d`~k?j%gDeW1f-LTb)BPPd=oSC^omQ0GV{`lb0^&O zI^w|7`kuSC{f2a+ewn<33roIeBJ0OhOXl9-vz|M}^H|jUdo%U^ZFnmnapxfR0jJCRzAn$ zmTo^2`}5!OPnV(_LpX9po*t~5$e4VwaC`1NPqD|*zswoWKc8%I`hEc3@JUJ4b#WaH zADrnYwOH3Rcr<))hEH0Nu3OM(_}~nm%o1JCkkRnL89rHwx?TaJ;e#`Lvh#JlNAnl% z`n@1WH^65!{oqVL1tq#pqv;2C`Y9^a4GJAiKRDA*Ns(^IX!^mOeyTEbo&84B56<)h z44;tj5gtB_Od<@pQxGudkN{?XHNcx#{R+T7FJ^y^c>NAc3=Ek49pd#TFf%Y<_6La9 z-@wAafZ1LqUjG7C1_sRbB=PzWurV-Twzr7a|A3u=0kb_qynY5wpni<{nt1&RTnr4D z^%?Q{9k>}7Fw1-5^(XK!FkqI4#OrV11?xvEF9N(-f$_q?zzc*9z!bKC55xlin%76N diff --git a/Localization/Sasquatch.zip b/Localization/Sasquatch.zip deleted file mode 100644 index ab2573e5611da52578ee71cde82e7e09e9149969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3259 zcmWIWW@Zs#U|`^2_`1#1d*S;i>rNo=5fBRjadNS)b5x9PVrHIRaY<2TUV3qE-$uSe z20Sj`y?(M!-pKry;fVSHChp*;W?|Wyz6;76K73V~VtCC{{qEh#ceW--H3%2o=w2tY zY`<-6Ps$}QudJoB@Qjnt?;4>6Myr4wa zX-I~6QK@cF=uiytk|N!ZK_BASGG|qWuCw1z3~`{tL&68E!x@=G7;rbUfGsT~fZ6B@ z@FrIOPM|rMZ6D(G7cnw0U^YRB*RRdQz<}8jK-Q0~3PyPT2~a;~g-pEuxy%d7xDT(1NCE;AjIom!vWThmXQOzS%LmyVBiHp2Ve}Ra)NjO(%`Y6 diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index b8f1f719df..0311319289 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -111,11 +111,9 @@ Class Cl_Culture Add-Type -AssemblyName System.IO.Compression.FileSystem Function Unzip ($zipfile,$outpath) { - #Remove the content of the outpath folder if it exists write-Host "We are unzipping the zip file $zipfile to $outpath" - $zipfile = $ExecutionContext.InvokeCommand.ExpandString($zipfile) - + #Remove the content of the outpath folder if it exists if ((Test-Path -Path $outpath) -and $outpath.Contains("Unzip")) { write-host "Deleting the file" @@ -127,8 +125,6 @@ Function Unzip ($zipfile,$outpath) Function GetCulture($CultureFile,$CultureToSearch) { - write-host $CultureFile - $Cultures = Import-CSV $CultureFile ForEach ($culture in $Cultures) @@ -172,43 +168,38 @@ $fileBinary --$boundary-- "@ - write-host "Before IRM" - write-host "BODY: $body" - Invoke-RestMethod -Uri "http://tdbuild/api/teams/$teamId/LocalizableFiles" -Method Put -UseDefaultCredentials -ContentType "multipart/form-data; boundary=$boundary" -Body $body -OutFile $outFilePath - - write-host "After IRM" } -Function binplace ($UnzipFileto,$relativeFilePath,$TargetPath,$LanguageSet) +Function binplace ($UnzipFileTo,$relativeFilePath,$TargetPath,$LanguageSet) { $Langs = $LanguageSet.split(";") + + write-host "the culture file is: $CultureFile" foreach($Language in $Langs) - { - write-host "the culture file is:" - write-host $CultureFile - + { $OCulture = GetCulture $CultureSettingFile $Language $Culture = $OCulture.Culture + write-host "OCulture: $OCulture" - $LocalizedFile = $UnzipFileto + "\" + $OCulture.Lsbuild + $relativeFilePath - $TargetPathLoc = $ExecutionContext.InvokeCommand.ExpandString($TargetPath) - $TargetPathDir = $TargetPathLoc.Substring(0,$TargetPathLoc.LastIndexOf("\")) + $LocalizedFile = $UnzipFileTo + "\" + $OCulture.Lsbuild + $relativeFilePath + $TargetPathDir = $TargetPath.Substring(0,$TargetPath.LastIndexOf("\")) - write-host $LocalizedFile - write-host $TargetPathLoc + write-host "Loc File: $LocalizedFile" + write-host "TargetPath: $TargetPath" + write-host "Copying Loc file to TargetPath" if(!(Test-Path -Path $TargetPathDir )){ New-Item $TargetPathDir -type directory } - Copy-Item $LocalizedFile $TargetPathLoc + + Copy-Item $LocalizedFile $TargetPath } } Function AddFiletoRepo ($TargetPath,$LanguageSet) { - $Langs = $LanguageSet.split(";") foreach($Language in $Langs) @@ -217,11 +208,7 @@ Function AddFiletoRepo ($TargetPath,$LanguageSet) #We pull out here the culture that might be used during the string expansion. $Culture = $OCulture.Culture - - $TargetPathLoc = $ExecutionContext.InvokeCommand.ExpandString($TargetPath) - - $FileToCheckin = $TargetPathLoc - $Argument = "add " + $FileToCheckin + $Argument = "add " + $TargetPath write-host $Argument @@ -248,14 +235,16 @@ Function RefreshTDFiles $outFilePath = $ExecutionContext.InvokeCommand.ExpandString($outFilePath) $absoluteFilePath = $ExecutionContext.InvokeCommand.ExpandString($absoluteFilePath) + $TargetPath = $ExecutionContext.InvokeCommand.ExpandString($TargetPath) write-host "-----TOUCHDOWN TRANSACTION-----" TouchDownTransaction $absoluteFilePath $outFilePath $relativeFilePath $teamId $LanguageSet - $UnzipFileTo = $outFilePath + "\Unzip\" - Unzip $outFilePath $UnzipFileTo + $UnzipFolderLocation = $SrcRoot + "\Localization\Unzip" + + Unzip $outFilePath $UnzipFolderLocation - binplace $UnzipFileto $relativeFilePath $TargetPath $LanguageSet + binplace $UnzipFolderLocation $relativeFilePath $TargetPath $LanguageSet AddFiletoRepo $TargetPath $LanguageSet } diff --git a/Localization/mobile-center-cultures.csv b/Localization/mobile-center-cultures.csv index ddb7369d74..b4937e60a7 100644 --- a/Localization/mobile-center-cultures.csv +++ b/Localization/mobile-center-cultures.csv @@ -1,14 +1,14 @@ -enu -fra -deu -ita -esn -chs -cht -jpn -kor -rus -csy -plk -ptb -trk +LSBUILDCULTURE,Culture,LCID +cs-CZ,cs,1029 +de-DE,de,1031 +es-ES,es,1034 +fr-FR,fr,1036 +it-IT,it,1040 +ja-JP,ja,1041 +ko-KR,ko,1042 +pl-PL,pl,1045 +pt-BR,pt,1046 +ru-RU,ru,1049 +tr-TR,tr,1055 +zh-CN,zh,2052 +zh-TW,zh,1028 diff --git a/Localization/mobile-center-sdks-loc-file-list.csv b/Localization/mobile-center-sdks-loc-file-list.csv index 74ff4e7306..a29119477c 100644 --- a/Localization/mobile-center-sdks-loc-file-list.csv +++ b/Localization/mobile-center-sdks-loc-file-list.csv @@ -1,4 +1,4 @@ absoluteFilePath,outFilePath,relativeFilePath,TargetPath,LanguageSet -$SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,..\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk -$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,..\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk -$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,..\Puppet\Puppet\Main.strings,$SrcRoot\Localization,enu;fra;deu;ita;esn;chs;cht;jpn;kor;rus;csy;plk;ptb;trk +$SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW +$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,\Main.strings,$SrcRoot\Localization\Sasquatch,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW +$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,\Main.strings,$SrcRoot\Localization\Puppet,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW From 03fbf88d044d2a5fea8635c9c06c22bb9f350dd6 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 21 Sep 2017 22:22:16 -0700 Subject: [PATCH 16/61] Localization script updates --- .gitignore | 2 ++ Localization/TouchDownCheckinScript.ps1 | 30 ++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 9d2e3667b0..8b2d6eebc9 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,5 @@ iOSInjectionProject/ # Mac # .DS_Store + +Localization/*.zip \ No newline at end of file diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index 0311319289..9fc7378e0b 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -38,7 +38,7 @@ $Guid = [GUID]::NewGuid() $TempLocBranch = "TouchDownCheckin_" + $Guid $repoPath = $SrcRoot $LogFile = "C:\TouchDown\TDCheckin\log.txt" -$DefaultRepoBranch = "master" +$DefaultRepoBranch = "localization" $teamId = "272" #ID for iOS $git = "git" @@ -71,15 +71,12 @@ Function InitializeRepoForCheckin $Argument = "reset --hard HEAD" ProcessStart $git $Argument $repoPath - #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow $Argument = "pull" ProcessStart $git $Argument $repoPath - #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow $Argument = "checkout -b" + $TempLocBranch ProcessStart $git $Argument $repoPath - #Start-Process $git $Argument -WorkingDirectory $repoPath -NoNewWindow -redirectstandardoutput $logfile } Function CheckinFilesIntoRepo @@ -175,26 +172,27 @@ Function binplace ($UnzipFileTo,$relativeFilePath,$TargetPath,$LanguageSet) { $Langs = $LanguageSet.split(";") - write-host "the culture file is: $CultureFile" + write-host "the culture file is: $CultureSettingsFile" foreach($Language in $Langs) { $OCulture = GetCulture $CultureSettingFile $Language - $Culture = $OCulture.Culture - write-host "OCulture: $OCulture" - - $LocalizedFile = $UnzipFileTo + "\" + $OCulture.Lsbuild + $relativeFilePath - $TargetPathDir = $TargetPath.Substring(0,$TargetPath.LastIndexOf("\")) + $Culture = $OCulture.LSBUILD + + $LocalizedFile = $UnzipFileTo + "\" + $OCulture.LSBUILD + $relativeFilePath + #$TargetPathDir = $TargetPath.Substring(0,$TargetPath.LastIndexOf("\")) + $TargetPathDir = $TargetPath + "\" + $OCulture.LSBUILD + + if(!(Test-Path -Path $TargetPathDir)){ + New-Item -Path $TargetPathDir -ItemType directory + } + $targetFile = $TargetPath + "\" + $OCulture.LSBUILD + $relativeFilePath write-host "Loc File: $LocalizedFile" - write-host "TargetPath: $TargetPath" + write-host "TargetPath: $targetFile" write-host "Copying Loc file to TargetPath" - if(!(Test-Path -Path $TargetPathDir )){ - New-Item $TargetPathDir -type directory - } - - Copy-Item $LocalizedFile $TargetPath + Copy-Item $LocalizedFile $targetFile } } From 1cbb43b325838a48a14e6e5c45365682ad32f512 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Fri, 22 Sep 2017 16:04:00 -0700 Subject: [PATCH 17/61] Version bump after release --- Config/Global.xcconfig | 2 +- Documentation/iOS/MobileCenter/.jazzy.yaml | 2 +- Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- Documentation/iOS/MobileCenterCrashes/.jazzy.yaml | 2 +- Documentation/iOS/MobileCenterDistribute/.jazzy.yaml | 2 +- Documentation/iOS/MobileCenterPush/.jazzy.yaml | 2 +- Documentation/macOS/MobileCenter/.jazzy.yaml | 2 +- Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- Documentation/macOS/MobileCenterCrashes/.jazzy.yaml | 2 +- Documentation/macOS/MobileCenterPush/.jazzy.yaml | 2 +- Documentation/tvOS/MobileCenter/.jazzy.yaml | 2 +- Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Config/Global.xcconfig b/Config/Global.xcconfig index 23b416f710..dfea6a0b7d 100644 --- a/Config/Global.xcconfig +++ b/Config/Global.xcconfig @@ -1,5 +1,5 @@ BUILD_NUMBER = 1 -VERSION_STRING = 0.12.3 +VERSION_STRING = 0.12.4 // :Mark: Architectures MS_WATCH_ARCHS = armv7k diff --git a/Documentation/iOS/MobileCenter/.jazzy.yaml b/Documentation/iOS/MobileCenter/.jazzy.yaml index 9bd19969fd..8ec043650a 100644 --- a/Documentation/iOS/MobileCenter/.jazzy.yaml +++ b/Documentation/iOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml index b5ed76d5fb..e84ca96bd2 100644 --- a/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml index a109fbac82..d0f10b9652 100644 --- a/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: Crashes -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml b/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml index c440059927..ac9d14f66a 100644 --- a/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: Distribute -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterPush/.jazzy.yaml b/Documentation/iOS/MobileCenterPush/.jazzy.yaml index 1a9960a745..3c875e941a 100644 --- a/Documentation/iOS/MobileCenterPush/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterPush/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenterPush -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenter/.jazzy.yaml b/Documentation/macOS/MobileCenter/.jazzy.yaml index 64b20787ac..3c92b8ae6d 100644 --- a/Documentation/macOS/MobileCenter/.jazzy.yaml +++ b/Documentation/macOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml index 669c04c33d..9ab4768fcb 100644 --- a/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml index e6f5e423db..a574ae65b0 100644 --- a/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: Crashes -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterPush/.jazzy.yaml b/Documentation/macOS/MobileCenterPush/.jazzy.yaml index 5ae07958e8..a37b3a3d22 100644 --- a/Documentation/macOS/MobileCenterPush/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterPush/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenterPush -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenter/.jazzy.yaml b/Documentation/tvOS/MobileCenter/.jazzy.yaml index cd074f22e7..ef5b8e4b57 100644 --- a/Documentation/tvOS/MobileCenter/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml index 40b34e0f7c..b889add90d 100644 --- a/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml index 99f9abb1e4..d6fb49a408 100644 --- a/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: Crashes -module_version: 0.12.3 +module_version: 0.12.4 author: Microsoft Corp author_url: http://www.microsoft.com From e2286384e8714fc637679421966a6b9fec04292b Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Mon, 25 Sep 2017 13:10:31 -0700 Subject: [PATCH 18/61] Turn CLANG_MODULES_AUTOLINK flag off for Xcode 9 build --- Config/Framework.xcconfig | 1 + .../MobileCenter.xcodeproj/project.pbxproj | 18 ++++++++++++------ .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 18 ++++++++++++------ .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 18 ++++++++++++------ .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 8 ++++++-- .../Support/iOS Framework.xcconfig | 2 ++ .../MobileCenterPush.xcodeproj/project.pbxproj | 12 ++++++++---- .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ 18 files changed, 75 insertions(+), 24 deletions(-) create mode 100644 Config/Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/iOS Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/macOS Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig create mode 100644 MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig create mode 100644 MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig diff --git a/Config/Framework.xcconfig b/Config/Framework.xcconfig new file mode 100644 index 0000000000..2fe9ffec93 --- /dev/null +++ b/Config/Framework.xcconfig @@ -0,0 +1 @@ +CLANG_MODULES_AUTOLINK = NO diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 14d9c589b5..40f31addaf 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -559,6 +559,9 @@ 043120701EE0BCC4007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043120711EE0BCC4007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; 043120DA1EE0BCF9007054C5 /* libMobileCenter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenter.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF2B1F3B864600C8E338 /* MobileCenter.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenter.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 045660FA1D99EEEB002F7055 /* MSLogWithPropertiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSLogWithPropertiesTests.m; sourceTree = ""; }; 045BC3161E3FD88600B6C960 /* MSKeychainUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSKeychainUtil.m; sourceTree = ""; }; @@ -1009,10 +1012,13 @@ 6E0401841D1CAD810051BCFA /* MobileCenter Debug.xcconfig */, 0469D1B11F4DF89A00A43A8E /* MobileCenter Release.xcconfig */, 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */, + 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */, 0485AFEE1EAAAD0000C10CAF /* iOS.modulemap */, 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */, + 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */, 0485AFEC1EAAAC3B00C10CAF /* macOS.modulemap */, 043120711EE0BCC4007054C5 /* tvOS.xcconfig */, + 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */, 043120701EE0BCC4007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1954,14 +1960,14 @@ }; 0431214C1EE0BFC7007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0431214D1EE0BFC7007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -2010,14 +2016,14 @@ }; 0485AFE91EAA937000C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFEA1EAA937000C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -2084,14 +2090,14 @@ }; 6E04017E1D1CAC710051BCFA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 6E04017F1D1CAC710051BCFA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 14034a5e07..46fe498d4a 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -264,6 +264,9 @@ 0431216C1EE0C20A007054C5 /* libMobileCenterAnalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterAnalytics.a; sourceTree = BUILT_PRODUCTS_DIR; }; 043121721EE0C248007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043121731EE0C248007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; + 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF541F3B8E6300C8E338 /* MobileCenterAnalytics.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterAnalytics.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DF5E1F3B8FBA00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DF611F3B95EB00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug/libMobileCenter.a"; sourceTree = ""; }; @@ -565,10 +568,13 @@ B2812EF21DA3148000307DCE /* MobileCenterAnalytics Debug.xcconfig */, 0469D1B21F4DFE4C00A43A8E /* MobileCenterAnalytics Release.xcconfig */, 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */, + 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */, 04ED31EB1EAAD3390033BAAE /* iOS.modulemap */, 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */, + 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */, 04ED31E91EAAD32B0033BAAE /* macOS.modulemap */, 043121731EE0C248007054C5 /* tvOS.xcconfig */, + 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */, 043121721EE0C248007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1066,14 +1072,14 @@ }; 043121701EE0C213007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 043121711EE0C213007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1122,14 +1128,14 @@ }; 0485AFF21EAAADAC00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFF31EAAADAC00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1210,14 +1216,14 @@ }; E85547E61D2D681F002DF6E2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; E85547E71D2D681F002DF6E2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index 07a77ab695..203a56d273 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -465,6 +465,9 @@ 04311FFB1EE08885007054C5 /* MSCrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSCrashReporter.h; sourceTree = ""; }; 043281611F74A665002F7205 /* MSMockUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSMockUserDefaults.h; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.h; sourceTree = ""; }; 043281621F74A665002F7205 /* MSMockUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSMockUserDefaults.m; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.m; sourceTree = ""; }; + 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF9D1F3B977100C8E338 /* MobileCenterCrashes.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterCrashes.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DFA41F3B986B00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DFA91F3B98A300C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-iphonesimulator/libMobileCenter.a"; sourceTree = ""; }; @@ -970,10 +973,13 @@ 6E37297F1D1DE93800F1E4AE /* MobileCenterCrashes Debug.xcconfig */, 0469D1B31F4E013C00A43A8E /* MobileCenterCrashes Release.xcconfig */, 049BC8251ECE36D400FB6719 /* iOS.xcconfig */, + 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */, 04ED31F21EAAD6070033BAAE /* iOS.modulemap */, 049BC8261ECE370100FB6719 /* macOS.xcconfig */, + 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */, 04ED31F51EAAD6070033BAAE /* macOS.modulemap */, 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */, + 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */, 04EBBEEE1F01C1420006B8AE /* tvOS.modulemap */, ); path = Support; @@ -1738,14 +1744,14 @@ }; 0485AFFC1EAAB27E00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFFD1EAAB27E00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1780,14 +1786,14 @@ }; 04EBBEEC1F01C0E10006B8AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; + baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 04EBBEED1F01C0E10006B8AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; + baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1868,14 +1874,14 @@ }; 6E3729791D1DE83200F1E4AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 6E37297A1D1DE83200F1E4AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index 149fab8f22..a35dc1471d 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -40,6 +40,7 @@ 040AF0331E52859F005C1174 /* MSSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 040AF0321E52859F005C1174 /* MSSender.h */; }; 0415974B1E9D639D00EC6BDA /* MSDistributionGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0415974A1E9D639D00EC6BDA /* MSDistributionGroupTests.m */; }; 0420A69C1ECA7C8E00915619 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0420A69B1ECA7C8E00915619 /* OCMock.framework */; }; + 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; }; 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */; }; 046EF5891EAEB524002F6436 /* MSDistributeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 046FDBD31E5682FA00AF9DD1 /* MSAlertController.h in Headers */ = {isa = PBXBuildFile; fileRef = 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */; }; @@ -142,6 +143,7 @@ 041CFFA31ECD0E0E00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A69B1ECA7C8E00915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../../iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF71EE0871D007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; + 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterDistribute Release.xcconfig"; sourceTree = ""; }; 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSDistributeDelegate.h; sourceTree = ""; }; 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSAlertController.h; path = ../../Vendor/iOS/MSAlertController/MSAlertController.h; sourceTree = ""; }; @@ -279,6 +281,7 @@ 0471B5F41E45466F0022F951 /* MobileCenterDistribute Debug.xcconfig */, 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */, 049BC8221ECE349200FB6719 /* iOS.xcconfig */, + 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */, 049BC8271ECE387A00FB6719 /* iOS.modulemap */, ); path = Support; @@ -611,6 +614,7 @@ files = ( B2C070C51E5E6A200076D6A9 /* MobileCenterDistributeResources.bundle in Resources */, 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */, + 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */, 040AF0121E523AC2005C1174 /* release_details.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -767,14 +771,14 @@ }; 04FD4A2A1E451E90009B4468 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 04FD4A2B1E451E90009B4468 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index 40e95f6d36..ae888097e2 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -161,6 +161,8 @@ 041CFFA71ECD0E9A00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A6A11ECA7D7200915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../Vendor/iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF91EE08772007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; + 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterPush Release.xcconfig"; sourceTree = ""; }; 0469640D1F2A558300F9D31F /* libMobileCenterPush.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterPush.a; sourceTree = BUILT_PRODUCTS_DIR; }; 046964251F2A559C00F9D31F /* MobileCenterPush.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterPush.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -375,8 +377,10 @@ D3AD5F051E5C7FFF001627AB /* MobileCenterPush Debug.xcconfig */, 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */, 049BC81E1ECE333700FB6719 /* iOS.xcconfig */, + 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */, D3AD5F3E1E5D69B0001627AB /* iOS.modulemap */, 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */, + 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */, 0469642E1F2A55CF00F9D31F /* macOS.modulemap */, ); path = Support; @@ -735,14 +739,14 @@ }; 046964111F2A558F00F9D31F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; + baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 046964121F2A558F00F9D31F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; + baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -823,14 +827,14 @@ }; D3AD5F231E5C9562001627AB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; D3AD5F241E5C9562001627AB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" From c6045d3df2d7bd717c82876c709486a74a9a317e Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Mon, 25 Sep 2017 15:58:40 -0700 Subject: [PATCH 19/61] Revert "Revert "Update OHHTTPStubs that is built on Xcode 9"" This reverts commit 4912a32b8feab026b93e77d749d32d08274b4f7d. --- .../Versions/A/Headers/OHHTTPStubs-Swift.h | 76 ++++++++++++++---- .../OHHTTPStubs.swiftmodule/x86_64.swiftdoc | Bin 8324 -> 8316 bytes .../x86_64.swiftmodule | Bin 90212 -> 22420 bytes .../Versions/A/Modules/module.modulemap | 1 + .../Versions/A/OHHTTPStubs | Bin 137812 -> 186272 bytes .../Versions/A/Resources/Info.plist | 12 +-- 6 files changed, 69 insertions(+), 20 deletions(-) diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h index 1f2308d57b..c475755046 100644 --- a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h +++ b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h @@ -1,7 +1,30 @@ -// Generated by Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42) +// Generated by Apple Swift version 4.0 effective-3.2 (swiftlang-900.0.65 clang-900.0.37) #pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" -#if defined(__has_include) && __has_include() +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_attribute(external_source_symbol) +# define SWIFT_STRINGIFY(str) #str +# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol)))) +# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop") +#else +# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) +# define SWIFT_MODULE_NAMESPACE_POP +#endif + +#if __has_include() # include #endif @@ -13,7 +36,7 @@ #if !defined(SWIFT_TYPEDEFS) # define SWIFT_TYPEDEFS 1 -# if defined(__has_include) && __has_include() +# if __has_include() # include # elif !defined(__cplusplus) || __cplusplus < 201103L typedef uint_least16_t char16_t; @@ -48,31 +71,36 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # endif #endif -#if defined(__has_attribute) && __has_attribute(objc_runtime_name) +#if __has_attribute(objc_runtime_name) # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else # define SWIFT_RUNTIME_NAME(X) #endif -#if defined(__has_attribute) && __has_attribute(swift_name) +#if __has_attribute(swift_name) # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else # define SWIFT_COMPILE_NAME(X) #endif -#if defined(__has_attribute) && __has_attribute(objc_method_family) +#if __has_attribute(objc_method_family) # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else # define SWIFT_METHOD_FAMILY(X) #endif -#if defined(__has_attribute) && __has_attribute(noescape) +#if __has_attribute(noescape) # define SWIFT_NOESCAPE __attribute__((noescape)) #else # define SWIFT_NOESCAPE #endif -#if defined(__has_attribute) && __has_attribute(warn_unused_result) +#if __has_attribute(warn_unused_result) # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else # define SWIFT_WARN_UNUSED_RESULT #endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -83,7 +111,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) +# if __has_attribute(objc_subclassing_restricted) # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA # else @@ -102,16 +130,23 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) +# if __has_attribute(objc_designated_initializer) # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) # else # define OBJC_DESIGNATED_INITIALIZER # endif #endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open))) +# else +# define SWIFT_ENUM_ATTR +# endif +#endif #if !defined(SWIFT_ENUM) -# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type -# if defined(__has_feature) && __has_feature(generalized_swift_name) -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type # else # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) # endif @@ -131,9 +166,22 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(SWIFT_DEPRECATED_MSG) # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif -#if defined(__has_feature) && __has_feature(modules) +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if __has_feature(modules) #endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" + +SWIFT_MODULE_NAMESPACE_PUSH("OHHTTPStubs") +SWIFT_MODULE_NAMESPACE_POP #pragma clang diagnostic pop diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc index 0ff5f4fc2be58b63c2f7433c6b906b7bcb3ba238..47adf2868ba427f972d3865a5a0a9077185c5395 100644 GIT binary patch delta 1111 zcmZp1{NpfTOZ`W71_o6g1_nh21_mM4khF#a3I+m7ON7|BFfc?jGBB(JiaQn*DVXRPD5R#Pr6!kTmZj<%>lrC%6oVAxB<7{-S{fMW8R(grDkLLu zjmA!kqrlm`JuhK7#y9v(ne1rq~9 zvDIXM8Cj;_q{)U-5&~h#!NKvt!KP)2Ii;y3ZdH>fh-q$K#vZ_=bx@)p-x{bV9_aF7 zD?>wn508+LfZ&qSq+&zE%wpGylGHqq^C1SYf(&xoY{!+zsG_>kZm}s)rv%tG6rE<7 z#Q}*W84x{eU_H8%?YZ@;YuAsBeLetOP2aAZ9jMf#)ahsrdD_ zKxGC{WrDCk0V{I>D^nEut(L#MtkE2(t_0In7MaDtKnLZfq6ET4kupZUj|$5lSOImZ zLrm8emV!Eh1>}gy{bJ^mXA6H2U|}#lY-wf(RQMI5kY5Vs3`p=;f&I2YN?>v+uiWN| zQtKJ{wsP`s0qN+5=s?6KLT2*+)8L0XPMD=lTC8$Fns%?Pg zYi~A@IK#*{RsC#07*J&aB$dRmz*I_xB^MhSxMTtoXntN|QDs` zHzt*`-J!*xNbdn#gC6M~`NbvZk*>YDO)h~^hmqmNz9a7uL4~3fl+t`tOEU6P++9N; z27tqFbHA86qW~j=jc(&FP*l4@Ja>*s8pU%KpupR#z^u>6SHIuq0w_6aK~zRE!c>A| z+X)=orx-uiD*)9905J;?UjhaMGN=LyUS&fTVPN>rfyyuAVqo~l4G~+#iz+9{&%odz Z0TC0ILX~Ti2J?a07YIaUC+8`M0RY&}8r1** delta 1095 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 literal 90212 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 YyDoQdZ{dvXJ==B03oSkDgXcg diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Resources/Info.plist b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Resources/Info.plist index 9c57805388..622bbb0be6 100644 --- a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Resources/Info.plist +++ b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 17A344b + 16G29 CFBundleDevelopmentRegion English CFBundleExecutable @@ -29,17 +29,17 @@ DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 8E3004b + 9A235 DTPlatformVersion GM DTSDKBuild - 16E185 + 17A360 DTSDKName - macosx10.12 + macosx10.13 DTXcode - 0833 + 0900 DTXcodeBuild - 8E3004b + 9A235 NSHumanReadableCopyright Copyright © 2014 AliSoftware. All rights reserved. From 4decbdb6ad7fe8fd09f281d0e6cb677569283b86 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Mon, 25 Sep 2017 15:58:51 -0700 Subject: [PATCH 20/61] Latest localized files from touchdown --- .../cs-CZ/MobileCenterDistribute.strings | 15 +++++++++++++++ .../de-DE/MobileCenterDistribute.strings | 15 +++++++++++++++ .../es-ES/MobileCenterDistribute.strings | 15 +++++++++++++++ .../fr-FR/MobileCenterDistribute.strings | 15 +++++++++++++++ .../it-IT/MobileCenterDistribute.strings | 15 +++++++++++++++ .../ja-JP/MobileCenterDistribute.strings | 15 +++++++++++++++ .../ko-KR/MobileCenterDistribute.strings | 15 +++++++++++++++ .../pl-PL/MobileCenterDistribute.strings | 15 +++++++++++++++ .../pt-BR/MobileCenterDistribute.strings | 15 +++++++++++++++ .../ru-RU/MobileCenterDistribute.strings | 15 +++++++++++++++ .../tr-TR/MobileCenterDistribute.strings | 15 +++++++++++++++ .../zh-CN/MobileCenterDistribute.strings | 15 +++++++++++++++ .../zh-TW/MobileCenterDistribute.strings | 15 +++++++++++++++ Localization/Puppet/cs-CZ/Main.strings | 14 ++++++++++++++ Localization/Puppet/de-DE/Main.strings | 14 ++++++++++++++ Localization/Puppet/es-ES/Main.strings | 14 ++++++++++++++ Localization/Puppet/fr-FR/Main.strings | 14 ++++++++++++++ Localization/Puppet/it-IT/Main.strings | 14 ++++++++++++++ Localization/Puppet/ja-JP/Main.strings | 14 ++++++++++++++ Localization/Puppet/ko-KR/Main.strings | 14 ++++++++++++++ Localization/Puppet/pl-PL/Main.strings | 14 ++++++++++++++ Localization/Puppet/pt-BR/Main.strings | 14 ++++++++++++++ Localization/Puppet/ru-RU/Main.strings | 14 ++++++++++++++ Localization/Puppet/tr-TR/Main.strings | 14 ++++++++++++++ Localization/Puppet/zh-CN/Main.strings | 14 ++++++++++++++ Localization/Puppet/zh-TW/Main.strings | 14 ++++++++++++++ Localization/Sasquatch/cs-CZ/Main.strings | 8 ++++++++ Localization/Sasquatch/de-DE/Main.strings | 8 ++++++++ Localization/Sasquatch/es-ES/Main.strings | 8 ++++++++ Localization/Sasquatch/fr-FR/Main.strings | 8 ++++++++ Localization/Sasquatch/it-IT/Main.strings | 8 ++++++++ Localization/Sasquatch/ja-JP/Main.strings | 8 ++++++++ Localization/Sasquatch/ko-KR/Main.strings | 8 ++++++++ Localization/Sasquatch/pl-PL/Main.strings | 8 ++++++++ Localization/Sasquatch/pt-BR/Main.strings | 8 ++++++++ Localization/Sasquatch/ru-RU/Main.strings | 8 ++++++++ Localization/Sasquatch/tr-TR/Main.strings | 8 ++++++++ Localization/Sasquatch/zh-CN/Main.strings | 8 ++++++++ Localization/Sasquatch/zh-TW/Main.strings | 8 ++++++++ 39 files changed, 481 insertions(+) create mode 100644 Localization/MobileCenterDistribute/cs-CZ/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/de-DE/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/es-ES/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/fr-FR/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/it-IT/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/ja-JP/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/pl-PL/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/pt-BR/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/ru-RU/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/tr-TR/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings create mode 100644 Localization/MobileCenterDistribute/zh-TW/MobileCenterDistribute.strings create mode 100644 Localization/Puppet/cs-CZ/Main.strings create mode 100644 Localization/Puppet/de-DE/Main.strings create mode 100644 Localization/Puppet/es-ES/Main.strings create mode 100644 Localization/Puppet/fr-FR/Main.strings create mode 100644 Localization/Puppet/it-IT/Main.strings create mode 100644 Localization/Puppet/ja-JP/Main.strings create mode 100644 Localization/Puppet/ko-KR/Main.strings create mode 100644 Localization/Puppet/pl-PL/Main.strings create mode 100644 Localization/Puppet/pt-BR/Main.strings create mode 100644 Localization/Puppet/ru-RU/Main.strings create mode 100644 Localization/Puppet/tr-TR/Main.strings create mode 100644 Localization/Puppet/zh-CN/Main.strings create mode 100644 Localization/Puppet/zh-TW/Main.strings create mode 100644 Localization/Sasquatch/cs-CZ/Main.strings create mode 100644 Localization/Sasquatch/de-DE/Main.strings create mode 100644 Localization/Sasquatch/es-ES/Main.strings create mode 100644 Localization/Sasquatch/fr-FR/Main.strings create mode 100644 Localization/Sasquatch/it-IT/Main.strings create mode 100644 Localization/Sasquatch/ja-JP/Main.strings create mode 100644 Localization/Sasquatch/ko-KR/Main.strings create mode 100644 Localization/Sasquatch/pl-PL/Main.strings create mode 100644 Localization/Sasquatch/pt-BR/Main.strings create mode 100644 Localization/Sasquatch/ru-RU/Main.strings create mode 100644 Localization/Sasquatch/tr-TR/Main.strings create mode 100644 Localization/Sasquatch/zh-CN/Main.strings create mode 100644 Localization/Sasquatch/zh-TW/Main.strings diff --git a/Localization/MobileCenterDistribute/cs-CZ/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/cs-CZ/MobileCenterDistribute.strings new file mode 100644 index 0000000000..2643c45766 --- /dev/null +++ b/Localization/MobileCenterDistribute/cs-CZ/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Aktualizovat"; +"MSDistributeAskMeInADay" = "Zeptat se za den"; +"MSDistributeViewReleaseNotes" = "Zobrazit zprávu k vydání verze"; +"MSDistributeClose" = "Zavřít"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "K dispozici je aktualizace aplikace."; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Vývojáři této aplikace vyžadují, abyste si nainstalovali aktualizaci %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) je k dispozici ke stažení a instalaci."; +"MSDistributeInAppUpdatesAreDisabled" = "Aktualizace v aplikaci jsou zakázány."; diff --git a/Localization/MobileCenterDistribute/de-DE/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/de-DE/MobileCenterDistribute.strings new file mode 100644 index 0000000000..dfcb9f3d14 --- /dev/null +++ b/Localization/MobileCenterDistribute/de-DE/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Jetzt aktualisieren"; +"MSDistributeAskMeInADay" = "In einem Tag nachfragen"; +"MSDistributeViewReleaseNotes" = "Anmerkungen zu dieser Version anzeigen"; +"MSDistributeClose" = "Schließen"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "App-Update verfügbar"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Die Entwickler dieser App verlangen, dass Sie %@ %@ (%@) aktualisieren."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) ist zum Herunterladen und Installieren verfügbar."; +"MSDistributeInAppUpdatesAreDisabled" = "In-App-Updates sind deaktiviert."; diff --git a/Localization/MobileCenterDistribute/es-ES/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/es-ES/MobileCenterDistribute.strings new file mode 100644 index 0000000000..fe51552614 --- /dev/null +++ b/Localization/MobileCenterDistribute/es-ES/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Actualizar ahora"; +"MSDistributeAskMeInADay" = "Preguntarme dentro de un día"; +"MSDistributeViewReleaseNotes" = "Ver notas de la versión"; +"MSDistributeClose" = "Cerrar"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Actualización de aplicación disponible"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Los desarrolladores de esta aplicación indican que debe actualizar a %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) está disponible para descargarlo e instalarlo."; +"MSDistributeInAppUpdatesAreDisabled" = "Las actualizaciones en la aplicación están deshabilitadas."; diff --git a/Localization/MobileCenterDistribute/fr-FR/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/fr-FR/MobileCenterDistribute.strings new file mode 100644 index 0000000000..50d7e81209 --- /dev/null +++ b/Localization/MobileCenterDistribute/fr-FR/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Mettre à jour maintenant"; +"MSDistributeAskMeInADay" = "Me le demander dans un jour"; +"MSDistributeViewReleaseNotes" = "Afficher les notes de publication"; +"MSDistributeClose" = "Fermer"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Mise à jour d'application disponible"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Les développeurs de cette application vous demandent d'effectuer une mise à jour vers %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) est prêt à être téléchargé et installé."; +"MSDistributeInAppUpdatesAreDisabled" = "Les mises à jour dans l'application sont désactivées."; diff --git a/Localization/MobileCenterDistribute/it-IT/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/it-IT/MobileCenterDistribute.strings new file mode 100644 index 0000000000..453c127f9d --- /dev/null +++ b/Localization/MobileCenterDistribute/it-IT/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Aggiorna adesso"; +"MSDistributeAskMeInADay" = "Visualizza richiesta tra un giorno"; +"MSDistributeViewReleaseNotes" = "Visualizza note sulla versione"; +"MSDistributeClose" = "Chiudi"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Aggiornamento app disponibile"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Gli sviluppatori di questa app richiedono che venga eseguito l'aggiornamento a %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) è disponibile per il download e l'installazione."; +"MSDistributeInAppUpdatesAreDisabled" = "Gli aggiornamenti in-app sono disabilitati."; diff --git a/Localization/MobileCenterDistribute/ja-JP/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/ja-JP/MobileCenterDistribute.strings new file mode 100644 index 0000000000..9b285467d2 --- /dev/null +++ b/Localization/MobileCenterDistribute/ja-JP/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "今すぐ更新"; +"MSDistributeAskMeInADay" = "明日また知らせる"; +"MSDistributeViewReleaseNotes" = "リリース ノートの表示"; +"MSDistributeClose" = "閉じる"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "アプリの更新プログラムが利用可能です"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "このアプリの開発者から、%@ %@ (%@) に更新するよう求められています。"; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) をダウンロードしてインストールできます。"; +"MSDistributeInAppUpdatesAreDisabled" = "アプリ内更新は無効です。"; diff --git a/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings new file mode 100644 index 0000000000..69c2d80e84 --- /dev/null +++ b/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "지금 업데이트"; +"MSDistributeAskMeInADay" = "하루 안에 물어보기"; +"MSDistributeViewReleaseNotes" = "릴리스 정보 보기"; +"MSDistributeClose" = "닫기"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "앱 업데이트 사용 가능"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "이 앱의 개발자가 %@ %@(%@)(으)로 업데이트를 요구합니다."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@(%@)을(를) 다운로드하여 설치할 수 있습니다."; +"MSDistributeInAppUpdatesAreDisabled" = "인앱 업데이트는 사용할 수 없습니다."; diff --git a/Localization/MobileCenterDistribute/pl-PL/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/pl-PL/MobileCenterDistribute.strings new file mode 100644 index 0000000000..8d2e76d85e --- /dev/null +++ b/Localization/MobileCenterDistribute/pl-PL/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Aktualizuj teraz"; +"MSDistributeAskMeInADay" = "Zapytaj mnie jutro"; +"MSDistributeViewReleaseNotes" = "Wyświetl informacje o wersji"; +"MSDistributeClose" = "Zamknij"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Dostępna jest aktualizacja aplikacji"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Deweloperzy tej aplikacji wymagają przeprowadzenia aktualizacji do: %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "Aplikacja %@ %@ (%@) jest dostępna do pobrania i zainstalowania."; +"MSDistributeInAppUpdatesAreDisabled" = "Aktualizacje w aplikacji są wyłączone."; diff --git a/Localization/MobileCenterDistribute/pt-BR/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/pt-BR/MobileCenterDistribute.strings new file mode 100644 index 0000000000..205b902e07 --- /dev/null +++ b/Localization/MobileCenterDistribute/pt-BR/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Atualizar agora"; +"MSDistributeAskMeInADay" = "Pergunte-me em um dia"; +"MSDistributeViewReleaseNotes" = "Exibir notas de versão"; +"MSDistributeClose" = "Fechar"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Atualização do aplicativo disponível"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Os desenvolvedores desse aplicativo exigem a atualização para %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) está disponível para download e instalação."; +"MSDistributeInAppUpdatesAreDisabled" = "As atualizações no aplicativo estão desabilitadas."; diff --git a/Localization/MobileCenterDistribute/ru-RU/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/ru-RU/MobileCenterDistribute.strings new file mode 100644 index 0000000000..227105ff04 --- /dev/null +++ b/Localization/MobileCenterDistribute/ru-RU/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Обновить"; +"MSDistributeAskMeInADay" = "Спросить через день"; +"MSDistributeViewReleaseNotes" = "Просмотреть заметки о выпуске"; +"MSDistributeClose" = "Закрыть"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Доступно обновление приложения"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Разработчики этого приложения требуют выполнить обновление до %@ %@ (%@)."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "Обновление %@ %@ (%@) доступно для скачивания и установки."; +"MSDistributeInAppUpdatesAreDisabled" = "Обновления в приложении отключены."; diff --git a/Localization/MobileCenterDistribute/tr-TR/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/tr-TR/MobileCenterDistribute.strings new file mode 100644 index 0000000000..778835e84c --- /dev/null +++ b/Localization/MobileCenterDistribute/tr-TR/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "Şimdi güncelleştir"; +"MSDistributeAskMeInADay" = "Bir gün içinde sor"; +"MSDistributeViewReleaseNotes" = "Sürüm notlarını görüntüle"; +"MSDistributeClose" = "Kapat"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "Uygulama güncelleştirmesi kullanılabilir"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "Bu uygulamanın geliştiricileri %@ %@ (%@) sürümüne güncelleştirmenizi gerektiriyor."; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@), indirme ve yükleme için hazır."; +"MSDistributeInAppUpdatesAreDisabled" = "Uygulama içi güncelleştirmeler devre dışı."; diff --git a/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings new file mode 100644 index 0000000000..53f25ebd88 --- /dev/null +++ b/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "立即更新"; +"MSDistributeAskMeInADay" = "一天内询问我"; +"MSDistributeViewReleaseNotes" = "查看发行说明"; +"MSDistributeClose" = "关闭"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "可用的应用更新"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "此应用的开发人员要求用户更新为 %@ %@ (%@)。"; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) 可供下载和安装。"; +"MSDistributeInAppUpdatesAreDisabled" = "已禁用应用内更新。"; diff --git a/Localization/MobileCenterDistribute/zh-TW/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/zh-TW/MobileCenterDistribute.strings new file mode 100644 index 0000000000..002283d09e --- /dev/null +++ b/Localization/MobileCenterDistribute/zh-TW/MobileCenterDistribute.strings @@ -0,0 +1,15 @@ +/* + * Update dialog buttons + */ +"MSDistributeUpdateNow" = "立即更新"; +"MSDistributeAskMeInADay" = "一天後詢問我"; +"MSDistributeViewReleaseNotes" = "檢視版本資訊"; +"MSDistributeClose" = "關閉"; + +/* + * Update dialog titles/messages + */ +"MSDistributeAppUpdateAvailable" = "應用程式更新已可使用"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "此應用程式的開發人員要求您更新為 %@ %@ (%@)。"; +"MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) 已可下載及安裝。"; +"MSDistributeInAppUpdatesAreDisabled" = "應用程式內部的更新已停用。"; diff --git a/Localization/Puppet/cs-CZ/Main.strings b/Localization/Puppet/cs-CZ/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/cs-CZ/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/de-DE/Main.strings b/Localization/Puppet/de-DE/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/de-DE/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/es-ES/Main.strings b/Localization/Puppet/es-ES/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/es-ES/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/fr-FR/Main.strings b/Localization/Puppet/fr-FR/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/fr-FR/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/it-IT/Main.strings b/Localization/Puppet/it-IT/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/it-IT/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ja-JP/Main.strings b/Localization/Puppet/ja-JP/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/ja-JP/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ko-KR/Main.strings b/Localization/Puppet/ko-KR/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/ko-KR/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/pl-PL/Main.strings b/Localization/Puppet/pl-PL/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/pl-PL/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/pt-BR/Main.strings b/Localization/Puppet/pt-BR/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/pt-BR/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ru-RU/Main.strings b/Localization/Puppet/ru-RU/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/ru-RU/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/tr-TR/Main.strings b/Localization/Puppet/tr-TR/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/tr-TR/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/zh-CN/Main.strings b/Localization/Puppet/zh-CN/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/zh-CN/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/zh-TW/Main.strings b/Localization/Puppet/zh-TW/Main.strings new file mode 100644 index 0000000000..d310fbae4c --- /dev/null +++ b/Localization/Puppet/zh-TW/Main.strings @@ -0,0 +1,14 @@ +/* + Main.strings + Puppet +*/ +"crash_alert_title" = "Sorry about that."; +"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; +"crash_alert_do_not_send" = "Don't Send"; +"crash_alert_always_send" = "Always Send"; +"crash_alert_send" = "Send"; + +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/cs-CZ/Main.strings b/Localization/Sasquatch/cs-CZ/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/cs-CZ/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/de-DE/Main.strings b/Localization/Sasquatch/de-DE/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/de-DE/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/es-ES/Main.strings b/Localization/Sasquatch/es-ES/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/es-ES/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/fr-FR/Main.strings b/Localization/Sasquatch/fr-FR/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/fr-FR/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/it-IT/Main.strings b/Localization/Sasquatch/it-IT/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/it-IT/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ja-JP/Main.strings b/Localization/Sasquatch/ja-JP/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/ja-JP/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ko-KR/Main.strings b/Localization/Sasquatch/ko-KR/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/ko-KR/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/pl-PL/Main.strings b/Localization/Sasquatch/pl-PL/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/pl-PL/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/pt-BR/Main.strings b/Localization/Sasquatch/pt-BR/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/pt-BR/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ru-RU/Main.strings b/Localization/Sasquatch/ru-RU/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/ru-RU/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/tr-TR/Main.strings b/Localization/Sasquatch/tr-TR/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/tr-TR/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/zh-CN/Main.strings b/Localization/Sasquatch/zh-CN/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/zh-CN/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/zh-TW/Main.strings b/Localization/Sasquatch/zh-TW/Main.strings new file mode 100644 index 0000000000..601d68d392 --- /dev/null +++ b/Localization/Sasquatch/zh-TW/Main.strings @@ -0,0 +1,8 @@ +/* + Main.string.strings + Sasquatch +*/ +"distribute_alert_title" = "New update available!!!!"; +"distribute_alert_message" = "This is a customized dialog"; +"distribute_alert_yes" = "Yes"; +"distribute_alert_no" = "No"; From e5c0f95309c3fd2e3f73ad2e96f67d46359016f9 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 26 Sep 2017 11:06:43 -0700 Subject: [PATCH 21/61] Remove watchOS targets and replace icon --- Sasquatch/Sasquatch.xcodeproj/project.pbxproj | 294 ------------------ .../AppIcon.appiconset/Contents.json | 39 ++- .../AppIcon.appiconset/ic_launcher-1.png | Bin 2903 -> 0 bytes .../AppIcon.appiconset/ic_launcher-10.png | Bin 9162 -> 0 bytes .../AppIcon.appiconset/ic_launcher-11.png | Bin 9162 -> 0 bytes .../AppIcon.appiconset/ic_launcher-12.png | Bin 6077 -> 0 bytes .../AppIcon.appiconset/ic_launcher-13.png | Bin 7161 -> 0 bytes .../AppIcon.appiconset/ic_launcher-14.png | Bin 4317 -> 0 bytes .../AppIcon.appiconset/ic_launcher-15.png | Bin 4476 -> 0 bytes .../AppIcon.appiconset/ic_launcher-16.png | Bin 2903 -> 0 bytes .../AppIcon.appiconset/ic_launcher-2.png | Bin 2185 -> 0 bytes .../AppIcon.appiconset/ic_launcher-3.png | Bin 4317 -> 0 bytes .../AppIcon.appiconset/ic_launcher-4.png | Bin 2903 -> 0 bytes .../AppIcon.appiconset/ic_launcher-5.png | Bin 6077 -> 0 bytes .../AppIcon.appiconset/ic_launcher-6.png | Bin 5854 -> 0 bytes .../AppIcon.appiconset/ic_launcher-7.png | Bin 11268 -> 0 bytes .../AppIcon.appiconset/ic_launcher-8.png | Bin 12818 -> 0 bytes .../AppIcon.appiconset/ic_launcher-9.png | Bin 14187 -> 0 bytes .../AppIcon.appiconset/ic_launcher.png | Bin 1434 -> 0 bytes .../AppIcon.appiconset/icon-1.png | Bin 0 -> 5083 bytes .../AppIcon.appiconset/icon-10.png | Bin 0 -> 2216 bytes .../AppIcon.appiconset/icon-11.png | Bin 0 -> 4951 bytes .../AppIcon.appiconset/icon-12.png | Bin 0 -> 3299 bytes .../AppIcon.appiconset/icon-13.png | Bin 0 -> 7618 bytes .../AppIcon.appiconset/icon-14.png | Bin 0 -> 7228 bytes .../AppIcon.appiconset/icon-15.png | Bin 0 -> 16379 bytes .../AppIcon.appiconset/icon-16.png | Bin 0 -> 18905 bytes .../AppIcon.appiconset/icon-2.png | Bin 0 -> 4951 bytes .../AppIcon.appiconset/icon-3.png | Bin 0 -> 8641 bytes .../AppIcon.appiconset/icon-4.png | Bin 0 -> 7618 bytes .../AppIcon.appiconset/icon-5.png | Bin 0 -> 11325 bytes .../AppIcon.appiconset/icon-6.png | Bin 0 -> 11325 bytes .../AppIcon.appiconset/icon-7.png | Bin 0 -> 12882 bytes .../AppIcon.appiconset/icon-8.png | Bin 0 -> 1500 bytes .../AppIcon.appiconset/icon-9.png | Bin 0 -> 3299 bytes .../AppIcon.appiconset/icon.png | Bin 0 -> 3299 bytes .../Circular.imageset/Contents.json | 18 -- .../Contents.json | 28 -- .../Extra Large.imageset/Contents.json | 18 -- .../Modular.imageset/Contents.json | 18 -- .../Utilitarian.imageset/Contents.json | 18 -- .../ExtensionDelegate.swift | 47 --- .../SasquatchWatchSwift Extension/Info.plist | 36 --- .../InterfaceController.swift | 23 -- .../NotificationController.swift | 37 --- .../PushNotificationPayload.apns | 18 -- .../AppIcon.appiconset/Contents.json | 55 ---- .../Base.lproj/Interface.storyboard | 39 --- Sasquatch/SasquatchWatchSwift/Info.plist | 33 -- 49 files changed, 22 insertions(+), 699 deletions(-) delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-1.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-10.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-11.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-12.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-13.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-14.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-15.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-16.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-2.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-3.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-4.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-5.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-6.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-7.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-8.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-9.png delete mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-1.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-10.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-11.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-12.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-13.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-14.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-15.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-16.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-2.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-3.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-4.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-5.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-6.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-7.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-8.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-9.png create mode 100644 Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon.png delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/ExtensionDelegate.swift delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/Info.plist delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift delete mode 100644 Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns delete mode 100644 Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard delete mode 100644 Sasquatch/SasquatchWatchSwift/Info.plist diff --git a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj index 83f37c8422..8e534ca3f8 100644 --- a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj +++ b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj @@ -68,14 +68,6 @@ D31EF9441E9517B600450162 /* NotificationController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9431E9517B600450162 /* NotificationController.m */; }; D31EF9461E9517B600450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9451E9517B600450162 /* Assets.xcassets */; }; D31EF94A1E9517B600450162 /* SasquatchWatchObjC.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D31EF9291E9517B500450162 /* SasquatchWatchObjC.app */; }; - D31EF9581E9517C500450162 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9561E9517C500450162 /* Interface.storyboard */; }; - D31EF95A1E9517C500450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9591E9517C500450162 /* Assets.xcassets */; }; - D31EF9611E9517C600450162 /* SasquatchWatchSwift Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - D31EF9681E9517C600450162 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9671E9517C600450162 /* InterfaceController.swift */; }; - D31EF96A1E9517C600450162 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9691E9517C600450162 /* ExtensionDelegate.swift */; }; - D31EF96C1E9517C600450162 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF96B1E9517C600450162 /* NotificationController.swift */; }; - D31EF96E1E9517C600450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF96D1E9517C600450162 /* Assets.xcassets */; }; - D31EF9721E9517C600450162 /* SasquatchWatchSwift.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */; }; F89D79091E93DA3A0094521F /* CrashLibIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; }; F89D790A1E93DA3A0094521F /* CrashLibIOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F89D790C1E93DA500094521F /* CrashLibIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; }; @@ -111,20 +103,6 @@ remoteGlobalIDString = D31EF9281E9517B500450162; remoteInfo = SasquatchWatchObjC; }; - D31EF9621E9517C600450162 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 84226C0A1E88FEFC00798417 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D31EF95F1E9517C600450162; - remoteInfo = "SasquatchWatchSwift Extension"; - }; - D31EF9701E9517C600450162 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 84226C0A1E88FEFC00798417 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D31EF9531E9517C500450162; - remoteInfo = SasquatchWatchSwift; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -139,17 +117,6 @@ name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; }; - D31EF9761E9517C600450162 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - D31EF9611E9517C600450162 /* SasquatchWatchSwift Extension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; D36AD6EE1E94FF6B003D34E7 /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -161,17 +128,6 @@ name = "Embed Watch Content"; runOnlyForDeploymentPostprocessing = 0; }; - D36AD7171E94FF98003D34E7 /* Embed Watch Content */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; - dstSubfolderSpec = 16; - files = ( - D31EF9721E9517C600450162 /* SasquatchWatchSwift.app in Embed Watch Content */, - ); - name = "Embed Watch Content"; - runOnlyForDeploymentPostprocessing = 0; - }; F89D790B1E93DA3B0094521F /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -257,17 +213,6 @@ D31EF9431E9517B600450162 /* NotificationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotificationController.m; sourceTree = ""; }; D31EF9451E9517B600450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; D31EF9471E9517B600450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SasquatchWatchSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - D31EF9571E9517C500450162 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; - D31EF9591E9517C500450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - D31EF95B1E9517C500450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SasquatchWatchSwift Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - D31EF9661E9517C600450162 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; - D31EF9671E9517C600450162 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; - D31EF9691E9517C600450162 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; - D31EF96B1E9517C600450162 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; - D31EF96D1E9517C600450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - D31EF96F1E9517C600450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F89D79081E93DA3A0094521F /* CrashLibIOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CrashLibIOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -312,13 +257,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D31EF95D1E9517C600450162 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -353,8 +291,6 @@ 84226C811E8908CA00798417 /* SasquatchSwift */, D31EF92A1E9517B600450162 /* SasquatchWatchObjC */, D31EF9391E9517B600450162 /* SasquatchWatchObjC Extension */, - D31EF9551E9517C500450162 /* SasquatchWatchSwift */, - D31EF9641E9517C600450162 /* SasquatchWatchSwift Extension */, 5CD700E61EA4B74600FC5D12 /* SasquatchUITests */, 84226C131E88FEFC00798417 /* Products */, 84226D0F1E8921DE00798417 /* Frameworks */, @@ -368,8 +304,6 @@ 84226C801E8908C900798417 /* SasquatchSwift.app */, D31EF9291E9517B500450162 /* SasquatchWatchObjC.app */, D31EF9351E9517B600450162 /* SasquatchWatchObjC Extension.appex */, - D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */, - D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */, 5CD700E51EA4B74500FC5D12 /* SasquatchSwiftUITests.xctest */, 5CE258871EA5F62400DA8FB9 /* SasquatchObjCUITests.xctest */, ); @@ -522,37 +456,6 @@ name = "Supporting Files"; sourceTree = ""; }; - D31EF9551E9517C500450162 /* SasquatchWatchSwift */ = { - isa = PBXGroup; - children = ( - D31EF9561E9517C500450162 /* Interface.storyboard */, - D31EF9591E9517C500450162 /* Assets.xcassets */, - D31EF95B1E9517C500450162 /* Info.plist */, - ); - path = SasquatchWatchSwift; - sourceTree = ""; - }; - D31EF9641E9517C600450162 /* SasquatchWatchSwift Extension */ = { - isa = PBXGroup; - children = ( - D31EF9671E9517C600450162 /* InterfaceController.swift */, - D31EF9691E9517C600450162 /* ExtensionDelegate.swift */, - D31EF96B1E9517C600450162 /* NotificationController.swift */, - D31EF9651E9517C600450162 /* Supporting Files */, - ); - path = "SasquatchWatchSwift Extension"; - sourceTree = ""; - }; - D31EF9651E9517C600450162 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D31EF96D1E9517C600450162 /* Assets.xcassets */, - D31EF96F1E9517C600450162 /* Info.plist */, - D31EF9661E9517C600450162 /* PushNotificationPayload.apns */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -619,12 +522,10 @@ 84226C7D1E8908C900798417 /* Frameworks */, 84226C7E1E8908C900798417 /* Resources */, F89D790E1E93DA500094521F /* Embed Frameworks */, - D36AD7171E94FF98003D34E7 /* Embed Watch Content */, ); buildRules = ( ); dependencies = ( - D31EF9711E9517C600450162 /* PBXTargetDependency */, ); name = SasquatchSwift; productName = SasquatchSwift; @@ -665,40 +566,6 @@ productReference = D31EF9351E9517B600450162 /* SasquatchWatchObjC Extension.appex */; productType = "com.apple.product-type.watchkit2-extension"; }; - D31EF9531E9517C500450162 /* SasquatchWatchSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = D31EF9771E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift" */; - buildPhases = ( - D31EF9521E9517C500450162 /* Resources */, - D31EF9761E9517C600450162 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - D31EF9631E9517C600450162 /* PBXTargetDependency */, - ); - name = SasquatchWatchSwift; - productName = SasquatchWatchSwift; - productReference = D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */; - productType = "com.apple.product-type.application.watchapp2"; - }; - D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */ = { - isa = PBXNativeTarget; - buildConfigurationList = D31EF9731E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift Extension" */; - buildPhases = ( - D31EF95C1E9517C600450162 /* Sources */, - D31EF95D1E9517C600450162 /* Frameworks */, - D31EF95E1E9517C600450162 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "SasquatchWatchSwift Extension"; - productName = "SasquatchWatchSwift Extension"; - productReference = D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */; - productType = "com.apple.product-type.watchkit2-extension"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -757,16 +624,6 @@ DevelopmentTeam = L4RARDNZ2Y; ProvisioningStyle = Manual; }; - D31EF9531E9517C500450162 = { - CreatedOnToolsVersion = 8.3; - DevelopmentTeam = L4RARDNZ2Y; - ProvisioningStyle = Manual; - }; - D31EF95F1E9517C600450162 = { - CreatedOnToolsVersion = 8.3; - DevelopmentTeam = L4RARDNZ2Y; - ProvisioningStyle = Manual; - }; }; }; buildConfigurationList = 84226C0D1E88FEFC00798417 /* Build configuration list for PBXProject "Sasquatch" */; @@ -786,8 +643,6 @@ D31EF9281E9517B500450162 /* SasquatchWatchObjC */, D31EF9341E9517B600450162 /* SasquatchWatchObjC Extension */, 84226C7F1E8908C900798417 /* SasquatchSwift */, - D31EF9531E9517C500450162 /* SasquatchWatchSwift */, - D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */, 5CD700E41EA4B74500FC5D12 /* SasquatchSwiftUITests */, 5CE258861EA5F62400DA8FB9 /* SasquatchObjCUITests */, ); @@ -848,23 +703,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D31EF9521E9517C500450162 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D31EF95A1E9517C500450162 /* Assets.xcassets in Resources */, - D31EF9581E9517C500450162 /* Interface.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D31EF95E1E9517C600450162 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D31EF96E1E9517C600450162 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -941,16 +779,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D31EF95C1E9517C600450162 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D31EF96C1E9517C600450162 /* NotificationController.swift in Sources */, - D31EF96A1E9517C600450162 /* ExtensionDelegate.swift in Sources */, - D31EF9681E9517C600450162 /* InterfaceController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -974,16 +802,6 @@ target = D31EF9281E9517B500450162 /* SasquatchWatchObjC */; targetProxy = D31EF9481E9517B600450162 /* PBXContainerItemProxy */; }; - D31EF9631E9517C600450162 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */; - targetProxy = D31EF9621E9517C600450162 /* PBXContainerItemProxy */; - }; - D31EF9711E9517C600450162 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D31EF9531E9517C500450162 /* SasquatchWatchSwift */; - targetProxy = D31EF9701E9517C600450162 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -1003,14 +821,6 @@ name = Interface.storyboard; sourceTree = ""; }; - D31EF9561E9517C500450162 /* Interface.storyboard */ = { - isa = PBXVariantGroup; - children = ( - D31EF9571E9517C500450162 /* Base */, - ); - name = Interface.storyboard; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -1347,92 +1157,6 @@ }; name = Release; }; - D31EF9741E9517C600450162 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - DEVELOPMENT_TEAM = L4RARDNZ2Y; - INFOPLIST_FILE = "SasquatchWatchSwift Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp.watchkitextension; - PRODUCT_NAME = "${TARGET_NAME}"; - PROVISIONING_PROFILE = "f8916a7a-bdf2-43a9-aa3a-ed5132cf2d05"; - PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift Extension"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.2; - }; - name = Debug; - }; - D31EF9751E9517C600450162 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - DEVELOPMENT_TEAM = L4RARDNZ2Y; - INFOPLIST_FILE = "SasquatchWatchSwift Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp.watchkitextension; - PRODUCT_NAME = "${TARGET_NAME}"; - PROVISIONING_PROFILE = "f8916a7a-bdf2-43a9-aa3a-ed5132cf2d05"; - PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift Extension"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.2; - }; - name = Release; - }; - D31EF9781E9517C600450162 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - DEVELOPMENT_TEAM = L4RARDNZ2Y; - IBSC_MODULE = SasquatchWatchSwift_Extension; - INFOPLIST_FILE = SasquatchWatchSwift/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "78baa111-ff48-4e7c-b27c-d6d6b51f325d"; - PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift App"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.2; - }; - name = Debug; - }; - D31EF9791E9517C600450162 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - DEVELOPMENT_TEAM = L4RARDNZ2Y; - IBSC_MODULE = SasquatchWatchSwift_Extension; - INFOPLIST_FILE = SasquatchWatchSwift/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "78baa111-ff48-4e7c-b27c-d6d6b51f325d"; - PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift App"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.2; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1499,24 +1223,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D31EF9731E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift Extension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D31EF9741E9517C600450162 /* Debug */, - D31EF9751E9517C600450162 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D31EF9771E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D31EF9781E9517C600450162 /* Debug */, - D31EF9791E9517C600450162 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 84226C0A1E88FEFC00798417 /* Project object */; diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json index 8dfa874b58..c03333b330 100644 --- a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -3,104 +3,109 @@ { "size" : "20x20", "idiom" : "iphone", - "filename" : "ic_launcher-16.png", + "filename" : "icon.png", "scale" : "2x" }, { "size" : "20x20", "idiom" : "iphone", - "filename" : "ic_launcher-15.png", + "filename" : "icon-1.png", "scale" : "3x" }, { "size" : "29x29", "idiom" : "iphone", - "filename" : "ic_launcher-14.png", + "filename" : "icon-2.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "iphone", - "filename" : "ic_launcher-13.png", + "filename" : "icon-3.png", "scale" : "3x" }, { "size" : "40x40", "idiom" : "iphone", - "filename" : "ic_launcher-12.png", + "filename" : "icon-4.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "iphone", - "filename" : "ic_launcher-11.png", + "filename" : "icon-5.png", "scale" : "3x" }, { "size" : "60x60", "idiom" : "iphone", - "filename" : "ic_launcher-10.png", + "filename" : "icon-6.png", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", - "filename" : "ic_launcher-9.png", + "filename" : "icon-7.png", "scale" : "3x" }, { "size" : "20x20", "idiom" : "ipad", - "filename" : "ic_launcher.png", + "filename" : "icon-8.png", "scale" : "1x" }, { "size" : "20x20", "idiom" : "ipad", - "filename" : "ic_launcher-1.png", + "filename" : "icon-9.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "ipad", - "filename" : "ic_launcher-2.png", + "filename" : "icon-10.png", "scale" : "1x" }, { "size" : "29x29", "idiom" : "ipad", - "filename" : "ic_launcher-3.png", + "filename" : "icon-11.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "ipad", - "filename" : "ic_launcher-4.png", + "filename" : "icon-12.png", "scale" : "1x" }, { "size" : "40x40", "idiom" : "ipad", - "filename" : "ic_launcher-5.png", + "filename" : "icon-13.png", "scale" : "2x" }, { "size" : "76x76", "idiom" : "ipad", - "filename" : "ic_launcher-6.png", + "filename" : "icon-14.png", "scale" : "1x" }, { "size" : "76x76", "idiom" : "ipad", - "filename" : "ic_launcher-7.png", + "filename" : "icon-15.png", "scale" : "2x" }, { "size" : "83.5x83.5", "idiom" : "ipad", - "filename" : "ic_launcher-8.png", + "filename" : "icon-16.png", "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-1.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-1.png deleted file mode 100644 index 8cfdf7f109374e975a4c2af41f1043f6f3947b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2903 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-10.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-10.png deleted file mode 100644 index 9128f4d955e83178edad1558af0a1c1a8cdb21d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9162 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-13.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-13.png deleted file mode 100644 index f937c5e4d2c87a672af89e74737dbb33b1c5feba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7161 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 I5^DYWKZApBY5)KL diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-16.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-16.png deleted file mode 100644 index 8cfdf7f109374e975a4c2af41f1043f6f3947b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2903 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-2.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-2.png deleted file mode 100644 index 78ffc26439497b83de2e2354eee4ad3982e105e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2185 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-5.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-5.png deleted file mode 100644 index 4cb6c779f33ad425c879d71748f3be443ed20806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6077 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-6.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-6.png deleted file mode 100644 index ad29ba32b1b9eddc3527e00b7356814bfc951ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5854 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-7.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-7.png deleted file mode 100644 index 8afa0abb31dc3dcae05563b855c7647b594a68e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11268 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 S@~3~Pxssx?A{9dV{{IV%%r61} diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-8.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-8.png deleted file mode 100644 index 4afb19729364d5122f8d8352b456d0bb76341153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12818 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 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-9.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/ic_launcher-9.png deleted file mode 100644 index 4a4198199c51a1fda7e54e26d4939e79ba71d650..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14187 zcmZ|019T<9w?2Ae+s?!j+c>dp+s4E=!Gse}Y#S4ECN@s&Ol;fv&+p#*?!#KI*Q&0n z-CupXcCW78)vNc8Qc;pdK_o;3001bmG7@V4>Zbn`c-Vhup-EWwe-(tgnzR_8c8d7; zUkAZOM%NtxK*IV@fdFJ?#x)n_4)VSu%S&y8J@}0D|89|C)}L z9;W2pjt)-l{N6$o|ApZH*Zz-~g@XLQARhKY6grA32yfpM}NC%Zu5IgW1{5nuU#zkB^0worRs9=^uj0-N(tp)SJo4 zo$|j){x2R0OLucOTNe*oXD9Oi@S2)AfAbKcp!koX|2_VDo*uSV|F}G5EPxF8Hh1mrE3;F+&{f{0&mj5XKe@y1TE&VU)KU0Mf z1zG<0wh1FD^wH`909;kF5~3R35a)()AZ*FST2ziKtj@hQd|t_*dxbK5*7YFYPXbrA z{Bk-*QPq&X5L1mLXuiZYa&jwep=nUCxGGyNC^xzcQeJ1L50+c$=;G6FVXm=p+~FuE zXC-5UIXx%$qV}Xx+qnDVWTA?FsM_;#_j-1c%2HPS~WYf>6hQvnNqq@qyIIW7oW zPolp*w*3vTHg+oc8~Vo9cX{85>l*Qq5!*JQOMqAc%{kxQ1HoT9J-^1Fd!LLW_r03c zvM3+H7*Sz8VNrJ@sq^d7c^VQF3kH${WoV#J3+mc$XuBT424$rd^2o;Zi5$JspKQb& z@h3FspQUW))`_y00=tIJUGJx34g79w^;oJ~-0YgPb&J#7j1ZOXsC{P>U&USDniLb% z3vyBro5fTzAe&;6=#CyBC2xrbH$>P}{j^mUy1GKFTZyi_*~NT+X4jr~AL^ZtLwZz2 z3BRF*58*(wTuI$ewyV#DtpJ?DODpV}wU|;F_Ccl5KU`hhz%e0om~92kLV)og&C&oU zK%KVX%}Wrmfp59zS7Hit)ac>e#oxHO#<=|0}30Y|QG*y{}kb4w> zNq8{*$98K_Ai_3y6>@2{jZC$f0whe{&`9UF$_5Yx+`ciMQL^;U8L1V zLn?xP<8?py+3S5JCY!)d58#NCgmi%dJshZqF79U%5$f;dA6~Zq?ov~`Tt{34rP zU#b})8{x&hM#x%h0gy=PG!GTo*&kGhr*<5X z5*{8^{$3&|ybomLzwi7_q%u)Qd_t}GM{r(M*5ajtG?Ah1jFsL3L@(CxxQi5fI@zSk ze}}OIW!XE2i#@Oo#KfEVr!W53;2vpY9e+dBp# zp-tqOP#loJ;T~&XFT=?ng_AIsDDYPFo=AXIV_yShN=-hIUyTdP zYt*5)jh!#XHZJi-wUz$3H={BEmoTL@KCU#~Jo74e5JR}hLTL<%b|${bugHNOreTAL z$P|0@VLsayYo(-b)LkxP^C^wlzZ_R}g*rJKMJ1YVTQoo4P z_rl(i`!MgX$Aq9a#FuxD*Nh7Ud`2J~wtR73@e*@)Apy~X*BBGvRvkP+ptwJgXvFXQ z!CUW&%)w3E#Ki-ee4{0TW(jZF0mhCxLJ$1fX_%^=g7d{YqGOsUFy@ z9VTA#$*Xurh*e`kj39&E>520R*2zS!B9zc}tysWh*ePr%%n|G$79ZX_7e^Vv4_L(! zm?qoO_K~l$HtrM=+&&EVsR@8!0uqXk4w8%v_pHiaFqq+uYcW>bl;ZN@S&3Rz>-ta! zXA{{(SBp86{V?;8?ptH^01_Q$4A&Oi$&qX~h8|>T%8JGe(d0-v8GH^?)i_qfwTU9T z8D#Itip&S(Au#fxzdXhQrGh-`J$z}3@{-HJZ*{m{TWjXv3>(-sk0POWttr1M;mv8G zPAFE9#)$JMDs8uo!&x<0m4|REo2exm0{attZM>y;IXN}41FBX2K>vFPMy;*;Gkc3K zQf+GkgBQH0H9!w=Y_1|NI{ByuNW!e~W7*l?^}!JHwy<&Hnj*pOv#?VwO+CouMC4ZD zo$<2MCzti&TA6H}ttcZkCDB`OR(f{8u%+zfQNk&w-`@Js;^qda0^wK*KKO2L-J=zD zC-rhAH#Fx*!S~wVh}brMO$UE(YH!8g*zMGgpV|C)@tF*^0tT+b%oh^$Zj;*plNSdg z&WZ$S`(K38v3HZ|RB=*cQ|PA~VjgrvnMBrTDhwMtVqNymu{`}6&*qeRalX)-7oBxD zhYM%dOhQcB*ndpasIg6!62k_Nv#L*B9_`9de;Rbkf52&6vRCu@Lm1`#a{7(TKqJb2 zt)z&V+gUI?611IQxz%mU!<@r4x`>2#wwSqDqsRnQ?h0239s zOps7IEFgu|SP_okFY^VXpvB-fx+Z#DA8GsrdpE-5!P^wMLmkE!PISGYxIq9LN{&>M zcS%$^kn+>x$7noaDXC01;H0eC$acfov?w>wwpHavR%Bq4E8-5^!EUM1um<5&X$kC! z@yrN%?)`=b0%x$BO_K}P;VATcr!Ox*uoHQf$`z;dbFV<{15a-Vwf<(MgP$2HGYh^x zeXgp!O$7BRaG<1O+Gt7Wl{1@WuT>XOEHlGGdjF79e8Fa00@+&MgeIfO!bU;-HrfT? z@JMT4kq zIrzGW8GFqPF^E+|8(YqA7-I$E=x?>buwt8oC$|7`{i+5RV%i{s3BNt;44gEsN8h4q z^u&Tk*n`s_c0l1YG2%akCW}B{Jyzl>H3r+jvpEKkcmLal6b83&|h!Iet=DMfNHoEL^_0J4h>i+*49#v zMg=Gs%*#U;`4cipNE>So*I>Ph{r*Z0a*l34QO9KVe(du?<)Kh*LL$=ie@((>~lsP1&14WJAz6G zGhyu-jPft1TI!hPcwi~|<^2(uDf_mRR_uh>y;$clxb$Y} zUr}s_AmciMd4^Z5P+#;qZl@n1&Pj;{8E_R8=eAPq6Z91qD z7Sl-+80=y+EwI6z`gDMMoq&@Ct%H8P_g9tjTXcu#wsJa*%p8;griQMA5S)tkr&!2U z12-nOR*6+)J$`~7QrgaWocfULt^EbCKgM`ffJv#4B9QMO*eczK_m?EqavT;Lgv|#o zN?JKsT0_&t9_3-R3R*N^J3Mz~=?E=e#^@Z1hk;iE$PQt1s|$pS zloo@@ia+CmNy331uME+)A8+uDOP51PY>6XB+=1elgc!(zaR-!;&d*3{iPQf*fad}d z*UN6MEHNKc`#J6685DhX-LY43$ zamAj?$gf6RG=IUaM}g?BoRFqTDt?KWJwA~Qq???=R-DX6#}XV@J%ctj z8$|=0W$MV9=xjyVE0}|=zGQ!Qht!l;1nA&A$Mz^3&_HpK>}pUF+B30Jh4WZf?*icy z*4FnViDHMxyZej0$eQI494P-Bx$M;Qv1(t2tQ2@G3GmuBp3BVg)(;cVIQ%Ezk=v_1 zYte+}0)xKyJN1UmEI1rU?nTIcXyk_gPDV3veN55ah{#joNoYaEDgTzK$^l7d1Bpw7 zXN!?;vz42V4``%kn_)gX0(1DBX__=zP^X+$3#eLv-^c~9Gn!DrV- zkl8a25c=r)xnTbE?M?tY|DlXv4>I~22kvhBI!|Z=a5{DibcR?MCInGJwH-6nEr6W! zys~GRw(f)A>9P>u*^{>hnVUh}n*#n>?TQ$(B-Hg#oQz${IC_$@!LX>?-scKd4Tk3Z zGT@bvqAAWH^$_kZj2jG*j)Dg+-D_;VC~&ji!YibqlT+|LJ1sNz*P8;jYagnIgRe%X zg=AKmv}Pbhmcp#q>M?i=UZ%wK3UKkK@r_=$7R;=9OQvcY2B&E2g!ZCxNvP^-*^p*S zQx%Gv5B!bXHO>wY!p*{2$<^yA?3R_}a0l^Qc)n0x2g_glc1y>b_-UQl*8A7x%Y@W& zGB?E0!9L0&ATwhyc%chB6B`K!x-&x9wTC(S#)Zh7!TCt&%|BWZCqkKH>;%qgbw245 zT$g{W(2HtLt=TvedeqciYFT@Im7@rU5uU=%(X>eyjPLy}c}3ydqT= z(gQd%!o`s7av)9Sq>wYlX}9m|!|r9WJmu?DZ3FY2kP|#|Liw`JCJ3uK7Y)p>ClRZt zFUsC3>&+t7y1eO_`7UNQY43@JKlU+1b_Ms-u;p%>)a3V=6>P)M!NrU)xOha#B3o~b zWKDysT5~{#ms!BKaxShq;LK@rT8Jm-%H+@eBi3An{BVavEa6!^nF(Rmf1WcCyt%T@ zN5&JOViepkyXP*EHcAD@+GwoaK^2?Rx?fkA-ZV3921r1KNZ?Z&qD4*^H5U zJ@t+vTyi!!LdvhN5A7STkHjA%9j?aS`^*4vL8;eWc_iW&IL?$soZW-EPS^I8SGa5* z6E(f1V!TL2b!9>1J19OtzyO(z-p%T1w6&7*WqXj1R^E)Ehsx~|+jP;z^u!hy-pthV z-9`V620mjH9x9b3l~TIbeSb1dx7(61%OLR7;nhE*UXv#sz-da+mXLCv$!W3pH`>qZ zLRd8}ak0lMozuIGlM4sb^-zBh0YIeKDENB8rQ6*&%^_FfZe=PA{F{-=-tU8T!={FC z&oj*aIGm8YH!a{HN5KEOmR%AeuF}}xVXsu~jy`%E;ZV$q{`UI#x3W7mf@goNuNT8w zDP6_ZJyl>_sHoR*v{u@@ZX1B^kE?-mD%jgV{YfyCwp(|}W+o-AFU6G`Z>zpHO`JIO z{D#tpEi+bXi$JoYZG9)}r7$(VsR-EhUlFy3X}L6k1XE1|Sy32)hA+)^LMPtXVVaM| zo(^urr0z;nl+CZoP*qCAd{v3AUtX}Q2 zy~68Q8cBgZ?LaTXp)IAJI(ZdIo1UH$8jrQHQ0l8U9$}J3Ibc;|Zjl=dKD9p- zI2#1~1IPb3sS{O;qHcS~e@7!E{xHwa)-i(DAv;j-gV+w*c~*38mXa%YKZtwsc853X zdJ51hn>SSs6!PH?UKvkoPl9*EEu_8Ig5Zpb04m~!f2|tAHS*u5-WAA8_@&aP#-Sp) zy))mHdPRdF>SMD5EOxc>9j$;QzK)6<^okrEKg#jlXqu+|J-EMws_53$NBC?W;>MYz z*2t``y#56>_w8^N=CRg)U3WX0WmTR3$4?A4NUG68C@uzDtVB+T(9A@fNORUK6D%Cv zud&Lp`o2?|w8HGmY|D}>(1YlV(HL!g6!{e2Uf3QoOuvu1A|#(hJ?s}}UY(>}U7!__ zq~sD}1b6L0dylFfULF?5MVaTW-d$NhHl~?@u$q;V4b<(1q4UM1nW6$!EGO5tc-QOx zRy+>VEaN3*;0S{BMKaYAwk{D2pB45Ld&eQoE7%*o5|%89mt3#T>fDWrpQyo@Em!3C38nz(gMUJVSpShHj?%JJhR7?KP9iazH(#3f$=4aHGCRgkMaFMq70O_HWo2voSFmwai@w)U2nbRmu7rhMabgf6#gZNzrSed{Cf*-^?(Y?e zIx_%PXU9;YFPCFz009nrDmh=u2rI!80vuJ!e7nWcXR@9OGW&>mH)~S#y6O^cjF=hH zN{L!I-cr+9#AH9#KsTaTI@m?+%h57GbyI*%O1S%_uE%R)@%&T7p3d`E-`BoR%2iQC zZ1F@cl^?tXyuZx*1|ZUMIS)1uBM$wRdRt)SGGnX;VswD+Dt=t|NwJO5ogPgh7V(LA zp-z~!;;c_*nKwM*XC3Akbm3G3_9DfPC#)7zJnDI*f8g_(I!lCB4T3&UtNE^1oIYrT}|3wn&X&r4tOhay}V`L zQIv@3nEQnjk_;PFeA^P?W7b}_+`%q*vTCZ(2f?vMK+O_i)#tjrkW;U!3b2z zj6~-7za4i=^KW)u(*8`n`O8dl4YlNPWvvL{e~N%fhK!9%EDdCLb~^?kDfvLIyMJ+L z;VhJ~w1K!^g_MP+Bfp7I6_Eu~ebaV3{JHJ^C+B5P$lggr%(C}pKl3Q|&L_VzN_tAE-;|7fJA?LTZvd}5|M=TwhUck3g>m(lL3%702 zqO7@AY6neF$1;iAK&3ARYb%gwk9E- z7^x+$Uj{pGM*1owBkdv9`UusRaI<4#VW%e-r+Z#V)f36)U@c2%zst)Vc({+#k> zvbty64(Ze}4597zK^=J>dgjfSzl6wOg@=)DIW%HJZl9isO{4}bW}+;fYL#i8jwa4k z$M3j_Kn)w4*@?SK(r+hwO&bDU({v&lY_j(z#D#-B>l6*uEEp#wW)0jA9FO&FMXwCG z%hzic>%*TdTbvR=^Dw?yQ`^&*FzW~Z0jSk{g54=U`U{(d8C$0^YtD=lP!jI!MEHnU zC6(;E`HXAkk3u%D3SYc=JagO ze3w@&<}~(9+_K<4q$NU9h}(s?WCLAs)lQrmIo=X)?a^DT=?w0`Nk@CkyMjx`al%>u z?VI#}EPKfcQjc)%*TJ*2*lFy+XZTGr$Vt)5{yYWgE?&4)@mp#dWvK>6I(&Y&sc+Pc zmpb1d=id3+UTv^ue>owL2S-AOLs&^K+CLP*jgzVyoZzqKp}WL+vc76UNDWAGDxDE- zGpjqTHS&Ef41e%HPHV`FHyzT_Bu8Mt*+5N5a0I@7%<)axO?PVy!hb0xDEQ^ZsYXVz zGA#s2CsW}vRNz>`K>KbxM0e%zdl#_F{V1hY&%Bfblz>YPoR(VB-iUck9RJj?XV&z-$bBepTvw`eN>m4Z}b^=og)0D!`4?wbgcZ z`58(Cp4GD!aW_6FJnH%P*3hP(o#>iv(DI<$=sy3dU1Beo(Td(TlA*6C{)(j4N3TS_ zi0DpoZ{X&wJX3|1E%c5$(s!C8?M4yn`2B?nd;;RO8QM{0DaAQ^`Q~eBdvAmBTX4I8 z;KM8mKl`YQ@RiwY{7~d4jy7|;_hQqEJzjO}wHi9-x0sNprR>jN|9p~I=rQLm*D!6A zh|~LV!R)&wWp{K2r#rq)xHdKrKJF+Z5i?R-T-i^fw?BzKx{{{axcfLILz{&^mwlv$ zeDTPvr-L2h2y~qlFq=V)dBe|>j17Kzr6j?*i+=$%$BO@^VG@|C+g}M+J z`)1;i=tZTYnRvPy@Q37Wc>dNJtq>D@RLCs;VhJM-Nt2!YgRVD7U2?0a_FJ`Lp!K^o zNA$zbAH^8JRYuG)c7s@Cy^PZMaSG2(*8-@Mq3BZtj5c49V8WQje#sU&;gYucyA`;p z%$duxiQPlgsoko?Ss?P#YVVT5T^Ty_m5Z#Kwp5-J7zZU+_#9R^TxJ91ura0*bVs{_L2&zwLIlJf8Nt?;BCyw0Kp6mkiQvVgJtHb{d!#OT80% zx9#3v}|^Qx#r?U7-iD%rd&3{HLd{u;*5jOevJU!56I5ClU!h1I&(aJ=h2c1YSNZ$Q3)OOaf4v+EB-aLUd z^(_0DxM>^OK~a@BDl_v2-r)8Z%~^1@&zRsL*;hKBi(rnjzg69(vU^*5`wPAHWbdY` zk35Wos~1hK5F%-}Rxh1oT@T*d7nGE?r1_CN!Yexcf8^$HJoLUMQ8K|+cT#5do+GOytwp0BVbV1wwmCwy`*)QCM}P{Bqf7G#xlk-`p_n%(9m0N5`Dq>-u~@kU=`M6;0Z4J z8lwfa+_=E+PWzTkJ>8qSSuVUr9#-7FD1X1Kjc}6s80X$&rh7xx^&-} z^)FpN&cRK1V!+!e9(PTF&N{=-ZI8j4ACQCO2@IzB1kei0Y1Gv<#e6d}`t%Gp8_pMo z!Aki`Y+ZF$m5&|0a3|CPWg>8j?|_+j_;Wf!AKH!J_L%5OE!*KV+*Dzqk2_k@9KTz6 zf=##CtVm%;;V@({wBfRsuB6YtWlD)=JqHr^<)Uo?DFhYJ?9}|kk-k$k_K{ld!nN*9 zze{>)40h0_-YFpe;7(lS@;h}K>#S%jrs=4y1#sI8cdz zRX2Q}2m;EUO;~8=O*~_gB&Oe5n!WbtM}O`iDIxEpUI(CL$G-folPMe>>W9RTD6XBT z+DkUe91mR|!xo{}9uDIx$PJ9ls?LcDP{IAEG-`1_peK%pD~~aGp=?(bA*X-}+y3U_ zR)kPlhI7uK%YL1Goc!^;C6b(AnuPP6TUJy7(BZRBdxBxMeT_&liO`d>ql+59N0_3W z@JhKrcrx8tAM-JOW^7pHBbp;}tNX)l9qQhT3X!wf%VVaIvof*h}>Yov|mwFvs=g9E?2AyUeo2 zcWPPuLY}LQi;^FX+!l(()N;XBX_WV=-b*;Ve+#!G2iE71{RZ-xiw`uK<># zi553M_>0zUwRrQ!+t9`Op*PpUmE~!2GValK+6Whs5Hjl14)?Mm-Q17GT zShUtimFTBL>30E@YaPl>p|7}rQs6i{0ThvQx!vhdwl&_OqlL2FM1@&yfw&Lb>HtN3Tow_F1c2ubGUJtw>oh;zb6i+W!~ zC3n*oSg}FOO_S=CR+mqgoBKh3URDAd3~BOcM|e6+NfbfhIH7_ukt}{6DD7x|=E@iT zmDICiPZX0IX4s*#H7qL9GXSoY3ezO$cNIiRABmYdMj+!o9@j!qM@Hko`x40-l96JZ zVh1W7xioWMxnwf}u+@%WR6ed6|0+q{XmGulXzS*gSrapufULItot|kgqT^m%+j`t{ z!T{#D=bqE<2(CBPn=6)?UAg3tQ@O;ALnRmW6DP^AO3RZq#TpW9sv7uhTntTfTL+qj zuNm9URm+#wQ-AaK`UaSa>W)?AM~80ZJ<;>+EZRj0t&&(MLsU{6MO3^6{I3v)BlMxa zS`~+SVkid@2*6Wn)C1Fl9kD5NW)#yRuMaGLm!U4zgskL$p$RqW$WC!FfMa!G4;7Zl zJXjW?@Hn#pB}{k?7>!?d+YQKGOmJf=tcMB!{_5px-_aH5_!HeayPbq3q}1Q#c${s) zNhV>MLF<`c_AQ?|7Ps(LDkxXwS%A8{sr`E65bPLdU$H=_`fHly?l8X%N-A>=bW<+< zi%dp?JZcm&!$N77-6AN2O@om}1#b6yj|#~O&}E-9bNx6)yKrfm&`euB#N0UuoBIO{#xog`l-SB|Bf=Xw}ww_a6+i@)(#L&MSU|uHVED-WiJsLVPYt&z$i*; z1%^;{p6Dyh=1bQd_LI8w166Q`8O@|5xo2O#-Wlq78T_#}*bVqZdyQvkUSB!NwBINz z3b$4yqsx=EvCu!$>*Q_(U>Jd>auIH-K?Y*U6eK+f*;qhUX;tZF=!G*Zi{bpKfB?$# z71ZF4kaEB72ee1rBPYS2YVf#rNeB|vX4n$> z)+0OB%PyawF~~e5vykbIY7jXt0U`nB?3?Od%pvj*P!z4TQT#=X&Or1s`rZML5@7p#|x@zHY!P$>%u zYhKiO&ioALA^m`R04Vb(z}BvEryj172<@XF7xdNbw0sm+i)ToGVYK!{tN!|eY7yEWMu|4tKn%jYt%&`sF%n<;>@-`o+r;!6AGiW zKGs60Sen|U0JR!vh`0O~*RdM9{*QowPmc(f>^f4-9Lc6WfsV9Nts28M#hg(h%=TuN z(D>)MqPUH+Ni74<%e&#|(4=*lkqbI`2eflb+alyQav)amMm_;|LFUH#t(T|Ip;;=q zd_HNq8Y%_)TSN$-tt4$pk8lA&H{!K3wLJ!I~-%8b6zcq6%!xhZ`wz z8IpPe;II2FkxU-u0&RzcAotkyIBA=U-%4$%h7zvE|@=9b8Aw_Jm;)I2~HcstAY@BX* z1Jqa3W=aPwPqEYF24Y}ous*ODn=!s?kjz0pgoh@XB^QU#AC{#BbXqSv!=YUOk?l~2 zC93g`QOf=vY5JlE$iNOArbqB(%DuMrCSVn1uo%6}*wvO5f7eur(NQ%O+CeJ{T@3St zAxb4JuRKLy?X)MwZ?0s>IFCNfc%Ra>;WCDxzMFL-Crt_k70XF}^NRarobBgU=HS~G z9t;Kb@F@mkQ>3AxJ2cE|9YDqqOsInO4qko-gQfLC)v=lk03Hq1^&el?*y;;<_%-2N z!lg=_{gAORe~~AL2$_tisFU&jBB)PT{r;7#*2-@C3$FVh*M#tyZ7B}KJpQ*@9?~0e zI2_~23>B!31KCAYb4&og#~$MbpE(zOB7d~yHY^t$8i){yBF9O2 z&*!0;y9j#VJHkYhdGq+_fYC79ao9&bwkCjk3IhlQ6Cd*n>tkS@MQF4s8WC5(g0~UH zH{@5Lv8z{qeyQLQRgu$a<$JzwuE8tKsdgI`ki@>buRgg4(MIaGFxT0@V^3Q1i27MJ*v$|W-2BiKlbGR0-5C7VK-P1kDiQZ3q%_GS_wWU^NXT0&br}#I(9nlT*}wKL6bkBUelMqgbuD} zP8K&ho3Czv_F?uhxerU(?GPY=6|ptaouN{@?w|w^fOU$n<>UR86{ifW!Slx!W7Am~ z^Pk98e~yhnt3!gPcx==`0x|6eG*+)`Hl-wxJmH4~+=M4(~DEa8f9yDN}VYQrQ#`Sv@nh4xQE+y&BuP5qi$1TUmYjPPC zwb>K*wZ@!IR2GO?Vg4PBfa4cRp^cjlrKuN|O{ucGfx?ZnG?&AXwv8l!U{mww0#284 z_LY6Q!{FfUh=eBZO@uLUh@K|L52@>AJ%ocITO#~P@%qM-fxAirj;0wK~n7+z@FwAQ+e zeQA{^<7aN~&hQ@Vb00&-Z3>QpP*dI@@*7eN$*IZgaTt8$@gAP!278lMU)^al#RwB28xB|ZHjfO#FO>TT`x6DIHeyk9WeU?Ue zY+UGI3ja=zYkYtf{cva;Cpi#DePZvHc!Nvb}3l?nS(Ta9|j|p zY12cI3XqNO*9J76$Eb=(J;}JRHsAL+k$sHE2b_d54zs4y=WEh(e?ZuH5Dw0BBA0}^ zl`9!=)D<$J7*<&o?!pDHlsg8HN&eog5fuUDqkn&S<2-VOJ_+M2#eEyfMk2GmAp1SX zA$4GHRK!Ot18nPdouu`w*3dBV$o$h>=Ua8nY2pXa29 z*lRKYY}Jd$ER~*d{eh9oWhAo|V(qyRs>)647sTIuSORyfpz2bB)VXaX{sKA^a~}mK zl7|S?|KjE=MlsAfJv6F^2AXu}kNX`bK7_56C8Uq>)p??K?yCwUfeDZ$5KMB=+2hPt zgLA6wf8ZpM>N6nwJvfia%QW+i z@`-GY@6vg{$7pIWg9(Bb>dU4K`Bf{-QIA_xLnBxI;-mk}Aze#kPNva&J(0boqyo(H z85Far>$tG>Y~Dw_?HV_G4WNI`LjPcyvd33MLUl(yqr(}l>UR*ld(bbVGO}11Ef9gq zEw896m=4)-Q-=6+JT;}?m{2v~?3B)qQ`Sc#uL5Ve@BDIWzM@_mtIX;54Wtly5m==3Q(ES9su%{_UN% zO45Evf&-m=B((oEhD@knw7Sai?~zcDvz-6FTOIl-$=roGH$8Li?P0j-0LY&5 zb6mhyRJeqn48(DF{OoN?b^5R$$ud1lF5`7vIb9D$nlcX`pyaCz60hPc7b6Q|#fpqY3r-ilQxf&ps|tlnzi>D- z3WLbR))8d=4h|dahis~&SX~v3P1~G(JD#3%aI>*fPlg^5`AqL=rk8qG^X0I-<^O>^ zWjVE^#WsDZ|4o2Pa*I%VXRgNX*$&JFHSk39WQVgqaeMnX(R|@}FfiPRqnF{-U*9HU zNnqx5q1H{sQ}i2}oV zKMv2cjT(pvi4YVG5(k%$O=8z@WU2kemTN zgr@O4=^J7CDFxd+YgT%}VlviJqwu^>Tk7x`^{ao)lmMc+KJk!baq`uY$-O&n+Zj(w zr?Rr=j=5M_K2nwWYOK8YzLyXlH=hVyX|283?--+%hNb&o5I7d=6T3jdeJB)R)(J^( z;jT!khZU3nZodPhuo2mhkxd0`N{D=z#U`ldiAFyp^$(PUp`KCrTyF(f;4$fPS_V>4 zczR-CJH+BL@{k(G7b`pB7pSmWDAxLhJiaBtSocVACFM5Un4FKXb<&n!_1IAhWQ3|) z_tH(Z5^2!z6X3b+>&?js{@4RJbX# zStix5Kd<({Wtm`Emng$^Ue0d?1a==N-@;DV@90abQbCv_SXk)xtNqTJI&s-H)tqA< z^z{AZlv1}FJ40}0jfOlN$=wU%VLkAZp&N5Of1!B4J=d{qzyl8=Ig(c~ym?R*E0h}? z(Zux#A&P17obPvvG^D{)Zmm1O0QL2v&W$PkChyI|@X-HXh zST1j-wt%RqXJd}I*i$NXN}~;XDTDkJ!gz|95Fyf->dVUVk5T4mFHgVMwM!Q?p*2WO zgjvL4nVueOqSez6B7+H%vXP6{ThG1Jm%l4@#!|CyN;wxtY1l#E>cY~;EeTvWRE~qp zTB+_YHK(P zJsN-Nia!=gGf-f)E&R(*$|Q$q0D0Gt!=~F0zF2JaXt7#}clL03y MsU%S=W)kv$0G5yJeEv0i>ry1t>MrKP@sk-m|UE>MMTab;dfVufyAu`tKo-FP#GNIXX$YJ0ilN>DdQcxEqi?8Zpbs}2sMQ7}YUN*) znF_QSWWJrD4Ok_L7}OpceURlyj)C|TEDH3h9hZ$hJlO2Gd=9BcGB7aT@^o`eZ-pYx5GKiJRa-)9j0D_s1N_jbK=%6fDEtS?MFJfrr*mva>s-^2E;Stq}4MV6<4 z+_y=$Iu{$eYp2!A?(i^I&z5`r^gt^wYnyCO`P#~@-7U5&Cl-CqlA99du%e!=iGO06 zJMV>(EGM(Z{J9MFnRT=OtF4)!yKZvF@z{y4X87i@aQ|B7A}~!oSYky~&yrob+m;_( z^M0XTKHm~6Q@gk4O&0tXneXZwao6}r^0oqNCD|(+CmxqR_K{h2;MqZ&2JR$--$mI` zE6&Gge+``yvj4`leUA^ewR1GzbbRkODr8m=utVz*8N2+tJI@afPnP@L%WJWgrv zOz{Jvar)7<-*c)H8|+_ty!6FDMoAmhCg5TwffNO?$VS= z8oW156jRPb9pvh~Hsz|)_I8m!X^RgB|L|M%c(Tw_W*%nu9ez9qcWn6j_`ToTnbTCl zB@Wn2PxtDIUH3ogc>UjmQyUYws{@64oo)G=ZwjayNlNYA@&70DbN6-T3R`k2udbfQ zn>XEe$Cneko^{{ed25>9-`g`9P0JW8|66=_s;Kn}3rmlN@=7c(o2j;CQ}2RQS5N;E<9{<+&#Q_UJMYhA&bc%tCgJY^m7|SU%0wT3 zU;os-h%5AF&Xybb-QLbc=4Ust-fn!mXqx408IIDo`rpcaeD-d)Gh}nl{%$9{vS8A} z$hg&?8t*>MdYZzWRyRMCkwv5BV)P~($v&?u8nYfY>^Bvku=hu&_p{DU@8r@Mns1oJ z@7XzbZTl3}xiFLYDbIFAt6FWvMK)|7CI~x9XMgQ3D2dIOzdnvreBPRXuUA|$zeGKL zB`H{YcTd%_1A&hW{de8;61wg%eQ)e*{iNtss|0j+3S2%kKRjzMTgI=qI_3$d?fKZU zJT2rp&&&!vc{SntvEs1T$Lt!u@<+eA6C(2V-tUONg&(B*mz|tdx$ob%OCMxr{LZnF zwYDwVwqx6mFR7xw%jWp7SLim__BVXJ5_VzMoQC40H}7}NWWOen|MJd#<2_X`j=y~V z>v@y&`_`@c>MP#tH!5ab@OoXM?_oxXj62cS{??>>tH;ldd)I$0(WQc$`T52BoQB70 PK?SC#tDnm{r-UW|MyP9! diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-1.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1dd1a0a3014cc8bc1f2db1c9f57f5ed12e3b4ba2 GIT binary patch literal 5083 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 literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-10.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-10.png new file mode 100644 index 0000000000000000000000000000000000000000..c6c72e59739c3dd75efa2b04be74c62be80d6a9c GIT binary patch literal 2216 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 M1sN51In2cWUx~mjjQ{`u literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-12.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-12.png new file mode 100644 index 0000000000000000000000000000000000000000..5346cab82ca48ba54c527f7de81b06a17e0530b4 GIT binary patch literal 3299 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%0A#yrV?xYAqCz_VE$v`Zkw6 z5goEPrq@yrRTWPU;ww%G%W=M)pTbYQJ4X;jVO^3qig+G|-ZmGI&}AM0{tg)wGGvWWp~LL?Sr@6`wOQ5eV)dxBwn zeyc0!Q$+%PZmcyKt_JstBba8G;{iln^eHQlDDFFQ5=MQ2ebmVKNOHu=>fd{(F8%9-=Z3n ziRF0Trc6+7%yK}fkU4fA(IF#ORbUh|&; zCC;o2`Y;6kDd+`XAf?0YN)7W@@n5EaQ{%@C6=0!WsuXUr-y1XLq=BJ$xr|-yYWRVnJ9L#hP4a8b2J#bX(mKeL^|Q&`*REYUB4?V|(Tc zd(7Wo?V$J9G%Va$xma7Yh!lQz;nC~t;C?z6S^s0931frEJ0+J@AK(@D3S`5un?=gXwz3VZ=3+a%>-Jb4yQS$EpL0zegj0kY)Odog#UM-r|Pb zNB+r?uyXJ_BWB^o1{KTuWZI(iNnq0?HuCWn`kC37r;a2d6r9L-HI_63YrfkmUkV@g zxFim&P{WT%m9--JFciylrTP#*Npd0+z^CeIDis|YnWWk9nrMni9;)XzV2 zBHWgG85Bs()+fZ(pYfzxv`xeJlz^eUT}#`Gb0T6!@$?7!VJQIP%wT|GJB?cdFA3Dg zQ(F0&8zU3RK65B&mUj-*TxLlPQJs;argBov^iRgZR}!51cWSoNI>%d9W!xiO9pd+} z?yt>hqsUMvKv-bvC~+GiG%s*0q{X(7tjC*!ysk-r4-c29gZDX|3lbxO`@4JLu)U@! zBI!8)onAm@9_e8I2wZ8Bo)eJdyfWYQ@B98};A^p?JKyiTQ?qvSvfGdQsi1T)Kw`PE zg5;N{0AXJBZQrjilKTdc6q1)T%6VeFEW7gOK{329VVIIN((1SCnAM#l6UUeDH;Tp{ z3L1&?44hbPvz>T)>hVFykXB;@W~;kM5YU`yR%H&06Wry~dx8Xum|6`L3lK4Xf0(>rW_{(J8|f&X@jfEAGPZ7ou^4;;~p zEIPiXK{O1oCf|m7%nb_)Q@13D?{C_;9tc_htT_7(`~iwwsspx0br)NcWSO8BHqR(A z|IOIzvV};iuUtIZNw-Xa-Eg2u*1F42>w#$83t{bgB=EGYqk{}ja4;XmwpEe4rue+O zF0yg$_S%>Zcyd+s;BmbhV4GwMauUYs0SZ9Al2HYC${p1&I4iQ=R087QOK{2GOVnbv z)ogu;($ZA1l70*M09N*KS5urO43U874^nM7?ER zH$^k61-=uYZ45`lX-`>LN?dl0DEke+7r+rX6f^?6+&?ZeXI+idA0Aq<>)*$Jz;<<$%kQhd+UHlL@DE4v)Mz(@KAtznWw* z6WZN!9)iYpay1cKoC!diL!2$N?AkZa$|r#G4Q{ze>?}0S+ltU3I`}7LRzeGg3{1tW ze41MNH9##YyQD@~h>_c~O9V8aZWzL0xwlv+WRbDw7ogp@X5@TeJ7ef;&AC2n^aZJ2 z#FQB&4}GDrsA|_(<<6;Yt{E9RV#o7Yjk^I&UiEI$MmubtJfuz4k%L)A2AQ+c27Xs( z%Q>U?SC5*~A}DiImk(WFx3GPQxS!XZ{!DuU$oNB4wH|00i@00j)cLa=u?4`=*9o3_ ziGSZtFPdfU+K-etN6K;Sxb#VT7su% z!1ZW&tnDt;@jl8am{aXoU&0(_unZ_JzS@p9ARhGI0o%K$&l)=sK3wWbyx3(LPvD{4 z=c+zvtgkpJ<_QJbN={)K=M{gT_)3&|iF1fMZ61$u`9#m74yVbD*2Ak#skyDMADA-P z`I}a?GhU1@5AX~qK7HP|5}5L#2CQu{hA?mwxhj7(tSx$cKd|$GCSO0tb%}@@H9>A! z(?TnUk;zXX!Wn!irFWbqMiUaTfl4wt+=>p6Dc(63bh}e5%CMt|MkyJ!N(W5HvKCq1 zEwwnGM(|OQ{n=4XIOHC=EVHj7Z!3ja$=x6sM-}MuI8oBC4UWr)`A!g6qW|$NRI}(! zm)Qqc2lO-@VEYctbH-vo*hw9M*c3y9d6^^qBlc!tql|8v)CAu1$P6bqGm0$p$n(^C z*mwMZA=(lGQc*w1XB?}kfn$0(=8p_Fry{>DMdDd)0@}Gg>tProXJ24lQ1!R8RS2+s zDlU|1mucDi^lGIPnkN7saAp_YM?C!{Lf@i-?{*dB;@U%}xUC%K0619@V@JwWHZS5k z7e-^=_zmIp8Tb_XF)XJTMSP8a`pd3xI{CZb%=BtMLw{_LN$R}yF5RcQNvtb_y_NRp z26dQ-L_AKQQA=ndU8fQ}Vyn9wVX4;2P={bQvzTeM?S#5Op9To}L%lNP3Fu`=iXe3g z;O8A`WB>Gmz1mO4r5$nXYeij8bdb!@&P6Tp2&X`nIM=0V014dasH9(}VU23&p?9G`oNDczux=K?gdJ+9-T0O^uFrj%So}-t0=~uM&>)s!3bC z$bpmRdO9$>fJ8l%S9U=eWr7zMhc!cT-Ex7o69F6<3QrAgAV(s(;+iAx$K1t}=(-jU zYt5&Mxi?AQ)3a1s=Y}HPD(Vt0Q+Gu&)xN>Po|D=%dWSGNQa6+HlwU&3ikWu4&!g}z zaXsryw65371^I$vL?@V_doi71{(esOaMTs$_TGy|xW+J|`Y}u~_!^gOI4?0zs-j^@ z=|#x-2pOADNaUxv_pc{$OGI+G&p{-)H(e4h51Vpk#Q5qvdX{<*N|7ZUbY_YPU{rSOAPwjTnH^YR&2U3HpNXd!W_m zOf;o&7U4ueI78+H*cQdj_N#;WX-?kXOD9QSYrT5ovNJ8qka~(%%Zg%2DV@!1HEFT& za=S(0G9vK&`u@bJ?bMRHzIV@r9->3sWY<@oAHFlSRQqAh0*YpC;nK$Is}ZRh$_Vd> zt4sR*3W)!vr=~?U5^lkKGUD)>gJ>1Ko3Om*H}zE!Jk8noEAxB{k3K$YK^WLM)B&#M zUJ>DnIY@ZlD@3Oo4^uLG?mMsLDoGyVpzM|h)1meR`T=b2yJsyWJYi8LK6{u0nykKv z{w*^JGHz0bwLwV8R}7PPY&w()Be>SbLxkv$9q8xa8ovVe`|JI1C5Tux$yMJT|x3jd09#bdLI(IJQvUX+d5vu?M1FPJU80akgaAta(& za(^HZ*_G>0>8M_OU61RJVXJ9T`f@3bu}BX`b&k0q7J$9h?@s%EF?ylsxwvF!JuI~; zQDU)#?bux(ezQ&az< ziKm9eNSBHHpNo=mUy1cegjo__9D5ZcT02uXGa$R)BX99id><2=dBM|g;JZUBP{1ym(gN8M`-zmn{#a=hN&T(C@Zp8vF2ax?jnf99 zY9pvY*)CoZPu@YKzH$q4nH}r&jl5?wIrZY|M3v|4JN&b%@QJO8A_v}M`)Z|OL5zk0W!0R{sMHZHFex{loSO`9qn16W{xK2tX}p`f6)Mdu$SOp z)85<-O66s5=in;nB?9>uLh!HskDCob^)HB7^YCl{-uizOR}fPerSJ0}|_C(B<1i>tST8`O)% z!IkFUB>#^`+T7LD#oEcu+R=gPA6}@5qr0031oDs2f6Kqu>1J*5|CJnE|C83=1lj(X zVdG$BXZtVr-%#Oyyn-q&*5-ee|KS(q5dIhP|M>o+Bh2=X`2SkWzcc-p_iw7AD8g+2 z-8NAa#lAPX000S0URpxa3vSoI*X_eX&SruuC9SwPGJ~id3ns@Wq<6OHE3|M%~_&+DXPv&9$$O@?y65G*cwL8z;E3-l-!eh01VE&bGvdh(dSqIZ2? z5z1gIj#Sc=iy%Zn(DUxYwT*3gxA{g@@lL)j#`sv-t_Ej&@-jGxCNKOj6s{=8MczcW z4IJ-Kq;Zq@`{~;>tD{2Ero2L}=$;H;y2Fz*st|3ylv$EfM@ZWq2NU9g>{g#t8Z=vY zCEjB+oY;u`SWre~Fx6E>^WborwWWXA8<=~Fnyc8|_0{fBidm}8MR&>%iN|1yn<>1q zx-N$r&SK~NhY!(q+I+5;W<~4!KN+vQ+bA^0PF2U`N8W8k&J^VwxY10cOA8C6qCt;sbn1M{b3C>4G7EIEox8~ZLAu4Z(a##2Ft zqMBUX4JmSkhh-lSFPyLG;m!TN#d47`VzH`jRJGIC7j1H-MgiATsI9v?o-y_Y^8q_H z3O15o(04tzwuwE>6$J(XVP^>F1jinL3^Wg%89X!6k%>fEBHu#NxXe^8QQC%EOLy*-N(O4eY(~ytiWjnxl zWJ50K?2kX+*$zk$BG`E&sM=pxc7bWT!%T;29Q!Q-oCYf<_8?uYg7Z3NI%8gx4Orva z6CEgrs1hamtyd>9nhWzCdfO=nHRVKVYB=W{F}^C)Bt?`6%IGg@YX$^ZJV#rqMwkS? z_3Z9#$9)kgNu$NbVy+v#A4=P(+}7SeA^_@?kj{+pS8ua!JqBIT@Qpj@Jalo-aD2`g z2LxMEjq^o_ zh_{kOpSgzQP*|mq|72o?89axdhaYFA_l>xtWd?mH@v(L^4~jQ*URH1^L@bdc3vmqp z{kS+DzRT3#%a3K;g<(Oq7p9#Un`%p^#8VzexaC_@I=AH<_f3eti60)TDy?qY?0~k4 z$RNWSAEjmh#7}$|nHBrs<CL{4UQaX<2;Npa;%1=8=rqgO)v+q@<>lvM+_ zlcJm8N4>UPC(TU%2yCH=aPcYdrY}o;3Cjj*eO`3n!)Eq%bMq-jy36`?ONTy2s%YWr z<}xTcX7Vi@O3KN(lJk4?NFkj$`TYwX^hdc4;667z3q5VO{zyGs4f+d&?#_8`cdYxt zckB0R;>okkh>CzNXOi`#ywn+EH@RLdasUa?nSt(kY0uHCK17CA5srqwoaffEp4>Li zykZr#q`wu1?p{|XBX2l0a~U1|GdG3j8=nk{eB2Sgey6YD9$yd<8AnDWBu0dJ)mK7@ z_8zkX!~BR2AHZ z+0fZA_TKNFk=(C?NwO1;2+#@1ofq%;vEX3oH^8ign_@d-;UQByO$&(swRIBBzwj)@1PlC6n#gSv8Ons&1Np zZ<34d`!PaB&Nba^-7GC^Bq^f!3>Vh^Z~~;fS`H60Z6qie|KMwcOAB8bt8OyECW4G0 zFa8y>KTU^dopsF8X^g62yP2BI)$DEo#&sEDkz*Cw^>M#J)%cm`50Qy^p0g2R5zSh-RTp^ZK`8wK`CTV}phA8%2n@5OLr%hb z#dRk`hj-2<`zN^trSl^7xaVDZ+HK1brZ7ho3j~~%H+Xw1A6Wd^@q1!kD$>60Zwxo< z1P-13avky}C_5nuX`5o6%0J51`2h##!L66%w4}Yx1Af`+7FT%rND`YYZ{Q$$!FGf2 z5dDB?0nfQh7_H|KSIK7dC;6_lv4g*uU^uQh)RK?_LH_nbO%=t3hl5^yC@G#`RJY%w zD7}ISS>zg05-1+*zq=n=YZ&VBgji-lR$`g}f*!C=B*2f@7|cZQ@b_EmOm7cmbEwNW zf~KdGy&Z43j+xS6nV^w0V9YZuBd&+AQO%!y| z4MIGMyDg4c>Z$T`+Z)=o?L$U<6Z;Xax@b|PX_ZFIYB(a|`hZR?!D#n0T_5`GBnca%!HE;PuA(>a{69pNHh$d!hf#IpnfySBeV--R?{^F-Rqkx zlu(U7yeo)S-V;EOCWO_Qpou5l!jPZR8`WCy8iyT&vu>hmVWdI3$Y38WIkT_ROJ<*k z3bexDV$soe0zqOs;8(spmbK^gHGI!W9_5r2OkT0xmEV+di;0LHYlNpA%-{Enorbp& zNQkPvB+XQR!mZR5E!va^+*gJ-_@h@)9qT%o)J;NX^eTC5`MDkFPS|reSpksJqViZR z(BK0gzUzzZ&F>P7DT4$<{{-3LFA`q>c&#gY4Vh148x**8IzVa(!Zdmu`cdNzin>ja zUG%X$%!qNN*omwHAh!NpYify)j1RL;84OsX$tN5Pj(kqm{{9KNl@hWD2)6@*#u#7= zDy~WKr(Sm-ADyHHYC;$?i#%$pvYB-=-om>ED!aqcqe_i=VL@fQSW9J1u_dl1z}Pb^(?97v)$2&QSLP$1 z#US-qA?F9ptsAVrsrJ9+-jj2$NjCGFD>&`tNH4eSV?|*Pk@kCuTRPI@3r@;rF&Y~wcstb z7)=zKX2Pbg^-3de%Ipw0Q}s_cd55B|KNhe!Mf+dD552HhMMAc@FJES=4;k%hYRJmJ zK2w`jjk&f9IN7!MHL#Zibat6s4uAUkOTw&o=ro4`Zl_OKITBS5=1^ZZFpkcY`w8OC zQ+BE*>|^XX&?C;K_+cqgW7b2 zT-C~@TrVa~-jt}kJb+1~WCNc62rj-oG7KRZ=y!%Q)t4Zm=Vw)&xwvoP(_-ETQ(czg zkHqO`^*Tyiv(JAhDfT<}%}+EQ=EXXA-c{dYM*&s1p1l`mm)b?{jDl{( z;un(`%39H@)`1Q%1kGoX@z?M%Qf)iZfv51!gFt|3E!tS^nEsN7aCyQhguEfT4get?L8lxLKT9$@PZ z<;V=IRzIfJ?~}EQFC78;UFcB7>p*ZeE>W>@5d$~Vbh4$@0K;6UejK6p);hI16O@8EuoweZqPL8b zzwD<+@5Tyl(jW7cjCwgx#l=SxWzI3~$!2HU2^f*L4%sI&rM*+57f#w9e!I$4P7*iS zje1N{h3=~`2P2W#Z(0!6-vp8(=i==P?eX^-G8?A8{pA)6w6JmCiQ?NUg2`(LI};-9 z`|HMOF(Fd+ddU*^kuoxywt(9rl165=Ik@W`ie2A9VY<(iC*_kuD;6?Tid+qaZTsnD z_C@p=7WZi%np9}W>{p7nI?4|j=2*d#WqNfz+MH^-*68!^vt`H`%x`UI!`XEU4YgCL*Sp{%cGfsfSL;1$xh~{QK zy}%dXn*73W8mT_Aa{a2)%&*6w$%Iy!bL#J+Fdub}3Be8e`W<(icj1z+4i}!CQgyIU zdY*tUs$!J{02A8`VMQ9*Y@X=8%A@G9aMZh`E<152%YEqKNYa(9R471ACm3A@0#}4C z&(WHt+8yIj zEp2OWckf^ZsE!zbHn^`HwpfH&Bk1v3d|*FEjGp?f7@a3kX{aZ}p_#O6bFwUHjlBA< zsbt+xn^$DgF_xL3lVs8-KMr(nW`7^{4sjk!wL{qAxvIp+K?;GWX7Rqcv7KOZ1ntbG zpl8NZOQiUEE8i4z-v>J=sTw(pjX}TLYqmz|ZaQD>|VI|CVFlwI9rm z5tGYvY09VZgMTla;q+|RG)ZC5#=;r`^74~^pmhbok+f^W$K_FzY$|l~JwV_W-QJBi zu>m9Coi|7~Urru#6*qyL@@4O>-l5!_qywi8;|;)besB!O8tm$&G+2>4J+f56a7Fk9 zer^aMsm@FakVsz+_@vOeO&m2FOtkgRd{#hti*MHoU0l0VrdLC0JH`j@szzA{k37G# z2a!+jx2>!b=vBm%ExX3P4DFeS55y7*FvOC2`FYy-v{3eh9^Mqybp)F8iI28Z5}T0@ zU8qH|tj_EBOaZlhTvNE0sP7m%TCphKQ1PD6&F&v9zt#uAvNQX?$<#F>@Plb3isb;& zznXAGExGz+A7`E>%T$GChfewm%1@WuRwGW6{6^2MSjWf+(I3x!cO@M&VC;Pi7eWnP zu(Wq_Mu-ZAifIEnkXVt2XNX6J7Jnrg1O+1_R4q!$8ts-r!NTzFl=qcuRXT@cSx546 zo19`fPDv?!)7ipv^czl(K}gipUtm4@pBj?f zE0Aqp%Sb@eoyc^QL}>Prr%~m?LO$h|%4jbk|L|GuH|b3S8Ve>u8Js1fURz{8*11;| zmW(?bo_-RVjFrnC`&zgJmr==ae7MdLY=YJ6InP^9;v^d`#_n$eAPtn(Clf6RQW1Zb zN}!s_VCH;*Qc=XRZMAxFCN;m25Fx_+>vXN5T*$FeUPzv+th>awnf zUw!rTrX3XrC2j}FIqLu|)f~HZoheq@o&_SG{i$9=j0y=AogUQ+{bO&wfWuXE@q1ab z-bvnM{JK1F1uyF+Wq3FxXaO6+z(P|kOZaizUIzy`&?$iEJ=SZUT-kLA%FG5`N42|T zj&m;HF$RHU-v{Zp$~?9`M$n|gNhzH`egXYBfTIFq@iBK+kFA|MB{^rhoOXt@zw%VqI{m7ErvE!y;wc z6!B=pNoBCO77IsirnFR)3;VXUThWehZr^|@n&tMk>o#CzftBo)sHlxn7bgOKiW9jw zeN+!o;PP{??>|E%JHqegS!Vmyb}w=DrJZNApoKJHuJXl+J27Da`MRx@-3bAW(<~_3 zJSg3#kq3G{snZ&)JUJVpsO%M-iW%vH1Yml3t_c49$79-TsmTkWZ@q(nckU|M8mDu*eX z3ayG26*zf^H*?K*xf$=<8?Yxj39`8{2VAi65t~@LvEaOZ#B)fXzFuKc(7~e!(bD7D z_lxN9&okVtKMq6|8xc-EXh>IBhp5uXp*(*@mEOOK=nOVDTCz{BHT-xJ)0Ai4uR|4$ zv~^|vlB;|~daM)~+H`a(FDENeX0PyaU*vc2p!-6dDKwKXGIkj^2Q%ivthfI2Zr6%r zq@a1w%!-s#_XyRYA%JU6NkTZD47I>N{zBul@A(W6*jlV~IwxaQ}0w&{!%*D>tZ-2B3x^-BdiiN@goVwY+e*wjqLtRlt zyxU|Dg(Al#O_8O5_N(Fcdqz8$_=sYzC9lic(2F_gZ2C-u-8R771KyAr3q}}Ri0%af zy8-bODt)xqw;kErjO6&pq)XYY1j4a{tu3aa2I}=Ux#p$HSC^P4gfH0HC612Q^Zl3y zzwP7LVs+bhWC^H@bwHn1Vl+9ix}_vvJ3-(ijL zE&o$xAvTT0P8K^grUSmoadT0y^{g~>NSUDCuhz;v8smF#A!&>j-D21eNb_q_0Xqh- zN_|pH8`+tz)1NhGPAH>(=j|R7{SNaPL=jdPnQ&!}mgG%Q55&*p{t5ifN~RUj_Ty4pQ-ol$KlvfBRjU;-4=)c^PHt8cE~e F{{gazh8O?< literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-15.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-15.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4748f50063801a92eba44fda951340cf84949a GIT binary patch literal 16379 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 M1sN51In2cWUx~mjjQ{`u literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-3.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-3.png new file mode 100644 index 0000000000000000000000000000000000000000..176266513811e62c3006bdf23f4b88929033ee57 GIT binary patch literal 8641 zcmY*gwHlSM`rx{iCBa)D$p4Bp?6)fT5%)tMzx(`^Qj_{`MaRmz@3%a8NA;X+Xs| z+2P*_Dn!u$3IL$t{bO)|^i1$yfPuZXzPrBaTVYFAXLfTdR|{))FK5VKGyov#CH&WQ zwstqC@^W@^feL$x(fkV`{MY{{%t1r-FNnLN7>&NF29=Dfn>7_5J1;vYjW~#kib~YY z%0^gAR{lTR|IWl{?A+ZU!WAE)r8nHB4jg5mmh7lXrygQRgN~EG-!iA+ zdpVSO@%o=?w#yehv$q)!%MY2$u?@kD+m_lE-)9U>El1|6`;e(o!PUW$l3rkG6zZX| zU;CM2e>%>@hQ_w(1*rA?PU4^wLqbm{zivAgOniUVFNmXDC~>14)NrdrgKkjCdO{`T zD9tL621V#Wcd>_O2rB=NUx`-`9y37UCys?}yBcFC;e>726$Bica`)r~97Y z)Gp{YOvK5OwM#aW+1tezeT|H6izj<2iDPOilBBbU*TnuAdkYj4pbtY2|K_hHS$@{w zXq>&qf27VQrxL&*`#jNCk2O0o4BU6fD`GdcDL{$a>cgKMm>9rcWv3M_BhUc?&|V2l zW})udXv7-K94ZDW^}bu&Y{7GUa=YqH$zG4JNVa-z8gf7e%q9}dRiXCO>G_SdcYtCw zX){KJ>Wj=aLxmW}o`)Tz;hQs}$|M|}=E6gN=?jCHp0VFF-lo~XE^+1B93yors-3je zXy{<+0X{LMFXWvN8z2#h+IZ!tuY>IL;9kXf^G2O&;3|wX zrQ;iHRk>Zkd{k{ZC(sdg@O%-(CxC*>?xo>o7l|$aLUmRl7}N~X8a$d#z2(;<;_xT= z@`|j|Yr?dAZpIR{+nS?KizMIUJoLSe!L1;y$0Nw9c4ad#L{6jJerdWL2luJbFr1={ z&BzBa1{?kvb)UW(2o6!=l*U~}4`i}L)b>a*hnI=x!NVUEW**8 zhVCFG+Dp29n$&n9xys!{!8N`+30~lQ*N$QgDc!R?YasjO38+CdU^U7!R!0oHz|ra} zO?J-^yYQTw_nS+&YhaK0(Z$JKd#)LVKLuz_i?UM;B^DgZNW!JZ5ZQn1tVnBP6!nqy zlAQ|QXv@*AO7v*%om3K3^P`CkhceK}&=tqQhhrGIXW|zT!1M)W)!6=M4^ID~4~4pY z)bu8(Yd1V?aYcFWD)jU5HT?B$e_n&L;5v^pI5s%J8Xc`EzO20FhZ;Musy=M@ooLb7 za6%9w__c0j;){0$L(;OdJ!*;K!v_4cPfLwWHzi~A5|z8pLM};vKSmzo^b|4{W*%*u z+aj!j(0X24a}xw+AXQ_@DKdV@F_;#=$|aS#AQ{KTsVXYU#Zn92x7TX0&RN;&k8OP{ z?6+lUh{U93jxVBl13Bb0U%5!seC?7Bc8jQo^=S1S>|gt5&LQp+HCK4?7XILQp9yZ0 z>kfMW(}JsJjD4~&TgWeDTvqFr#2dn#hZuu;bfnctYfWoShCQ~kNaWQU7&H6a+<@gm*KoJfF{DqR#Z0N0oJI;X-5aXR~GR}~XMyM_9 z-{0lC(U*Uxa^$fdT^daNz`*c%{Ml0xRt(>oXLop)i}Vca5kHP6g`)hJHy^ZZRO@O3pbQDMW zyc?Zm4AHp+b3W8zq<+9AMnbCqRuQHsektc;hO~aa86)(nU4w1`)Zo-v-Xk)CmPa?F zBm8~*2&ZU%eo8Z-YtoTAhOhvpRp=ICMrLk3!%8}mi-HTtPd}&bvw@VGe>If)S=QrM z+Ua#Lvw6xWjg=#yC1N^Dh4Luo4h5dgBzLh8+YW(^G^pMb6(KFEmVAPu8@YHIN}HSp zHDFGlXjK)|$uCk*9rfpgT)eQpzGf%Pe*k2MBYeCLK;6c!#5Z1TslI>YkX*UflpL(( z1vz~X`Ety`_!C>cpZEHZ*N!FyjqVP0VjaE8)U)0Q4NhA}3p%kEz;e7zy|OrPO1&|R zVuYzVFB!Y0?boxT&*~wNEJIia_b!kWSrZhX7QKfNXgs$=c7JQ<*lWdmNtrn7AyaRQ zwpcn$+gOu*Ll@0pxZIA|ncNeRzJfG{P%0c>MOfoQUd8!AW6N+-l2*I58Z2fhHDXW! zaShC>CuiQEXPXnF;~V)i$Sw4MVMQEVk@w#2N1?*7;w_v}t!}9NgnWT+L}5MP2tO#S zz35bw#ZD-D0cGhaEB{$ZWq(13;xY-0sw`A?Gl5wo%@!iOhqb?)P^8DGE@qA9jVCBU z@lrL!5w@AGl*hNO|B9S!E%C-&!`r7B2Wa||)nwe0iDPx%|`%GFgH4GH5e zWUvk|@P2?$3Ym(Tfq0-XmDoojL3fb5KCf=8a=BRpNSal!aw)l~sLH2LMVyTva`Sjj zeUE|iak2!xDPe?m4veGK`e(2N-=+5%=t2OScYm>*#TB% z`Sz=9hNsruRE2ky)WPT@zQPe^-+r$z`GgodrVe1SN(KR!PzG1NIn#KoEX`rf);^Y~ zKYASGvvnLrwpKLg+->=r<*^OMYQ#Pyx_MZBc+siYe`d5Z;GvQUyZBmDpT3%IAZ_l~ zBavH`i%6nYE=AimifKXIlQ4~I%6IJ8P>Or8u*WJa@98BFQ`7Shqvnh3&_L}+rjp_#b6;sEG*SP50z3n zOrbU@;QhMFkE0BhHuHqE7|w^uG$>}%9sB6@%wY(uFm(FCMBQf+D|58)Ti6u*Pk;fs zCB3rf@F!pX;>6YRWMd@N6+RWhphC{A(5|@&?@5uI`mOcEW3&{LOP50$OU6l7XC;r% zbq6K~JUGW>WT0A+B#`{i>-0KdsWDytAZz5=-1nv-VMz15atu#DCWOP?@eqp(ycKsb z7zqcPsmZI{SV{3zk^3{QEtYo^!U-BqqC2BM9 ztu9BKpni}v^MX7V+rZ9kslqW{l4Zzbp3p#|#x_RN2B`$6Td$iu%4GeZ_;>`kY~CJO1G#A>V; z)z#4s5JC$IbwQ{(Tucdco4xN$ct>3;^o-!4VSrDbL7n5O(16%i&*GA0T%Re9_$C~; zX{*xwtvGd$zLk$o1b31T`%iA|dllJ~Hc-Z^E@X}fV3SMmjK)cJPiU6h&&x_n8iY$^ zY0&}(NT6rksG>OLe3+S1)4(XPxSwInQ@7w5JyI|p@im)&{5C0qQsin(4R8^B|0#6j zNRM?gP|{Km=P(~*#5AmSPsLImsRJ|Kb+}e~K*k2?;Cq-`QT$X$E6(L&@OFPY$?N+g zB6b^z8e4UYK=6nBns<`^q<6Y##Gi7jY`$HfRk^^`>T9!G2D}bk;iwe1o3s8hg&1H3 zSr?&}jFmIGydZ!1%r^=B6lrVStlJqZ(G?G@!Y|Oo6yiEc)8MX;@kB+b@u0u*tRUFo z@oHLa?6GMI93FoZNY079>Q-tFi z(`U|Xj}4 z%%GR2{AGeaM-s)<(-h+hna7vCoadB&krTurBT8ZPTx4v;7xiJ$B{FL*sCb6N#G|Ep zsAj0hF>ff8a=k}r2W@)3m><{+=n^GQbeEs^{5&16Mz+r z#*|y3UI7N75(kY~ljD5-?Q~CK7q%;)+6pq;fUhqL4AAlFiv%->s|9M81?!h;&nhrc z;KsEiMhu>EdHtCtEU}bQTl67$T|myrgk9Anh&V8d+)+lN-%+}Ayd2y+NvW^L)pn4u+VRQwKFN{EBT9G zA$WBOEj@Uglr&WRMpgDDX(pJ*OYs<#2Qd>A{E*WY$so&1QF1nhb6w)7vz?RfQ+9ZB zD8!EH2B1y_3dN#wpx^w~N_x#@k;eM_^k(|b)|S?ef+D-7=JbRR^ycRTk~IW6$WhEB z!nUub>eaYv$1BY5gvdS^;%eS8GfuF^s&C2rE~Z9KL-W@1yz>XUK}Y7o(9X^b6QphkCn4q43i{R4maLtKI*AS7NH|$e&-Kz>pj-O$uJkKG~)@(U<$M4D+ zZjK@rTSJI{N`W&XTDhXc zr-P3dU`qEGf~R2g&~U=ep(7!^BiC$Q=$UVTxSFVX*V5HvlW;+K7btuy0~V(JnVNY~ zNW^^5`_0eu3)tK84@nz!i(0iL%djA*Fg8P2ee2Xg$P{F`R)eC<+n*Z(J>YJvjn6Zp zOZ;fss`@dmpmbNwO9J5G%GkzLpQ(_Ae@74O#KGUUpcSe~j5grM)$`%fY#|dq*;3Q&ju3k%y?4uJ;j?%0A~4L) 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 LYO)p5X2JghBZfJD literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-4.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-4.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4176c8590dfff32d88d4ca187866f2626562aa GIT binary patch literal 7618 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%0A#yrV?xYAqCz_VE$v`Zkw6 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 z zvv|AodLq#ZMxUT9_|dyC8gj@LhQx_rPt%p}Q%jOzyyF8ebcs>D98&3;G38rR)n={i z<-PtYV8!gC0N-qvw$~PP9FadM8@g4LZKRz_$m1x&{e|Asfr6{sOFTpcwgf(N8Qcx) zBq=HXS7vfiHQz!;!V}Lz%IgO2aW%DpaUhf9w*cQWfCcKCH1+{94htEF*-#gA>tA%P zFyil5@EEhAo)8FBWY&L(JO9+VK`9f~4dkal4p`Z@!o?6k`UUr<1@QJA&?07kaERSP zi0Vme1{!Q)o>X1NdHMa_p>3lSavij-gX=#TxNhQ8os(&DQqyVPy?n6^5N+arUAX(V z8j_)H0xPMR)mq1cPiOV`SEW3)gbb%!G>ifDX9T7Q5gTxcseAYkBonHpZp|?2OEyW^lh9yHkGD ztC9)yAvCP+xpMx0#KTFp?66r=f(eB+h^OD7w=dUu#y6?jlRNyngZ!XFF&YeopY#n^ z>J{iLLn}2OyO_?Bck#q)I`zQ1#39fzW~$IQ+_{Fo!OzbK;<5a)V79Frf^|KHKYNBW zz+ctUkb9NzdSlkqHf0F}=DO&R;6;OCRcqQ`BP{=_35(XN$MC;pWiLsN6HB|}Jj^TU z8(Nc^ZWg>p=C7jVQtJKh2MzQcG~UA14-pR+r%%E5bICnvK#9KjD*O&2L;Ssz7;4{r zMe(_wtEcX$f|EgG?E61jQrDQBIFq`pZY_ib`r^yy_OAstRxJC!M-_eZS?n1>4(9^L zJ^Ck$K{-Lw*b#%AP*+21K@4j_6l+rK>T(!HWq(`|v#gk{1R-H{pMC)hBug+l=u00( zi=ritW+Wv)Psb)LcC#5P*s(c$)dl^UlQpVhwE4;l`(|O%D5lPQ26KO^t-cawW^Xf}Y587KHjWYi@@>0p1dE+?o z#r@v?qE_D&)}wED7wmSol^I#OTv$s18$|jDgA6iFJh*WSdr!j_z;MnpR>Fh9IjKUW zMG)68tRpHJ1BD~p?vYC{6jYXcbFIdDyZDJTl2Mg2<+sM1pZjbmo|4SeSNodvebDcH zgW2qs#k$$hoB2Hq!2`OT#1+FBLlvr#xU9-lkf{9KW3X|6#tu!uB`f<|j5-8y6?$uv zr<3|ECb1!^paGc`-JlwK`>q>@9Q(4_N<0Y@=TiQL`VrG9_$pC@+F?=)Dol9|1tgKI z){p`Nq7deWjS%xGe_=&$9{w`!o#DG{Kb=Oay^B6-V}qdnK31WmWuVQe8d%&pv18o7 zFUraRj#-3%?7J>72yyy_Qc8yVh0OU>tAll`vqNLS?-3q=NkGl7BgvLapXKGt_^0|+ zc!zoaF#l0G0 zG=U-}wY7zB*5n39?r6dOtfnPGZATX_Z@sf9j}|M>{SFRvUDHt4Tz6NKtkq@WyMaXq zS+#||Ka2lrw^BCP5552WI(Y0KrM?d;rshA@gP$5dpZyxg^Dt)+`a8>A;htUz|Kh3! z>jI)FO5ul$jJrxibi+ozf%~l$2*Q3~yatMv)cqp4l;fE~PcgArD-kICFYzaUjihxbJ^DjsYjerpbKhcGa7NnOS2TZKG8&AbPiS+Du z<*NQ5LEvNC%NP1|1JcYozO7M|m6T%yN|t(P>|J{X6hM^gHuso9_rdvGV2-GP(I%+}hMG(yg=XJ$P?PNW#v?ty=4 znm?c}g$J$H@tO8?c#mw?{5}oFszPg#5O-1C8prA?pJ6Z((SVfVUzyx!Y(s3k9Gcvs zAEp#GiyN06hoj?r>{(#VZtlNMe7UXud#xBg*-)@CulTEco#UvSzzqVMYK{hz6_M~j zp?qW$prD|0NEI-AM(XAyD@i$Apf0xguf$HF;a9s*15egcmb%i9`rY~g_jO0L8lojO tYy>2`k_vxrpv0O2-J&dK@+sNd8^^{q3Xx=g_<#TO%1S9oR*M@2{xA0`cV7Si literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-6.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-6.png new file mode 100644 index 0000000000000000000000000000000000000000..c689c0b7917ad595f33151787d389d14cf9b8d2b GIT binary patch literal 11325 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 z zvv|AodLq#ZMxUT9_|dyC8gj@LhQx_rPt%p}Q%jOzyyF8ebcs>D98&3;G38rR)n={i z<-PtYV8!gC0N-qvw$~PP9FadM8@g4LZKRz_$m1x&{e|Asfr6{sOFTpcwgf(N8Qcx) zBq=HXS7vfiHQz!;!V}Lz%IgO2aW%DpaUhf9w*cQWfCcKCH1+{94htEF*-#gA>tA%P zFyil5@EEhAo)8FBWY&L(JO9+VK`9f~4dkal4p`Z@!o?6k`UUr<1@QJA&?07kaERSP zi0Vme1{!Q)o>X1NdHMa_p>3lSavij-gX=#TxNhQ8os(&DQqyVPy?n6^5N+arUAX(V z8j_)H0xPMR)mq1cPiOV`SEW3)gbb%!G>ifDX9T7Q5gTxcseAYkBonHpZp|?2OEyW^lh9yHkGD ztC9)yAvCP+xpMx0#KTFp?66r=f(eB+h^OD7w=dUu#y6?jlRNyngZ!XFF&YeopY#n^ z>J{iLLn}2OyO_?Bck#q)I`zQ1#39fzW~$IQ+_{Fo!OzbK;<5a)V79Frf^|KHKYNBW zz+ctUkb9NzdSlkqHf0F}=DO&R;6;OCRcqQ`BP{=_35(XN$MC;pWiLsN6HB|}Jj^TU z8(Nc^ZWg>p=C7jVQtJKh2MzQcG~UA14-pR+r%%E5bICnvK#9KjD*O&2L;Ssz7;4{r zMe(_wtEcX$f|EgG?E61jQrDQBIFq`pZY_ib`r^yy_OAstRxJC!M-_eZS?n1>4(9^L zJ^Ck$K{-Lw*b#%AP*+21K@4j_6l+rK>T(!HWq(`|v#gk{1R-H{pMC)hBug+l=u00( zi=ritW+Wv)Psb)LcC#5P*s(c$)dl^UlQpVhwE4;l`(|O%D5lPQ26KO^t-cawW^Xf}Y587KHjWYi@@>0p1dE+?o z#r@v?qE_D&)}wED7wmSol^I#OTv$s18$|jDgA6iFJh*WSdr!j_z;MnpR>Fh9IjKUW zMG)68tRpHJ1BD~p?vYC{6jYXcbFIdDyZDJTl2Mg2<+sM1pZjbmo|4SeSNodvebDcH zgW2qs#k$$hoB2Hq!2`OT#1+FBLlvr#xU9-lkf{9KW3X|6#tu!uB`f<|j5-8y6?$uv zr<3|ECb1!^paGc`-JlwK`>q>@9Q(4_N<0Y@=TiQL`VrG9_$pC@+F?=)Dol9|1tgKI z){p`Nq7deWjS%xGe_=&$9{w`!o#DG{Kb=Oay^B6-V}qdnK31WmWuVQe8d%&pv18o7 zFUraRj#-3%?7J>72yyy_Qc8yVh0OU>tAll`vqNLS?-3q=NkGl7BgvLapXKGt_^0|+ zc!zoaF#l0G0 zG=U-}wY7zB*5n39?r6dOtfnPGZATX_Z@sf9j}|M>{SFRvUDHt4Tz6NKtkq@WyMaXq zS+#||Ka2lrw^BCP5552WI(Y0KrM?d;rshA@gP$5dpZyxg^Dt)+`a8>A;htUz|Kh3! z>jI)FO5ul$jJrxibi+ozf%~l$2*Q3~yatMv)cqp4l;fE~PcgArD-kICFYzaUjihxbJ^DjsYjerpbKhcGa7NnOS2TZKG8&AbPiS+Du z<*NQ5LEvNC%NP1|1JcYozO7M|m6T%yN|t(P>|J{X6hM^gHuso9_rdvGV2-GP(I%+}hMG(yg=XJ$P?PNW#v?ty=4 znm?c}g$J$H@tO8?c#mw?{5}oFszPg#5O-1C8prA?pJ6Z((SVfVUzyx!Y(s3k9Gcvs zAEp#GiyN06hoj?r>{(#VZtlNMe7UXud#xBg*-)@CulTEco#UvSzzqVMYK{hz6_M~j zp?qW$prD|0NEI-AM(XAyD@i$Apf0xguf$HF;a9s*15egcmb%i9`rY~g_jO0L8lojO tYy>2`k_vxrpv0O2-J&dK@+sNd8^^{q3Xx=g_<#TO%1S9oR*M@2{xA0`cV7Si literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-7.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-7.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7d3c21fb41d48e86c0eee36ebee0a46f0b6796 GIT binary patch literal 12882 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

%DuA2%r5%MQb>_~hl1q) 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 JrI?}r{{R)nirN4G literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-8.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-8.png new file mode 100644 index 0000000000000000000000000000000000000000..e09535a1bc01e5442e8b6618275d0d8ebeb4986d GIT binary patch literal 1500 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1G~&H|6fVg?3o zVGw3ym^DWNs30;kB%&n3*T*V3KUXg?B|j-uuOhbqsG5Pnrosxy%uOvxRH(?!$t$+1 zuvG%9umZ9{!um=IU?nBlwn`Dc0SeCfMX3s=dM0`XN_Jcd3JNwwDQQ+gE^bimK%T8q zMoCG5mA-y?dAVM>v0i>ry1t>MrKP@sk-m|UE>MMTab;dfVufyAu`tKo-FP#GNIXX$YJ0ilN>DdQcxEqi?8Zpbs}2sMQ7}YUN*) znF_QSWWJrD4Ok_L7}OpceURlyj)C|TEDH3h9hZ$hJlO2Gd=9BcGBB{nc)B=-SO`uH ziS>zb6|plee*bRM?WG+j{5NlFoAqnMA5k%1&V#CJ)t2zvNzD4@`a0-03Z<~9ku`A!w3%Hi!!)&tgD4R&C;LX@?_hx>a%^k9!_M=Mi z^Y=CPYo5=U>HWoC*V8jk;bq&ty^npF+3nxI6`idyWBbm`MjnU5p6i*--_QIwx$u+0 ztnL*`R`K=9e|&dkE_lEE`21>t+p}`nVmgnneK%3C{PQeH=}#f~)4ncSWF>kw%6-$y zOBKnB+KUS{RdS-HsRl)zH&_ZNgszl~I?t-LZ&{l3`Ma9tp5~jgdpq^!NJJKV+OH`3+3az^ z`uP(1GB#VbWV}C?$Q914_;B-C1%}(%&suFRUWz{``JZQX@y0VVIkZZzvifCT3(UJc zU3Tq0mL*QJOpl#1JMjIr?V-Qd?Oo!&MDB1u_FX+`!h_@`_0OEjpFDZ>G|O6o*J!t& zV#1HV$sH04=e^z*C}R9|U9Y6W&C?uTCk1`U4Y*-@LNt4>g|XCZnYt>+XYtxuKRwTB z%A_~#P5GmEKRt-yneMh+uNL#cuKhnhyf}GC?8q+`%lC{oU1Mb1LUsTh z-F2$=c2srN(JZC<6&hcKR{hm9Savtr?fi?zdk)7lRyBwxWyYkkJTkp3xjC;-ch#?L z>@9CkRM{_YEBWjo`$$vqcRiQi<-TXZjH!1sYqq6zs!r~5NNbq&(p7b0=1I?6GW?v$ zb2g}^tXP}Wm(^4+t}xePKjZt&GD2d7zn3liz_#vTuFdA2*Fjgftei#v?PvLG_nhU_ z>$ldc{>b)U_``g$;s5zF{fW;Htrb&!A<)%*{jgPbt>XDaPqECKSN&Q|^WFJEt@nNN ztG2YBy8rLB-JQF+eCymEc?SM$BOvKg^R;S;n_m;-irm4{LbZi;3aY z9ev*d|Gi#cH`DG~|NjHEIlVS|hfe>#(Yi7Alia6o2QxJFZ)w+VUiECHhqUdM)nWH$ gNv^E;zc~0mlYi+kJ?WJn_kfCAPgg&ebxsLQ076lX`Tzg` literal 0 HcmV?d00001 diff --git a/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-9.png b/Sasquatch/SasquatchSwift/Assets.xcassets/AppIcon.appiconset/icon-9.png new file mode 100644 index 0000000000000000000000000000000000000000..5346cab82ca48ba54c527f7de81b06a17e0530b4 GIT binary patch literal 3299 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 { - for - task in backgroundTasks { - - // Use a switch statement to check the task type - switch - task { - case let backgroundTask as WKApplicationRefreshBackgroundTask: - - // Be sure to complete the background task once you’re done. - backgroundTask - .setTaskCompleted() case let snapshotTask as WKSnapshotRefreshBackgroundTask : - - // Snapshot tasks have a unique completion call, make sure to set your expiration date - snapshotTask - .setTaskCompleted(restoredDefaultState - : true, estimatedSnapshotExpiration - : Date.distantFuture, userInfo - : nil) case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask : - - // Be sure to complete the connectivity task once you’re done. - connectivityTask - .setTaskCompleted() case let urlSessionTask as WKURLSessionRefreshBackgroundTask : - - // Be sure to complete the URL session task once you’re done. - urlSessionTask - .setTaskCompleted() default : - - // make sure to complete unhandled task types - task.setTaskCompleted() - } - } - } -} diff --git a/Sasquatch/SasquatchWatchSwift Extension/Info.plist b/Sasquatch/SasquatchWatchSwift Extension/Info.plist deleted file mode 100644 index b727411ce5..0000000000 --- a/Sasquatch/SasquatchWatchSwift Extension/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - SasquatchWatchSwift Extension - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - NSExtension - - NSExtensionAttributes - - WKAppBundleIdentifier - com.microsoft.azure.mobile.sasquatchswift.watchkitapp - - NSExtensionPointIdentifier - com.apple.watchkit - - WKExtensionDelegateClassName - $(PRODUCT_MODULE_NAME).ExtensionDelegate - - diff --git a/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift b/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift deleted file mode 100644 index dca17b925e..0000000000 --- a/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift +++ /dev/null @@ -1,23 +0,0 @@ -import Foundation -import WatchKit - -class InterfaceController: WKInterfaceController { - - override func awake(withContext context: Any?) { - super.awake(withContext: context) - - // Configure interface objects here. - } - - override func willActivate() { - - // This method is called when watch view controller is about to be visible to user - super.willActivate() - } - - override func didDeactivate() { - - // This method is called when watch view controller is no longer visible - super.didDeactivate() - } -} diff --git a/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift b/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift deleted file mode 100644 index 48f0b9486d..0000000000 --- a/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift +++ /dev/null @@ -1,37 +0,0 @@ -import Foundation -import UserNotifications -import WatchKit - -class NotificationController: WKUserNotificationInterfaceController { - - override init() { - - // Initialize variables here. - super.init() - - // Configure interface objects here. - } - - override func willActivate() { - - // This method is called when watch view controller is about to be visible to user - super.willActivate() - } - - override func didDeactivate() { - - // This method is called when watch view controller is no longer visible - super.didDeactivate() - } - - /* - override func didReceive(_ notification: UNNotification, withCompletion completionHandler: @escaping (WKUserNotificationInterfaceType) -> Swift.Void) { - // This method is called when a notification needs to be presented. - // Implement it if you use a dynamic notification interface. - // Populate your dynamic notification interface as quickly as possible. - // - // After populating your dynamic notification interface call the completion block. - completionHandler(.custom) - } - */ -} diff --git a/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns b/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns deleted file mode 100644 index e793a02b3c..0000000000 --- a/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns +++ /dev/null @@ -1,18 +0,0 @@ -{ - "aps": { - "alert": { - "body": "Test message", - "title": "Optional title" - }, - "category": "myCategory" - }, - - "WatchKit Simulator Actions": [ - { - "title": "First Button", - "identifier": "firstButtonAction" - } - ], - - "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App." -} diff --git a/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index dd221ba54d..0000000000 --- a/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "images" : [ - { - "size" : "24x24", - "idiom" : "watch", - "scale" : "2x", - "role" : "notificationCenter", - "subtype" : "38mm" - }, - { - "size" : "27.5x27.5", - "idiom" : "watch", - "scale" : "2x", - "role" : "notificationCenter", - "subtype" : "42mm" - }, - { - "size" : "29x29", - "idiom" : "watch", - "role" : "companionSettings", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "watch", - "role" : "companionSettings", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "watch", - "scale" : "2x", - "role" : "appLauncher", - "subtype" : "38mm" - }, - { - "size" : "86x86", - "idiom" : "watch", - "scale" : "2x", - "role" : "quickLook", - "subtype" : "38mm" - }, - { - "size" : "98x98", - "idiom" : "watch", - "scale" : "2x", - "role" : "quickLook", - "subtype" : "42mm" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard b/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard deleted file mode 100644 index 79a2d75f3e..0000000000 --- a/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Sasquatch/SasquatchWatchSwift/Info.plist b/Sasquatch/SasquatchWatchSwift/Info.plist deleted file mode 100644 index 60b533944e..0000000000 --- a/Sasquatch/SasquatchWatchSwift/Info.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - SasquatchSwift - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - - WKCompanionAppBundleIdentifier - com.microsoft.azure.mobile.sasquatchswift - WKWatchKitApp - - - From f9f94b38e1667b4f55e79c64204c42b0927a1c74 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 26 Sep 2017 11:41:58 -0700 Subject: [PATCH 22/61] Fix crashes when release details payload contains null for URL --- .../Internals/Model/MSReleaseDetails.m | 36 +++++++++++----- .../Fixtures/release_details.json | 42 +++++++++++++------ .../MSReleaseDetailsTests.m | 18 ++++---- 3 files changed, 64 insertions(+), 32 deletions(-) diff --git a/MobileCenterDistribute/MobileCenterDistribute/Internals/Model/MSReleaseDetails.m b/MobileCenterDistribute/MobileCenterDistribute/Internals/Model/MSReleaseDetails.m index e9c13efb8e..76355205ca 100644 --- a/MobileCenterDistribute/MobileCenterDistribute/Internals/Model/MSReleaseDetails.m +++ b/MobileCenterDistribute/MobileCenterDistribute/Internals/Model/MSReleaseDetails.m @@ -66,25 +66,41 @@ - (instancetype)initWithDictionary:(NSDictionary *)dictionary { } if (dictionary[kMSUploadedAt]) { NSDateFormatter *formatter = [NSDateFormatter new]; - [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; + [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; NSString *_Nonnull uploadedAt = (NSString * _Nonnull)dictionary[kMSUploadedAt]; self.uploadedAt = [formatter dateFromString:uploadedAt]; } if (dictionary[kMSDownloadUrl]) { - NSString *_Nonnull downloadUrl = (NSString * _Nonnull)dictionary[kMSDownloadUrl]; - self.downloadUrl = [NSURL URLWithString:downloadUrl]; + if ([dictionary[kMSDownloadUrl] isKindOfClass:[NSNull class]]) { + self.downloadUrl = nil; + } else { + NSString *_Nonnull downloadUrl = (NSString * _Nonnull)dictionary[kMSDownloadUrl]; + self.downloadUrl = [NSURL URLWithString:downloadUrl]; + } } if (dictionary[kMSAppIconUrl]) { - NSString *_Nonnull appIconUrl = (NSString * _Nonnull)dictionary[kMSAppIconUrl]; - self.appIconUrl = [NSURL URLWithString:appIconUrl]; + if ([dictionary[kMSAppIconUrl] isKindOfClass:[NSNull class]]) { + self.appIconUrl = nil; + } else { + NSString *_Nonnull appIconUrl = (NSString * _Nonnull)dictionary[kMSAppIconUrl]; + self.appIconUrl = [NSURL URLWithString:appIconUrl]; + } } if (dictionary[kMSInstallUrl]) { - NSString *_Nonnull installUrl = (NSString * _Nonnull)dictionary[kMSInstallUrl]; - self.installUrl = [NSURL URLWithString:installUrl]; + if ([dictionary[kMSInstallUrl] isKindOfClass:[NSNull class]]) { + self.installUrl = nil; + } else { + NSString *_Nonnull installUrl = (NSString * _Nonnull)dictionary[kMSInstallUrl]; + self.installUrl = [NSURL URLWithString:installUrl]; + } } if (dictionary[kMSReleaseNotesUrl]) { - NSString *_Nonnull releaseNotesUrl = (NSString * _Nonnull)dictionary[kMSReleaseNotesUrl]; - self.releaseNotesUrl = [NSURL URLWithString:releaseNotesUrl]; + if ([dictionary[kMSReleaseNotesUrl] isKindOfClass:[NSNull class]]) { + self.releaseNotesUrl = nil; + } else { + NSString *_Nonnull releaseNotesUrl = (NSString * _Nonnull)dictionary[kMSReleaseNotesUrl]; + self.releaseNotesUrl = [NSURL URLWithString:releaseNotesUrl]; + } } if (dictionary[kMSDistributionGroups]) { @@ -134,7 +150,7 @@ - (NSDictionary *)serializeToDictionary { } if (self.uploadedAt) { NSDateFormatter *formatter = [NSDateFormatter new]; - [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; + [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; dictionary[kMSUploadedAt] = [formatter stringFromDate:(NSDate * _Nonnull)self.uploadedAt]; } if (self.downloadUrl) { diff --git a/MobileCenterDistribute/MobileCenterDistributeTests/Fixtures/release_details.json b/MobileCenterDistribute/MobileCenterDistributeTests/Fixtures/release_details.json index 27f410a1ec..163e4c605e 100644 --- a/MobileCenterDistribute/MobileCenterDistributeTests/Fixtures/release_details.json +++ b/MobileCenterDistribute/MobileCenterDistributeTests/Fixtures/release_details.json @@ -1,20 +1,36 @@ { - "id": 1, + "bundle_identifier": "com.microsoft.azure.mobile.xamarin.forms.puppet", + "distribution_group_id": "1379041b-0de4-471b-a46b-04b4f754684f", + "device_family": "iPhone/iPod/iPad", "status": "available", - "app_name": "Unittest", + "is_latest": true, + "app_name": "Unit test", + "install_url": "itms-service://?action=download-manifest&url=contoso.com/release/filename", + "app_display_name": "xamarin puppet ios", + "destination_type": "group", + "min_os": "8.0", + "mandatory_update": true, "version": "1.0", - "short_version": "0", - "release_notes": "This is a release note for test", - "provisioning_profile_name": "Provisioning profile name", + "app_icon_url": null, + "short_version": "1", "size": 1234567, - "min_os": "iOS 8.0", - "mandatory_update": true, "fingerprint": "b10a8db164e0754105b7a99be72e3fe5", - "uploaded_at": "2017-01-01T00:00:00-0800", + "id": 1, + "uploaded_at": "2017-01-01T00:00:00.000Z", "download_url": "https://contoso.com/path/download/filename", - "app_icon_url": "https://contoso.com/path/icon/filename", - "install_url": "itms-service://?action=download-manifest&url=contoso.com/release/filename", + "distribution_groups": [ + { + "id": "1379041b-0de4-471b-a46b-04b4f754684f", + "name": "inappupdate" + } + ], + "provisioning_profile_type": "adhoc", + "package_hashes": [ + "buildId1", + "buildId2" + ], + "app_os": "iOS", + "release_notes": "This is a release note for test", "release_notes_url": "https://contoso.com/path/release/notes?skip_registration=true", - "package_hashes" : ["builId1","builId2"], - "distribution_groups": [ ] -} + "provisioning_profile_name": "Unit test provisioning profile" +} \ No newline at end of file diff --git a/MobileCenterDistribute/MobileCenterDistributeTests/MSReleaseDetailsTests.m b/MobileCenterDistribute/MobileCenterDistributeTests/MSReleaseDetailsTests.m index 14e8af4b42..718ea07724 100644 --- a/MobileCenterDistribute/MobileCenterDistributeTests/MSReleaseDetailsTests.m +++ b/MobileCenterDistribute/MobileCenterDistributeTests/MSReleaseDetailsTests.m @@ -22,23 +22,23 @@ - (void)testInitializeWithDictionary { // Then assertThat(details.id, equalTo(@1)); assertThat(details.status, equalTo(@"available")); - assertThat(details.appName, equalTo(@"Unittest")); + assertThat(details.appName, equalTo(@"Unit test")); assertThat(details.version, equalTo(@"1.0")); - assertThat(details.shortVersion, equalTo(@"0")); + assertThat(details.shortVersion, equalTo(@"1")); assertThat(details.releaseNotes, equalTo(@"This is a release note for test")); - assertThat(details.provisioningProfileName, equalTo(@"Provisioning profile name")); + assertThat(details.provisioningProfileName, equalTo(@"Unit test provisioning profile")); assertThat(details.size, equalTo(@1234567)); - assertThat(details.minOs, equalTo(@"iOS 8.0")); + assertThat(details.minOs, equalTo(@"8.0")); assertThatBool(details.mandatoryUpdate, equalToLong(YES)); assertThat(details.fingerprint, equalTo(@"b10a8db164e0754105b7a99be72e3fe5")); assertThat(details.uploadedAt, equalTo([NSDate dateWithTimeIntervalSince1970:(1483257600)])); assertThat(details.downloadUrl, equalTo([NSURL URLWithString:@"https://contoso.com/path/download/filename"])); - assertThat(details.appIconUrl, equalTo([NSURL URLWithString:@"https://contoso.com/path/icon/filename"])); + XCTAssertNil(details.appIconUrl); assertThat( details.installUrl, equalTo([NSURL URLWithString:@"itms-service://?action=download-manifest&url=contoso.com/release/filename"])); assertThat(details.releaseNotesUrl, equalTo([NSURL URLWithString:@"https://contoso.com/path/release/notes?skip_registration=true"])); - assertThat(details.packageHashes, equalTo(@[ @"builId1", @"builId2" ])); + assertThat(details.packageHashes, equalTo(@[ @"buildId1", @"buildId2" ])); assertThat(details.distributionGroups, equalTo(nil)); } @@ -58,14 +58,14 @@ - (void)testSerializeToDictionary { details.mandatoryUpdate = YES; details.fingerprint = @"b10a8db164e0754105b7a99be72e3fe5"; NSDateFormatter *formatter = [NSDateFormatter new]; - [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; - details.uploadedAt = [formatter dateFromString:@"2017-01-01T00:00:00-0800"]; + [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; + details.uploadedAt = [formatter dateFromString:@"2017-01-01T00:00:00.000Z"]; details.downloadUrl = [NSURL URLWithString:@"https://contoso.com/path/download/filename"]; details.appIconUrl = [NSURL URLWithString:@"https://contoso.com/path/icon/filename"]; details.installUrl = [NSURL URLWithString:@"itms-service://?action=download-manifest&url=contoso.com/release/filename"]; details.releaseNotesUrl = [NSURL URLWithString:@"https://contoso.com/path/release/notes?skip_registration=true"]; - details.packageHashes = @[ @"builId1", @"builId2" ]; + details.packageHashes = @[ @"buildId1", @"buildId2" ]; details.distributionGroups = @[]; // When From 1081f373a8170b8978448b7a969c0db6bbaeb2fd Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 26 Sep 2017 13:35:19 -0700 Subject: [PATCH 23/61] Fix unit test on macOS that cause crashes when stubbing long response time --- .../MSIngestionSenderTests.m | 91 ++++++++++++------- .../MobileCenterTests/Util/MSHttpTestUtil.m | 8 +- 2 files changed, 65 insertions(+), 34 deletions(-) diff --git a/MobileCenter/MobileCenterTests/MSIngestionSenderTests.m b/MobileCenter/MobileCenterTests/MSIngestionSenderTests.m index b847e235c1..99071d6a42 100644 --- a/MobileCenter/MobileCenterTests/MSIngestionSenderTests.m +++ b/MobileCenter/MobileCenterTests/MSIngestionSenderTests.m @@ -227,6 +227,7 @@ - (void)testTasksSuspendedOnSenderSuspended { // If XCTestExpectation *tasksListedExpectation = [self expectationWithDescription:@"URL Session tasks listed."]; __block NSArray *tasks; + __block BOOL testFinished = NO; [MSHttpTestUtil stubLongTimeOutResponse]; MSLogContainer *container1 = [self createLogContainerWithId:@"1"]; MSLogContainer *container2 = [self createLogContainerWithId:@"2"]; @@ -235,12 +236,20 @@ - (void)testTasksSuspendedOnSenderSuspended { [self.sut sendAsync:container1 completionHandler:^(__attribute__((unused)) NSString *batchId, __attribute__((unused)) NSUInteger statusCode, __attribute__((unused)) NSData *data, __attribute__((unused)) NSError *error) { - XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + @synchronized(tasks) { + if (!testFinished) { + XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + } + } }]; [self.sut sendAsync:container2 completionHandler:^(__attribute__((unused)) NSString *batchId, __attribute__((unused)) NSUInteger statusCode, __attribute__((unused)) NSData *data, __attribute__((unused)) NSError *error) { - XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + @synchronized(tasks) { + if (!testFinished) { + XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + } + } }]; // When @@ -256,25 +265,28 @@ - (void)testTasksSuspendedOnSenderSuspended { // Then [self waitForExpectationsWithTimeout:kMSTestTimeout handler:^(NSError *error) { + @synchronized(tasks) { - // Must be only two tasks - assertThatInteger(tasks.count, equalToInteger(2)); + // Must be only two tasks + assertThatInteger(tasks.count, equalToInteger(2)); - // Tasks must be suspended. - [tasks enumerateObjectsUsingBlock:^(__kindof NSURLSessionTask *_Nonnull task, - __attribute__((unused)) NSUInteger idx, - __attribute__((unused)) BOOL *_Nonnull stop) { - assertThatInteger(task.state, equalToInteger(NSURLSessionTaskStateSuspended)); - }]; + // Tasks must be suspended. + [tasks enumerateObjectsUsingBlock:^(__kindof NSURLSessionTask *_Nonnull task, + __attribute__((unused)) NSUInteger idx, + __attribute__((unused)) BOOL *_Nonnull stop) { + assertThatInteger(task.state, equalToInteger(NSURLSessionTaskStateSuspended)); + }]; - // Sender must be suspended. - assertThatBool(self.sut.suspended, isTrue()); + // Sender must be suspended. + assertThatBool(self.sut.suspended, isTrue()); - // Calls must still be in the pending calls, intended to be resumed later. - assertThatUnsignedLong(self.sut.pendingCalls.count, equalToInt(2)); + // Calls must still be in the pending calls, intended to be resumed later. + assertThatUnsignedLong(self.sut.pendingCalls.count, equalToInt(2)); - if (error) { - XCTFail(@"Expectation Failed with error: %@", error); + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } + testFinished = YES; } }]; } @@ -284,6 +296,7 @@ - (void)testTasksRunningOnSenderResumed { // If XCTestExpectation *tasksListedExpectation = [self expectationWithDescription:@"Container 1 sent."]; __block NSArray *tasks; + __block BOOL testFinished = NO; [MSHttpTestUtil stubLongTimeOutResponse]; MSLogContainer *container1 = [self createLogContainerWithId:@"1"]; MSLogContainer *container2 = [self createLogContainerWithId:@"2"]; @@ -292,12 +305,20 @@ - (void)testTasksRunningOnSenderResumed { [self.sut sendAsync:container1 completionHandler:^(__attribute__((unused)) NSString *batchId, __attribute__((unused)) NSUInteger statusCode, __attribute__((unused)) NSData *data, __attribute__((unused)) NSError *error) { - XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + @synchronized(tasks) { + if (!testFinished) { + XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + } + } }]; [self.sut sendAsync:container2 completionHandler:^(__attribute__((unused)) NSString *batchId, __attribute__((unused)) NSUInteger statusCode, __attribute__((unused)) NSData *data, __attribute__((unused)) NSError *error) { - XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + @synchronized(tasks) { + if (!testFinished) { + XCTFail(@"Completion handler shouldn't be called as test will finish before the response timeout."); + } + } }]; [self.sut suspend]; @@ -315,25 +336,29 @@ - (void)testTasksRunningOnSenderResumed { // Then [self waitForExpectationsWithTimeout:kMSTestTimeout handler:^(NSError *error) { - if (error) { - XCTFail(@"Expectation Failed with error: %@", error); - } + @synchronized(tasks) { + if (error) { + XCTFail(@"Expectation Failed with error: %@", error); + } - // Must be only two tasks - assertThatInteger(tasks.count, equalToInteger(2)); + // Must be only two tasks + assertThatInteger(tasks.count, equalToInteger(2)); - // Tasks must have been resumed. - [tasks enumerateObjectsUsingBlock:^(__kindof NSURLSessionDataTask *_Nonnull task, - __attribute__((unused)) NSUInteger idx, - __attribute__((unused)) BOOL *_Nonnull stop) { - assertThatInteger(task.state, equalToInteger(NSURLSessionTaskStateRunning)); - }]; + // Tasks must have been resumed. + [tasks enumerateObjectsUsingBlock:^(__kindof NSURLSessionDataTask *_Nonnull task, + __attribute__((unused)) NSUInteger idx, + __attribute__((unused)) BOOL *_Nonnull stop) { + assertThatInteger(task.state, equalToInteger(NSURLSessionTaskStateRunning)); + }]; - // Sender must be suspended. - assertThatBool(self.sut.suspended, isFalse()); + // Sender must be suspended. + assertThatBool(self.sut.suspended, isFalse()); - // Calls must still be in the pending calls, not yet timed out. - assertThatUnsignedLong(self.sut.pendingCalls.count, equalToInt(2)); + // Calls must still be in the pending calls, not yet timed out. + assertThatUnsignedLong(self.sut.pendingCalls.count, equalToInt(2)); + + testFinished = YES; + } }]; } diff --git a/MobileCenter/MobileCenterTests/Util/MSHttpTestUtil.m b/MobileCenter/MobileCenterTests/Util/MSHttpTestUtil.m index ddca3866c2..a00da46ce0 100644 --- a/MobileCenter/MobileCenterTests/Util/MSHttpTestUtil.m +++ b/MobileCenter/MobileCenterTests/Util/MSHttpTestUtil.m @@ -1,7 +1,13 @@ #import "MSConstants+Internal.h" #import "MSHttpTestUtil.h" -static NSTimeInterval const kMSStubbedResponseTimeout = UID_MAX; +/* + * TODO: We need to reduce this response time from UID_MAX to 2.0 because [OHHTTPStubs removeAllStubs] is called before + * timeout and it results a crash with succeeded test. Testing on Xcode 8 doesn't have any issues on it but Xcode 9 + * complains. Keep in mind that 2 sec timeout is not somewhat we get from accurate testing, it is a heuristic number and + * it might fail any unit tests. + */ +static NSTimeInterval const kMSStubbedResponseTimeout = 2.0; static NSString *const kMSStub500Name = @"httpStub_500"; static NSString *const kMSStub404Name = @"httpStub_404"; static NSString *const kMSStub200Name = @"httpStub_200"; From 7c2df2f2f24bf6f9029534a8da573f151d05b8c8 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 26 Sep 2017 14:49:21 -0700 Subject: [PATCH 24/61] Update OHHTTPStubs that is built on Xcode 9 for tvOS --- .../Headers/OHHTTPStubs-Swift.h | 76 ++++- .../OHHTTPStubs.framework/Info.plist | Bin 904 -> 916 bytes .../OHHTTPStubs.swiftmodule/arm64.swiftdoc | Bin 8320 -> 0 bytes .../OHHTTPStubs.swiftmodule/arm64.swiftmodule | Bin 89384 -> 0 bytes .../OHHTTPStubs.swiftmodule/x86_64.swiftdoc | Bin 8320 -> 8312 bytes .../x86_64.swiftmodule | Bin 89480 -> 22540 bytes .../Modules/module.modulemap | 1 + .../OHHTTPStubs.framework/OHHTTPStubs | Bin 368572 -> 161152 bytes .../_CodeSignature/CodeResources | 316 ++++++++++++++++++ 9 files changed, 379 insertions(+), 14 deletions(-) delete mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftdoc delete mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule create mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/_CodeSignature/CodeResources diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h index 1f2308d57b..c475755046 100644 --- a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h +++ b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h @@ -1,7 +1,30 @@ -// Generated by Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42) +// Generated by Apple Swift version 4.0 effective-3.2 (swiftlang-900.0.65 clang-900.0.37) #pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" -#if defined(__has_include) && __has_include() +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_attribute(external_source_symbol) +# define SWIFT_STRINGIFY(str) #str +# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol)))) +# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop") +#else +# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) +# define SWIFT_MODULE_NAMESPACE_POP +#endif + +#if __has_include() # include #endif @@ -13,7 +36,7 @@ #if !defined(SWIFT_TYPEDEFS) # define SWIFT_TYPEDEFS 1 -# if defined(__has_include) && __has_include() +# if __has_include() # include # elif !defined(__cplusplus) || __cplusplus < 201103L typedef uint_least16_t char16_t; @@ -48,31 +71,36 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # endif #endif -#if defined(__has_attribute) && __has_attribute(objc_runtime_name) +#if __has_attribute(objc_runtime_name) # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else # define SWIFT_RUNTIME_NAME(X) #endif -#if defined(__has_attribute) && __has_attribute(swift_name) +#if __has_attribute(swift_name) # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else # define SWIFT_COMPILE_NAME(X) #endif -#if defined(__has_attribute) && __has_attribute(objc_method_family) +#if __has_attribute(objc_method_family) # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else # define SWIFT_METHOD_FAMILY(X) #endif -#if defined(__has_attribute) && __has_attribute(noescape) +#if __has_attribute(noescape) # define SWIFT_NOESCAPE __attribute__((noescape)) #else # define SWIFT_NOESCAPE #endif -#if defined(__has_attribute) && __has_attribute(warn_unused_result) +#if __has_attribute(warn_unused_result) # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else # define SWIFT_WARN_UNUSED_RESULT #endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -83,7 +111,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) +# if __has_attribute(objc_subclassing_restricted) # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA # else @@ -102,16 +130,23 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) +# if __has_attribute(objc_designated_initializer) # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) # else # define OBJC_DESIGNATED_INITIALIZER # endif #endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open))) +# else +# define SWIFT_ENUM_ATTR +# endif +#endif #if !defined(SWIFT_ENUM) -# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type -# if defined(__has_feature) && __has_feature(generalized_swift_name) -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type # else # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) # endif @@ -131,9 +166,22 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(SWIFT_DEPRECATED_MSG) # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif -#if defined(__has_feature) && __has_feature(modules) +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if __has_feature(modules) #endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" + +SWIFT_MODULE_NAMESPACE_PUSH("OHHTTPStubs") +SWIFT_MODULE_NAMESPACE_POP #pragma clang diagnostic pop diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Info.plist b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Info.plist index 1dca3077d97478ea928a835270b9792fd7558c43..c0e9fd9f60e125e44885eba68f9bd633e5a15679 100644 GIT binary patch delta 563 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 Wpue`>0~ik}%4nqa{=jzph5rMX>l@Di diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule deleted file mode 100644 index 95155ad31069dcc519c3c02ff7ecd53db1bf1407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89384 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 ZjHCSxaL8{sM`nb2VhIk*P|xqD{{^C9`M>}G diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc index c4e4aa98fc2f97a10cb147332b5686e1e947b359..e4de85a8339db7ce4936092d5ee7d0f75a5b54dc 100644 GIT binary patch delta 1148 zcmZp0{NXTROZ^9S1_o6g1_lKN1_mM4khF#a3I+m7ON7|BFfc?jGBB(JiaQn*DVXRPD5R#Pr6!kTmZj<%>lrC%6oVAxB<7{-S{fMW8R(grDkLLu zjmA!kqrlm`JuhK7#y9v(ne1rq~9 zvDIX68Cj;_q{)S15&~h#!NKvt!KP)2Ii;y3ZdH>Lg*7)XVh>>AJ19|*Zw=HF4|F+D z47F2?z~=7{LN^;^qWlbw&Xe2GhfqW_CcWUm-5!mV&tu5?WT^ z(2AG3%gDEtlYa|HWj916A|fFwL7vf^yogS4kN>jeMjCC3^R9E^9OwuUcvj7L146{C?cKv>z3!t>Dh3P~?BY52S2SY6aCk!WW`Z><{sa^r7 zQvirrfcO$HaF9V2Q1B`nvIqmie-2cB85aY?M{bDNDqd7MNqz3g& R3noQ@loD5lBG3mY006FmCNls4 delta 1137 zcmez2(BL>>OY|pp1_o6g1_o&c1_mM4kkp0)3I+l}oy<`T46_*;Y#AI23UX2vg3B}0 zN)*aci;6Sz^AwEr3>7qrK|(o+dFi?q21a@YdZxw-$w*uiBhAUmjEbt4faV*q3GjF= zk;|zA+5rNL3`_^lFS7-*v=|u}imluxSISAVx`o8Mg-vecl3)%_a+gK6$xJQ*IzO?fGC0^hxG*?49$}#+&;aet5#nx4{3k^ZfA9nvPysbykB}_CTS#!Q zX<1@UX(~_`#8#%@q|NIXtC;jw`AQmPLs}7pNQL2u{8A{Y9igiK z>M$}yR10mi0IDs);yR1W;$Wb|a#P`+0wx!IaO`d4^ z&ty44fyqmG1t;6G@oxSvu%40so?HI{khX59HeixM(FO`C_stH%&WykeasRD+FepNM zu=pMrp&t3gC2%W&DQU7Go6cr#sRYJ)1_lM7HUS`p0TvhoNLK=lg8@!v28M^M3=A7M zU?L0*kz5Q6m$(@i^!OlRkw^wz6GW&3vD}3bd`3|yTOLRki2)6fVPH_=%1}hI53B+J D&F&%v diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule index 8faf7a50b0a48f63d5f47db0e32f3ea86875e34c..bb168e7777f6d9e061d316105d73b9863df82056 100644 GIT binary patch literal 22540 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 z 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⪙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 F#lPR^#I^tc diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/_CodeSignature/CodeResources b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000000..f8e8943754 --- /dev/null +++ b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/_CodeSignature/CodeResources @@ -0,0 +1,316 @@ + + + + + files + + Headers/Compatibility.h + + nemLhJiiA6nuG4OxoVs57Y5zqGo= + + Headers/NSURLRequest+HTTPBodyTesting.h + + H3vdqK8C1nEIEXq2TydQIuiUqOk= + + Headers/OHHTTPStubs+Mocktail.h + + HBJXiONzOSGXUVvXPMBlYqcc5H4= + + Headers/OHHTTPStubs-Swift.h + + /jwVLQaajx9eIxfFUJdEDxPuuCY= + + Headers/OHHTTPStubs.h + + RoBHEilAFpOE08MkLhruCObzkxE= + + Headers/OHHTTPStubsResponse+HTTPMessage.h + + 2zrzlO2ZNMPfZAnd9OrFoqzLjXc= + + Headers/OHHTTPStubsResponse+JSON.h + + +bLHNatq/iqFBhJGW0RmLtR3N40= + + Headers/OHHTTPStubsResponse.h + + PWTrHlykxPJRV19tkVwCAVXqtuU= + + Headers/OHHTTPStubsUmbrella.h + + zE7DG8ejd3euxzsfqiaOyKa6m6w= + + Headers/OHPathHelpers.h + + 6S/cHlZUT1vzFyvPs0tcJjr/4Do= + + Info.plist + + fZAEf6qUBqhybHzwzvNbD86FlT4= + + Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc + + f3FJ3tFkysCEsqInbnz/uA3S6Co= + + Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule + + EFPeS45hbsjC4JgyZHtMECkf3CI= + + Modules/module.modulemap + + Qf6JiIASJNyHs4CmPt0Q0sdMOqA= + + + files2 + + Headers/Compatibility.h + + hash + + nemLhJiiA6nuG4OxoVs57Y5zqGo= + + hash2 + + m4D+FqZi5EMZxsTr80tSkbaiHWGb5CkHoe0lyZw7XE8= + + + Headers/NSURLRequest+HTTPBodyTesting.h + + hash + + H3vdqK8C1nEIEXq2TydQIuiUqOk= + + hash2 + + vvGmF6kDREiRKGxec8UEEFQERVvsmk58QJy2qTNtJAg= + + + Headers/OHHTTPStubs+Mocktail.h + + hash + + HBJXiONzOSGXUVvXPMBlYqcc5H4= + + hash2 + + Qp9ZvdlDoyxw+LAFH/wB8MONfsUg0TO/JXmJ/shmv/8= + + + Headers/OHHTTPStubs-Swift.h + + hash + + /jwVLQaajx9eIxfFUJdEDxPuuCY= + + hash2 + + yjwM1vfw3iQqn6suLEIFDx00BHInYGp9Ba78TQzAJT8= + + + Headers/OHHTTPStubs.h + + hash + + RoBHEilAFpOE08MkLhruCObzkxE= + + hash2 + + 745NpmUw36jvbBH+GBMymztfrPTN3bU4vyun2AlRIJs= + + + Headers/OHHTTPStubsResponse+HTTPMessage.h + + hash + + 2zrzlO2ZNMPfZAnd9OrFoqzLjXc= + + hash2 + + g9d2U4ru46M40btW7slDlPHy8I+JsnptmHmGLAa8v2Y= + + + Headers/OHHTTPStubsResponse+JSON.h + + hash + + +bLHNatq/iqFBhJGW0RmLtR3N40= + + hash2 + + Bp7Kt3XDAfkOFOS18pRCodGuMpBKzeKLERxYCx1Yzi4= + + + Headers/OHHTTPStubsResponse.h + + hash + + PWTrHlykxPJRV19tkVwCAVXqtuU= + + hash2 + + v3eQosOrWNwrdzkqcHyYAO1T0rF6qhEe9gEehu7ydGg= + + + Headers/OHHTTPStubsUmbrella.h + + hash + + zE7DG8ejd3euxzsfqiaOyKa6m6w= + + hash2 + + zothncXWsfmn+kCKomlPTjftXHc61Wn23L3mF5JryK4= + + + Headers/OHPathHelpers.h + + hash + + 6S/cHlZUT1vzFyvPs0tcJjr/4Do= + + hash2 + + Eofzvw21IujIAjV2dhjG/nSdBdIY7koxLN3c0k/zHRc= + + + Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc + + hash + + f3FJ3tFkysCEsqInbnz/uA3S6Co= + + hash2 + + Gyb32wj1q0BWDJf9dI2mCMY2mLLJm0PwA6Lz/O2nb/A= + + + Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule + + hash + + EFPeS45hbsjC4JgyZHtMECkf3CI= + + hash2 + + eBmlgwit4jclavDe+iS8wQvNQ6uKUcfg4dRkGJHY0uI= + + + Modules/module.modulemap + + hash + + Qf6JiIASJNyHs4CmPt0Q0sdMOqA= + + hash2 + + kQzDPXwoVsgHIhj+oJ7S/qnHqhmhRLQ/mFNoyny1cy0= + + + + rules + + ^ + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^ + + weight + 20 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + From 4dcc8859829ab5e51eae6e7ff3c0767972d835e0 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 26 Sep 2017 14:49:31 -0700 Subject: [PATCH 25/61] Exclude keychain unit test for tvOS --- MobileCenter/MobileCenterTests/MSKeychainUtilTests.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MobileCenter/MobileCenterTests/MSKeychainUtilTests.m b/MobileCenter/MobileCenterTests/MSKeychainUtilTests.m index f31f494f6b..928a49b610 100644 --- a/MobileCenter/MobileCenterTests/MSKeychainUtilTests.m +++ b/MobileCenter/MobileCenterTests/MSKeychainUtilTests.m @@ -17,6 +17,7 @@ - (void)tearDown { [MSKeychainUtil clear]; } +#if !TARGET_OS_TV - (void)testKeychain { // If @@ -31,5 +32,6 @@ - (void)testKeychain { XCTAssertFalse([MSKeychainUtil stringForKey:key]); XCTAssertNil([MSKeychainUtil deleteStringForKey:key]); } +#endif @end From 739e65fdcc0494a58405934529ed1e64f014c9c9 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Tue, 26 Sep 2017 14:49:51 -0700 Subject: [PATCH 26/61] Adding cleanup script --- Localization/LocCleanup.ps1 | 4 ++++ Localization/TouchDownCheckinScript.ps1 | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Localization/LocCleanup.ps1 diff --git a/Localization/LocCleanup.ps1 b/Localization/LocCleanup.ps1 new file mode 100644 index 0000000000..d9c5dc7dea --- /dev/null +++ b/Localization/LocCleanup.ps1 @@ -0,0 +1,4 @@ +$deleteLocalBranches = "git branch -D ``git branch | grep -E 'TouchDown*'``" +$deleteRemoteBranches = "git branch -r | awk -F/ '/\/TouchDown/{print `$2}' | xargs -I {} git push origin :{}" +iex $deleteLocalBranches +iex $deleteRemoteBranches \ No newline at end of file diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index 9fc7378e0b..bfc40d2fb4 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -37,7 +37,6 @@ $ProjectInfo = "mobile-center-sdks-loc-file-list.csv" $Guid = [GUID]::NewGuid() $TempLocBranch = "TouchDownCheckin_" + $Guid $repoPath = $SrcRoot -$LogFile = "C:\TouchDown\TDCheckin\log.txt" $DefaultRepoBranch = "localization" $teamId = "272" #ID for iOS $git = "git" From ecbb203a486c0200a2281881bcd27f03e5325808 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Tue, 26 Sep 2017 15:05:22 -0700 Subject: [PATCH 27/61] Updating .gitignore and TD comments --- .gitignore | 3 ++- Localization/TouchDownCheckinScript.ps1 | 22 ++++------------------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 8b2d6eebc9..b9883a8a48 100644 --- a/.gitignore +++ b/.gitignore @@ -70,4 +70,5 @@ iOSInjectionProject/ # .DS_Store -Localization/*.zip \ No newline at end of file +Localization/*.zip +Localization/Unzip/ \ No newline at end of file diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index bfc40d2fb4..e64dfc1ae7 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -1,7 +1,8 @@ param([String]$SrcRoot="undefined") -#to Run the script simply run the following commnand from a PowerShell prompt -#Here is a PowerShell script to process the file from the TouchDown project +# This script will upload the files which need to be localized to the Touchdown servers and they will automatically be translated by Bing translate + +# Usage: .\TouchDownCheckinScript.ps1 absolute\path\to\reporoot #What would be the standard steps to enable check in process # -Sync the Localized File on the machine @@ -10,27 +11,12 @@ # -Create a Temp loc branch # -Set the Flag (ChangesAreDetected = false) # -Call TD -# -Extract the ZIP file +# -Extract the ZIP file from TD # -Map the extracted file to the Local file # -Compare the localized File with File in the Repo, if those files are different then run the command sd add # -Set the Flag (ChangesAreDetected = True) # -Run a Git push (Integrate the TempLocBranch to your working branch) -#Let generate the Command Line to pull our the Touch Down file -#Here are the variables needed -# $absoluteFilePath -# $outFilePath -# $relativeFilePath -# $teamId (can be defined as a Global Variable) -#At first it will place those either in a CSV file or XML file -#You can provide the $Srcroot from the command line. If you add those variable in your path from the script, those will be automatically replaced -#The Language can also specified so that you have a very flexible way of binplacing the Localized file. - -# we need to build a command line that is like this: - -#Here is an example of Command line -#Invoke-RestMethod -Uri "http://tdbuild/api/teams/$teamId/LocalizableFiles" -Method Put -UseDefaultCredentials -ContentType "multipart/form-data; boundary=$boundary" -Body $body -OutFile $outFilePath - $CultureSettingFile= "mobile-center-cultures.csv" $ProjectInfo = "mobile-center-sdks-loc-file-list.csv" From 87aba2649a8b935b695a6f800b2220bc94fb9b3e Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 27 Sep 2017 12:38:17 -0700 Subject: [PATCH 28/61] Add getSdkVersion API --- .../Internals/Device/MSDeviceTracker.m | 28 ++----------------- .../Internals/Device/MSDeviceTrackerPrivate.h | 9 ------ .../MobileCenter/Internals/Util/MSUtility.h | 11 ++++++++ .../MobileCenter/Internals/Util/MSUtility.m | 22 +++++++++++++++ MobileCenter/MobileCenter/MSMobileCenter.h | 5 ++++ MobileCenter/MobileCenter/MSMobileCenter.m | 5 ++++ .../MobileCenterTests/MSDeviceTrackerTests.m | 19 +++---------- .../MobileCenterTests/MSMobileCenterTests.m | 5 ++++ .../MobileCenterTests/MSUtilityTests.m | 10 +++++++ 9 files changed, 65 insertions(+), 49 deletions(-) diff --git a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m index c63e9c2835..809f8bb114 100644 --- a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m +++ b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m @@ -4,24 +4,10 @@ #import "MSDeviceTrackerPrivate.h" #import "MSWrapperSdkInternal.h" #import "MSUserDefaults.h" +#import "MSUtility.h" #import "MSUtility+Application.h" #import "MSUtility+Date.h" -// SDK versioning struct. Needs to be big enough to hold the info. -typedef struct { - uint8_t info_version; - const char ms_name[32]; - const char ms_version[32]; - const char ms_build[32]; -} ms_info_t; - -// SDK versioning. -static ms_info_t mobilecenter_library_info - __attribute__((section("__TEXT,__ms_ios,regular,no_dead_strip"))) = {.info_version = 1, - .ms_name = MOBILE_CENTER_C_NAME, - .ms_version = MOBILE_CENTER_C_VERSION, - .ms_build = MOBILE_CENTER_C_BUILD}; - static NSUInteger const kMSMaxDevicesHistoryCount = 5; @interface MSDeviceTracker () @@ -132,8 +118,8 @@ - (MSDevice *)updatedDevice { #endif // Collect device properties. - newDevice.sdkName = [self sdkName:mobilecenter_library_info.ms_name]; - newDevice.sdkVersion = [self sdkVersion:mobilecenter_library_info.ms_version]; + newDevice.sdkName = [MSUtility getSdkName]; + newDevice.sdkVersion = [MSUtility getSdkVersion]; newDevice.model = [self deviceModel]; newDevice.oemName = kMSDeviceManufacturer; #if TARGET_OS_OSX @@ -236,14 +222,6 @@ - (void)clearDevices { #pragma mark - Helpers -- (NSString *)sdkName:(const char[])name { - return [NSString stringWithUTF8String:name]; -} - -- (NSString *)sdkVersion:(const char[])version { - return [NSString stringWithUTF8String:version]; -} - - (NSString *)deviceModel { size_t size; #if TARGET_OS_OSX diff --git a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTrackerPrivate.h b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTrackerPrivate.h index 3d46e232b6..dc781636e9 100644 --- a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTrackerPrivate.h +++ b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTrackerPrivate.h @@ -36,15 +36,6 @@ static NSString *const kMSPastDevicesKey = @"pastDevicesKey"; */ - (void)clearDevices; -/** - * Get the SDK version. - * - * @param version SDK version as const char. - * - * @return The SDK version as an NSString. - */ -- (NSString *)sdkVersion:(const char[])version; - /** * Get device model. * diff --git a/MobileCenter/MobileCenter/Internals/Util/MSUtility.h b/MobileCenter/MobileCenter/Internals/Util/MSUtility.h index 0a051f775d..20ac387af7 100644 --- a/MobileCenter/MobileCenter/Internals/Util/MSUtility.h +++ b/MobileCenter/MobileCenter/Internals/Util/MSUtility.h @@ -14,4 +14,15 @@ * Basic part. */ @interface MSUtility : NSObject + +/** + * Get the name of MobileCenter SDK. + */ ++ (NSString *)getSdkName; + +/** + * Get the current version of MobileCenter SDK. + */ ++ (NSString *)getSdkVersion; + @end diff --git a/MobileCenter/MobileCenter/Internals/Util/MSUtility.m b/MobileCenter/MobileCenter/Internals/Util/MSUtility.m index 7187a411fc..6d1884e0f2 100644 --- a/MobileCenter/MobileCenter/Internals/Util/MSUtility.m +++ b/MobileCenter/MobileCenter/Internals/Util/MSUtility.m @@ -4,6 +4,21 @@ #import "MSUtility+File.h" #import "MSUtility+StringFormatting.h" +// SDK versioning struct. Needs to be big enough to hold the info. +typedef struct { + uint8_t info_version; + const char ms_name[32]; + const char ms_version[32]; + const char ms_build[32]; +} ms_info_t; + +// SDK versioning. +static ms_info_t mobilecenter_library_info +__attribute__((section("__TEXT,__ms_ios,regular,no_dead_strip"))) = {.info_version = 1, + .ms_name = MOBILE_CENTER_C_NAME, + .ms_version = MOBILE_CENTER_C_VERSION, + .ms_build = MOBILE_CENTER_C_BUILD}; + @implementation MSUtility /** @@ -16,4 +31,11 @@ @implementation MSUtility MSUtilityDateCategory, MSUtilityStringFormattingCategory, MSUtilityFileCategory]; } ++ (NSString *)getSdkName { + return [NSString stringWithUTF8String:mobilecenter_library_info.ms_name]; +} + ++ (NSString *)getSdkVersion { + return [NSString stringWithUTF8String:mobilecenter_library_info.ms_version]; +} @end diff --git a/MobileCenter/MobileCenter/MSMobileCenter.h b/MobileCenter/MobileCenter/MSMobileCenter.h index 57cc185251..a0ed498417 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.h +++ b/MobileCenter/MobileCenter/MSMobileCenter.h @@ -138,4 +138,9 @@ */ + (BOOL)isDebuggerAttached; +/** + * Get the current version of MobileCenter SDK. + */ ++ (NSString *)getSdkVersion; + @end diff --git a/MobileCenter/MobileCenter/MSMobileCenter.m b/MobileCenter/MobileCenter/MSMobileCenter.m index 39525fa102..313e68004a 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.m +++ b/MobileCenter/MobileCenter/MSMobileCenter.m @@ -9,6 +9,7 @@ #import "MSLogger.h" #import "MSMobileCenterInternal.h" #import "MSStartServiceLog.h" +#import "MSUtility.h" #if !TARGET_OS_TV #import "MSCustomProperties.h" #import "MSCustomPropertiesLog.h" @@ -152,6 +153,10 @@ + (BOOL)isDebuggerAttached { return debuggerIsAttached; } ++ (NSString *)getSdkVersion { + return [MSUtility getSdkVersion]; +} + + (NSString *)logTag { return kMSServiceName; } diff --git a/MobileCenter/MobileCenterTests/MSDeviceTrackerTests.m b/MobileCenter/MobileCenterTests/MSDeviceTrackerTests.m index 406a62b686..ffc6eda7fe 100644 --- a/MobileCenter/MobileCenterTests/MSDeviceTrackerTests.m +++ b/MobileCenter/MobileCenterTests/MSDeviceTrackerTests.m @@ -56,21 +56,10 @@ - (void)testDeviceInfo { assertThat(self.sut.device.carrierCountry, nilValue()); assertThat(self.sut.device.carrierName, nilValue()); - // Can't access a valid main bundle from test context so we can't test for App namespace (bundle ID), version and - // build. -} - -- (void)testSDKVersion { - - // If - NSString *expected = @"1.2.3"; - const char *versionMock = [expected UTF8String]; - - // When - NSString *sdkVersion = [self.sut sdkVersion:versionMock]; - - // Then - assertThat(sdkVersion, is(expected)); + /* + * Can't access a valid main bundle from test context so we can't test for App namespace (bundle ID), version and + * build. + */ } - (void)testDeviceModel { diff --git a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m index eebfe91fe3..280d79c5b9 100644 --- a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m +++ b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m @@ -147,6 +147,11 @@ - (void)testDefaultLogUrl { XCTAssertTrue([[[MSMobileCenter sharedInstance] logUrl] isEqualToString:@"https://in.mobile.azure.com"]); } +- (void)testGetSdkVersion { + NSString *version = [NSString stringWithUTF8String:MOBILE_CENTER_C_VERSION]; + XCTAssertTrue([[MSMobileCenter getSdkVersion] isEqualToString:version]); +} + #if !TARGET_OS_TV - (void)testSetCustomProperties { diff --git a/MobileCenter/MobileCenterTests/MSUtilityTests.m b/MobileCenter/MobileCenterTests/MSUtilityTests.m index d49d11d456..20ab1c3398 100644 --- a/MobileCenter/MobileCenterTests/MSUtilityTests.m +++ b/MobileCenter/MobileCenterTests/MSUtilityTests.m @@ -175,4 +175,14 @@ - (void)testCreateSha256 { XCTAssertTrue([result isEqualToString:@"6dd79f2770a0bb38073b814a5ff000647b37be5abbde71ec9176c6ce0cb32a27"]); } +- (void)testGetSdkName { + NSString *name = [NSString stringWithUTF8String:MOBILE_CENTER_C_NAME]; + XCTAssertTrue([[MSUtility getSdkName] isEqualToString:name]); +} + +- (void)testGetSdkVersion { + NSString *version = [NSString stringWithUTF8String:MOBILE_CENTER_C_VERSION]; + XCTAssertTrue([[MSUtility getSdkVersion] isEqualToString:version]); +} + @end From 39315de70e005754c361939f8bd85f2c6b3d7e50 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Wed, 27 Sep 2017 14:14:31 -0700 Subject: [PATCH 29/61] Removing sample app strings from loc script --- Localization/mobile-center-sdks-loc-file-list.csv | 2 -- 1 file changed, 2 deletions(-) diff --git a/Localization/mobile-center-sdks-loc-file-list.csv b/Localization/mobile-center-sdks-loc-file-list.csv index a29119477c..4434653ca9 100644 --- a/Localization/mobile-center-sdks-loc-file-list.csv +++ b/Localization/mobile-center-sdks-loc-file-list.csv @@ -1,4 +1,2 @@ absoluteFilePath,outFilePath,relativeFilePath,TargetPath,LanguageSet $SrcRoot\MobileCenterDistribute\MobileCenterDistribute\Resources\en.lproj\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute.zip,\MobileCenterDistribute.strings,$SrcRoot\Localization\MobileCenterDistribute,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW -$SrcRoot\Sasquatch\Sasquatch\Main.strings,$SrcRoot\Localization\Sasquatch.zip,\Main.strings,$SrcRoot\Localization\Sasquatch,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW -$SrcRoot\Puppet\Puppet\Main.strings,$SrcRoot\Localization\Puppet.zip,\Main.strings,$SrcRoot\Localization\Puppet,cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW From 9c6c05e3b793080bd6d1a7e01ea6b3642181ba29 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 27 Sep 2017 14:48:36 -0700 Subject: [PATCH 30/61] Rename the method without get prefix --- .../MobileCenter/Internals/Device/MSDeviceTracker.m | 4 ++-- MobileCenter/MobileCenter/Internals/Util/MSUtility.h | 4 ++-- MobileCenter/MobileCenter/Internals/Util/MSUtility.m | 4 ++-- MobileCenter/MobileCenter/MSMobileCenter.h | 2 +- MobileCenter/MobileCenter/MSMobileCenter.m | 4 ++-- MobileCenter/MobileCenterTests/MSMobileCenterTests.m | 4 ++-- MobileCenter/MobileCenterTests/MSUtilityTests.m | 8 ++++---- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m index 809f8bb114..6336a264d9 100644 --- a/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m +++ b/MobileCenter/MobileCenter/Internals/Device/MSDeviceTracker.m @@ -118,8 +118,8 @@ - (MSDevice *)updatedDevice { #endif // Collect device properties. - newDevice.sdkName = [MSUtility getSdkName]; - newDevice.sdkVersion = [MSUtility getSdkVersion]; + newDevice.sdkName = [MSUtility sdkName]; + newDevice.sdkVersion = [MSUtility sdkVersion]; newDevice.model = [self deviceModel]; newDevice.oemName = kMSDeviceManufacturer; #if TARGET_OS_OSX diff --git a/MobileCenter/MobileCenter/Internals/Util/MSUtility.h b/MobileCenter/MobileCenter/Internals/Util/MSUtility.h index 20ac387af7..ed5f5671e4 100644 --- a/MobileCenter/MobileCenter/Internals/Util/MSUtility.h +++ b/MobileCenter/MobileCenter/Internals/Util/MSUtility.h @@ -18,11 +18,11 @@ /** * Get the name of MobileCenter SDK. */ -+ (NSString *)getSdkName; ++ (NSString *)sdkName; /** * Get the current version of MobileCenter SDK. */ -+ (NSString *)getSdkVersion; ++ (NSString *)sdkVersion; @end diff --git a/MobileCenter/MobileCenter/Internals/Util/MSUtility.m b/MobileCenter/MobileCenter/Internals/Util/MSUtility.m index 6d1884e0f2..00cda5c5b0 100644 --- a/MobileCenter/MobileCenter/Internals/Util/MSUtility.m +++ b/MobileCenter/MobileCenter/Internals/Util/MSUtility.m @@ -31,11 +31,11 @@ @implementation MSUtility MSUtilityDateCategory, MSUtilityStringFormattingCategory, MSUtilityFileCategory]; } -+ (NSString *)getSdkName { ++ (NSString *)sdkName { return [NSString stringWithUTF8String:mobilecenter_library_info.ms_name]; } -+ (NSString *)getSdkVersion { ++ (NSString *)sdkVersion { return [NSString stringWithUTF8String:mobilecenter_library_info.ms_version]; } @end diff --git a/MobileCenter/MobileCenter/MSMobileCenter.h b/MobileCenter/MobileCenter/MSMobileCenter.h index a0ed498417..8c4ad96021 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.h +++ b/MobileCenter/MobileCenter/MSMobileCenter.h @@ -141,6 +141,6 @@ /** * Get the current version of MobileCenter SDK. */ -+ (NSString *)getSdkVersion; ++ (NSString *)sdkVersion; @end diff --git a/MobileCenter/MobileCenter/MSMobileCenter.m b/MobileCenter/MobileCenter/MSMobileCenter.m index 313e68004a..dee487ba85 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.m +++ b/MobileCenter/MobileCenter/MSMobileCenter.m @@ -153,8 +153,8 @@ + (BOOL)isDebuggerAttached { return debuggerIsAttached; } -+ (NSString *)getSdkVersion { - return [MSUtility getSdkVersion]; ++ (NSString *)sdkVersion { + return [MSUtility sdkVersion]; } + (NSString *)logTag { diff --git a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m index 280d79c5b9..b1990f9476 100644 --- a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m +++ b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m @@ -147,9 +147,9 @@ - (void)testDefaultLogUrl { XCTAssertTrue([[[MSMobileCenter sharedInstance] logUrl] isEqualToString:@"https://in.mobile.azure.com"]); } -- (void)testGetSdkVersion { +- (void)testSdkVersion { NSString *version = [NSString stringWithUTF8String:MOBILE_CENTER_C_VERSION]; - XCTAssertTrue([[MSMobileCenter getSdkVersion] isEqualToString:version]); + XCTAssertTrue([[MSMobileCenter sdkVersion] isEqualToString:version]); } #if !TARGET_OS_TV diff --git a/MobileCenter/MobileCenterTests/MSUtilityTests.m b/MobileCenter/MobileCenterTests/MSUtilityTests.m index 20ab1c3398..14cb622787 100644 --- a/MobileCenter/MobileCenterTests/MSUtilityTests.m +++ b/MobileCenter/MobileCenterTests/MSUtilityTests.m @@ -175,14 +175,14 @@ - (void)testCreateSha256 { XCTAssertTrue([result isEqualToString:@"6dd79f2770a0bb38073b814a5ff000647b37be5abbde71ec9176c6ce0cb32a27"]); } -- (void)testGetSdkName { +- (void)testSdkName { NSString *name = [NSString stringWithUTF8String:MOBILE_CENTER_C_NAME]; - XCTAssertTrue([[MSUtility getSdkName] isEqualToString:name]); + XCTAssertTrue([[MSUtility sdkName] isEqualToString:name]); } -- (void)testGetSdkVersion { +- (void)testSdkVersion { NSString *version = [NSString stringWithUTF8String:MOBILE_CENTER_C_VERSION]; - XCTAssertTrue([[MSUtility getSdkVersion] isEqualToString:version]); + XCTAssertTrue([[MSUtility sdkVersion] isEqualToString:version]); } @end From 5229ed346296b2beccdd172a86ff0c80644b6742 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 27 Sep 2017 15:42:42 -0700 Subject: [PATCH 31/61] Add @return to an API doc --- MobileCenter/MobileCenter/MSMobileCenter.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MobileCenter/MobileCenter/MSMobileCenter.h b/MobileCenter/MobileCenter/MSMobileCenter.h index 8c4ad96021..eb7424c28c 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.h +++ b/MobileCenter/MobileCenter/MSMobileCenter.h @@ -140,6 +140,8 @@ /** * Get the current version of MobileCenter SDK. + * + * @return The current version of MobileCenter SDK. */ + (NSString *)sdkVersion; From d4b34e4aad16b73f0dc3fddc236ee93a7e9689e6 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Wed, 27 Sep 2017 16:42:39 -0700 Subject: [PATCH 32/61] Increase delay of handling crashes to let applications become active from inactive in certain cases --- .../MobileCenterCrashes/MSCrashes.mm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/MobileCenterCrashes/MobileCenterCrashes/MSCrashes.mm b/MobileCenterCrashes/MobileCenterCrashes/MSCrashes.mm index 989b35fc7b..751895c207 100644 --- a/MobileCenterCrashes/MobileCenterCrashes/MSCrashes.mm +++ b/MobileCenterCrashes/MobileCenterCrashes/MSCrashes.mm @@ -233,7 +233,7 @@ + (MSErrorReport *_Nullable)lastSessionCrashReport { /** * This can never be bound to Xamarin. * - * This method is not part of the publicly available APIs on tvOS as Mach exception handling is not possible on tvOS. + * This method is not part of the publicly available APIs on tvOS as Mach exception handling is not possible on tvOS. * The property is NO by default there. */ + (void)disableMachExceptionHandler { @@ -644,7 +644,17 @@ - (void)configureCrashReporterWithUncaughtExceptionHandlerEnabled:(BOOL)enableUn - (void)startDelayedCrashProcessing { [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(startCrashProcessing) object:nil]; - [self performSelector:@selector(startCrashProcessing) withObject:nil afterDelay:0.5]; + + /* + * FIXME: If application is crashed and relaunched from multitasking view, the SDK starts faster than normal launch + * and application state is not updated from inactive to active at this time. Give more delay here for a workaround + * but we need to fix it eventually. This can also be happen if application is launched from Xcode and stoped by + * clicking stop button on Xcode. + * In addition to that, we also need it to be delayed because + * 1. it sometimes needs to "warm up" internet connection on iOS 8, + * 2. giving some time to start and let all Crashes initialization happen before processing crashes. + */ + [self performSelector:@selector(startCrashProcessing) withObject:nil afterDelay:1]; } - (void)startCrashProcessing { From 602892a3da932bb2fc3a4acf5ef82d734ec8af65 Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Wed, 27 Sep 2017 17:00:32 -0700 Subject: [PATCH 33/61] Changing cleanup script to shell script and updating a korean translation --- Localization/LocCleanup.ps1 | 4 ---- Localization/LocCleanup.sh | 3 +++ .../ko-KR/MobileCenterDistribute.strings | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 Localization/LocCleanup.ps1 create mode 100644 Localization/LocCleanup.sh diff --git a/Localization/LocCleanup.ps1 b/Localization/LocCleanup.ps1 deleted file mode 100644 index d9c5dc7dea..0000000000 --- a/Localization/LocCleanup.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -$deleteLocalBranches = "git branch -D ``git branch | grep -E 'TouchDown*'``" -$deleteRemoteBranches = "git branch -r | awk -F/ '/\/TouchDown/{print `$2}' | xargs -I {} git push origin :{}" -iex $deleteLocalBranches -iex $deleteRemoteBranches \ No newline at end of file diff --git a/Localization/LocCleanup.sh b/Localization/LocCleanup.sh new file mode 100644 index 0000000000..cea36b480a --- /dev/null +++ b/Localization/LocCleanup.sh @@ -0,0 +1,3 @@ + +git branch -D `git branch | grep -E 'TouchDown*'` +git branch -r | awk -F/ '/\/TouchDown/{print $2}' | xargs -I {} git push origin :{} \ No newline at end of file diff --git a/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings index 69c2d80e84..73489b2531 100644 --- a/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings +++ b/Localization/MobileCenterDistribute/ko-KR/MobileCenterDistribute.strings @@ -2,7 +2,7 @@ * Update dialog buttons */ "MSDistributeUpdateNow" = "지금 업데이트"; -"MSDistributeAskMeInADay" = "하루 안에 물어보기"; +"MSDistributeAskMeInADay" = "하루동안 열지 않기"; "MSDistributeViewReleaseNotes" = "릴리스 정보 보기"; "MSDistributeClose" = "닫기"; From 9ac2afe508096e6c2f6677d2221d8b8db753f1ce Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 28 Sep 2017 11:28:36 -0700 Subject: [PATCH 34/61] Removing sample app translations and updating chinese translations as per dihei's suggestion --- .../zh-CN/MobileCenterDistribute.strings | 4 ++-- Localization/Puppet/cs-CZ/Main.strings | 14 -------------- Localization/Puppet/de-DE/Main.strings | 14 -------------- Localization/Puppet/es-ES/Main.strings | 14 -------------- Localization/Puppet/fr-FR/Main.strings | 14 -------------- Localization/Puppet/it-IT/Main.strings | 14 -------------- Localization/Puppet/ja-JP/Main.strings | 14 -------------- Localization/Puppet/ko-KR/Main.strings | 14 -------------- Localization/Puppet/pl-PL/Main.strings | 14 -------------- Localization/Puppet/pt-BR/Main.strings | 14 -------------- Localization/Puppet/ru-RU/Main.strings | 14 -------------- Localization/Puppet/tr-TR/Main.strings | 14 -------------- Localization/Puppet/zh-CN/Main.strings | 14 -------------- Localization/Puppet/zh-TW/Main.strings | 14 -------------- Localization/Sasquatch/cs-CZ/Main.strings | 8 -------- Localization/Sasquatch/de-DE/Main.strings | 8 -------- Localization/Sasquatch/es-ES/Main.strings | 8 -------- Localization/Sasquatch/fr-FR/Main.strings | 8 -------- Localization/Sasquatch/it-IT/Main.strings | 8 -------- Localization/Sasquatch/ja-JP/Main.strings | 8 -------- Localization/Sasquatch/ko-KR/Main.strings | 8 -------- Localization/Sasquatch/pl-PL/Main.strings | 8 -------- Localization/Sasquatch/pt-BR/Main.strings | 8 -------- Localization/Sasquatch/ru-RU/Main.strings | 8 -------- Localization/Sasquatch/tr-TR/Main.strings | 8 -------- Localization/Sasquatch/zh-CN/Main.strings | 8 -------- Localization/Sasquatch/zh-TW/Main.strings | 8 -------- 27 files changed, 2 insertions(+), 288 deletions(-) delete mode 100644 Localization/Puppet/cs-CZ/Main.strings delete mode 100644 Localization/Puppet/de-DE/Main.strings delete mode 100644 Localization/Puppet/es-ES/Main.strings delete mode 100644 Localization/Puppet/fr-FR/Main.strings delete mode 100644 Localization/Puppet/it-IT/Main.strings delete mode 100644 Localization/Puppet/ja-JP/Main.strings delete mode 100644 Localization/Puppet/ko-KR/Main.strings delete mode 100644 Localization/Puppet/pl-PL/Main.strings delete mode 100644 Localization/Puppet/pt-BR/Main.strings delete mode 100644 Localization/Puppet/ru-RU/Main.strings delete mode 100644 Localization/Puppet/tr-TR/Main.strings delete mode 100644 Localization/Puppet/zh-CN/Main.strings delete mode 100644 Localization/Puppet/zh-TW/Main.strings delete mode 100644 Localization/Sasquatch/cs-CZ/Main.strings delete mode 100644 Localization/Sasquatch/de-DE/Main.strings delete mode 100644 Localization/Sasquatch/es-ES/Main.strings delete mode 100644 Localization/Sasquatch/fr-FR/Main.strings delete mode 100644 Localization/Sasquatch/it-IT/Main.strings delete mode 100644 Localization/Sasquatch/ja-JP/Main.strings delete mode 100644 Localization/Sasquatch/ko-KR/Main.strings delete mode 100644 Localization/Sasquatch/pl-PL/Main.strings delete mode 100644 Localization/Sasquatch/pt-BR/Main.strings delete mode 100644 Localization/Sasquatch/ru-RU/Main.strings delete mode 100644 Localization/Sasquatch/tr-TR/Main.strings delete mode 100644 Localization/Sasquatch/zh-CN/Main.strings delete mode 100644 Localization/Sasquatch/zh-TW/Main.strings diff --git a/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings b/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings index 53f25ebd88..a5bf0648c5 100644 --- a/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings +++ b/Localization/MobileCenterDistribute/zh-CN/MobileCenterDistribute.strings @@ -3,13 +3,13 @@ */ "MSDistributeUpdateNow" = "立即更新"; "MSDistributeAskMeInADay" = "一天内询问我"; -"MSDistributeViewReleaseNotes" = "查看发行说明"; +"MSDistributeViewReleaseNotes" = "查看发布说明"; "MSDistributeClose" = "关闭"; /* * Update dialog titles/messages */ "MSDistributeAppUpdateAvailable" = "可用的应用更新"; -"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "此应用的开发人员要求用户更新为 %@ %@ (%@)。"; +"MSDistributeAppUpdateAvailableMandatoryUpdateMessage" = "应用被要求更新为 %@ %@ (%@)。"; "MSDistributeAppUpdateAvailableOptionalUpdateMessage" = "%@ %@ (%@) 可供下载和安装。"; "MSDistributeInAppUpdatesAreDisabled" = "已禁用应用内更新。"; diff --git a/Localization/Puppet/cs-CZ/Main.strings b/Localization/Puppet/cs-CZ/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/cs-CZ/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/de-DE/Main.strings b/Localization/Puppet/de-DE/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/de-DE/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/es-ES/Main.strings b/Localization/Puppet/es-ES/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/es-ES/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/fr-FR/Main.strings b/Localization/Puppet/fr-FR/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/fr-FR/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/it-IT/Main.strings b/Localization/Puppet/it-IT/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/it-IT/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ja-JP/Main.strings b/Localization/Puppet/ja-JP/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/ja-JP/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ko-KR/Main.strings b/Localization/Puppet/ko-KR/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/ko-KR/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/pl-PL/Main.strings b/Localization/Puppet/pl-PL/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/pl-PL/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/pt-BR/Main.strings b/Localization/Puppet/pt-BR/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/pt-BR/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/ru-RU/Main.strings b/Localization/Puppet/ru-RU/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/ru-RU/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/tr-TR/Main.strings b/Localization/Puppet/tr-TR/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/tr-TR/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/zh-CN/Main.strings b/Localization/Puppet/zh-CN/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/zh-CN/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Puppet/zh-TW/Main.strings b/Localization/Puppet/zh-TW/Main.strings deleted file mode 100644 index d310fbae4c..0000000000 --- a/Localization/Puppet/zh-TW/Main.strings +++ /dev/null @@ -1,14 +0,0 @@ -/* - Main.strings - Puppet -*/ -"crash_alert_title" = "Sorry about that."; -"crash_alert_message" = "Would you like to send an anonymous report so we can fix the problem?"; -"crash_alert_do_not_send" = "Don't Send"; -"crash_alert_always_send" = "Always Send"; -"crash_alert_send" = "Send"; - -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/cs-CZ/Main.strings b/Localization/Sasquatch/cs-CZ/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/cs-CZ/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/de-DE/Main.strings b/Localization/Sasquatch/de-DE/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/de-DE/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/es-ES/Main.strings b/Localization/Sasquatch/es-ES/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/es-ES/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/fr-FR/Main.strings b/Localization/Sasquatch/fr-FR/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/fr-FR/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/it-IT/Main.strings b/Localization/Sasquatch/it-IT/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/it-IT/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ja-JP/Main.strings b/Localization/Sasquatch/ja-JP/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/ja-JP/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ko-KR/Main.strings b/Localization/Sasquatch/ko-KR/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/ko-KR/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/pl-PL/Main.strings b/Localization/Sasquatch/pl-PL/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/pl-PL/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/pt-BR/Main.strings b/Localization/Sasquatch/pt-BR/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/pt-BR/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/ru-RU/Main.strings b/Localization/Sasquatch/ru-RU/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/ru-RU/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/tr-TR/Main.strings b/Localization/Sasquatch/tr-TR/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/tr-TR/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/zh-CN/Main.strings b/Localization/Sasquatch/zh-CN/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/zh-CN/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; diff --git a/Localization/Sasquatch/zh-TW/Main.strings b/Localization/Sasquatch/zh-TW/Main.strings deleted file mode 100644 index 601d68d392..0000000000 --- a/Localization/Sasquatch/zh-TW/Main.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - Main.string.strings - Sasquatch -*/ -"distribute_alert_title" = "New update available!!!!"; -"distribute_alert_message" = "This is a customized dialog"; -"distribute_alert_yes" = "Yes"; -"distribute_alert_no" = "No"; From f4c0654bb77ce3311a33f6a7c7f2782449adc192 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 13:21:42 -0700 Subject: [PATCH 35/61] Revert removing watchOS from SasquatchSwift --- Sasquatch/Sasquatch.xcodeproj/project.pbxproj | 294 ++++++++++++++++++ .../Circular.imageset/Contents.json | 18 ++ .../Contents.json | 28 ++ .../Extra Large.imageset/Contents.json | 18 ++ .../Modular.imageset/Contents.json | 18 ++ .../Utilitarian.imageset/Contents.json | 18 ++ .../ExtensionDelegate.swift | 47 +++ .../SasquatchWatchSwift Extension/Info.plist | 36 +++ .../InterfaceController.swift | 23 ++ .../NotificationController.swift | 37 +++ .../PushNotificationPayload.apns | 18 ++ .../AppIcon.appiconset/Contents.json | 55 ++++ .../Base.lproj/Interface.storyboard | 39 +++ Sasquatch/SasquatchWatchSwift/Info.plist | 33 ++ 14 files changed, 682 insertions(+) create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift Extension/ExtensionDelegate.swift create mode 100644 Sasquatch/SasquatchWatchSwift Extension/Info.plist create mode 100644 Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift create mode 100644 Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift create mode 100644 Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns create mode 100644 Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard create mode 100644 Sasquatch/SasquatchWatchSwift/Info.plist diff --git a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj index 8e534ca3f8..83f37c8422 100644 --- a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj +++ b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj @@ -68,6 +68,14 @@ D31EF9441E9517B600450162 /* NotificationController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9431E9517B600450162 /* NotificationController.m */; }; D31EF9461E9517B600450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9451E9517B600450162 /* Assets.xcassets */; }; D31EF94A1E9517B600450162 /* SasquatchWatchObjC.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D31EF9291E9517B500450162 /* SasquatchWatchObjC.app */; }; + D31EF9581E9517C500450162 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9561E9517C500450162 /* Interface.storyboard */; }; + D31EF95A1E9517C500450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF9591E9517C500450162 /* Assets.xcassets */; }; + D31EF9611E9517C600450162 /* SasquatchWatchSwift Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + D31EF9681E9517C600450162 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9671E9517C600450162 /* InterfaceController.swift */; }; + D31EF96A1E9517C600450162 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF9691E9517C600450162 /* ExtensionDelegate.swift */; }; + D31EF96C1E9517C600450162 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31EF96B1E9517C600450162 /* NotificationController.swift */; }; + D31EF96E1E9517C600450162 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D31EF96D1E9517C600450162 /* Assets.xcassets */; }; + D31EF9721E9517C600450162 /* SasquatchWatchSwift.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */; }; F89D79091E93DA3A0094521F /* CrashLibIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; }; F89D790A1E93DA3A0094521F /* CrashLibIOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F89D790C1E93DA500094521F /* CrashLibIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; }; @@ -103,6 +111,20 @@ remoteGlobalIDString = D31EF9281E9517B500450162; remoteInfo = SasquatchWatchObjC; }; + D31EF9621E9517C600450162 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 84226C0A1E88FEFC00798417 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D31EF95F1E9517C600450162; + remoteInfo = "SasquatchWatchSwift Extension"; + }; + D31EF9701E9517C600450162 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 84226C0A1E88FEFC00798417 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D31EF9531E9517C500450162; + remoteInfo = SasquatchWatchSwift; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -117,6 +139,17 @@ name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; }; + D31EF9761E9517C600450162 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + D31EF9611E9517C600450162 /* SasquatchWatchSwift Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; D36AD6EE1E94FF6B003D34E7 /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -128,6 +161,17 @@ name = "Embed Watch Content"; runOnlyForDeploymentPostprocessing = 0; }; + D36AD7171E94FF98003D34E7 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + D31EF9721E9517C600450162 /* SasquatchWatchSwift.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; F89D790B1E93DA3B0094521F /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -213,6 +257,17 @@ D31EF9431E9517B600450162 /* NotificationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotificationController.m; sourceTree = ""; }; D31EF9451E9517B600450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; D31EF9471E9517B600450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SasquatchWatchSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D31EF9571E9517C500450162 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + D31EF9591E9517C500450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + D31EF95B1E9517C500450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SasquatchWatchSwift Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + D31EF9661E9517C600450162 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; + D31EF9671E9517C600450162 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; + D31EF9691E9517C600450162 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; + D31EF96B1E9517C600450162 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; + D31EF96D1E9517C600450162 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + D31EF96F1E9517C600450162 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F89D79081E93DA3A0094521F /* CrashLibIOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CrashLibIOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -257,6 +312,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31EF95D1E9517C600450162 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -291,6 +353,8 @@ 84226C811E8908CA00798417 /* SasquatchSwift */, D31EF92A1E9517B600450162 /* SasquatchWatchObjC */, D31EF9391E9517B600450162 /* SasquatchWatchObjC Extension */, + D31EF9551E9517C500450162 /* SasquatchWatchSwift */, + D31EF9641E9517C600450162 /* SasquatchWatchSwift Extension */, 5CD700E61EA4B74600FC5D12 /* SasquatchUITests */, 84226C131E88FEFC00798417 /* Products */, 84226D0F1E8921DE00798417 /* Frameworks */, @@ -304,6 +368,8 @@ 84226C801E8908C900798417 /* SasquatchSwift.app */, D31EF9291E9517B500450162 /* SasquatchWatchObjC.app */, D31EF9351E9517B600450162 /* SasquatchWatchObjC Extension.appex */, + D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */, + D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */, 5CD700E51EA4B74500FC5D12 /* SasquatchSwiftUITests.xctest */, 5CE258871EA5F62400DA8FB9 /* SasquatchObjCUITests.xctest */, ); @@ -456,6 +522,37 @@ name = "Supporting Files"; sourceTree = ""; }; + D31EF9551E9517C500450162 /* SasquatchWatchSwift */ = { + isa = PBXGroup; + children = ( + D31EF9561E9517C500450162 /* Interface.storyboard */, + D31EF9591E9517C500450162 /* Assets.xcassets */, + D31EF95B1E9517C500450162 /* Info.plist */, + ); + path = SasquatchWatchSwift; + sourceTree = ""; + }; + D31EF9641E9517C600450162 /* SasquatchWatchSwift Extension */ = { + isa = PBXGroup; + children = ( + D31EF9671E9517C600450162 /* InterfaceController.swift */, + D31EF9691E9517C600450162 /* ExtensionDelegate.swift */, + D31EF96B1E9517C600450162 /* NotificationController.swift */, + D31EF9651E9517C600450162 /* Supporting Files */, + ); + path = "SasquatchWatchSwift Extension"; + sourceTree = ""; + }; + D31EF9651E9517C600450162 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D31EF96D1E9517C600450162 /* Assets.xcassets */, + D31EF96F1E9517C600450162 /* Info.plist */, + D31EF9661E9517C600450162 /* PushNotificationPayload.apns */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -522,10 +619,12 @@ 84226C7D1E8908C900798417 /* Frameworks */, 84226C7E1E8908C900798417 /* Resources */, F89D790E1E93DA500094521F /* Embed Frameworks */, + D36AD7171E94FF98003D34E7 /* Embed Watch Content */, ); buildRules = ( ); dependencies = ( + D31EF9711E9517C600450162 /* PBXTargetDependency */, ); name = SasquatchSwift; productName = SasquatchSwift; @@ -566,6 +665,40 @@ productReference = D31EF9351E9517B600450162 /* SasquatchWatchObjC Extension.appex */; productType = "com.apple.product-type.watchkit2-extension"; }; + D31EF9531E9517C500450162 /* SasquatchWatchSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = D31EF9771E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift" */; + buildPhases = ( + D31EF9521E9517C500450162 /* Resources */, + D31EF9761E9517C600450162 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + D31EF9631E9517C600450162 /* PBXTargetDependency */, + ); + name = SasquatchWatchSwift; + productName = SasquatchWatchSwift; + productReference = D31EF9541E9517C500450162 /* SasquatchWatchSwift.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = D31EF9731E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift Extension" */; + buildPhases = ( + D31EF95C1E9517C600450162 /* Sources */, + D31EF95D1E9517C600450162 /* Frameworks */, + D31EF95E1E9517C600450162 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SasquatchWatchSwift Extension"; + productName = "SasquatchWatchSwift Extension"; + productReference = D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -624,6 +757,16 @@ DevelopmentTeam = L4RARDNZ2Y; ProvisioningStyle = Manual; }; + D31EF9531E9517C500450162 = { + CreatedOnToolsVersion = 8.3; + DevelopmentTeam = L4RARDNZ2Y; + ProvisioningStyle = Manual; + }; + D31EF95F1E9517C600450162 = { + CreatedOnToolsVersion = 8.3; + DevelopmentTeam = L4RARDNZ2Y; + ProvisioningStyle = Manual; + }; }; }; buildConfigurationList = 84226C0D1E88FEFC00798417 /* Build configuration list for PBXProject "Sasquatch" */; @@ -643,6 +786,8 @@ D31EF9281E9517B500450162 /* SasquatchWatchObjC */, D31EF9341E9517B600450162 /* SasquatchWatchObjC Extension */, 84226C7F1E8908C900798417 /* SasquatchSwift */, + D31EF9531E9517C500450162 /* SasquatchWatchSwift */, + D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */, 5CD700E41EA4B74500FC5D12 /* SasquatchSwiftUITests */, 5CE258861EA5F62400DA8FB9 /* SasquatchObjCUITests */, ); @@ -703,6 +848,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31EF9521E9517C500450162 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31EF95A1E9517C500450162 /* Assets.xcassets in Resources */, + D31EF9581E9517C500450162 /* Interface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D31EF95E1E9517C600450162 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31EF96E1E9517C600450162 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -779,6 +941,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31EF95C1E9517C600450162 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31EF96C1E9517C600450162 /* NotificationController.swift in Sources */, + D31EF96A1E9517C600450162 /* ExtensionDelegate.swift in Sources */, + D31EF9681E9517C600450162 /* InterfaceController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -802,6 +974,16 @@ target = D31EF9281E9517B500450162 /* SasquatchWatchObjC */; targetProxy = D31EF9481E9517B600450162 /* PBXContainerItemProxy */; }; + D31EF9631E9517C600450162 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */; + targetProxy = D31EF9621E9517C600450162 /* PBXContainerItemProxy */; + }; + D31EF9711E9517C600450162 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D31EF9531E9517C500450162 /* SasquatchWatchSwift */; + targetProxy = D31EF9701E9517C600450162 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -821,6 +1003,14 @@ name = Interface.storyboard; sourceTree = ""; }; + D31EF9561E9517C500450162 /* Interface.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D31EF9571E9517C500450162 /* Base */, + ); + name = Interface.storyboard; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -1157,6 +1347,92 @@ }; name = Release; }; + D31EF9741E9517C600450162 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + INFOPLIST_FILE = "SasquatchWatchSwift Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + PROVISIONING_PROFILE = "f8916a7a-bdf2-43a9-aa3a-ed5132cf2d05"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift Extension"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.2; + }; + name = Debug; + }; + D31EF9751E9517C600450162 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + INFOPLIST_FILE = "SasquatchWatchSwift Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + PROVISIONING_PROFILE = "f8916a7a-bdf2-43a9-aa3a-ed5132cf2d05"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift Extension"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.2; + }; + name = Release; + }; + D31EF9781E9517C600450162 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + IBSC_MODULE = SasquatchWatchSwift_Extension; + INFOPLIST_FILE = SasquatchWatchSwift/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = "78baa111-ff48-4e7c-b27c-d6d6b51f325d"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift App"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.2; + }; + name = Debug; + }; + D31EF9791E9517C600450162 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + IBSC_MODULE = SasquatchWatchSwift_Extension; + INFOPLIST_FILE = SasquatchWatchSwift/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchswift.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = "78baa111-ff48-4e7c-b27c-d6d6b51f325d"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch Watch Swift App"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.2; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1223,6 +1499,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D31EF9731E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D31EF9741E9517C600450162 /* Debug */, + D31EF9751E9517C600450162 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D31EF9771E9517C600450162 /* Build configuration list for PBXNativeTarget "SasquatchWatchSwift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D31EF9781E9517C600450162 /* Debug */, + D31EF9791E9517C600450162 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 84226C0A1E88FEFC00798417 /* Project object */; diff --git a/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json new file mode 100644 index 0000000000..9be9adbf7d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "screenWidth" : "{130,145}", + "scale" : "2x" + }, + { + "idiom" : "watch", + "screenWidth" : "{146,165}", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Contents.json b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Contents.json new file mode 100644 index 0000000000..2eca9a1f46 --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Contents.json @@ -0,0 +1,28 @@ +{ + "assets" : [ + { + "idiom" : "watch", + "filename" : "Circular.imageset", + "role" : "circular" + }, + { + "idiom" : "watch", + "filename" : "Extra Large.imageset", + "role" : "extra-large" + }, + { + "idiom" : "watch", + "filename" : "Modular.imageset", + "role" : "modular" + }, + { + "idiom" : "watch", + "filename" : "Utilitarian.imageset", + "role" : "utilitarian" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json new file mode 100644 index 0000000000..9be9adbf7d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "screenWidth" : "{130,145}", + "scale" : "2x" + }, + { + "idiom" : "watch", + "screenWidth" : "{146,165}", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json new file mode 100644 index 0000000000..9be9adbf7d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "screenWidth" : "{130,145}", + "scale" : "2x" + }, + { + "idiom" : "watch", + "screenWidth" : "{146,165}", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json new file mode 100644 index 0000000000..9be9adbf7d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "screenWidth" : "{130,145}", + "scale" : "2x" + }, + { + "idiom" : "watch", + "screenWidth" : "{146,165}", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sasquatch/SasquatchWatchSwift Extension/ExtensionDelegate.swift b/Sasquatch/SasquatchWatchSwift Extension/ExtensionDelegate.swift new file mode 100644 index 0000000000..28cd05f3ae --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/ExtensionDelegate.swift @@ -0,0 +1,47 @@ +import WatchKit + +class ExtensionDelegate : NSObject, WKExtensionDelegate { + + func applicationDidFinishLaunching() { + } + + func applicationDidBecomeActive() { + } + + func applicationWillResignActive() { + } + + func handle(_ backgroundTasks : Set) { + for + task in backgroundTasks { + + // Use a switch statement to check the task type + switch + task { + case let backgroundTask as WKApplicationRefreshBackgroundTask: + + // Be sure to complete the background task once you’re done. + backgroundTask + .setTaskCompleted() case let snapshotTask as WKSnapshotRefreshBackgroundTask : + + // Snapshot tasks have a unique completion call, make sure to set your expiration date + snapshotTask + .setTaskCompleted(restoredDefaultState + : true, estimatedSnapshotExpiration + : Date.distantFuture, userInfo + : nil) case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask : + + // Be sure to complete the connectivity task once you’re done. + connectivityTask + .setTaskCompleted() case let urlSessionTask as WKURLSessionRefreshBackgroundTask : + + // Be sure to complete the URL session task once you’re done. + urlSessionTask + .setTaskCompleted() default : + + // make sure to complete unhandled task types + task.setTaskCompleted() + } + } + } +} diff --git a/Sasquatch/SasquatchWatchSwift Extension/Info.plist b/Sasquatch/SasquatchWatchSwift Extension/Info.plist new file mode 100644 index 0000000000..b727411ce5 --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + SasquatchWatchSwift Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + XPC! + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + NSExtension + + NSExtensionAttributes + + WKAppBundleIdentifier + com.microsoft.azure.mobile.sasquatchswift.watchkitapp + + NSExtensionPointIdentifier + com.apple.watchkit + + WKExtensionDelegateClassName + $(PRODUCT_MODULE_NAME).ExtensionDelegate + + diff --git a/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift b/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift new file mode 100644 index 0000000000..dca17b925e --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/InterfaceController.swift @@ -0,0 +1,23 @@ +import Foundation +import WatchKit + +class InterfaceController: WKInterfaceController { + + override func awake(withContext context: Any?) { + super.awake(withContext: context) + + // Configure interface objects here. + } + + override func willActivate() { + + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } +} diff --git a/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift b/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift new file mode 100644 index 0000000000..48f0b9486d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/NotificationController.swift @@ -0,0 +1,37 @@ +import Foundation +import UserNotifications +import WatchKit + +class NotificationController: WKUserNotificationInterfaceController { + + override init() { + + // Initialize variables here. + super.init() + + // Configure interface objects here. + } + + override func willActivate() { + + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + + /* + override func didReceive(_ notification: UNNotification, withCompletion completionHandler: @escaping (WKUserNotificationInterfaceType) -> Swift.Void) { + // This method is called when a notification needs to be presented. + // Implement it if you use a dynamic notification interface. + // Populate your dynamic notification interface as quickly as possible. + // + // After populating your dynamic notification interface call the completion block. + completionHandler(.custom) + } + */ +} diff --git a/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns b/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns new file mode 100644 index 0000000000..e793a02b3c --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift Extension/PushNotificationPayload.apns @@ -0,0 +1,18 @@ +{ + "aps": { + "alert": { + "body": "Test message", + "title": "Optional title" + }, + "category": "myCategory" + }, + + "WatchKit Simulator Actions": [ + { + "title": "First Button", + "identifier": "firstButtonAction" + } + ], + + "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App." +} diff --git a/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..dd221ba54d --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,55 @@ +{ + "images" : [ + { + "size" : "24x24", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard b/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard new file mode 100644 index 0000000000..79a2d75f3e --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift/Base.lproj/Interface.storyboard @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sasquatch/SasquatchWatchSwift/Info.plist b/Sasquatch/SasquatchWatchSwift/Info.plist new file mode 100644 index 0000000000..60b533944e --- /dev/null +++ b/Sasquatch/SasquatchWatchSwift/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + SasquatchSwift + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + WKCompanionAppBundleIdentifier + com.microsoft.azure.mobile.sasquatchswift + WKWatchKitApp + + + From d823493be31b5913c95026f1b238b728ffc57e2d Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 13:28:33 -0700 Subject: [PATCH 36/61] Add a script to update latest zip file in Azure storage --- bitrise/publish.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bitrise/publish.sh b/bitrise/publish.sh index 29524ec19a..6b19d968e2 100755 --- a/bitrise/publish.sh +++ b/bitrise/publish.sh @@ -149,11 +149,14 @@ fi ## III. Upload binary cd $BITRISE_DEPLOY_DIR # This is required, file upload via curl doesn't properly work with absolute path echo "Upload binaries" + +# Replace the latest binary in Azure Storage +echo "Y" | azure storage blob upload $BINARY_FILE sdk + +# Upload binary to Azure Storage upload_url="$(echo $REQUEST_UPLOAD_URL_TEMPLATE | sed 's/{id}/'$id'/g')" filename=$(echo $BINARY_FILE | sed 's/.zip/-'${publish_version}'.zip/g') mv $BINARY_FILE $filename - -# Upload binary to Azure Storage resp="$(echo "N" | azure storage blob upload ${filename} sdk | grep overwrite)" if [ "$resp" ]; then echo "${filename} already exists" From ad0e8f26447256d580b3efae9becb6da7fca88d2 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 13:29:04 -0700 Subject: [PATCH 37/61] Add a MobileCenter Build dedicated target --- Sasquatch/Sasquatch.xcodeproj/project.pbxproj | 160 ++++++++++++++++++ .../SasquatchObjCMobileCenterBuild.xcscheme | 107 ++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjCMobileCenterBuild.xcscheme diff --git a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj index 83f37c8422..8dab5f4d13 100644 --- a/Sasquatch/Sasquatch.xcodeproj/project.pbxproj +++ b/Sasquatch/Sasquatch.xcodeproj/project.pbxproj @@ -7,6 +7,32 @@ objects = { /* Begin PBXBuildFile section */ + 044B0BA51F7D8B000023D0A9 /* MSCrashesDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D63FF61E8BA838004C9F86 /* MSCrashesDetailViewController.swift */; }; + 044B0BA61F7D8B000023D0A9 /* MSAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84226D0B1E891FBA00798417 /* MSAlertController.m */; }; + 044B0BA71F7D8B000023D0A9 /* MSPushViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803CFF261F6A7E1D0072B9BA /* MSPushViewController.swift */; }; + 044B0BA81F7D8B000023D0A9 /* MobileCenterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A3E711E8A9922008711CB /* MobileCenterProtocol.swift */; }; + 044B0BA91F7D8B000023D0A9 /* MSMainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 845964AC1E8A7E9700BABA51 /* MSMainViewController.swift */; }; + 044B0BAA1F7D8B000023D0A9 /* MSAnalyticsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A0FF681E8A87C9000E7A28 /* MSAnalyticsViewController.swift */; }; + 044B0BAB1F7D8B000023D0A9 /* MobileCenterDelegateObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 84226D411E8953F100798417 /* MobileCenterDelegateObjC.m */; }; + 044B0BAC1F7D8B000023D0A9 /* MSCrashesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A0FF651E8A87B4000E7A28 /* MSCrashesViewController.swift */; }; + 044B0BAD1F7D8B000023D0A9 /* MSPropertyViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 808A11011EF3130A00DFD41B /* MSPropertyViewCell.m */; }; + 044B0BAE1F7D8B000023D0A9 /* MSPropertiesTableDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 808A10FF1EF3130A00DFD41B /* MSPropertiesTableDataSource.m */; }; + 044B0BAF1F7D8B000023D0A9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84226C4D1E88FF4A00798417 /* AppDelegate.m */; }; + 044B0BB01F7D8B000023D0A9 /* MSCustomPropertiesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B36CE11EEF49B700230341 /* MSCustomPropertiesViewController.swift */; }; + 044B0BB11F7D8B000023D0A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84226C4A1E88FF4A00798417 /* main.m */; }; + 044B0BB21F7D8B000023D0A9 /* MSDistributeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A0FF6B1E8A87E1000E7A28 /* MSDistributeViewController.swift */; }; + 044B0BB31F7D8B000023D0A9 /* MobileCenterDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84226D3A1E8937FF00798417 /* MobileCenterDelegate.swift */; }; + 044B0BB51F7D8B000023D0A9 /* CrashLibIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; }; + 044B0BB61F7D8B000023D0A9 /* MobileCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226D2E1E89301A00798417 /* MobileCenter.framework */; }; + 044B0BB71F7D8B000023D0A9 /* MobileCenterAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226D2F1E89301B00798417 /* MobileCenterAnalytics.framework */; }; + 044B0BB81F7D8B000023D0A9 /* MobileCenterCrashes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226D301E89301B00798417 /* MobileCenterCrashes.framework */; }; + 044B0BB91F7D8B000023D0A9 /* MobileCenterDistribute.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226D311E89301B00798417 /* MobileCenterDistribute.framework */; }; + 044B0BBA1F7D8B000023D0A9 /* MobileCenterPush.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 046790411E8DA7D80033FDEC /* MobileCenterPush.framework */; }; + 044B0BBC1F7D8B000023D0A9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84226C551E88FF4A00798417 /* Assets.xcassets */; }; + 044B0BBD1F7D8B000023D0A9 /* Main.strings in Resources */ = {isa = PBXBuildFile; fileRef = 047D13771EAFD77E00D699BA /* Main.strings */; }; + 044B0BBE1F7D8B000023D0A9 /* MobileCenterDistributeResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 047D13711EAFBDBE00D699BA /* MobileCenterDistributeResources.bundle */; }; + 044B0BBF1F7D8B000023D0A9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 845964A91E8A7E6600BABA51 /* Main.storyboard */; }; + 044B0BC11F7D8B000023D0A9 /* CrashLibIOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F89D79081E93DA3A0094521F /* CrashLibIOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 046790421E8DA7D80033FDEC /* MobileCenterPush.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 046790411E8DA7D80033FDEC /* MobileCenterPush.framework */; }; 046790431E8DA7E90033FDEC /* MobileCenterPush.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 046790411E8DA7D80033FDEC /* MobileCenterPush.framework */; }; 047D13721EAFBDBE00D699BA /* MobileCenterDistributeResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 047D13711EAFBDBE00D699BA /* MobileCenterDistributeResources.bundle */; }; @@ -128,6 +154,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + 044B0BC01F7D8B000023D0A9 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 044B0BC11F7D8B000023D0A9 /* CrashLibIOS.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; D31EF94E1E9517B600450162 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -197,6 +234,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 044B0BC71F7D8B000023D0A9 /* SasquatchObjCMobileCenterBuild.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SasquatchObjCMobileCenterBuild.app; sourceTree = BUILT_PRODUCTS_DIR; }; 046790411E8DA7D80033FDEC /* MobileCenterPush.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCenterPush.framework; path = "../MobileCenter-SDK-Apple/iOS/MobileCenterPush.framework"; sourceTree = ""; }; 046790441E8DA8D50033FDEC /* SasquatchSwift.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SasquatchSwift.entitlements; sourceTree = ""; }; 046790451E8DA8DD0033FDEC /* SasquatchObjC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SasquatchObjC.entitlements; sourceTree = ""; }; @@ -272,6 +310,19 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 044B0BB41F7D8B000023D0A9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 044B0BB51F7D8B000023D0A9 /* CrashLibIOS.framework in Frameworks */, + 044B0BB61F7D8B000023D0A9 /* MobileCenter.framework in Frameworks */, + 044B0BB71F7D8B000023D0A9 /* MobileCenterAnalytics.framework in Frameworks */, + 044B0BB81F7D8B000023D0A9 /* MobileCenterCrashes.framework in Frameworks */, + 044B0BB91F7D8B000023D0A9 /* MobileCenterDistribute.framework in Frameworks */, + 044B0BBA1F7D8B000023D0A9 /* MobileCenterPush.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5CE258841EA5F62400DA8FB9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -372,6 +423,7 @@ D31EF9601E9517C600450162 /* SasquatchWatchSwift Extension.appex */, 5CD700E51EA4B74500FC5D12 /* SasquatchSwiftUITests.xctest */, 5CE258871EA5F62400DA8FB9 /* SasquatchObjCUITests.xctest */, + 044B0BC71F7D8B000023D0A9 /* SasquatchObjCMobileCenterBuild.app */, ); name = Products; sourceTree = ""; @@ -556,6 +608,24 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 044B0BA11F7D8B000023D0A9 /* SasquatchObjCMobileCenterBuild */ = { + isa = PBXNativeTarget; + buildConfigurationList = 044B0BC41F7D8B000023D0A9 /* Build configuration list for PBXNativeTarget "SasquatchObjCMobileCenterBuild" */; + buildPhases = ( + 044B0BA41F7D8B000023D0A9 /* Sources */, + 044B0BB41F7D8B000023D0A9 /* Frameworks */, + 044B0BBB1F7D8B000023D0A9 /* Resources */, + 044B0BC01F7D8B000023D0A9 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SasquatchObjCMobileCenterBuild; + productName = SasquatchObjC; + productReference = 044B0BC71F7D8B000023D0A9 /* SasquatchObjCMobileCenterBuild.app */; + productType = "com.apple.product-type.application"; + }; 5CD700E41EA4B74500FC5D12 /* SasquatchSwiftUITests */ = { isa = PBXNativeTarget; buildConfigurationList = 5CD700EE1EA4B74600FC5D12 /* Build configuration list for PBXNativeTarget "SasquatchSwiftUITests" */; @@ -709,6 +779,9 @@ LastUpgradeCheck = 0820; ORGANIZATIONNAME = "Microsoft Corp."; TargetAttributes = { + 044B0BA11F7D8B000023D0A9 = { + DevelopmentTeam = L4RARDNZ2Y; + }; 5CD700E41EA4B74500FC5D12 = { CreatedOnToolsVersion = 8.3.1; DevelopmentTeam = L4RARDNZ2Y; @@ -790,11 +863,23 @@ D31EF95F1E9517C600450162 /* SasquatchWatchSwift Extension */, 5CD700E41EA4B74500FC5D12 /* SasquatchSwiftUITests */, 5CE258861EA5F62400DA8FB9 /* SasquatchObjCUITests */, + 044B0BA11F7D8B000023D0A9 /* SasquatchObjCMobileCenterBuild */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 044B0BBB1F7D8B000023D0A9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 044B0BBC1F7D8B000023D0A9 /* Assets.xcassets in Resources */, + 044B0BBD1F7D8B000023D0A9 /* Main.strings in Resources */, + 044B0BBE1F7D8B000023D0A9 /* MobileCenterDistributeResources.bundle in Resources */, + 044B0BBF1F7D8B000023D0A9 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5CD700E31EA4B74500FC5D12 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -868,6 +953,28 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 044B0BA41F7D8B000023D0A9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 044B0BA51F7D8B000023D0A9 /* MSCrashesDetailViewController.swift in Sources */, + 044B0BA61F7D8B000023D0A9 /* MSAlertController.m in Sources */, + 044B0BA71F7D8B000023D0A9 /* MSPushViewController.swift in Sources */, + 044B0BA81F7D8B000023D0A9 /* MobileCenterProtocol.swift in Sources */, + 044B0BA91F7D8B000023D0A9 /* MSMainViewController.swift in Sources */, + 044B0BAA1F7D8B000023D0A9 /* MSAnalyticsViewController.swift in Sources */, + 044B0BAB1F7D8B000023D0A9 /* MobileCenterDelegateObjC.m in Sources */, + 044B0BAC1F7D8B000023D0A9 /* MSCrashesViewController.swift in Sources */, + 044B0BAD1F7D8B000023D0A9 /* MSPropertyViewCell.m in Sources */, + 044B0BAE1F7D8B000023D0A9 /* MSPropertiesTableDataSource.m in Sources */, + 044B0BAF1F7D8B000023D0A9 /* AppDelegate.m in Sources */, + 044B0BB01F7D8B000023D0A9 /* MSCustomPropertiesViewController.swift in Sources */, + 044B0BB11F7D8B000023D0A9 /* main.m in Sources */, + 044B0BB21F7D8B000023D0A9 /* MSDistributeViewController.swift in Sources */, + 044B0BB31F7D8B000023D0A9 /* MobileCenterDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5CD700E11EA4B74500FC5D12 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1014,6 +1121,50 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 044B0BC51F7D8B000023D0A9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = SasquatchObjC/SasquatchObjC.entitlements; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEFINES_MODULE = NO; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../CrashLib/CrashLib"; + INFOPLIST_FILE = SasquatchObjC/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchobjc; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = "d8be61aa-f111-41ee-b5c9-e2e9f07b7b25"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch ObjC App"; + SWIFT_OBJC_BRIDGING_HEADER = "Sasquatch/Sasquatch-Bridging-Header.h"; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "SasquatchObjC-Swift.h"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 044B0BC61F7D8B000023D0A9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = SasquatchObjC/SasquatchObjC.entitlements; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEFINES_MODULE = NO; + DEVELOPMENT_TEAM = L4RARDNZ2Y; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../CrashLib/CrashLib"; + INFOPLIST_FILE = SasquatchObjC/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.azure.mobile.sasquatchobjc; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = "d8be61aa-f111-41ee-b5c9-e2e9f07b7b25"; + PROVISIONING_PROFILE_SPECIFIER = "MobileCenter Sasquatch ObjC App"; + SWIFT_OBJC_BRIDGING_HEADER = "Sasquatch/Sasquatch-Bridging-Header.h"; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "SasquatchObjC-Swift.h"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; 5CD700EC1EA4B74600FC5D12 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1436,6 +1587,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 044B0BC41F7D8B000023D0A9 /* Build configuration list for PBXNativeTarget "SasquatchObjCMobileCenterBuild" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 044B0BC51F7D8B000023D0A9 /* Debug */, + 044B0BC61F7D8B000023D0A9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 5CD700EE1EA4B74600FC5D12 /* Build configuration list for PBXNativeTarget "SasquatchSwiftUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjCMobileCenterBuild.xcscheme b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjCMobileCenterBuild.xcscheme new file mode 100644 index 0000000000..f548c06ec1 --- /dev/null +++ b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjCMobileCenterBuild.xcscheme @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 3696bc97180aa3d9f01211ab20d7f748ebd8a651 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 13:29:22 -0700 Subject: [PATCH 38/61] Add post clone script for MobileCenter Build --- mobile-center-post-clone.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 mobile-center-post-clone.sh diff --git a/mobile-center-post-clone.sh b/mobile-center-post-clone.sh new file mode 100644 index 0000000000..d3b7f4a8cc --- /dev/null +++ b/mobile-center-post-clone.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# Download Mobile Center SDK frameworks +curl -O https://mobilecentersdkdev.blob.core.windows.net/sdk/MobileCenter-SDK-Apple.zip + +# Unzip files to framework location +unzip MobileCenter-SDK-Apple.zip From 2acac91c5b84d4760f34922ec56a92a540a8609d Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 28 Sep 2017 14:14:03 -0700 Subject: [PATCH 39/61] Changing loc script to run in develop --- Localization/TouchDownCheckinScript.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index e64dfc1ae7..3036e783c8 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -23,7 +23,7 @@ $ProjectInfo = "mobile-center-sdks-loc-file-list.csv" $Guid = [GUID]::NewGuid() $TempLocBranch = "TouchDownCheckin_" + $Guid $repoPath = $SrcRoot -$DefaultRepoBranch = "localization" +$DefaultRepoBranch = "develop" $teamId = "272" #ID for iOS $git = "git" From 4e68d0b4f73446012bac9f502bd68eadf859eb5f Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 28 Sep 2017 16:18:26 -0700 Subject: [PATCH 40/61] formatting fixes --- Localization/TouchDownCheckinScript.ps1 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index 3036e783c8..5de523699c 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -67,11 +67,11 @@ Function InitializeRepoForCheckin Function CheckinFilesIntoRepo { #Commit the changes - $Argument = 'commit -m "Latest localized files from touchdown"' + $Argument = 'commit -m "Latest localized files from touchdown"' ProcessStart $git $Argument $repoPath - #Push the Changes to the git server you still need to merge the changes - $Argument = "push -u origin " + $TempLocBranch + #Push the Changes to the git server you still need to merge the changes + $Argument = "push origin " + $TempLocBranch ProcessStart $git $Argument $repoPath } @@ -229,9 +229,11 @@ Function RefreshTDFiles binplace $UnzipFolderLocation $relativeFilePath $TargetPath $LanguageSet + write-host "-----ADD FILES TO REPO-----" AddFiletoRepo $TargetPath $LanguageSet } + write-host "-----CHECK IN FILES TO REPO-----" CheckinFilesIntoRepo } From 0c81ba72ac4db77efd653b3d5841f4e5ab3f4598 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 17:33:59 -0700 Subject: [PATCH 41/61] Not suspend/resume core on macOS when an application is hidden by other application(s) --- MobileCenter/MobileCenter/MSMobileCenter.m | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/MobileCenter/MobileCenter/MSMobileCenter.m b/MobileCenter/MobileCenter/MSMobileCenter.m index dee487ba85..9d2b95ef90 100644 --- a/MobileCenter/MobileCenter/MSMobileCenter.m +++ b/MobileCenter/MobileCenter/MSMobileCenter.m @@ -339,23 +339,16 @@ - (void)applyPipelineEnabledState:(BOOL)isEnabled { // Hookup to application life-cycle events if (isEnabled) { - +#if !TARGET_OS_OSX [MS_NOTIFICATION_CENTER addObserver:self selector:@selector(applicationDidEnterBackground) -#if TARGET_OS_OSX - name:NSApplicationDidHideNotification -#else name:UIApplicationDidEnterBackgroundNotification -#endif object:nil]; [MS_NOTIFICATION_CENTER addObserver:self selector:@selector(applicationWillEnterForeground) -#if TARGET_OS_OSX - name:NSApplicationDidUnhideNotification -#else name:UIApplicationWillEnterForegroundNotification -#endif object:nil]; +#endif } else { // Clean device history in case we are disabled. @@ -435,6 +428,7 @@ + (void)resetSharedInstance { #pragma mark - Application life cycle +#if !TARGET_OS_OSX /** * The application will go to the foreground. */ @@ -448,5 +442,6 @@ - (void)applicationWillEnterForeground { - (void)applicationDidEnterBackground { [self.logManager suspend]; } +#endif @end From f169207ebe57be0614e5cbdd2a7440aaaef935cd Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Thu, 28 Sep 2017 17:41:35 -0700 Subject: [PATCH 42/61] Adding conditional auth to git push --- Localization/TouchDownCheckinScript.ps1 | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index 5de523699c..aeea06b330 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -1,4 +1,4 @@ -param([String]$SrcRoot="undefined") +param([String]$SrcRoot="undefined",[String]$AuthToken="") # This script will upload the files which need to be localized to the Touchdown servers and they will automatically be translated by Bing translate @@ -71,8 +71,16 @@ Function CheckinFilesIntoRepo ProcessStart $git $Argument $repoPath #Push the Changes to the git server you still need to merge the changes - $Argument = "push origin " + $TempLocBranch - ProcessStart $git $Argument $repoPath + if ($AuthToken -eq "") { + #Unauthorized + $Argument = "push origin " + $TempLocBranch + ProcessStart $git $Argument $repoPath + } + else { + #Authorized + $Argument = "push origin " + $TempLocBranch + " -c http.extraheader=`"Authorization: Bearer " + $AuthToken + "`"" + ProcessStart $git $Argument $repoPath + } } Class Cl_Culture From ba45801b12f37851667a48dd945e5943a510b381 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Thu, 28 Sep 2017 17:48:43 -0700 Subject: [PATCH 43/61] Change unit test not to test application background/foreground changes --- MobileCenter/MobileCenterTests/MSMobileCenterTests.m | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m index b1990f9476..6dd5cf6a8a 100644 --- a/MobileCenter/MobileCenterTests/MSMobileCenterTests.m +++ b/MobileCenter/MobileCenterTests/MSMobileCenterTests.m @@ -250,6 +250,7 @@ - (void)testSortingServicesWorks { XCTAssertTrue([sorted[1] initializationPriority] == MSInitializationPriorityDefault); } +#if !TARGET_OS_OSX - (void)testAppIsBackgrounded { // If @@ -259,11 +260,7 @@ - (void)testAppIsBackgrounded { // When [[NSNotificationCenter defaultCenter] -#if TARGET_OS_OSX - postNotificationName:NSApplicationDidHideNotification -#else postNotificationName:UIApplicationDidEnterBackgroundNotification -#endif object:self.sut]; // Then OCMVerify([logManager suspend]); @@ -278,15 +275,12 @@ - (void)testAppIsForegrounded { // When [[NSNotificationCenter defaultCenter] -#if TARGET_OS_OSX - postNotificationName:NSApplicationDidUnhideNotification -#else postNotificationName:UIApplicationWillEnterForegroundNotification -#endif object:self.sut]; // Then OCMVerify([logManager resume]); } +#endif @end From 2411a9b48b9b8e2fc4eea4b50724290ca39bb2bc Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Fri, 29 Sep 2017 12:06:50 -0700 Subject: [PATCH 44/61] Moving -c argument to git --- Localization/LocCleanup.sh | 3 +-- Localization/TouchDownCheckinScript.ps1 | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Localization/LocCleanup.sh b/Localization/LocCleanup.sh index cea36b480a..f493e532b3 100644 --- a/Localization/LocCleanup.sh +++ b/Localization/LocCleanup.sh @@ -1,3 +1,2 @@ - -git branch -D `git branch | grep -E 'TouchDown*'` +git branch -D `git branch | grep -E 'TouchDown*'` git branch -r | awk -F/ '/\/TouchDown/{print $2}' | xargs -I {} git push origin :{} \ No newline at end of file diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index aeea06b330..6dfdd085f2 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -78,7 +78,7 @@ Function CheckinFilesIntoRepo } else { #Authorized - $Argument = "push origin " + $TempLocBranch + " -c http.extraheader=`"Authorization: Bearer " + $AuthToken + "`"" + $Argument = "-c http.extraheader=`"Authorization: Bearer " + $AuthToken + "`" push origin " + $TempLocBranch ProcessStart $git $Argument $repoPath } } From 898ddb34ef4b409823a300a765c2d5126ec535bb Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Fri, 29 Sep 2017 12:34:19 -0700 Subject: [PATCH 45/61] Fix CLANG_MODULES_AUTOLINK configuration for framework targets --- Config/Framework.xcconfig | 1 - .../MobileCenter.xcodeproj/project.pbxproj | 24 +++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 24 +++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 24 +++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 10 +++----- .../Support/iOS Framework.xcconfig | 2 -- .../project.pbxproj | 16 +++++-------- .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- 18 files changed, 36 insertions(+), 87 deletions(-) delete mode 100644 Config/Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/iOS Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/macOS Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig diff --git a/Config/Framework.xcconfig b/Config/Framework.xcconfig deleted file mode 100644 index 2fe9ffec93..0000000000 --- a/Config/Framework.xcconfig +++ /dev/null @@ -1 +0,0 @@ -CLANG_MODULES_AUTOLINK = NO diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 40f31addaf..078dbc42c5 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -559,9 +559,6 @@ 043120701EE0BCC4007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043120711EE0BCC4007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; 043120DA1EE0BCF9007054C5 /* libMobileCenter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenter.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF2B1F3B864600C8E338 /* MobileCenter.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenter.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 045660FA1D99EEEB002F7055 /* MSLogWithPropertiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSLogWithPropertiesTests.m; sourceTree = ""; }; 045BC3161E3FD88600B6C960 /* MSKeychainUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSKeychainUtil.m; sourceTree = ""; }; @@ -1012,13 +1009,10 @@ 6E0401841D1CAD810051BCFA /* MobileCenter Debug.xcconfig */, 0469D1B11F4DF89A00A43A8E /* MobileCenter Release.xcconfig */, 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */, - 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */, 0485AFEE1EAAAD0000C10CAF /* iOS.modulemap */, 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */, - 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */, 0485AFEC1EAAAC3B00C10CAF /* macOS.modulemap */, 043120711EE0BCC4007054C5 /* tvOS.xcconfig */, - 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */, 043120701EE0BCC4007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1620,7 +1614,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 0485AFE71EAA937000C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1633,7 +1627,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 04FD114F1EF2F5F0000C5A5C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1672,7 +1666,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 6E6BFC351D234FBF00DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1960,14 +1954,14 @@ }; 0431214C1EE0BFC7007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 0431214D1EE0BFC7007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -2016,14 +2010,14 @@ }; 0485AFE91EAA937000C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFEA1EAA937000C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -2090,14 +2084,14 @@ }; 6E04017E1D1CAC710051BCFA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 6E04017F1D1CAC710051BCFA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 46fe498d4a..3f3e23ed72 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -264,9 +264,6 @@ 0431216C1EE0C20A007054C5 /* libMobileCenterAnalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterAnalytics.a; sourceTree = BUILT_PRODUCTS_DIR; }; 043121721EE0C248007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043121731EE0C248007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; - 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF541F3B8E6300C8E338 /* MobileCenterAnalytics.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterAnalytics.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DF5E1F3B8FBA00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DF611F3B95EB00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug/libMobileCenter.a"; sourceTree = ""; }; @@ -568,13 +565,10 @@ B2812EF21DA3148000307DCE /* MobileCenterAnalytics Debug.xcconfig */, 0469D1B21F4DFE4C00A43A8E /* MobileCenterAnalytics Release.xcconfig */, 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */, - 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */, 04ED31EB1EAAD3390033BAAE /* iOS.modulemap */, 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */, - 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */, 04ED31E91EAAD32B0033BAAE /* macOS.modulemap */, 043121731EE0C248007054C5 /* tvOS.xcconfig */, - 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */, 043121721EE0C248007054C5 /* tvOS.modulemap */, ); path = Support; @@ -863,7 +857,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0485AFF01EAAADAC00C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -876,7 +870,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD11581EF2F818000C5A5C /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -917,7 +911,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; E85547ED1D2D68CF002DF6E2 /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -1072,14 +1066,14 @@ }; 043121701EE0C213007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 043121711EE0C213007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -1128,14 +1122,14 @@ }; 0485AFF21EAAADAC00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFF31EAAADAC00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -1216,14 +1210,14 @@ }; E85547E61D2D681F002DF6E2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; E85547E71D2D681F002DF6E2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index 203a56d273..f3865b5063 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -465,9 +465,6 @@ 04311FFB1EE08885007054C5 /* MSCrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSCrashReporter.h; sourceTree = ""; }; 043281611F74A665002F7205 /* MSMockUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSMockUserDefaults.h; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.h; sourceTree = ""; }; 043281621F74A665002F7205 /* MSMockUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSMockUserDefaults.m; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.m; sourceTree = ""; }; - 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF9D1F3B977100C8E338 /* MobileCenterCrashes.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterCrashes.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DFA41F3B986B00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DFA91F3B98A300C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-iphonesimulator/libMobileCenter.a"; sourceTree = ""; }; @@ -973,13 +970,10 @@ 6E37297F1D1DE93800F1E4AE /* MobileCenterCrashes Debug.xcconfig */, 0469D1B31F4E013C00A43A8E /* MobileCenterCrashes Release.xcconfig */, 049BC8251ECE36D400FB6719 /* iOS.xcconfig */, - 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */, 04ED31F21EAAD6070033BAAE /* iOS.modulemap */, 049BC8261ECE370100FB6719 /* macOS.xcconfig */, - 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */, 04ED31F51EAAD6070033BAAE /* macOS.modulemap */, 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */, - 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */, 04EBBEEE1F01C1420006B8AE /* tvOS.modulemap */, ); path = Support; @@ -1458,7 +1452,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEEA1F01C0E10006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1471,7 +1465,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEF41F01C7100006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1510,7 +1504,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 6E6BFC3A1D23505600DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1744,14 +1738,14 @@ }; 0485AFFC1EAAB27E00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFFD1EAAB27E00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -1786,14 +1780,14 @@ }; 04EBBEEC1F01C0E10006B8AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 04EBBEED1F01C0E10006B8AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -1874,14 +1868,14 @@ }; 6E3729791D1DE83200F1E4AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 6E37297A1D1DE83200F1E4AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index a35dc1471d..b91bccaf6c 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -40,7 +40,6 @@ 040AF0331E52859F005C1174 /* MSSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 040AF0321E52859F005C1174 /* MSSender.h */; }; 0415974B1E9D639D00EC6BDA /* MSDistributionGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0415974A1E9D639D00EC6BDA /* MSDistributionGroupTests.m */; }; 0420A69C1ECA7C8E00915619 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0420A69B1ECA7C8E00915619 /* OCMock.framework */; }; - 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; }; 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */; }; 046EF5891EAEB524002F6436 /* MSDistributeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 046FDBD31E5682FA00AF9DD1 /* MSAlertController.h in Headers */ = {isa = PBXBuildFile; fileRef = 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */; }; @@ -143,7 +142,6 @@ 041CFFA31ECD0E0E00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A69B1ECA7C8E00915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../../iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF71EE0871D007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; - 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterDistribute Release.xcconfig"; sourceTree = ""; }; 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSDistributeDelegate.h; sourceTree = ""; }; 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSAlertController.h; path = ../../Vendor/iOS/MSAlertController/MSAlertController.h; sourceTree = ""; }; @@ -281,7 +279,6 @@ 0471B5F41E45466F0022F951 /* MobileCenterDistribute Debug.xcconfig */, 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */, 049BC8221ECE349200FB6719 /* iOS.xcconfig */, - 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */, 049BC8271ECE387A00FB6719 /* iOS.modulemap */, ); path = Support; @@ -614,7 +611,6 @@ files = ( B2C070C51E5E6A200076D6A9 /* MobileCenterDistributeResources.bundle in Resources */, 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */, - 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */, 040AF0121E523AC2005C1174 /* release_details.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -633,7 +629,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD4A401E4536B0009B4468 /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -771,14 +767,14 @@ }; 04FD4A2A1E451E90009B4468 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 04FD4A2B1E451E90009B4468 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index ae888097e2..2910f812eb 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -161,8 +161,6 @@ 041CFFA71ECD0E9A00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A6A11ECA7D7200915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../Vendor/iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF91EE08772007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; - 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterPush Release.xcconfig"; sourceTree = ""; }; 0469640D1F2A558300F9D31F /* libMobileCenterPush.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterPush.a; sourceTree = BUILT_PRODUCTS_DIR; }; 046964251F2A559C00F9D31F /* MobileCenterPush.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterPush.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -377,10 +375,8 @@ D3AD5F051E5C7FFF001627AB /* MobileCenterPush Debug.xcconfig */, 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */, 049BC81E1ECE333700FB6719 /* iOS.xcconfig */, - 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */, D3AD5F3E1E5D69B0001627AB /* iOS.modulemap */, 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */, - 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */, 0469642E1F2A55CF00F9D31F /* macOS.modulemap */, ); path = Support; @@ -609,7 +605,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0469642A1F2A55A600F9D31F /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -636,7 +632,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; D3AD5F2B1E5C9636001627AB /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -739,14 +735,14 @@ }; 046964111F2A558F00F9D31F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 046964121F2A558F00F9D31F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -827,14 +823,14 @@ }; D3AD5F231E5C9562001627AB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; D3AD5F241E5C9562001627AB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" From bf44ed7228973b5f4f06fa3456eae90c84c2272c Mon Sep 17 00:00:00 2001 From: Jacob Wallraff Date: Fri, 29 Sep 2017 14:01:48 -0700 Subject: [PATCH 46/61] Checkin refactor --- Localization/TouchDownCheckinScript.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Localization/TouchDownCheckinScript.ps1 b/Localization/TouchDownCheckinScript.ps1 index 6dfdd085f2..855016000d 100644 --- a/Localization/TouchDownCheckinScript.ps1 +++ b/Localization/TouchDownCheckinScript.ps1 @@ -74,13 +74,13 @@ Function CheckinFilesIntoRepo if ($AuthToken -eq "") { #Unauthorized $Argument = "push origin " + $TempLocBranch - ProcessStart $git $Argument $repoPath } else { #Authorized $Argument = "-c http.extraheader=`"Authorization: Bearer " + $AuthToken + "`" push origin " + $TempLocBranch - ProcessStart $git $Argument $repoPath } + + ProcessStart $git $Argument $repoPath } Class Cl_Culture From 0ca21293824049611d92cf4dad0132c7155b1548 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Fri, 29 Sep 2017 15:30:18 -0700 Subject: [PATCH 47/61] Add comments to scripts --- .../MobileCenter.xcodeproj/project.pbxproj | 6 +- .../project.pbxproj | 6 +- .../project.pbxproj | 6 +- .../project.pbxproj | 2 +- .../project.pbxproj | 4 +- .../xcschemes/SasquatchObjC.xcscheme | 70 ------------------- 6 files changed, 12 insertions(+), 82 deletions(-) diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 078dbc42c5..4d69932a09 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -1614,7 +1614,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 0485AFE71EAA937000C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1627,7 +1627,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 04FD114F1EF2F5F0000C5A5C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1666,7 +1666,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 6E6BFC351D234FBF00DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 3f3e23ed72..07fbc3f288 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -857,7 +857,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0485AFF01EAAADAC00C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -870,7 +870,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD11581EF2F818000C5A5C /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -911,7 +911,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; E85547ED1D2D68CF002DF6E2 /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index f3865b5063..06df747225 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -1452,7 +1452,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEEA1F01C0E10006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1465,7 +1465,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEF41F01C7100006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1504,7 +1504,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 6E6BFC3A1D23505600DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index b91bccaf6c..52a13021cf 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -629,7 +629,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD4A401E4536B0009B4468 /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index 2910f812eb..296540ffe2 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -605,7 +605,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0469642A1F2A55A600F9D31F /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -632,7 +632,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; D3AD5F2B1E5C9636001627AB /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme index cd9a29b961..78b5a7d457 100644 --- a/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme +++ b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme @@ -6,76 +6,6 @@ parallelizeBuildables = "NO" buildImplicitDependencies = "YES"> - - - - - - - - - - - - - - - - - - - - Date: Mon, 2 Oct 2017 13:17:30 +0300 Subject: [PATCH 48/61] Prevent resend token when didRegisterForRemoteNotificationsWithDeviceToken called multiple times --- MobileCenterPush/MobileCenterPush/MSPush.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index fbeefdb604..8f8f9b5f3d 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -172,8 +172,9 @@ - (void)registerForRemoteNotifications { } - (NSString *)convertTokenToString:(NSData *)token { - if (!token) + if (!token) { return nil; + } const unsigned char *dataBuffer = token.bytes; NSMutableString *stringBuffer = [NSMutableString stringWithCapacity:(token.length * 2)]; for (NSUInteger i = 0; i < token.length; ++i) { @@ -192,6 +193,9 @@ - (void)sendPushToken:(NSString *)token { #pragma mark - Register callbacks - (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + if (self.pushTokenHasBeenSent) { + return; + } MSLogVerbose([MSPush logTag], @"Registering for push notifications has been finished successfully"); NSString *strPushToken = [self convertTokenToString:deviceToken]; [MS_USER_DEFAULTS setObject:strPushToken forKey:kMSPushServiceStorageKey]; From 4545ccd28b45930533b89800edb99ce3eab8dfef Mon Sep 17 00:00:00 2001 From: Ivan Matkov Date: Mon, 2 Oct 2017 13:19:15 +0300 Subject: [PATCH 49/61] Add test with multiple didRegisterForRemoteNotificationsWithDeviceToken calls --- MobileCenterPush/MobileCenterPushTests/MSPushTests.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 1d8647c64b..79321afca7 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -142,6 +142,13 @@ - (void)testDidRegisterForRemoteNotificationsWithDeviceToken { OCMVerify([pushMock didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]); OCMVerify([pushMock convertTokenToString:deviceToken]); OCMVerify([pushMock sendPushToken:pushToken]); + + // When + OCMReject([pushMock sendPushToken:OCMOCK_ANY]); + [MSPush didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; + + // Then + [pushMock verify]; [pushMock stopMocking]; } @@ -302,7 +309,7 @@ - (void)testNotificationReceivedForNonMobileCenterNotification { OCMStub([userNotificationUserInfoMock userInfo]).andReturn(invalidUserInfo); #endif -// When + // When #if TARGET_OS_OSX [self.sut applicationDidFinishLaunching:notificationMock]; #else From 93f080a37b5b9ecbb92243ce4eec54a9a2b310c2 Mon Sep 17 00:00:00 2001 From: Murat Baysangurov Date: Mon, 2 Oct 2017 16:14:57 +0300 Subject: [PATCH 50/61] Prevent window controller from being destroyed. --- SasquatchMac/SasquatchMacObjC/AppDelegate.m | 12 +++++++++--- SasquatchMac/SasquatchMacSwift/AppDelegate.swift | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/SasquatchMac/SasquatchMacObjC/AppDelegate.m b/SasquatchMac/SasquatchMacObjC/AppDelegate.m index 8d76f6c648..140a476c55 100644 --- a/SasquatchMac/SasquatchMacObjC/AppDelegate.m +++ b/SasquatchMac/SasquatchMacObjC/AppDelegate.m @@ -7,6 +7,12 @@ @import MobileCenterCrashes; @import MobileCenterPush; +@interface AppDelegate() + +@property NSWindowController *rootController; + +@end + @implementation AppDelegate - (void) applicationDidFinishLaunching:(NSNotification *)notification { @@ -29,9 +35,9 @@ - (void) applicationDidFinishLaunching:(NSNotification *)notification { - (void)initUI { NSStoryboard *mainStoryboard = [NSStoryboard storyboardWithName:@"SasquatchMac" bundle:nil]; - NSWindowController *rootController = (NSWindowController *)[mainStoryboard instantiateControllerWithIdentifier:@"rootController"]; - [rootController showWindow:self]; - [rootController.window makeKeyAndOrderFront:self]; + self.rootController = (NSWindowController *)[mainStoryboard instantiateControllerWithIdentifier:@"rootController"]; + [self.rootController showWindow:self]; + [self.rootController.window makeKeyAndOrderFront:self]; } - (void)setupCrashes { diff --git a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift index f12a9cc9a1..a77a347a84 100644 --- a/SasquatchMac/SasquatchMacSwift/AppDelegate.swift +++ b/SasquatchMac/SasquatchMacSwift/AppDelegate.swift @@ -9,6 +9,8 @@ import MobileCenterPush @objc(AppDelegate) class AppDelegate: NSObject, NSApplicationDelegate, MSCrashesDelegate, MSPushDelegate { + var rootController: NSWindowController! + func applicationDidFinishLaunching(_ notification: Notification) { // Crashes Delegate. MSCrashes.setDelegate(self); @@ -44,7 +46,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, MSCrashesDelegate, MSPushDel func initUI() { let mainStoryboard = NSStoryboard.init(name: "SasquatchMac", bundle: nil) - let rootController = mainStoryboard.instantiateController(withIdentifier: "rootController") as! NSWindowController + rootController = mainStoryboard.instantiateController(withIdentifier: "rootController") as! NSWindowController rootController.showWindow(self) rootController.window?.makeKeyAndOrderFront(self) } From 603ec81b4fa7832aef00b40f00ce25b22ac69d64 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Mon, 2 Oct 2017 14:07:55 -0700 Subject: [PATCH 51/61] Forward only if selectors are defined in NSUserNotificationCenterDelegate --- MobileCenterPush/MobileCenterPush/MSPush.m | 6 ++- .../MobileCenterPushTests/MSPushTests.m | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 6b286dbad3..3e59921aa4 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -1,6 +1,7 @@ #import #if TARGET_OS_OSX #import +#import #else #import #endif @@ -287,7 +288,10 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center } - (void)forwardInvocation:(NSInvocation *)anInvocation { - if ([self.originalUserNotificationCenterDelegate respondsToSelector:[anInvocation selector]]) { + + // Testing if the selector is defined in NSUserNotificationCenterDelegate or not. + struct objc_method_description hasMethod = protocol_getMethodDescription(@protocol(NSUserNotificationCenterDelegate), [anInvocation selector], NO, YES); + if (hasMethod.name != nil && [self.originalUserNotificationCenterDelegate respondsToSelector:[anInvocation selector]]) { [anInvocation invokeWithTarget:self.originalUserNotificationCenterDelegate]; } else { [super forwardInvocation:anInvocation]; diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 993cd834ed..e503dd8769 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -438,6 +438,47 @@ - (void)testUserNotificationCenterDelegateAfterPushStart { [pushMock stopMocking]; } +- (void)testForwardInvocationWithUserNotificationCenterDelegateSelector { + + // If + id invocationMock = OCMClassMock([NSInvocation class]); + OCMStub([invocationMock selector]).andReturn(@selector(userNotificationCenter:didDeliverNotification:)); + id userNotificationCenterDelegateMock = OCMProtocolMock(@protocol(NSUserNotificationCenterDelegate)); + id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); + OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); + OCMStub([userNotificationCenterMock delegate]).andReturn(userNotificationCenterDelegateMock); + + // forwardInvocation is used by OCMock. Shouldn't mock MSPush for success test. + self.sut = [MSPush new]; + + // When + [self.sut forwardInvocation:invocationMock]; + + // Then + OCMVerify([invocationMock invokeWithTarget:userNotificationCenterDelegateMock]); + + [invocationMock stopMocking]; +} + +- (void)testForwardInvocationWithInvalidSelector { + + // If + id invocationMock = OCMClassMock([NSInvocation class]); + OCMStub([invocationMock selector]).andReturn(NSSelectorFromString(@"something:")); + id userNotificationCenterDelegateMock = OCMProtocolMock(@protocol(NSUserNotificationCenterDelegate)); + id userNotificationCenterMock = OCMClassMock([NSUserNotificationCenter class]); + OCMStub([userNotificationCenterMock defaultUserNotificationCenter]).andReturn(userNotificationCenterMock); + OCMStub([userNotificationCenterMock delegate]).andReturn(userNotificationCenterDelegateMock); + + // forwardInvocation is used by OCMock. Shouldn't mock MSPush for success test. + self.sut = [MSPush new]; + + // When/Then + XCTAssertThrows([self.sut forwardInvocation:invocationMock]); + + [invocationMock stopMocking]; +} + #endif @end From 943adfa9766781aaa21500c7807ed0cb3f7d0d85 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Mon, 2 Oct 2017 14:28:45 -0700 Subject: [PATCH 52/61] nil -> NULL for struct --- MobileCenterPush/MobileCenterPush/MSPush.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 3e59921aa4..39954a3846 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -290,8 +290,10 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center - (void)forwardInvocation:(NSInvocation *)anInvocation { // Testing if the selector is defined in NSUserNotificationCenterDelegate or not. - struct objc_method_description hasMethod = protocol_getMethodDescription(@protocol(NSUserNotificationCenterDelegate), [anInvocation selector], NO, YES); - if (hasMethod.name != nil && [self.originalUserNotificationCenterDelegate respondsToSelector:[anInvocation selector]]) { + struct objc_method_description hasMethod = + protocol_getMethodDescription(@protocol(NSUserNotificationCenterDelegate), [anInvocation selector], NO, YES); + if (hasMethod.name != NULL && + [self.originalUserNotificationCenterDelegate respondsToSelector:[anInvocation selector]]) { [anInvocation invokeWithTarget:self.originalUserNotificationCenterDelegate]; } else { [super forwardInvocation:anInvocation]; From 8b5f10040904039aa1b897935786bf60d754c78b Mon Sep 17 00:00:00 2001 From: Ivan Matkov Date: Tue, 3 Oct 2017 14:39:12 +0300 Subject: [PATCH 53/61] Resend push token if it has been changed --- .../MobileCenterPush/Internal/MSPushPrivate.h | 2 +- MobileCenterPush/MobileCenterPush/MSPush.m | 14 +++++----- .../MobileCenterPushTests/MSPushTests.m | 28 +++++++++++-------- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h index 14d04df6e9..87faf529b3 100644 --- a/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h +++ b/MobileCenterPush/MobileCenterPush/Internal/MSPushPrivate.h @@ -12,7 +12,7 @@ @property(nonatomic) id delegate; -@property(nonatomic) BOOL pushTokenHasBeenSent; +@property(nonatomic) NSString *pushToken; /** * Custom application delegate dedicated to Push. diff --git a/MobileCenterPush/MobileCenterPush/MSPush.m b/MobileCenterPush/MobileCenterPush/MSPush.m index 8f8f9b5f3d..15fa5fe4d5 100644 --- a/MobileCenterPush/MobileCenterPush/MSPush.m +++ b/MobileCenterPush/MobileCenterPush/MSPush.m @@ -118,7 +118,7 @@ - (void)applyEnabledState:(BOOL)isEnabled { object:nil]; #endif [MSAppDelegateForwarder addDelegate:self.appDelegate]; - if (!self.pushTokenHasBeenSent) { + if (!self.pushToken) { [self registerForRemoteNotifications]; } MSLogInfo([MSPush logTag], @"Push service has been enabled."); @@ -187,19 +187,19 @@ - (void)sendPushToken:(NSString *)token { MSPushLog *log = [MSPushLog new]; log.pushToken = token; [self.logManager processLog:log forGroupId:self.groupId]; - self.pushTokenHasBeenSent = YES; } #pragma mark - Register callbacks - (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - if (self.pushTokenHasBeenSent) { + MSLogVerbose([MSPush logTag], @"Registering for push notifications has been finished successfully"); + NSString *pushToken = [self convertTokenToString:deviceToken]; + if ([pushToken isEqualToString:self.pushToken]) { return; } - MSLogVerbose([MSPush logTag], @"Registering for push notifications has been finished successfully"); - NSString *strPushToken = [self convertTokenToString:deviceToken]; - [MS_USER_DEFAULTS setObject:strPushToken forKey:kMSPushServiceStorageKey]; - [self sendPushToken:strPushToken]; + self.pushToken = pushToken; + [MS_USER_DEFAULTS setObject:pushToken forKey:kMSPushServiceStorageKey]; + [self sendPushToken:pushToken]; } - (void)didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { diff --git a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m index 79321afca7..4d46804df5 100644 --- a/MobileCenterPush/MobileCenterPushTests/MSPushTests.m +++ b/MobileCenterPush/MobileCenterPushTests/MSPushTests.m @@ -96,18 +96,6 @@ - (void)testInitializationPriorityCorrect { XCTAssertTrue(self.sut.initializationPriority == MSInitializationPriorityDefault); } -- (void)testSendPushTokenMethod { - - // Then - XCTAssertFalse(self.sut.pushTokenHasBeenSent); - - // When - [self.sut sendPushToken:kMSTestPushToken]; - - // Then - XCTAssertTrue(self.sut.pushTokenHasBeenSent); -} - - (void)testConvertTokenToString { // If @@ -135,10 +123,26 @@ - (void)testDidRegisterForRemoteNotificationsWithDeviceToken { NSString *pushToken = @"ConvertedPushToken"; OCMStub([pushMock convertTokenToString:deviceToken]).andReturn(pushToken); + // Then + XCTAssertNil(self.sut.pushToken); + // When [MSPush didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; // Then + XCTAssertEqualObjects(self.sut.pushToken, pushToken); + OCMVerify([pushMock didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]); + OCMVerify([pushMock convertTokenToString:deviceToken]); + OCMVerify([pushMock sendPushToken:pushToken]); + + // When + deviceToken = [@"otherToken" dataUsingEncoding:NSUTF8StringEncoding]; + pushToken = @"ConvertedOtherToken"; + OCMStub([pushMock convertTokenToString:deviceToken]).andReturn(pushToken); + [MSPush didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; + + // Then + XCTAssertEqualObjects(self.sut.pushToken, pushToken); OCMVerify([pushMock didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]); OCMVerify([pushMock convertTokenToString:deviceToken]); OCMVerify([pushMock sendPushToken:pushToken]); From c8f2a9c4c9e43912b47cab91d6c08c549084b1c3 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 09:53:57 -0700 Subject: [PATCH 54/61] Add SQLITE_OPEN_URI flag when opening a database --- MobileCenter/MobileCenter/Internals/Storage/MSDBStorage.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MobileCenter/MobileCenter/Internals/Storage/MSDBStorage.m b/MobileCenter/MobileCenter/Internals/Storage/MSDBStorage.m index e17c9bcada..b959d15905 100644 --- a/MobileCenter/MobileCenter/Internals/Storage/MSDBStorage.m +++ b/MobileCenter/MobileCenter/Internals/Storage/MSDBStorage.m @@ -92,7 +92,7 @@ - (NSUInteger)countEntriesForTable:(NSString *)tableName condition:(nullable NSS - (BOOL)executeNonSelectionQuery:(NSString *)query { sqlite3 *db = NULL; int result = SQLITE_OK; - result = sqlite3_open_v2([self.filePath UTF8String], &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + result = sqlite3_open_v2([self.filePath UTF8String], &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI, NULL); if (result == SQLITE_OK) { char *errMsg; result = sqlite3_exec(db, [query UTF8String], NULL, NULL, &errMsg); @@ -112,7 +112,7 @@ - (BOOL)executeNonSelectionQuery:(NSString *)query { sqlite3 *db = NULL; sqlite3_stmt *statement = NULL; int result = 0; - result = sqlite3_open_v2([self.filePath UTF8String], &db, SQLITE_OPEN_READONLY, NULL); + result = sqlite3_open_v2([self.filePath UTF8String], &db, SQLITE_OPEN_READONLY | SQLITE_OPEN_URI, NULL); if (result == SQLITE_OK) { result = sqlite3_prepare_v2(db, [query UTF8String], -1, &statement, NULL); if (result == SQLITE_OK) { From 8ffd2f4db1f9c911c9acea9087a1c1618ac323e5 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 15:52:40 -0700 Subject: [PATCH 55/61] Revert "Add comments to scripts" This reverts commit 0ca21293824049611d92cf4dad0132c7155b1548. --- .../MobileCenter.xcodeproj/project.pbxproj | 6 +- .../project.pbxproj | 6 +- .../project.pbxproj | 6 +- .../project.pbxproj | 2 +- .../project.pbxproj | 4 +- .../xcschemes/SasquatchObjC.xcscheme | 70 +++++++++++++++++++ 6 files changed, 82 insertions(+), 12 deletions(-) diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 4d69932a09..078dbc42c5 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -1614,7 +1614,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 0485AFE71EAA937000C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1627,7 +1627,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 04FD114F1EF2F5F0000C5A5C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1666,7 +1666,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 6E6BFC351D234FBF00DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 07fbc3f288..3f3e23ed72 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -857,7 +857,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0485AFF01EAAADAC00C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -870,7 +870,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD11581EF2F818000C5A5C /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -911,7 +911,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; E85547ED1D2D68CF002DF6E2 /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index 06df747225..f3865b5063 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -1452,7 +1452,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEEA1F01C0E10006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1465,7 +1465,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEF41F01C7100006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1504,7 +1504,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 6E6BFC3A1D23505600DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index 52a13021cf..b91bccaf6c 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -629,7 +629,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD4A401E4536B0009B4468 /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index 296540ffe2..2910f812eb 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -605,7 +605,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0469642A1F2A55A600F9D31F /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -632,7 +632,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\n# Building on Xcode 9 requires disabling CLANG_MODULES_AUTOLINK to avoid seeking unused frameworks such as FileProvider.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; D3AD5F2B1E5C9636001627AB /* Run Script */ = { isa = PBXShellScriptBuildPhase; diff --git a/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme index 78b5a7d457..cd9a29b961 100644 --- a/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme +++ b/Sasquatch/Sasquatch.xcodeproj/xcshareddata/xcschemes/SasquatchObjC.xcscheme @@ -6,6 +6,76 @@ parallelizeBuildables = "NO" buildImplicitDependencies = "YES"> + + + + + + + + + + + + + + + + + + + + Date: Tue, 3 Oct 2017 15:52:56 -0700 Subject: [PATCH 56/61] Revert "Fix CLANG_MODULES_AUTOLINK configuration for framework targets" This reverts commit 898ddb34ef4b409823a300a765c2d5126ec535bb. --- Config/Framework.xcconfig | 1 + .../MobileCenter.xcodeproj/project.pbxproj | 24 ++++++++++++------- .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 24 ++++++++++++------- .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 24 ++++++++++++------- .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ .../Support/tvOS Framework.xcconfig | 2 ++ .../project.pbxproj | 10 +++++--- .../Support/iOS Framework.xcconfig | 2 ++ .../project.pbxproj | 16 ++++++++----- .../Support/iOS Framework.xcconfig | 2 ++ .../Support/macOS Framework.xcconfig | 2 ++ 18 files changed, 87 insertions(+), 36 deletions(-) create mode 100644 Config/Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/iOS Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/macOS Framework.xcconfig create mode 100644 MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig create mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig create mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig create mode 100644 MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig create mode 100644 MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig create mode 100644 MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig diff --git a/Config/Framework.xcconfig b/Config/Framework.xcconfig new file mode 100644 index 0000000000..2fe9ffec93 --- /dev/null +++ b/Config/Framework.xcconfig @@ -0,0 +1 @@ +CLANG_MODULES_AUTOLINK = NO diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 078dbc42c5..40f31addaf 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -559,6 +559,9 @@ 043120701EE0BCC4007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043120711EE0BCC4007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; 043120DA1EE0BCF9007054C5 /* libMobileCenter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenter.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF2B1F3B864600C8E338 /* MobileCenter.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenter.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 045660FA1D99EEEB002F7055 /* MSLogWithPropertiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSLogWithPropertiesTests.m; sourceTree = ""; }; 045BC3161E3FD88600B6C960 /* MSKeychainUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSKeychainUtil.m; sourceTree = ""; }; @@ -1009,10 +1012,13 @@ 6E0401841D1CAD810051BCFA /* MobileCenter Debug.xcconfig */, 0469D1B11F4DF89A00A43A8E /* MobileCenter Release.xcconfig */, 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */, + 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */, 0485AFEE1EAAAD0000C10CAF /* iOS.modulemap */, 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */, + 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */, 0485AFEC1EAAAC3B00C10CAF /* macOS.modulemap */, 043120711EE0BCC4007054C5 /* tvOS.xcconfig */, + 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */, 043120701EE0BCC4007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1614,7 +1620,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 0485AFE71EAA937000C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1627,7 +1633,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 04FD114F1EF2F5F0000C5A5C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1666,7 +1672,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenter\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7/armv7s/arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\"\n\n# Copy license and readme\ncp -f \"${SRCROOT}/../LICENSE\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../README.md\" \"${PRODUCTS_DIR}\"\ncp -f \"${SRCROOT}/../CHANGELOG.md\" \"${PRODUCTS_DIR}\"\n"; }; 6E6BFC351D234FBF00DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1954,14 +1960,14 @@ }; 0431214C1EE0BFC7007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0431214D1EE0BFC7007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -2010,14 +2016,14 @@ }; 0485AFE91EAA937000C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFEA1EAA937000C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -2084,14 +2090,14 @@ }; 6E04017E1D1CAC710051BCFA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 6E04017F1D1CAC710051BCFA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 3f3e23ed72..46fe498d4a 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -264,6 +264,9 @@ 0431216C1EE0C20A007054C5 /* libMobileCenterAnalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterAnalytics.a; sourceTree = BUILT_PRODUCTS_DIR; }; 043121721EE0C248007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043121731EE0C248007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; + 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF541F3B8E6300C8E338 /* MobileCenterAnalytics.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterAnalytics.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DF5E1F3B8FBA00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DF611F3B95EB00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug/libMobileCenter.a"; sourceTree = ""; }; @@ -565,10 +568,13 @@ B2812EF21DA3148000307DCE /* MobileCenterAnalytics Debug.xcconfig */, 0469D1B21F4DFE4C00A43A8E /* MobileCenterAnalytics Release.xcconfig */, 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */, + 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */, 04ED31EB1EAAD3390033BAAE /* iOS.modulemap */, 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */, + 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */, 04ED31E91EAAD32B0033BAAE /* macOS.modulemap */, 043121731EE0C248007054C5 /* tvOS.xcconfig */, + 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */, 043121721EE0C248007054C5 /* tvOS.modulemap */, ); path = Support; @@ -857,7 +863,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n\n# Uses the Lipo Tool to merge both binary files (i386 + arm64) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0485AFF01EAAADAC00C10CAF /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -870,7 +876,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD11581EF2F818000C5A5C /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -911,7 +917,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterAnalytics\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; E85547ED1D2D68CF002DF6E2 /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -1066,14 +1072,14 @@ }; 043121701EE0C213007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 043121711EE0C213007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; + baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1122,14 +1128,14 @@ }; 0485AFF21EAAADAC00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFF31EAAADAC00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1210,14 +1216,14 @@ }; E85547E61D2D681F002DF6E2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; E85547E71D2D681F002DF6E2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index f3865b5063..203a56d273 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -465,6 +465,9 @@ 04311FFB1EE08885007054C5 /* MSCrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSCrashReporter.h; sourceTree = ""; }; 043281611F74A665002F7205 /* MSMockUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSMockUserDefaults.h; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.h; sourceTree = ""; }; 043281621F74A665002F7205 /* MSMockUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSMockUserDefaults.m; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.m; sourceTree = ""; }; + 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; + 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF9D1F3B977100C8E338 /* MobileCenterCrashes.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterCrashes.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DFA41F3B986B00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DFA91F3B98A300C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-iphonesimulator/libMobileCenter.a"; sourceTree = ""; }; @@ -970,10 +973,13 @@ 6E37297F1D1DE93800F1E4AE /* MobileCenterCrashes Debug.xcconfig */, 0469D1B31F4E013C00A43A8E /* MobileCenterCrashes Release.xcconfig */, 049BC8251ECE36D400FB6719 /* iOS.xcconfig */, + 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */, 04ED31F21EAAD6070033BAAE /* iOS.modulemap */, 049BC8261ECE370100FB6719 /* macOS.xcconfig */, + 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */, 04ED31F51EAAD6070033BAAE /* macOS.modulemap */, 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */, + 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */, 04EBBEEE1F01C1420006B8AE /* tvOS.modulemap */, ); path = Support; @@ -1452,7 +1458,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/macOS/PLCrashReporter/libCrashReporter-MacOSX-Static.a\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEEA1F01C0E10006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1465,7 +1471,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}TVOS\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}/../MobileCenter-SDK-Apple/tvOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-appletvos\nSIMULATOR_DIR=${WRK_DIR}/Release-appletvsimulator\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk appletvsimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/tvOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-appletvos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (i386 + arm64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/tvOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 04EBBEF41F01C7100006B8AE /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1504,7 +1510,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterCrashes\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\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}/${FMK_NAME}\"\n\nif [ -z $(otool -L \"${INSTALL_DIR}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/iOS/PLCrashReporter/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\""; }; 6E6BFC3A1D23505600DF7617 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1738,14 +1744,14 @@ }; 0485AFFC1EAAB27E00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFFD1EAAB27E00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; + baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1780,14 +1786,14 @@ }; 04EBBEEC1F01C0E10006B8AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; + baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 04EBBEED1F01C0E10006B8AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; + baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -1868,14 +1874,14 @@ }; 6E3729791D1DE83200F1E4AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 6E37297A1D1DE83200F1E4AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig new file mode 100644 index 0000000000..e8d022a9ca --- /dev/null +++ b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./tvOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index b91bccaf6c..a35dc1471d 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -40,6 +40,7 @@ 040AF0331E52859F005C1174 /* MSSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 040AF0321E52859F005C1174 /* MSSender.h */; }; 0415974B1E9D639D00EC6BDA /* MSDistributionGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0415974A1E9D639D00EC6BDA /* MSDistributionGroupTests.m */; }; 0420A69C1ECA7C8E00915619 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0420A69B1ECA7C8E00915619 /* OCMock.framework */; }; + 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; }; 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */; }; 046EF5891EAEB524002F6436 /* MSDistributeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 046FDBD31E5682FA00AF9DD1 /* MSAlertController.h in Headers */ = {isa = PBXBuildFile; fileRef = 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */; }; @@ -142,6 +143,7 @@ 041CFFA31ECD0E0E00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A69B1ECA7C8E00915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../../iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF71EE0871D007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; + 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterDistribute Release.xcconfig"; sourceTree = ""; }; 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSDistributeDelegate.h; sourceTree = ""; }; 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSAlertController.h; path = ../../Vendor/iOS/MSAlertController/MSAlertController.h; sourceTree = ""; }; @@ -279,6 +281,7 @@ 0471B5F41E45466F0022F951 /* MobileCenterDistribute Debug.xcconfig */, 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */, 049BC8221ECE349200FB6719 /* iOS.xcconfig */, + 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */, 049BC8271ECE387A00FB6719 /* iOS.modulemap */, ); path = Support; @@ -611,6 +614,7 @@ files = ( B2C070C51E5E6A200076D6A9 /* MobileCenterDistributeResources.bundle in Resources */, 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */, + 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */, 040AF0121E523AC2005C1174 /* release_details.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -629,7 +633,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterDistribute\nTGT_NAME=${FMK_NAME}IOS\nFMK_RESOURCE_BUNDLE=MobileCenterDistributeResources\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/${FMK_RESOURCE_BUNDLE}.bundle\" \"${PRODUCTS_DIR}\"\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 04FD4A401E4536B0009B4468 /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -767,14 +771,14 @@ }; 04FD4A2A1E451E90009B4468 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 04FD4A2B1E451E90009B4468 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index 2910f812eb..ae888097e2 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -161,6 +161,8 @@ 041CFFA71ECD0E9A00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A6A11ECA7D7200915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../Vendor/iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF91EE08772007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; + 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; + 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterPush Release.xcconfig"; sourceTree = ""; }; 0469640D1F2A558300F9D31F /* libMobileCenterPush.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterPush.a; sourceTree = BUILT_PRODUCTS_DIR; }; 046964251F2A559C00F9D31F /* MobileCenterPush.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterPush.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -375,8 +377,10 @@ D3AD5F051E5C7FFF001627AB /* MobileCenterPush Debug.xcconfig */, 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */, 049BC81E1ECE333700FB6719 /* iOS.xcconfig */, + 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */, D3AD5F3E1E5D69B0001627AB /* iOS.modulemap */, 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */, + 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */, 0469642E1F2A55CF00F9D31F /* macOS.modulemap */, ); path = Support; @@ -605,7 +609,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}MacOS\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}/../MobileCenter-SDK-Apple/macOS\nINSTALL_DIR=${PRODUCTS_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\"\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/macOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\n# Uses the Lipo Tool to copy binary file (x86_64) into final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; 0469642A1F2A55A600F9D31F /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -632,7 +636,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" CLANG_MODULES_AUTOLINK=NO -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=MobileCenterPush\nTGT_NAME=${FMK_NAME}IOS\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}/../MobileCenter-SDK-Apple/iOS\nINSTALL_DIR=${PRODUCTS_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\n\n# Cleaning previous build\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" clean\n\n# Building both architectures.\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphoneos\nxcodebuild -project \"${FMK_NAME}.xcodeproj\" -configuration \"Release\" -target \"${TGT_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${INSTALL_DIR}\" ]\nthen\nrm -rf \"${INSTALL_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Headers\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/${FMK_NAME}/Support/iOS.modulemap\" \"${INSTALL_DIR}/Modules/module.modulemap\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/${WRK_DIR}/Release-iphoneos/include/${FMK_NAME}/\" \"${INSTALL_DIR}/Headers/\"\n\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}/${FMK_NAME}\"\n\nrm -r \"${WRK_DIR}\""; }; D3AD5F2B1E5C9636001627AB /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -735,14 +739,14 @@ }; 046964111F2A558F00F9D31F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; + baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; 046964121F2A558F00F9D31F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; + baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; buildSettings = { }; name = Release; @@ -823,14 +827,14 @@ }; D3AD5F231E5C9562001627AB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Debug; }; D3AD5F241E5C9562001627AB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; + baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig new file mode 100644 index 0000000000..d2f91f9775 --- /dev/null +++ b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./iOS.xcconfig" +#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig new file mode 100644 index 0000000000..afde5e08e5 --- /dev/null +++ b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig @@ -0,0 +1,2 @@ +#include "./macOS.xcconfig" +#include "../../../Config/Framework.xcconfig" From 4b65e6cd474727dab1985995c6335d27b482536a Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 15:53:37 -0700 Subject: [PATCH 57/61] Revert "Update OHHTTPStubs that is built on Xcode 9 for tvOS" This reverts commit 7c2df2f2f24bf6f9029534a8da573f151d05b8c8. --- .../Headers/OHHTTPStubs-Swift.h | 76 +---- .../OHHTTPStubs.framework/Info.plist | Bin 916 -> 904 bytes .../OHHTTPStubs.swiftmodule/arm64.swiftdoc | Bin 0 -> 8320 bytes .../OHHTTPStubs.swiftmodule/arm64.swiftmodule | Bin 0 -> 89384 bytes .../OHHTTPStubs.swiftmodule/x86_64.swiftdoc | Bin 8312 -> 8320 bytes .../x86_64.swiftmodule | Bin 22540 -> 89480 bytes .../Modules/module.modulemap | 1 - .../OHHTTPStubs.framework/OHHTTPStubs | Bin 161152 -> 368572 bytes .../_CodeSignature/CodeResources | 316 ------------------ 9 files changed, 14 insertions(+), 379 deletions(-) create mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftdoc create mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule delete mode 100644 Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/_CodeSignature/CodeResources diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h index c475755046..1f2308d57b 100644 --- a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h +++ b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Headers/OHHTTPStubs-Swift.h @@ -1,30 +1,7 @@ -// Generated by Apple Swift version 4.0 effective-3.2 (swiftlang-900.0.65 clang-900.0.37) +// Generated by Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42) #pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgcc-compat" -#if !defined(__has_include) -# define __has_include(x) 0 -#endif -#if !defined(__has_attribute) -# define __has_attribute(x) 0 -#endif -#if !defined(__has_feature) -# define __has_feature(x) 0 -#endif -#if !defined(__has_warning) -# define __has_warning(x) 0 -#endif - -#if __has_attribute(external_source_symbol) -# define SWIFT_STRINGIFY(str) #str -# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol)))) -# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop") -#else -# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) -# define SWIFT_MODULE_NAMESPACE_POP -#endif - -#if __has_include() +#if defined(__has_include) && __has_include() # include #endif @@ -36,7 +13,7 @@ #if !defined(SWIFT_TYPEDEFS) # define SWIFT_TYPEDEFS 1 -# if __has_include() +# if defined(__has_include) && __has_include() # include # elif !defined(__cplusplus) || __cplusplus < 201103L typedef uint_least16_t char16_t; @@ -71,36 +48,31 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # endif #endif -#if __has_attribute(objc_runtime_name) +#if defined(__has_attribute) && __has_attribute(objc_runtime_name) # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else # define SWIFT_RUNTIME_NAME(X) #endif -#if __has_attribute(swift_name) +#if defined(__has_attribute) && __has_attribute(swift_name) # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else # define SWIFT_COMPILE_NAME(X) #endif -#if __has_attribute(objc_method_family) +#if defined(__has_attribute) && __has_attribute(objc_method_family) # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else # define SWIFT_METHOD_FAMILY(X) #endif -#if __has_attribute(noescape) +#if defined(__has_attribute) && __has_attribute(noescape) # define SWIFT_NOESCAPE __attribute__((noescape)) #else # define SWIFT_NOESCAPE #endif -#if __has_attribute(warn_unused_result) +#if defined(__has_attribute) && __has_attribute(warn_unused_result) # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else # define SWIFT_WARN_UNUSED_RESULT #endif -#if __has_attribute(noreturn) -# define SWIFT_NORETURN __attribute__((noreturn)) -#else -# define SWIFT_NORETURN -#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -111,7 +83,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -# if __has_attribute(objc_subclassing_restricted) +# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA # else @@ -130,23 +102,16 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -# if __has_attribute(objc_designated_initializer) +# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) # else # define OBJC_DESIGNATED_INITIALIZER # endif #endif -#if !defined(SWIFT_ENUM_ATTR) -# if defined(__has_attribute) && __has_attribute(enum_extensibility) -# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open))) -# else -# define SWIFT_ENUM_ATTR -# endif -#endif #if !defined(SWIFT_ENUM) -# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type -# if __has_feature(generalized_swift_name) -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type +# if defined(__has_feature) && __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type # else # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) # endif @@ -166,22 +131,9 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(SWIFT_DEPRECATED_MSG) # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif -#if __has_feature(attribute_diagnose_if_objc) -# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) -#else -# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) -#endif -#if __has_feature(modules) +#if defined(__has_feature) && __has_feature(modules) #endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" -#if __has_warning("-Wpragma-clang-attribute") -# pragma clang diagnostic ignored "-Wpragma-clang-attribute" -#endif -#pragma clang diagnostic ignored "-Wunknown-pragmas" -#pragma clang diagnostic ignored "-Wnullability" - -SWIFT_MODULE_NAMESPACE_PUSH("OHHTTPStubs") -SWIFT_MODULE_NAMESPACE_POP #pragma clang diagnostic pop diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Info.plist b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Info.plist index c0e9fd9f60e125e44885eba68f9bd633e5a15679..1dca3077d97478ea928a835270b9792fd7558c43 100644 GIT binary patch delta 583 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 Wpue`>0~ik}%4nqa{=jzph5rMX>l@Di literal 0 HcmV?d00001 diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/arm64.swiftmodule new file mode 100644 index 0000000000000000000000000000000000000000..95155ad31069dcc519c3c02ff7ecd53db1bf1407 GIT binary patch literal 89384 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 ZjHCSxaL8{sM`nb2VhIk*P|xqD{{^C9`M>}G literal 0 HcmV?d00001 diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc index e4de85a8339db7ce4936092d5ee7d0f75a5b54dc..c4e4aa98fc2f97a10cb147332b5686e1e947b359 100644 GIT binary patch delta 1137 zcmez2(BL>>OY|pp1_o6g1_o&c1_mM4kkp0)3I+l}oy<`T46_*;Y#AI23UX2vg3B}0 zN)*aci;6Sz^AwEr3>7qrK|(o+dFi?q21a@YdZxw-$w*uiBhAUmjEbt4faV*q3GjF= zk;|zA+5rNL3`_^lFS7-*v=|u}imluxSISAVx`o8Mg-vecl3)%_a+gK6$xJQ*IzO?fGC0^hxG*?49$}#+&;aet5#nx4{3k^ZfA9nvPysbykB}_CTS#!Q zX<1@UX(~_`#8#%@q|NIXtC;jw`AQmPLs}7pNQL2u{8A{Y9igiK z>M$}yR10mi0IDs);yR1W;$Wb|a#P`+0wx!IaO`d4^ z&ty44fyqmG1t;6G@oxSvu%40so?HI{khX59HeixM(FO`C_stH%&WykeasRD+FepNM zu=pMrp&t3gC2%W&DQU7Go6cr#sRYJ)1_lM7HUS`p0TvhoNLK=lg8@!v28M^M3=A7M zU?L0*kz5Q6m$(@i^!OlRkw^wz6GW&3vD}3bd`3|yTOLRki2)6fVPH_=%1}hI53B+J D&F&%v delta 1148 zcmZp0{NXTROZ^9S1_o6g1_lKN1_mM4khF#a3I+m7ON7|BFfc?jGBB(JiaQn*DVXRPD5R#Pr6!kTmZj<%>lrC%6oVAxB<7{-S{fMW8R(grDkLLu zjmA!kqrlm`JuhK7#y9v(ne1rq~9 zvDIX68Cj;_q{)S15&~h#!NKvt!KP)2Ii;y3ZdH>Lg*7)XVh>>AJ19|*Zw=HF4|F+D z47F2?z~=7{LN^;^qWlbw&Xe2GhfqW_CcWUm-5!mV&tu5?WT^ z(2AG3%gDEtlYa|HWj916A|fFwL7vf^yogS4kN>jeMjCC3^R9E^9OwuUcvj7L146{C?cKv>z3!t>Dh3P~?BY52S2SY6aCk!WW`Z><{sa^r7 zQvirrfcO$HaF9V2Q1B`nvIqmie-2cB85aY?M{bDNDqd7MNqz3g& R3noQ@loD5lBG3mY006FmCNls4 diff --git a/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule b/Vendor/tvOS/OHHTTPStubs/OHHTTPStubs.framework/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule index bb168e7777f6d9e061d316105d73b9863df82056..8faf7a50b0a48f63d5f47db0e32f3ea86875e34c 100644 GIT binary patch literal 89480 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 z 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⪙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 F#lPR^#I^tc literal 161152 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 - - - - files - - Headers/Compatibility.h - - nemLhJiiA6nuG4OxoVs57Y5zqGo= - - Headers/NSURLRequest+HTTPBodyTesting.h - - H3vdqK8C1nEIEXq2TydQIuiUqOk= - - Headers/OHHTTPStubs+Mocktail.h - - HBJXiONzOSGXUVvXPMBlYqcc5H4= - - Headers/OHHTTPStubs-Swift.h - - /jwVLQaajx9eIxfFUJdEDxPuuCY= - - Headers/OHHTTPStubs.h - - RoBHEilAFpOE08MkLhruCObzkxE= - - Headers/OHHTTPStubsResponse+HTTPMessage.h - - 2zrzlO2ZNMPfZAnd9OrFoqzLjXc= - - Headers/OHHTTPStubsResponse+JSON.h - - +bLHNatq/iqFBhJGW0RmLtR3N40= - - Headers/OHHTTPStubsResponse.h - - PWTrHlykxPJRV19tkVwCAVXqtuU= - - Headers/OHHTTPStubsUmbrella.h - - zE7DG8ejd3euxzsfqiaOyKa6m6w= - - Headers/OHPathHelpers.h - - 6S/cHlZUT1vzFyvPs0tcJjr/4Do= - - Info.plist - - fZAEf6qUBqhybHzwzvNbD86FlT4= - - Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc - - f3FJ3tFkysCEsqInbnz/uA3S6Co= - - Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule - - EFPeS45hbsjC4JgyZHtMECkf3CI= - - Modules/module.modulemap - - Qf6JiIASJNyHs4CmPt0Q0sdMOqA= - - - files2 - - Headers/Compatibility.h - - hash - - nemLhJiiA6nuG4OxoVs57Y5zqGo= - - hash2 - - m4D+FqZi5EMZxsTr80tSkbaiHWGb5CkHoe0lyZw7XE8= - - - Headers/NSURLRequest+HTTPBodyTesting.h - - hash - - H3vdqK8C1nEIEXq2TydQIuiUqOk= - - hash2 - - vvGmF6kDREiRKGxec8UEEFQERVvsmk58QJy2qTNtJAg= - - - Headers/OHHTTPStubs+Mocktail.h - - hash - - HBJXiONzOSGXUVvXPMBlYqcc5H4= - - hash2 - - Qp9ZvdlDoyxw+LAFH/wB8MONfsUg0TO/JXmJ/shmv/8= - - - Headers/OHHTTPStubs-Swift.h - - hash - - /jwVLQaajx9eIxfFUJdEDxPuuCY= - - hash2 - - yjwM1vfw3iQqn6suLEIFDx00BHInYGp9Ba78TQzAJT8= - - - Headers/OHHTTPStubs.h - - hash - - RoBHEilAFpOE08MkLhruCObzkxE= - - hash2 - - 745NpmUw36jvbBH+GBMymztfrPTN3bU4vyun2AlRIJs= - - - Headers/OHHTTPStubsResponse+HTTPMessage.h - - hash - - 2zrzlO2ZNMPfZAnd9OrFoqzLjXc= - - hash2 - - g9d2U4ru46M40btW7slDlPHy8I+JsnptmHmGLAa8v2Y= - - - Headers/OHHTTPStubsResponse+JSON.h - - hash - - +bLHNatq/iqFBhJGW0RmLtR3N40= - - hash2 - - Bp7Kt3XDAfkOFOS18pRCodGuMpBKzeKLERxYCx1Yzi4= - - - Headers/OHHTTPStubsResponse.h - - hash - - PWTrHlykxPJRV19tkVwCAVXqtuU= - - hash2 - - v3eQosOrWNwrdzkqcHyYAO1T0rF6qhEe9gEehu7ydGg= - - - Headers/OHHTTPStubsUmbrella.h - - hash - - zE7DG8ejd3euxzsfqiaOyKa6m6w= - - hash2 - - zothncXWsfmn+kCKomlPTjftXHc61Wn23L3mF5JryK4= - - - Headers/OHPathHelpers.h - - hash - - 6S/cHlZUT1vzFyvPs0tcJjr/4Do= - - hash2 - - Eofzvw21IujIAjV2dhjG/nSdBdIY7koxLN3c0k/zHRc= - - - Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc - - hash - - f3FJ3tFkysCEsqInbnz/uA3S6Co= - - hash2 - - Gyb32wj1q0BWDJf9dI2mCMY2mLLJm0PwA6Lz/O2nb/A= - - - Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule - - hash - - EFPeS45hbsjC4JgyZHtMECkf3CI= - - hash2 - - eBmlgwit4jclavDe+iS8wQvNQ6uKUcfg4dRkGJHY0uI= - - - Modules/module.modulemap - - hash - - Qf6JiIASJNyHs4CmPt0Q0sdMOqA= - - hash2 - - kQzDPXwoVsgHIhj+oJ7S/qnHqhmhRLQ/mFNoyny1cy0= - - - - rules - - ^ - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^ - - weight - 20 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - From 0b4316f621495b6973ec33bdbd1aac9f09279431 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 15:53:47 -0700 Subject: [PATCH 58/61] Revert "Revert "Revert "Update OHHTTPStubs that is built on Xcode 9""" This reverts commit c6045d3df2d7bd717c82876c709486a74a9a317e. --- .../Versions/A/Headers/OHHTTPStubs-Swift.h | 76 ++++-------------- .../OHHTTPStubs.swiftmodule/x86_64.swiftdoc | Bin 8316 -> 8324 bytes .../x86_64.swiftmodule | Bin 22420 -> 90212 bytes .../Versions/A/Modules/module.modulemap | 1 - .../Versions/A/OHHTTPStubs | Bin 186272 -> 137812 bytes .../Versions/A/Resources/Info.plist | 12 +-- 6 files changed, 20 insertions(+), 69 deletions(-) diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h index c475755046..1f2308d57b 100644 --- a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h +++ b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Headers/OHHTTPStubs-Swift.h @@ -1,30 +1,7 @@ -// Generated by Apple Swift version 4.0 effective-3.2 (swiftlang-900.0.65 clang-900.0.37) +// Generated by Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42) #pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgcc-compat" -#if !defined(__has_include) -# define __has_include(x) 0 -#endif -#if !defined(__has_attribute) -# define __has_attribute(x) 0 -#endif -#if !defined(__has_feature) -# define __has_feature(x) 0 -#endif -#if !defined(__has_warning) -# define __has_warning(x) 0 -#endif - -#if __has_attribute(external_source_symbol) -# define SWIFT_STRINGIFY(str) #str -# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol)))) -# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop") -#else -# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) -# define SWIFT_MODULE_NAMESPACE_POP -#endif - -#if __has_include() +#if defined(__has_include) && __has_include() # include #endif @@ -36,7 +13,7 @@ #if !defined(SWIFT_TYPEDEFS) # define SWIFT_TYPEDEFS 1 -# if __has_include() +# if defined(__has_include) && __has_include() # include # elif !defined(__cplusplus) || __cplusplus < 201103L typedef uint_least16_t char16_t; @@ -71,36 +48,31 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # endif #endif -#if __has_attribute(objc_runtime_name) +#if defined(__has_attribute) && __has_attribute(objc_runtime_name) # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else # define SWIFT_RUNTIME_NAME(X) #endif -#if __has_attribute(swift_name) +#if defined(__has_attribute) && __has_attribute(swift_name) # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else # define SWIFT_COMPILE_NAME(X) #endif -#if __has_attribute(objc_method_family) +#if defined(__has_attribute) && __has_attribute(objc_method_family) # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else # define SWIFT_METHOD_FAMILY(X) #endif -#if __has_attribute(noescape) +#if defined(__has_attribute) && __has_attribute(noescape) # define SWIFT_NOESCAPE __attribute__((noescape)) #else # define SWIFT_NOESCAPE #endif -#if __has_attribute(warn_unused_result) +#if defined(__has_attribute) && __has_attribute(warn_unused_result) # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else # define SWIFT_WARN_UNUSED_RESULT #endif -#if __has_attribute(noreturn) -# define SWIFT_NORETURN __attribute__((noreturn)) -#else -# define SWIFT_NORETURN -#endif #if !defined(SWIFT_CLASS_EXTRA) # define SWIFT_CLASS_EXTRA #endif @@ -111,7 +83,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -# if __has_attribute(objc_subclassing_restricted) +# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA # else @@ -130,23 +102,16 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -# if __has_attribute(objc_designated_initializer) +# if defined(__has_attribute) && __has_attribute(objc_designated_initializer) # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) # else # define OBJC_DESIGNATED_INITIALIZER # endif #endif -#if !defined(SWIFT_ENUM_ATTR) -# if defined(__has_attribute) && __has_attribute(enum_extensibility) -# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open))) -# else -# define SWIFT_ENUM_ATTR -# endif -#endif #if !defined(SWIFT_ENUM) -# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type -# if __has_feature(generalized_swift_name) -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type +# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type +# if defined(__has_feature) && __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type # else # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name) # endif @@ -166,22 +131,9 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(SWIFT_DEPRECATED_MSG) # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif -#if __has_feature(attribute_diagnose_if_objc) -# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) -#else -# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) -#endif -#if __has_feature(modules) +#if defined(__has_feature) && __has_feature(modules) #endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" -#if __has_warning("-Wpragma-clang-attribute") -# pragma clang diagnostic ignored "-Wpragma-clang-attribute" -#endif -#pragma clang diagnostic ignored "-Wunknown-pragmas" -#pragma clang diagnostic ignored "-Wnullability" - -SWIFT_MODULE_NAMESPACE_PUSH("OHHTTPStubs") -SWIFT_MODULE_NAMESPACE_POP #pragma clang diagnostic pop diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftdoc index 47adf2868ba427f972d3865a5a0a9077185c5395..0ff5f4fc2be58b63c2f7433c6b906b7bcb3ba238 100644 GIT binary patch delta 1095 zcmez4(Be2@OY~=U1_o6g1_l`h1_mM4kkp0)3I+l}oy<`T46_*;Y#AI23UX2vg3B}0 zN)*aci;6Sz^AwEr3>7qrK|(o+dFi?q21a@YdZxw-$w*uiBhAUmjH;@afaV*q3GjF= zk;|zA+5rNL3`_^lFS7-*v=|u}imlux*UCw=x`o8Mg-tHxm0%7|a+>^CNOSQ6IYvQ7 zhNl%RDj>D4P_^%5fNFz-;c6`=8;Xl>c97L)!4+)Ut7IGOds^8{lHUsLFfVd4suUTes zKw?P-a){`HY@Hl0%e&c+?I9z7zhHZ25K#ANs3UDTq@>-PgYyk7{epv1(@S#_i(D%T zic*U~kqh^wGbmUm|KbqZyp3ZqBY&a%K`ncrAqG%G?s3Z^Vhrfc$$x~jCO?qlogBdP zoBxaT)Lu}qs6!RkON(;^goeQV1&m=wPz(b#@J(*wf3L&H5K%3((E_NY1WWK(WEKY} zXQbw)B70IF9JIT5y%_m-PfKe+wGJ2yNT~^C7w_bE(jNqw8UB4c^TY*c*AJ-kriv(` z#F`D*XeQA!jQnv7yOcoQ{t8vvC;;>}QsT1$hmwOV%jTN`HyQcwx%DpqDes0V2PPtf za!_pk5$Xn|>HBZxgFzA6168*{QUsw67&_n>+{`bPz*x_~pa4`T0K_oB0%HK_N}vHS zz{$+O@Q{^(VFL$Dgn=QFi-F-1Hv@wnA4Dt?$)Ib32z4NqyD);!C<DVXRPD5R#Pr6!kTmZj<%>lrC%6oVAxB<7{-S{fMW8R(grDkLLu zjmA!kqrlm`JuhK7#y9v(ne1rq~9 zvDIXM8Cj;_q{)U-5&~h#!NKvt!KP)2Ii;y3ZdH>fh-q$K#vZ_=bx@)p-x{bV9_aF7 zD?>wn508+LfZ&qSq+&zE%wpGylGHqq^C1SYf(&xoY{!+zsG_>kZm}s)rv%tG6rE<7 z#Q}*W84x{eU_H8%?YZ@;YuAsBeLetOP2aAZ9jMf#)ahsrdD_ zKxGC{WrDCk0V{I>D^nEut(L#MtkE2(t_0In7MaDtKnLZfq6ET4kupZUj|$5lSOImZ zLrm8emV!Eh1>}gy{bJ^mXA6H2U|}#lY-wf(RQMI5kY5Vs3`p=;f&I2YN?>v+uiWN| zQtKJ{wsP`s0qN+5=s?6KLT2*+)8L0XPMD=lTC8$Fns%?Pg zYi~A@IK#*{RsC#07*J&aB$dRmz*I_xB^MhSxMTtoXntN|QDs` zHzt*`-J!*xNbdn#gC6M~`NbvZk*>YDO)h~^hmqmNz9a7uL4~3fl+t`tOEU6P++9N; z27tqFbHA86qW~j=jc(&FP*l4@Ja>*s8pU%KpupR#z^u>6SHIuq0w_6aK~zRE!c>A| z+X)=orx-uiD*)9905J;?UjhaMGN=LyUS&fTVPN>rfyyuAVqo~l4G~+#iz+9{&%odz Z0TC0ILX~Ti2J?a07YIaUC+8`M0RY&}8r1** diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/OHHTTPStubs.swiftmodule/x86_64.swiftmodule index b2ef2fb538016a7b527e4179ef5e42bbdc367f52..4fb0298e030f18174b097a16cad4367f56ee65c1 100644 GIT binary patch literal 90212 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 diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/module.modulemap b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/module.modulemap index 50d3932368..70cbaedae3 100644 --- a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/module.modulemap +++ b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/Modules/module.modulemap @@ -7,5 +7,4 @@ framework module OHHTTPStubs { module OHHTTPStubs.Swift { header "OHHTTPStubs-Swift.h" - requires objc } diff --git a/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/OHHTTPStubs b/Vendor/macOS/OHHTTPStubs/OHHTTPStubs.framework/Versions/A/OHHTTPStubs index 4d7e32048d4709f5ce8df4ad4d2aa9cc621c21ce..159fef0ee11ccf4a9ce2eb9765683fe10d798526 100755 GIT binary patch literal 137812 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 YyDoQdZ{dvXJ==B03oSkDgXcg literal 186272 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 BuildMachineOSBuild - 16G29 + 17A344b CFBundleDevelopmentRegion English CFBundleExecutable @@ -29,17 +29,17 @@ DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 9A235 + 8E3004b DTPlatformVersion GM DTSDKBuild - 17A360 + 16E185 DTSDKName - macosx10.13 + macosx10.12 DTXcode - 0900 + 0833 DTXcodeBuild - 9A235 + 8E3004b NSHumanReadableCopyright Copyright © 2014 AliSoftware. All rights reserved. From ef21498d75033336e7d43baa82b4222789d7f7ab Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 15:54:00 -0700 Subject: [PATCH 59/61] Revert "Turn CLANG_MODULES_AUTOLINK flag off for Xcode 9 build" This reverts commit e2286384e8714fc637679421966a6b9fec04292b. --- Config/Framework.xcconfig | 1 - .../MobileCenter.xcodeproj/project.pbxproj | 18 ++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 18 ++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 18 ++++++------------ .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- .../Support/tvOS Framework.xcconfig | 2 -- .../project.pbxproj | 8 ++------ .../Support/iOS Framework.xcconfig | 2 -- .../MobileCenterPush.xcodeproj/project.pbxproj | 12 ++++-------- .../Support/iOS Framework.xcconfig | 2 -- .../Support/macOS Framework.xcconfig | 2 -- 18 files changed, 24 insertions(+), 75 deletions(-) delete mode 100644 Config/Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/iOS Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/macOS Framework.xcconfig delete mode 100644 MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig delete mode 100644 MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig delete mode 100644 MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig delete mode 100644 MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig delete mode 100644 MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig diff --git a/Config/Framework.xcconfig b/Config/Framework.xcconfig deleted file mode 100644 index 2fe9ffec93..0000000000 --- a/Config/Framework.xcconfig +++ /dev/null @@ -1 +0,0 @@ -CLANG_MODULES_AUTOLINK = NO diff --git a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj index 40f31addaf..14d9c589b5 100644 --- a/MobileCenter/MobileCenter.xcodeproj/project.pbxproj +++ b/MobileCenter/MobileCenter.xcodeproj/project.pbxproj @@ -559,9 +559,6 @@ 043120701EE0BCC4007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043120711EE0BCC4007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; 043120DA1EE0BCF9007054C5 /* libMobileCenter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenter.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF2B1F3B864600C8E338 /* MobileCenter.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenter.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 045660FA1D99EEEB002F7055 /* MSLogWithPropertiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSLogWithPropertiesTests.m; sourceTree = ""; }; 045BC3161E3FD88600B6C960 /* MSKeychainUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSKeychainUtil.m; sourceTree = ""; }; @@ -1012,13 +1009,10 @@ 6E0401841D1CAD810051BCFA /* MobileCenter Debug.xcconfig */, 0469D1B11F4DF89A00A43A8E /* MobileCenter Release.xcconfig */, 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */, - 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */, 0485AFEE1EAAAD0000C10CAF /* iOS.modulemap */, 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */, - 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */, 0485AFEC1EAAAC3B00C10CAF /* macOS.modulemap */, 043120711EE0BCC4007054C5 /* tvOS.xcconfig */, - 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */, 043120701EE0BCC4007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1960,14 +1954,14 @@ }; 0431214C1EE0BFC7007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 0431214D1EE0BFC7007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74141F79918900DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043120711EE0BCC4007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -2016,14 +2010,14 @@ }; 0485AFE91EAA937000C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFEA1EAA937000C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74131F79918900DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8291ECE3A5A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -2090,14 +2084,14 @@ }; 6E04017E1D1CAC710051BCFA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 6E04017F1D1CAC710051BCFA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74121F79918900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8281ECE3A5200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenter/MobileCenter/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenter/MobileCenter/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig b/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenter/MobileCenter/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj index 46fe498d4a..14034a5e07 100644 --- a/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj +++ b/MobileCenterAnalytics/MobileCenterAnalytics.xcodeproj/project.pbxproj @@ -264,9 +264,6 @@ 0431216C1EE0C20A007054C5 /* libMobileCenterAnalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterAnalytics.a; sourceTree = BUILT_PRODUCTS_DIR; }; 043121721EE0C248007054C5 /* tvOS.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = tvOS.modulemap; sourceTree = ""; }; 043121731EE0C248007054C5 /* tvOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = tvOS.xcconfig; sourceTree = ""; }; - 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF541F3B8E6300C8E338 /* MobileCenterAnalytics.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterAnalytics.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DF5E1F3B8FBA00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DF611F3B95EB00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug/libMobileCenter.a"; sourceTree = ""; }; @@ -568,13 +565,10 @@ B2812EF21DA3148000307DCE /* MobileCenterAnalytics Debug.xcconfig */, 0469D1B21F4DFE4C00A43A8E /* MobileCenterAnalytics Release.xcconfig */, 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */, - 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */, 04ED31EB1EAAD3390033BAAE /* iOS.modulemap */, 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */, - 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */, 04ED31E91EAAD32B0033BAAE /* macOS.modulemap */, 043121731EE0C248007054C5 /* tvOS.xcconfig */, - 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */, 043121721EE0C248007054C5 /* tvOS.modulemap */, ); path = Support; @@ -1072,14 +1066,14 @@ }; 043121701EE0C213007054C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 043121711EE0C213007054C5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741A1F7991EB00DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 043121731EE0C248007054C5 /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -1128,14 +1122,14 @@ }; 0485AFF21EAAADAC00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFF31EAAADAC00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74181F7991EB00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC82B1ECE3B9A00FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -1216,14 +1210,14 @@ }; E85547E61D2D681F002DF6E2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; E85547E71D2D681F002DF6E2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74191F7991EB00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC82A1ECE3B9400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig b/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenterAnalytics/MobileCenterAnalytics/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj index 203a56d273..07a77ab695 100644 --- a/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj +++ b/MobileCenterCrashes/MobileCenterCrashes.xcodeproj/project.pbxproj @@ -465,9 +465,6 @@ 04311FFB1EE08885007054C5 /* MSCrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSCrashReporter.h; sourceTree = ""; }; 043281611F74A665002F7205 /* MSMockUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSMockUserDefaults.h; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.h; sourceTree = ""; }; 043281621F74A665002F7205 /* MSMockUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSMockUserDefaults.m; path = ../../MobileCenter/MobileCenterTests/Util/MSMockUserDefaults.m; sourceTree = ""; }; - 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; - 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "tvOS Framework.xcconfig"; sourceTree = ""; }; 0446DF9D1F3B977100C8E338 /* MobileCenterCrashes.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterCrashes.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 0446DFA41F3B986B00C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-appletvsimulator/libMobileCenter.a"; sourceTree = ""; }; 0446DFA91F3B98A300C8E338 /* libMobileCenter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileCenter.a; path = "../../../../../Library/Developer/Xcode/DerivedData/MobileCenter-atgozldoovnqvrcmynluxwlivwkq/Build/Products/Debug-iphonesimulator/libMobileCenter.a"; sourceTree = ""; }; @@ -973,13 +970,10 @@ 6E37297F1D1DE93800F1E4AE /* MobileCenterCrashes Debug.xcconfig */, 0469D1B31F4E013C00A43A8E /* MobileCenterCrashes Release.xcconfig */, 049BC8251ECE36D400FB6719 /* iOS.xcconfig */, - 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */, 04ED31F21EAAD6070033BAAE /* iOS.modulemap */, 049BC8261ECE370100FB6719 /* macOS.xcconfig */, - 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */, 04ED31F51EAAD6070033BAAE /* macOS.modulemap */, 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */, - 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */, 04EBBEEE1F01C1420006B8AE /* tvOS.modulemap */, ); path = Support; @@ -1744,14 +1738,14 @@ }; 0485AFFC1EAAB27E00C10CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 0485AFFD1EAAB27E00C10CAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74161F7991C800DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 049BC8261ECE370100FB6719 /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -1786,14 +1780,14 @@ }; 04EBBEEC1F01C0E10006B8AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; buildSettings = { }; name = Debug; }; 04EBBEED1F01C0E10006B8AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74171F7991C800DF2C8D /* tvOS Framework.xcconfig */; + baseConfigurationReference = 04EBBEEF1F01C1420006B8AE /* tvOS.xcconfig */; buildSettings = { }; name = Release; @@ -1874,14 +1868,14 @@ }; 6E3729791D1DE83200F1E4AE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 6E37297A1D1DE83200F1E4AE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B74151F7991C800DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8251ECE36D400FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig b/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig deleted file mode 100644 index e8d022a9ca..0000000000 --- a/MobileCenterCrashes/MobileCenterCrashes/Support/tvOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./tvOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj index a35dc1471d..149fab8f22 100644 --- a/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj +++ b/MobileCenterDistribute/MobileCenterDistribute.xcodeproj/project.pbxproj @@ -40,7 +40,6 @@ 040AF0331E52859F005C1174 /* MSSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 040AF0321E52859F005C1174 /* MSSender.h */; }; 0415974B1E9D639D00EC6BDA /* MSDistributionGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0415974A1E9D639D00EC6BDA /* MSDistributionGroupTests.m */; }; 0420A69C1ECA7C8E00915619 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0420A69B1ECA7C8E00915619 /* OCMock.framework */; }; - 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; }; 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */; }; 046EF5891EAEB524002F6436 /* MSDistributeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 046FDBD31E5682FA00AF9DD1 /* MSAlertController.h in Headers */ = {isa = PBXBuildFile; fileRef = 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */; }; @@ -143,7 +142,6 @@ 041CFFA31ECD0E0E00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A69B1ECA7C8E00915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../../iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF71EE0871D007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; - 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterDistribute Release.xcconfig"; sourceTree = ""; }; 046EF5881EAEB524002F6436 /* MSDistributeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSDistributeDelegate.h; sourceTree = ""; }; 046FDBD11E5682FA00AF9DD1 /* MSAlertController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSAlertController.h; path = ../../Vendor/iOS/MSAlertController/MSAlertController.h; sourceTree = ""; }; @@ -281,7 +279,6 @@ 0471B5F41E45466F0022F951 /* MobileCenterDistribute Debug.xcconfig */, 043E2AB31F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig */, 049BC8221ECE349200FB6719 /* iOS.xcconfig */, - 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */, 049BC8271ECE387A00FB6719 /* iOS.modulemap */, ); path = Support; @@ -614,7 +611,6 @@ files = ( B2C070C51E5E6A200076D6A9 /* MobileCenterDistributeResources.bundle in Resources */, 043E2AB41F4E024300615AD9 /* MobileCenterDistribute Release.xcconfig in Resources */, - 043B741C1F79924900DF2C8D /* iOS Framework.xcconfig in Resources */, 040AF0121E523AC2005C1174 /* release_details.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -771,14 +767,14 @@ }; 04FD4A2A1E451E90009B4468 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; 04FD4A2B1E451E90009B4468 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741B1F79924900DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC8221ECE349200FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig b/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterDistribute/MobileCenterDistribute/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj index ae888097e2..40e95f6d36 100644 --- a/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj +++ b/MobileCenterPush/MobileCenterPush.xcodeproj/project.pbxproj @@ -161,8 +161,6 @@ 041CFFA71ECD0E9A00B4654B /* Tests iOS.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Tests iOS.xcconfig"; path = "../../Config/Tests iOS.xcconfig"; sourceTree = ""; }; 0420A6A11ECA7D7200915619 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMock.framework; path = ../Vendor/iOS/OCMock/OCMock.framework; sourceTree = ""; }; 04311FF91EE08772007054C5 /* MSTestFrameworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSTestFrameworks.h; path = ../../../MobileCenter/MobileCenterTests/Util/MSTestFrameworks.h; sourceTree = ""; }; - 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "iOS Framework.xcconfig"; sourceTree = ""; }; - 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "macOS Framework.xcconfig"; sourceTree = ""; }; 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MobileCenterPush Release.xcconfig"; sourceTree = ""; }; 0469640D1F2A558300F9D31F /* libMobileCenterPush.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileCenterPush.a; sourceTree = BUILT_PRODUCTS_DIR; }; 046964251F2A559C00F9D31F /* MobileCenterPush.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MobileCenterPush.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -377,10 +375,8 @@ D3AD5F051E5C7FFF001627AB /* MobileCenterPush Debug.xcconfig */, 043E2ABA1F4E033A00615AD9 /* MobileCenterPush Release.xcconfig */, 049BC81E1ECE333700FB6719 /* iOS.xcconfig */, - 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */, D3AD5F3E1E5D69B0001627AB /* iOS.modulemap */, 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */, - 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */, 0469642E1F2A55CF00F9D31F /* macOS.modulemap */, ); path = Support; @@ -739,14 +735,14 @@ }; 046964111F2A558F00F9D31F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; buildSettings = { }; name = Debug; }; 046964121F2A558F00F9D31F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741E1F79929A00DF2C8D /* macOS Framework.xcconfig */; + baseConfigurationReference = 0469642F1F2A55CF00F9D31F /* macOS.xcconfig */; buildSettings = { }; name = Release; @@ -827,14 +823,14 @@ }; D3AD5F231E5C9562001627AB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Debug; }; D3AD5F241E5C9562001627AB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043B741D1F79929A00DF2C8D /* iOS Framework.xcconfig */; + baseConfigurationReference = 049BC81E1ECE333700FB6719 /* iOS.xcconfig */; buildSettings = { }; name = Release; diff --git a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig deleted file mode 100644 index d2f91f9775..0000000000 --- a/MobileCenterPush/MobileCenterPush/Support/iOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./iOS.xcconfig" -#include "../../../Config/Framework.xcconfig" diff --git a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig b/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig deleted file mode 100644 index afde5e08e5..0000000000 --- a/MobileCenterPush/MobileCenterPush/Support/macOS Framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "./macOS.xcconfig" -#include "../../../Config/Framework.xcconfig" From 0caa4159ebbd7a95107de976f27c3cc4b5c71549 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 16:39:48 -0700 Subject: [PATCH 60/61] Release 0.13.0 --- CHANGELOG.md | 23 +++++++++++++++++++ Config/Global.xcconfig | 2 +- Documentation/iOS/MobileCenter/.jazzy.yaml | 2 +- .../iOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- .../iOS/MobileCenterCrashes/.jazzy.yaml | 2 +- .../iOS/MobileCenterDistribute/.jazzy.yaml | 2 +- .../iOS/MobileCenterPush/.jazzy.yaml | 2 +- Documentation/macOS/MobileCenter/.jazzy.yaml | 2 +- .../macOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- .../macOS/MobileCenterCrashes/.jazzy.yaml | 2 +- .../macOS/MobileCenterPush/.jazzy.yaml | 2 +- Documentation/tvOS/MobileCenter/.jazzy.yaml | 2 +- .../tvOS/MobileCenterAnalytics/.jazzy.yaml | 2 +- .../tvOS/MobileCenterCrashes/.jazzy.yaml | 2 +- MobileCenter.podspec | 2 +- 15 files changed, 37 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59251179a1..2071df1e2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Mobile Center SDK for iOS Change Log +## Version 0.13.0 + +This version contains bug fixes, a new API and improvements. + +### MobileCenter + +* **[Feature]** Added an `sdkVersion` method to get a current version of Mobile Center SDK programmatically. +* **[Fix]** Fixed a database open failure when Mobile Center SDK is used with any other SQLite related libraries. + +### MobileCenterCrashes + +* **[Fix]** Fixed not sending crash logs when an application is crashed and relaunched from multitasking view. + +### MobileCenterDistribute + +* **[Improvement]** Added 11 more languages to Distribute UI. + +### MobileCenterPush + +* **[Fix]** Fixed sending push installation log twice after fresh install. + +___ + ## Version 0.12.3 This version contains a bug fix when the frameworks are integrated on applications which are built on Xcode 8 diff --git a/Config/Global.xcconfig b/Config/Global.xcconfig index dfea6a0b7d..add7f80d8d 100644 --- a/Config/Global.xcconfig +++ b/Config/Global.xcconfig @@ -1,5 +1,5 @@ BUILD_NUMBER = 1 -VERSION_STRING = 0.12.4 +VERSION_STRING = 0.13.0 // :Mark: Architectures MS_WATCH_ARCHS = armv7k diff --git a/Documentation/iOS/MobileCenter/.jazzy.yaml b/Documentation/iOS/MobileCenter/.jazzy.yaml index 8ec043650a..e36ce69315 100644 --- a/Documentation/iOS/MobileCenter/.jazzy.yaml +++ b/Documentation/iOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml index e84ca96bd2..4cc20ceb25 100644 --- a/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml index d0f10b9652..25ed24cf4e 100644 --- a/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: Crashes -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml b/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml index ac9d14f66a..fdbc539587 100644 --- a/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterDistribute/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: Distribute -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/iOS/MobileCenterPush/.jazzy.yaml b/Documentation/iOS/MobileCenterPush/.jazzy.yaml index 3c875e941a..78a22c4215 100644 --- a/Documentation/iOS/MobileCenterPush/.jazzy.yaml +++ b/Documentation/iOS/MobileCenterPush/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: iphonesimulator theme: ../../Themes/apple module: MobileCenterPush -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenter/.jazzy.yaml b/Documentation/macOS/MobileCenter/.jazzy.yaml index 3c92b8ae6d..63f87d3115 100644 --- a/Documentation/macOS/MobileCenter/.jazzy.yaml +++ b/Documentation/macOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml index 9ab4768fcb..799c7722c3 100644 --- a/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml index a574ae65b0..33123f3c16 100644 --- a/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: Crashes -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/macOS/MobileCenterPush/.jazzy.yaml b/Documentation/macOS/MobileCenterPush/.jazzy.yaml index a37b3a3d22..9225ab9d04 100644 --- a/Documentation/macOS/MobileCenterPush/.jazzy.yaml +++ b/Documentation/macOS/MobileCenterPush/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: macosx theme: ../../Themes/apple module: MobileCenterPush -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenter/.jazzy.yaml b/Documentation/tvOS/MobileCenter/.jazzy.yaml index ef5b8e4b57..a160c62bd9 100644 --- a/Documentation/tvOS/MobileCenter/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenter/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: MobileCenter -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml b/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml index b889add90d..d2258ae33b 100644 --- a/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenterAnalytics/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: MobileCenterAnalytics -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml b/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml index d6fb49a408..f244c36252 100644 --- a/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml +++ b/Documentation/tvOS/MobileCenterCrashes/.jazzy.yaml @@ -5,7 +5,7 @@ sdk: appletvsimulator theme: ../../Themes/apple module: Crashes -module_version: 0.12.4 +module_version: 0.13.0 author: Microsoft Corp author_url: http://www.microsoft.com diff --git a/MobileCenter.podspec b/MobileCenter.podspec index a4f13cddca..3553c48671 100644 --- a/MobileCenter.podspec +++ b/MobileCenter.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MobileCenter' - s.version = '0.12.3' + s.version = '0.13.0' s.summary = 'Mobile Center is mission control for mobile apps. Get faster release cycles, higher-quality apps, and the insights to build what users want.' s.description = <<-DESC From 0396482e9a38818dbc1a49dfd33991e51740fb06 Mon Sep 17 00:00:00 2001 From: Jae Lim Date: Tue, 3 Oct 2017 16:46:08 -0700 Subject: [PATCH 61/61] Address PR feedback --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2071df1e2e..0b8c8866cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ This version contains bug fixes, a new API and improvements. ### MobileCenter -* **[Feature]** Added an `sdkVersion` method to get a current version of Mobile Center SDK programmatically. +* **[Feature]** Added an `sdkVersion` method to get the current version of Mobile Center SDK programmatically. * **[Fix]** Fixed a database open failure when Mobile Center SDK is used with any other SQLite related libraries. ### MobileCenterCrashes