From b0419edf55c7f389b36cb47dd5c376bbd3d03d69 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 18 Feb 2019 21:20:53 -0600 Subject: [PATCH 01/15] pumpmanager-changes (#3) * Modal presentation of CGMManager settings. * Don't push root viewcontroller * update to pumpmanager-updates * Setup controller is shown modally * Use dev LoopKit * Cartfile should be pointing to LoopKit dev --- Cartfile | 2 +- Cartfile.resolved | 2 +- ShareClientUI/ShareClientManager+UI.swift | 8 +++++--- .../ShareClientSettingsViewController.swift | 15 ++++++++++++++- .../ShareClientSetupViewController.swift | 8 +++++--- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Cartfile b/Cartfile index 5abe0d1..05195c5 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "LoopKit/LoopKit" ~> 2.0 +github "LoopKit/LoopKit" "dev" diff --git a/Cartfile.resolved b/Cartfile.resolved index ea5e0dd..d43c89f 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "v2.2.1" +github "LoopKit/LoopKit" "bf4166bc77f89e22971f2030ad006967881ff082" diff --git a/ShareClientUI/ShareClientManager+UI.swift b/ShareClientUI/ShareClientManager+UI.swift index e16b503..dcac4a0 100644 --- a/ShareClientUI/ShareClientManager+UI.swift +++ b/ShareClientUI/ShareClientManager+UI.swift @@ -11,12 +11,14 @@ import ShareClient extension ShareClientManager: CGMManagerUI { - public static func setupViewController() -> (UIViewController & CGMManagerSetupViewController)? { + public static func setupViewController() -> (UIViewController & CGMManagerSetupViewController & CompletionNotifying)? { return ShareClientSetupViewController() } - public func settingsViewController(for glucoseUnit: HKUnit) -> UIViewController { - return ShareClientSettingsViewController(cgmManager: self, glucoseUnit: glucoseUnit, allowsDeletion: true) + public func settingsViewController(for glucoseUnit: HKUnit) -> (UIViewController & CompletionNotifying) { + let settings = ShareClientSettingsViewController(cgmManager: self, glucoseUnit: glucoseUnit, allowsDeletion: true) + let nav = SettingsNavigationViewController(rootViewController: settings) + return nav } public var smallImage: UIImage? { diff --git a/ShareClientUI/ShareClientSettingsViewController.swift b/ShareClientUI/ShareClientSettingsViewController.swift index 9181c0b..b137785 100644 --- a/ShareClientUI/ShareClientSettingsViewController.swift +++ b/ShareClientUI/ShareClientSettingsViewController.swift @@ -45,6 +45,19 @@ public class ShareClientSettingsViewController: UITableViewController { tableView.register(SettingsTableViewCell.self, forCellReuseIdentifier: SettingsTableViewCell.className) tableView.register(TextButtonTableViewCell.self, forCellReuseIdentifier: TextButtonTableViewCell.className) + + let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped(_:))) + self.navigationItem.setRightBarButton(button, animated: false) + } + + @objc func doneTapped(_ sender: Any) { + complete() + } + + private func complete() { + if let nav = navigationController as? SettingsNavigationViewController { + nav.notifyComplete() + } } // MARK: - UITableViewDataSource @@ -168,7 +181,7 @@ public class ShareClientSettingsViewController: UITableViewController { case .delete: let confirmVC = UIAlertController(cgmDeletionHandler: { self.cgmManager.cgmManagerDelegate?.cgmManagerWantsDeletion(self.cgmManager) - self.navigationController?.popViewController(animated: true) + self.complete() }) present(confirmVC, animated: true) { diff --git a/ShareClientUI/ShareClientSetupViewController.swift b/ShareClientUI/ShareClientSetupViewController.swift index 79ee2fa..b396cbe 100644 --- a/ShareClientUI/ShareClientSetupViewController.swift +++ b/ShareClientUI/ShareClientSetupViewController.swift @@ -11,9 +11,11 @@ import LoopKitUI import ShareClient -class ShareClientSetupViewController: UINavigationController, CGMManagerSetupViewController { +class ShareClientSetupViewController: UINavigationController, CGMManagerSetupViewController, CompletionNotifying { var setupDelegate: CGMManagerSetupViewControllerDelegate? + weak var completionDelegate: CompletionDelegate? + let cgmManager = ShareClientManager() init() { @@ -37,11 +39,11 @@ class ShareClientSetupViewController: UINavigationController, CGMManagerSetupVie } @objc private func cancel() { - setupDelegate?.cgmManagerSetupViewControllerDidCancel(self) + completionDelegate?.completionNotifyingDidComplete(self) } @objc private func save() { setupDelegate?.cgmManagerSetupViewController(self, didSetUpCGMManager: cgmManager) + completionDelegate?.completionNotifyingDidComplete(self) } - } From dc39f5c579c004a8305df1584a9e479ace07966c Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Thu, 4 Apr 2019 16:24:28 -0500 Subject: [PATCH 02/15] Bump to latest LoopKit dev rev --- Cartfile.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cartfile.resolved b/Cartfile.resolved index d43c89f..8653667 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "bf4166bc77f89e22971f2030ad006967881ff082" +github "LoopKit/LoopKit" "fff218d34b0d6818a70541c6df5b584968897e53" From 23d7a8b1b9773ce054e4ad4829dc4234c7206b9a Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Sun, 5 May 2019 15:58:59 -0500 Subject: [PATCH 03/15] Adopt updates to DeviceManager protocol (#4) * Adopt updates to DeviceManager protocol * CGMManagerDelegateWrapper -> WeakSynchronizedDelegate * Bump loopkit rev --- Cartfile.resolved | 2 +- .../xcschemes/ShareClient.xcscheme | 2 +- .../xcschemes/ShareClientUI.xcscheme | 2 +- ShareClient/ShareClientManager.swift | 24 +++++++++++++++++-- .../ShareClientSettingsViewController.swift | 7 ++++-- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Cartfile.resolved b/Cartfile.resolved index 8653667..0284044 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "fff218d34b0d6818a70541c6df5b584968897e53" +github "LoopKit/LoopKit" "7333408f054e269669c91146b0f29bffbdcc150a" diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme index 13e3884..58e16e6 100644 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme @@ -1,6 +1,6 @@ () public let providesBLEHeartbeat = false @@ -73,7 +91,9 @@ public class ShareClientManager: CGMManager { } // Ignore glucose values that are up to a minute newer than our previous value, to account for possible time shifting in Share data - let startDate = self.cgmManagerDelegate?.startDateToFilterNewData(for: self)?.addingTimeInterval(TimeInterval(minutes: 1)) + let startDate = self.delegate.call { (delegate) -> Date? in + return delegate?.startDateToFilterNewData(for: self)?.addingTimeInterval(TimeInterval(minutes: 1)) + } let newGlucose = glucose.filterDateRange(startDate, nil) let newSamples = newGlucose.filter({ $0.isStateValid }).map { return NewGlucoseSample(date: $0.startDate, quantity: $0.quantity, isDisplayOnly: false, syncIdentifier: "\(Int($0.startDate.timeIntervalSince1970))", device: self.device) diff --git a/ShareClientUI/ShareClientSettingsViewController.swift b/ShareClientUI/ShareClientSettingsViewController.swift index b137785..cbcf60b 100644 --- a/ShareClientUI/ShareClientSettingsViewController.swift +++ b/ShareClientUI/ShareClientSettingsViewController.swift @@ -180,8 +180,11 @@ public class ShareClientSettingsViewController: UITableViewController { tableView.deselectRow(at: indexPath, animated: true) case .delete: let confirmVC = UIAlertController(cgmDeletionHandler: { - self.cgmManager.cgmManagerDelegate?.cgmManagerWantsDeletion(self.cgmManager) - self.complete() + self.cgmManager.notifyDelegateOfDeletion { + DispatchQueue.main.async { + self.complete() + } + } }) present(confirmVC, animated: true) { From 2b903d3a7daa83544c622538e3ea0a142543c473 Mon Sep 17 00:00:00 2001 From: Darin Krauss Date: Wed, 10 Apr 2019 14:15:15 -0700 Subject: [PATCH 04/15] Do not automatically create schemes --- .gitignore | 3 +-- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ .../xcshareddata/WorkspaceSettings.xcsettings | 8 ++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 ShareClient.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ShareClient.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/.gitignore b/.gitignore index 61f9ecb..5c13bfd 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,6 @@ profile DerivedData *.hmap *.ipa -project.xcworkspace # Bundler .bundle @@ -27,7 +26,7 @@ Carthage # We recommend against adding the Pods directory to your .gitignore. However # you should judge for yourself, the pros and cons are mentioned at: # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control -# +# # Note: if you ignore the Pods directory, make sure to uncomment # `pod install` in .travis.yml # diff --git a/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..08de0be --- /dev/null +++ b/ShareClient.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + From 6ee8431b8f021082f8368f6427465ff6d95c3d69 Mon Sep 17 00:00:00 2001 From: Darin Krauss Date: Wed, 10 Apr 2019 14:17:03 -0700 Subject: [PATCH 05/15] Explicitly specify project dependencies --- ShareClient.xcodeproj/project.pbxproj | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index 1d48918..0b4b854 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -72,6 +72,13 @@ remoteGlobalIDString = 432B0E871CDFC3C50045347B; remoteInfo = ShareClient; }; + A9E521F6225E949400EDDEF2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 432B0E7F1CDFC3C50045347B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 432B0E871CDFC3C50045347B; + remoteInfo = ShareClient; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -320,6 +327,7 @@ buildRules = ( ); dependencies = ( + A9E521F7225E949400EDDEF2 /* PBXTargetDependency */, 4325E9D9210E715200969CE5 /* PBXTargetDependency */, ); name = ShareClientUI; @@ -484,6 +492,11 @@ target = 432B0E871CDFC3C50045347B /* ShareClient */; targetProxy = 432B0E941CDFC3C50045347B /* PBXContainerItemProxy */; }; + A9E521F7225E949400EDDEF2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 432B0E871CDFC3C50045347B /* ShareClient */; + targetProxy = A9E521F6225E949400EDDEF2 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ From c71acce856a68af98cff1ec2e49a3932c7890a4d Mon Sep 17 00:00:00 2001 From: Darin Krauss Date: Wed, 10 Apr 2019 16:30:10 -0700 Subject: [PATCH 06/15] Create one shared scheme to improve Carthage build times; remove Cartfile target; project updates --- ShareClient.xcodeproj/project.pbxproj | 111 +----------------- .../xcschemes/ShareClientUI.xcscheme | 80 ------------- ...areClient.xcscheme => Shared iOS.xcscheme} | 28 +++-- 3 files changed, 22 insertions(+), 197 deletions(-) delete mode 100644 ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClientUI.xcscheme rename ShareClient.xcodeproj/xcshareddata/xcschemes/{ShareClient.xcscheme => Shared iOS.xcscheme} (87%) diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index 0b4b854..9e29343 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -6,20 +6,6 @@ objectVersion = 46; objects = { -/* Begin PBXAggregateTarget section */ - 43A8EC75210E653B00A81379 /* Cartfile */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 43A8EC76210E653C00A81379 /* Build configuration list for PBXAggregateTarget "Cartfile" */; - buildPhases = ( - 43A8EC79210E654300A81379 /* Build Carthage Dependencies */, - ); - dependencies = ( - ); - name = Cartfile; - productName = Cartfile; - }; -/* End PBXAggregateTarget section */ - /* Begin PBXBuildFile section */ 4325E9CF210E6A0A00969CE5 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4325E9CE210E6A0A00969CE5 /* HKUnit.swift */; }; 4325E9D1210E6A3D00969CE5 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4325E9D0210E6A3D00969CE5 /* TimeInterval.swift */; }; @@ -51,20 +37,6 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 4325E9D6210E714B00969CE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 432B0E7F1CDFC3C50045347B /* Project object */; - proxyType = 1; - remoteGlobalIDString = 43A8EC75210E653B00A81379; - remoteInfo = Cartfile; - }; - 4325E9D8210E715200969CE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 432B0E7F1CDFC3C50045347B /* Project object */; - proxyType = 1; - remoteGlobalIDString = 43A8EC75210E653B00A81379; - remoteInfo = Cartfile; - }; 432B0E941CDFC3C50045347B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 432B0E7F1CDFC3C50045347B /* Project object */; @@ -105,11 +77,11 @@ 432B0E921CDFC3C50045347B /* ShareClientTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ShareClientTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 432B0E971CDFC3C50045347B /* ShareClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareClientTests.swift; sourceTree = ""; }; 432B0E991CDFC3C50045347B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 43A8EC7B210E661400A81379 /* LoopKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LoopKit.framework; path = Carthage/Build/iOS/LoopKit.framework; sourceTree = ""; }; + 43A8EC7B210E661400A81379 /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43A8EC82210E664300A81379 /* ShareClientUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ShareClientUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43A8EC84210E664300A81379 /* ShareClientUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareClientUI.h; sourceTree = ""; }; 43A8EC85210E664300A81379 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 43A8EC8B210E665600A81379 /* LoopKitUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LoopKitUI.framework; path = Carthage/Build/iOS/LoopKitUI.framework; sourceTree = ""; }; + 43A8EC8B210E665600A81379 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43A8EC8D210E676500A81379 /* ShareClientSetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareClientSetupViewController.swift; sourceTree = ""; }; 43A8EC8E210E676500A81379 /* ShareClientManager+UI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ShareClientManager+UI.swift"; sourceTree = ""; }; 43A8EC8F210E676500A81379 /* ShareClientSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareClientSettingsViewController.swift; sourceTree = ""; }; @@ -289,7 +261,6 @@ buildRules = ( ); dependencies = ( - 4325E9D7210E714B00969CE5 /* PBXTargetDependency */, ); name = ShareClient; productName = ShareClient; @@ -328,7 +299,6 @@ ); dependencies = ( A9E521F7225E949400EDDEF2 /* PBXTargetDependency */, - 4325E9D9210E715200969CE5 /* PBXTargetDependency */, ); name = ShareClientUI; productName = ShareClientUI; @@ -353,10 +323,6 @@ CreatedOnToolsVersion = 7.3.1; LastSwiftMigration = 0900; }; - 43A8EC75210E653B00A81379 = { - CreatedOnToolsVersion = 9.4.1; - ProvisioningStyle = Automatic; - }; 43A8EC81210E664300A81379 = { CreatedOnToolsVersion = 9.4.1; LastSwiftMigration = 1000; @@ -389,7 +355,6 @@ 432B0E871CDFC3C50045347B /* ShareClient */, 432B0E911CDFC3C50045347B /* ShareClientTests */, 43A8EC81210E664300A81379 /* ShareClientUI */, - 43A8EC75210E653B00A81379 /* Cartfile */, ); }; /* End PBXProject section */ @@ -420,23 +385,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 43A8EC79210E654300A81379 /* Build Carthage Dependencies */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Build Carthage Dependencies"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"$CARTHAGE\" = \"YES\" ]; then\n echo \"Skipping carthage build because we're already in one\"\nelif [ -d $PROJECT_DIR/../../../Loop.xcworkspace ]; then\n echo \"Skipping carthage build because we're in a workspace\"\nelif [ -f $PROJECT_DIR/.gitmodules ]; then\n echo \"Skipping checkout due to presence of .gitmodules file\"\n if [ $ACTION = \"install\" ]; then\n echo \"You're installing: Make sure to keep all submodules up-to-date and run carthage build after changes.\"\n fi\nelse\n unset LLVM_TARGET_TRIPLE_SUFFIX\n echo \"Bootstrapping carthage dependencies\"\n /usr/local/bin/carthage bootstrap --project-directory \"$SRCROOT\" --cache-builds\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 432B0E831CDFC3C50045347B /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -477,16 +425,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 4325E9D7210E714B00969CE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 43A8EC75210E653B00A81379 /* Cartfile */; - targetProxy = 4325E9D6210E714B00969CE5 /* PBXContainerItemProxy */; - }; - 4325E9D9210E715200969CE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 43A8EC75210E653B00A81379 /* Cartfile */; - targetProxy = 4325E9D8210E715200969CE5 /* PBXContainerItemProxy */; - }; 432B0E951CDFC3C50045347B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 432B0E871CDFC3C50045347B /* ShareClient */; @@ -541,10 +479,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CARTHAGE_PLATFORM_PATH_iphoneos = iOS; - CARTHAGE_PLATFORM_PATH_iphonesimulator = iOS; - CARTHAGE_PLATFORM_PATH_watchos = watchOS; - CARTHAGE_PLATFORM_PATH_watchsimulator = watchOS; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -611,10 +545,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CARTHAGE_PLATFORM_PATH_iphoneos = iOS; - CARTHAGE_PLATFORM_PATH_iphonesimulator = iOS; - CARTHAGE_PLATFORM_PATH_watchos = watchOS; - CARTHAGE_PLATFORM_PATH_watchsimulator = watchOS; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -683,7 +613,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/$(CARTHAGE_PLATFORM_PATH_$(PLATFORM_NAME))", + "$(PROJECT_DIR)/Carthage/Build/iOS", ); INFOPLIST_FILE = ShareClient/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -691,10 +621,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClient; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos watchos watchsimulator"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2,4"; }; name = Debug; }; @@ -710,7 +638,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/$(CARTHAGE_PLATFORM_PATH_$(PLATFORM_NAME))", + "$(PROJECT_DIR)/Carthage/Build/iOS", ); INFOPLIST_FILE = ShareClient/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -718,9 +646,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClient; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos watchos watchsimulator"; SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2,4"; }; name = Release; }; @@ -728,7 +654,7 @@ isa = XCBuildConfiguration; buildSettings = { FRAMEWORK_SEARCH_PATHS = ( - "$(inherited),", + "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); INFOPLIST_FILE = ShareClientTests/Info.plist; @@ -743,7 +669,7 @@ isa = XCBuildConfiguration; buildSettings = { FRAMEWORK_SEARCH_PATHS = ( - "$(inherited),", + "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); INFOPLIST_FILE = ShareClientTests/Info.plist; @@ -754,22 +680,6 @@ }; name = Release; }; - 43A8EC77210E653C00A81379 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 43A8EC78210E653C00A81379 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; 43A8EC88210E664300A81379 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -867,15 +777,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 43A8EC76210E653C00A81379 /* Build configuration list for PBXAggregateTarget "Cartfile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 43A8EC77210E653C00A81379 /* Debug */, - 43A8EC78210E653C00A81379 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 43A8EC87210E664300A81379 /* Build configuration list for PBXNativeTarget "ShareClientUI" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClientUI.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClientUI.xcscheme deleted file mode 100644 index f5193fc..0000000 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClientUI.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared iOS.xcscheme similarity index 87% rename from ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme rename to ShareClient.xcodeproj/xcshareddata/xcschemes/Shared iOS.xcscheme index 58e16e6..1893dad 100644 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/ShareClient.xcscheme +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared iOS.xcscheme @@ -1,10 +1,10 @@ + buildImplicitDependencies = "NO"> + + + + - - - - Date: Wed, 10 Apr 2019 17:31:28 -0700 Subject: [PATCH 07/15] Create watchOS target and scheme --- ShareClient.xcodeproj/project.pbxproj | 178 ++++++++++++++++-- .../xcschemes/Shared watchOS.xcscheme | 80 ++++++++ 2 files changed, 243 insertions(+), 15 deletions(-) create mode 100644 ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index 9e29343..0b500d5 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -32,7 +32,18 @@ 43AB51362133177800B3D58D /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB51352133177800B3D58D /* LocalizedString.swift */; }; 43AB51372133177800B3D58D /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB51352133177800B3D58D /* LocalizedString.swift */; }; 43C418AF1CE0488900405B6A /* ShareClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C418AE1CE0488900405B6A /* ShareClient.swift */; }; - C17D3CC52184CBCD003458C8 /* LoopKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 43A8EC7B210E661400A81379 /* LoopKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A9AD06BC225ECDAC00471B4A /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43A8EC94210E67B000A81379 /* HealthKit.framework */; }; + A9ED4D93225EB4D30080DEBA /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4325E9CE210E6A0A00969CE5 /* HKUnit.swift */; }; + A9ED4D94225EB4D30080DEBA /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4325E9D0210E6A3D00969CE5 /* TimeInterval.swift */; }; + A9ED4D95225EB4D30080DEBA /* ShareClientManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A8EC9C210E68CE00A81379 /* ShareClientManager.swift */; }; + A9ED4D96225EB4D30080DEBA /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB51352133177800B3D58D /* LocalizedString.swift */; }; + A9ED4D97225EB4D30080DEBA /* ShareGlucose+GlucoseKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A8EC9A210E68BA00A81379 /* ShareGlucose+GlucoseKit.swift */; }; + A9ED4D98225EB4D30080DEBA /* ShareClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C418AE1CE0488900405B6A /* ShareClient.swift */; }; + A9ED4D99225EB4D30080DEBA /* ShareService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A8EC98210E682A00A81379 /* ShareService.swift */; }; + A9ED4D9C225EB4D30080DEBA /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43A8EC7B210E661400A81379 /* LoopKit.framework */; }; + A9ED4D9E225EB4D30080DEBA /* ShareClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 432B0E8B1CDFC3C50045347B /* ShareClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9ED4DA0225EB4D30080DEBA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 43AB5125213315D300B3D58D /* Localizable.strings */; }; + A9ED4DAF225EB93A0080DEBA /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9ED4DAE225EB9390080DEBA /* HealthKit.framework */; }; C17D3CC62184CC26003458C8 /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43A8EC7B210E661400A81379 /* LoopKit.framework */; }; /* End PBXBuildFile section */ @@ -53,19 +64,6 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - C17D3CC42184CBB7003458C8 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - C17D3CC52184CBCD003458C8 /* LoopKit.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 4325E9CE210E6A0A00969CE5 /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; 4325E9D0210E6A3D00969CE5 /* TimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; @@ -112,6 +110,8 @@ 43AB51302133161A00B3D58D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; 43AB51352133177800B3D58D /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; 43C418AE1CE0488900405B6A /* ShareClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareClient.swift; sourceTree = ""; }; + A9ED4DA4225EB4D30080DEBA /* ShareClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ShareClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9ED4DAE225EB9390080DEBA /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/HealthKit.framework; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -128,6 +128,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A9AD06BC225ECDAC00471B4A /* HealthKit.framework in Frameworks */, 432B0E931CDFC3C50045347B /* ShareClient.framework in Frameworks */, C17D3CC62184CC26003458C8 /* LoopKit.framework in Frameworks */, ); @@ -143,6 +144,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A9ED4D9A225EB4D30080DEBA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A9ED4DAF225EB93A0080DEBA /* HealthKit.framework in Frameworks */, + A9ED4D9C225EB4D30080DEBA /* LoopKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -164,6 +174,7 @@ 432B0E881CDFC3C50045347B /* ShareClient.framework */, 432B0E921CDFC3C50045347B /* ShareClientTests.xctest */, 43A8EC82210E664300A81379 /* ShareClientUI.framework */, + A9ED4DA4225EB4D30080DEBA /* ShareClient.framework */, ); name = Products; sourceTree = ""; @@ -197,6 +208,7 @@ isa = PBXGroup; children = ( 43A8EC94210E67B000A81379 /* HealthKit.framework */, + A9ED4DAE225EB9390080DEBA /* HealthKit.framework */, 43A8EC8B210E665600A81379 /* LoopKitUI.framework */, 43A8EC7B210E661400A81379 /* LoopKit.framework */, ); @@ -246,6 +258,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A9ED4D9D225EB4D30080DEBA /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A9ED4D9E225EB4D30080DEBA /* ShareClient.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -274,7 +294,7 @@ 432B0E8E1CDFC3C50045347B /* Sources */, 432B0E8F1CDFC3C50045347B /* Frameworks */, 432B0E901CDFC3C50045347B /* Resources */, - C17D3CC42184CBB7003458C8 /* CopyFiles */, + A9F2C3E0225ECF8800C3B796 /* Copy Frameworks with Carthage */, ); buildRules = ( ); @@ -305,6 +325,24 @@ productReference = 43A8EC82210E664300A81379 /* ShareClientUI.framework */; productType = "com.apple.product-type.framework"; }; + A9ED4D91225EB4D30080DEBA /* ShareClient watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient watchOS" */; + buildPhases = ( + A9ED4D92225EB4D30080DEBA /* Sources */, + A9ED4D9A225EB4D30080DEBA /* Frameworks */, + A9ED4D9D225EB4D30080DEBA /* Headers */, + A9ED4D9F225EB4D30080DEBA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ShareClient watchOS"; + productName = ShareClient; + productReference = A9ED4DA4225EB4D30080DEBA /* ShareClient.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -353,6 +391,7 @@ projectRoot = ""; targets = ( 432B0E871CDFC3C50045347B /* ShareClient */, + A9ED4D91225EB4D30080DEBA /* ShareClient watchOS */, 432B0E911CDFC3C50045347B /* ShareClientTests */, 43A8EC81210E664300A81379 /* ShareClientUI */, ); @@ -383,8 +422,39 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A9ED4D9F225EB4D30080DEBA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A9ED4DA0225EB4D30080DEBA /* Localizable.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + A9F2C3E0225ECF8800C3B796 /* Copy Frameworks with Carthage */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(BUILT_PRODUCTS_DIR)/LoopKit.framework", + ); + name = "Copy Frameworks with Carthage"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/LoopKit.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "CARTHAGE_BUILD_DIR=\"${SRCROOT}/Carthage/Build\"\nif [ -n \"${IPHONEOS_DEPLOYMENT_TARGET}\" ]; then\n CARTHAGE_BUILD_DIR=\"${CARTHAGE_BUILD_DIR}/iOS\"\nelif [ -n \"${WATCHOS_DEPLOYMENT_TARGET}\" ]; then\n CARTHAGE_BUILD_DIR=\"${CARTHAGE_BUILD_DIR}/watchOS\"\nelse\n echo \"ERROR: Unexpected deployment target type\"\n exit 1\nfi\n\nfor SCRIPT_INPUT_FILE in ${!SCRIPT_INPUT_FILE_*}; do\n CARTHAGE_BUILD_FILE=\"${!SCRIPT_INPUT_FILE/${BUILT_PRODUCTS_DIR}/${CARTHAGE_BUILD_DIR}}\"\n if [ -e \"${CARTHAGE_BUILD_FILE}\" ]; then\n if [ -e \"${SCRIPT_INPUT_FILE}\" ]; then\n echo \"ERROR: Duplicate frameworks found at:\"\n echo \" ${SCRIPT_INPUT_FILE}\"\n echo \" ${CARTHAGE_BUILD_FILE}\"\n exit 1\n fi\n echo \"Substituting \\\"${CARTHAGE_BUILD_FILE}\\\" for \\\"${!SCRIPT_INPUT_FILE}\\\"\"\n export ${SCRIPT_INPUT_FILE}=\"${CARTHAGE_BUILD_FILE}\"\n fi\ndone\n\necho \"Copy Frameworks with Carthage\"\ncarthage copy-frameworks\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 432B0E831CDFC3C50045347B /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -422,6 +492,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A9ED4D92225EB4D30080DEBA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A9ED4D93225EB4D30080DEBA /* HKUnit.swift in Sources */, + A9ED4D94225EB4D30080DEBA /* TimeInterval.swift in Sources */, + A9ED4D95225EB4D30080DEBA /* ShareClientManager.swift in Sources */, + A9ED4D96225EB4D30080DEBA /* LocalizedString.swift in Sources */, + A9ED4D97225EB4D30080DEBA /* ShareGlucose+GlucoseKit.swift in Sources */, + A9ED4D98225EB4D30080DEBA /* ShareClient.swift in Sources */, + A9ED4D99225EB4D30080DEBA /* ShareService.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -747,6 +831,61 @@ }; name = Release; }; + A9ED4DA2225EB4D30080DEBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = ShareClient/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClient; + PRODUCT_NAME = ShareClient; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Debug; + }; + A9ED4DA3225EB4D30080DEBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = ShareClient/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClient; + PRODUCT_NAME = ShareClient; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -786,6 +925,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A9ED4DA2225EB4D30080DEBA /* Debug */, + A9ED4DA3225EB4D30080DEBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 432B0E7F1CDFC3C50045347B /* Project object */; diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme new file mode 100644 index 0000000..eb5dce1 --- /dev/null +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 8a821f94b2ef7fa5440516dbc75adf580a9cf00b Mon Sep 17 00:00:00 2001 From: Darin Krauss Date: Wed, 8 May 2019 18:59:12 -0700 Subject: [PATCH 08/15] Use consistent iOS and watchOS scheme and target name convention --- ShareClient.xcodeproj/project.pbxproj | 10 +++++----- ...Shared watchOS.xcscheme => Shared-watchOS.xcscheme} | 6 +++--- .../xcschemes/{Shared iOS.xcscheme => Shared.xcscheme} | 0 3 files changed, 8 insertions(+), 8 deletions(-) rename ShareClient.xcodeproj/xcshareddata/xcschemes/{Shared watchOS.xcscheme => Shared-watchOS.xcscheme} (94%) rename ShareClient.xcodeproj/xcshareddata/xcschemes/{Shared iOS.xcscheme => Shared.xcscheme} (100%) diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index 0b500d5..ba6a52f 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -325,9 +325,9 @@ productReference = 43A8EC82210E664300A81379 /* ShareClientUI.framework */; productType = "com.apple.product-type.framework"; }; - A9ED4D91225EB4D30080DEBA /* ShareClient watchOS */ = { + A9ED4D91225EB4D30080DEBA /* ShareClient-watchOS */ = { isa = PBXNativeTarget; - buildConfigurationList = A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient watchOS" */; + buildConfigurationList = A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient-watchOS" */; buildPhases = ( A9ED4D92225EB4D30080DEBA /* Sources */, A9ED4D9A225EB4D30080DEBA /* Frameworks */, @@ -338,7 +338,7 @@ ); dependencies = ( ); - name = "ShareClient watchOS"; + name = "ShareClient-watchOS"; productName = ShareClient; productReference = A9ED4DA4225EB4D30080DEBA /* ShareClient.framework */; productType = "com.apple.product-type.framework"; @@ -391,7 +391,7 @@ projectRoot = ""; targets = ( 432B0E871CDFC3C50045347B /* ShareClient */, - A9ED4D91225EB4D30080DEBA /* ShareClient watchOS */, + A9ED4D91225EB4D30080DEBA /* ShareClient-watchOS */, 432B0E911CDFC3C50045347B /* ShareClientTests */, 43A8EC81210E664300A81379 /* ShareClientUI */, ); @@ -925,7 +925,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient watchOS" */ = { + A9ED4DA1225EB4D30080DEBA /* Build configuration list for PBXNativeTarget "ShareClient-watchOS" */ = { isa = XCConfigurationList; buildConfigurations = ( A9ED4DA2225EB4D30080DEBA /* Debug */, diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme similarity index 94% rename from ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme rename to ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme index eb5dce1..108701f 100644 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared watchOS.xcscheme +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme @@ -16,7 +16,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "A9ED4D91225EB4D30080DEBA" BuildableName = "ShareClient.framework" - BlueprintName = "ShareClient watchOS" + BlueprintName = "ShareClient-watchOS" ReferencedContainer = "container:ShareClient.xcodeproj"> @@ -47,7 +47,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "A9ED4D91225EB4D30080DEBA" BuildableName = "ShareClient.framework" - BlueprintName = "ShareClient watchOS" + BlueprintName = "ShareClient-watchOS" ReferencedContainer = "container:ShareClient.xcodeproj"> @@ -65,7 +65,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "A9ED4D91225EB4D30080DEBA" BuildableName = "ShareClient.framework" - BlueprintName = "ShareClient watchOS" + BlueprintName = "ShareClient-watchOS" ReferencedContainer = "container:ShareClient.xcodeproj"> diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared iOS.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme similarity index 100% rename from ShareClient.xcodeproj/xcshareddata/xcschemes/Shared iOS.xcscheme rename to ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme From a03c312d9ef0b7416acd9c340c994ac2a2ed7c99 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Sun, 19 May 2019 11:14:30 -0500 Subject: [PATCH 09/15] Add tests, update travis --- .travis.yml | 8 +++++--- Cartfile.resolved | 2 +- .../xcshareddata/xcschemes/Shared.xcscheme | 10 ++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6467470..c044b08 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: objective-c -osx_image: xcode10 +osx_image: xcode10.2 +before_script: + - carthage bootstrap script: -# Build Travis project and run tests -- xcodebuild -project ShareClient.xcodeproj -scheme ShareClient build -destination name="iPhone SE" test + # Build Travis project and run tests + - xcodebuild -project ShareClient.xcodeproj -scheme Shared build -destination name="iPhone SE" test diff --git a/Cartfile.resolved b/Cartfile.resolved index 0284044..56ca222 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "7333408f054e269669c91146b0f29bffbdcc150a" +github "LoopKit/LoopKit" "346f5e85940fb56211035ae2e9f522512f17d0c0" diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme index 1893dad..9b518d2 100644 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme @@ -42,6 +42,16 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + Date: Fri, 7 Jun 2019 16:55:29 -0700 Subject: [PATCH 10/15] Swift 5 (#6) * Swift 5 * Bump LoopKit to latest rev --- Cartfile.resolved | 2 +- ShareClient.xcodeproj/project.pbxproj | 24 ++++++++----------- .../xcschemes/Shared-watchOS.xcscheme | 2 +- .../xcshareddata/xcschemes/Shared.xcscheme | 2 +- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/Cartfile.resolved b/Cartfile.resolved index 56ca222..f6a15b9 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "346f5e85940fb56211035ae2e9f522512f17d0c0" +github "LoopKit/LoopKit" "c8c4810de7171ecedc3f1eb003f3cb77bdd76015" diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index ba6a52f..8701cc1 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -350,27 +350,27 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0940; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = "Mark Wilson"; TargetAttributes = { 432B0E871CDFC3C50045347B = { CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1000; + LastSwiftMigration = 1020; }; 432B0E911CDFC3C50045347B = { CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; }; 43A8EC81210E664300A81379 = { CreatedOnToolsVersion = 9.4.1; - LastSwiftMigration = 1000; + LastSwiftMigration = 1020; ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = 432B0E821CDFC3C50045347B /* Build configuration list for PBXProject "ShareClient" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -618,6 +618,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -677,6 +678,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -706,7 +708,6 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -730,7 +731,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClient; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; }; name = Release; }; @@ -745,7 +745,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClientTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -760,7 +759,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mddub.ShareClientTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; }; name = Release; }; @@ -793,7 +791,6 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -826,7 +823,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.ShareClientUI; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; @@ -836,6 +832,7 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -852,9 +849,8 @@ PRODUCT_NAME = ShareClient; SDKROOT = watchos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SUPPORTED_PLATFORMS = "watchos watchsimulator"; - SWIFT_VERSION = 4.2; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = 4; }; name = Debug; @@ -864,6 +860,7 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -881,7 +878,6 @@ SDKROOT = watchos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "watchos watchsimulator"; - SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = 4; }; name = Release; diff --git a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme index 108701f..5721ab7 100644 --- a/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme +++ b/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme @@ -1,6 +1,6 @@ Date: Fri, 13 Sep 2019 17:21:46 -0500 Subject: [PATCH 11/15] Xcode11 (#7) * Use xcode11 branch * Travis use xcode11 * Separate bundle ids by platform to fix App Store Connect error * Bump carthage revs --- .travis.yml | 4 ++-- Cartfile.resolved | 2 +- ShareClient/Info.plist | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index c044b08..c6df942 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,9 @@ language: objective-c -osx_image: xcode10.2 +osx_image: xcode11 before_script: - carthage bootstrap script: # Build Travis project and run tests - - xcodebuild -project ShareClient.xcodeproj -scheme Shared build -destination name="iPhone SE" test + - xcodebuild -project ShareClient.xcodeproj -scheme Shared build -destination name="iPhone 6" test diff --git a/Cartfile.resolved b/Cartfile.resolved index f6a15b9..34cb669 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "c8c4810de7171ecedc3f1eb003f3cb77bdd76015" +github "LoopKit/LoopKit" "18a5a04afd310e945ac54f8c43a44838a16503c2" diff --git a/ShareClient/Info.plist b/ShareClient/Info.plist index a6f720e..ee98428 100644 --- a/ShareClient/Info.plist +++ b/ShareClient/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + $(PRODUCT_BUNDLE_IDENTIFIER)-$(PLATFORM_NAME) CFBundleInfoDictionaryVersion 6.0 CFBundleName From 5ccfad205de4ffd1a8db1b99c431a4fee692bf32 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 23 Dec 2019 23:23:55 -0600 Subject: [PATCH 12/15] Bump version for release --- Cartfile.resolved | 2 +- ShareClient/Info.plist | 2 +- ShareClientTests/Info.plist | 2 +- ShareClientUI/Info.plist | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cartfile.resolved b/Cartfile.resolved index 34cb669..14df51b 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "18a5a04afd310e945ac54f8c43a44838a16503c2" +github "LoopKit/LoopKit" "3ea3bb600b599701f4fe0196409b1249c3d4e8bc" diff --git a/ShareClient/Info.plist b/ShareClient/Info.plist index ee98428..17bb810 100644 --- a/ShareClient/Info.plist +++ b/ShareClient/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.1 + 1.2 CFBundleSignature ???? CFBundleVersion diff --git a/ShareClientTests/Info.plist b/ShareClientTests/Info.plist index 8a2d354..1807254 100644 --- a/ShareClientTests/Info.plist +++ b/ShareClientTests/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.1 + 1.2 CFBundleSignature ???? CFBundleVersion diff --git a/ShareClientUI/Info.plist b/ShareClientUI/Info.plist index 29dea2b..8c75117 100644 --- a/ShareClientUI/Info.plist +++ b/ShareClientUI/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.1 + 1.2 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass From faf2b77419b690d32e488a16625314888455ba08 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 23 Dec 2019 23:44:52 -0600 Subject: [PATCH 13/15] Bump iphone version for running tests --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c6df942..f532350 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,4 +6,4 @@ before_script: script: # Build Travis project and run tests - - xcodebuild -project ShareClient.xcodeproj -scheme Shared build -destination name="iPhone 6" test + - xcodebuild -project ShareClient.xcodeproj -scheme Shared build -destination name="iPhone 8" test From fe47b7a8f1f0e809ab4525520c559ab0e07a9d1c Mon Sep 17 00:00:00 2001 From: katie disimone Date: Sat, 28 Dec 2019 12:29:23 -0800 Subject: [PATCH 14/15] Translations update (#10) * Updated genstrings and added translations/languages * finishing all languages --- ShareClient.xcodeproj/project.pbxproj | 35 ++++++++++++++++++ ShareClient/da.lproj/Localizable.strings | Bin 0 -> 548 bytes ShareClient/fi.lproj/Localizable.strings | Bin 0 -> 550 bytes ShareClient/ja.lproj/Localizable.strings | Bin 0 -> 532 bytes ShareClient/pt-BR.lproj/Localizable.strings | Bin 0 -> 554 bytes ShareClient/ro.lproj/Localizable.strings | Bin 0 -> 550 bytes ShareClient/sv.lproj/Localizable.strings | Bin 0 -> 558 bytes ShareClient/vi.lproj/Localizable.strings | Bin 0 -> 542 bytes ShareClientUI/da.lproj/Localizable.strings | Bin 0 -> 2122 bytes ShareClientUI/de.lproj/Localizable.strings | Bin 1002 -> 2078 bytes ShareClientUI/es.lproj/Localizable.strings | Bin 996 -> 2116 bytes ShareClientUI/fi.lproj/Localizable.strings | Bin 0 -> 2074 bytes ShareClientUI/fr.lproj/Localizable.strings | Bin 1042 -> 2128 bytes ShareClientUI/it.lproj/Localizable.strings | Bin 988 -> 2098 bytes ShareClientUI/ja.lproj/Localizable.strings | Bin 0 -> 1918 bytes ShareClientUI/nb.lproj/Localizable.strings | Bin 982 -> 2082 bytes ShareClientUI/nl.lproj/Localizable.strings | Bin 1304 -> 2106 bytes ShareClientUI/pl.lproj/Localizable.strings | Bin 996 -> 2088 bytes ShareClientUI/pt-BR.lproj/Localizable.strings | Bin 0 -> 2090 bytes ShareClientUI/ro.lproj/Localizable.strings | Bin 0 -> 2076 bytes ShareClientUI/ru.lproj/Localizable.strings | Bin 1004 -> 2106 bytes ShareClientUI/sv.lproj/Localizable.strings | Bin 0 -> 2084 bytes ShareClientUI/vi.lproj/Localizable.strings | Bin 0 -> 2182 bytes .../zh-Hans.lproj/Localizable.strings | Bin 920 -> 1946 bytes 24 files changed, 35 insertions(+) create mode 100644 ShareClient/da.lproj/Localizable.strings create mode 100644 ShareClient/fi.lproj/Localizable.strings create mode 100644 ShareClient/ja.lproj/Localizable.strings create mode 100644 ShareClient/pt-BR.lproj/Localizable.strings create mode 100644 ShareClient/ro.lproj/Localizable.strings create mode 100644 ShareClient/sv.lproj/Localizable.strings create mode 100644 ShareClient/vi.lproj/Localizable.strings create mode 100644 ShareClientUI/da.lproj/Localizable.strings create mode 100644 ShareClientUI/fi.lproj/Localizable.strings create mode 100644 ShareClientUI/ja.lproj/Localizable.strings create mode 100644 ShareClientUI/pt-BR.lproj/Localizable.strings create mode 100644 ShareClientUI/ro.lproj/Localizable.strings create mode 100644 ShareClientUI/sv.lproj/Localizable.strings create mode 100644 ShareClientUI/vi.lproj/Localizable.strings diff --git a/ShareClient.xcodeproj/project.pbxproj b/ShareClient.xcodeproj/project.pbxproj index 8701cc1..2c5be94 100644 --- a/ShareClient.xcodeproj/project.pbxproj +++ b/ShareClient.xcodeproj/project.pbxproj @@ -110,6 +110,20 @@ 43AB51302133161A00B3D58D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; 43AB51352133177800B3D58D /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; 43C418AE1CE0488900405B6A /* ShareClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareClient.swift; sourceTree = ""; }; + 7D9BF1232336FF88005DCFD6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF1242336FF89005DCFD6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF1252336FF8F005DCFD6 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 7D9BF1262336FF8F005DCFD6 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 7D9BF1272336FF96005DCFD6 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF1282336FF96005DCFD6 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF1292336FF9C005DCFD6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12A2336FF9C005DCFD6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12B2336FFA2005DCFD6 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12C2336FFA2005DCFD6 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12D2336FFA9005DCFD6 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12E2336FFA9005DCFD6 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF12F2336FFAF005DCFD6 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + 7D9BF1302336FFAF005DCFD6 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; A9ED4DA4225EB4D30080DEBA /* ShareClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ShareClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A9ED4DAE225EB9390080DEBA /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/HealthKit.framework; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ @@ -384,6 +398,13 @@ nb, ru, pl, + ja, + "pt-BR", + sv, + vi, + ro, + fi, + da, ); mainGroup = 432B0E7E1CDFC3C50045347B; productRefGroup = 432B0E891CDFC3C50045347B /* Products */; @@ -535,6 +556,13 @@ 43AB512221330D8A00B3D58D /* nb */, 43AB512321330D8E00B3D58D /* ru */, 43AB512421330D9400B3D58D /* pl */, + 7D9BF1242336FF89005DCFD6 /* ja */, + 7D9BF1262336FF8F005DCFD6 /* pt-BR */, + 7D9BF1282336FF96005DCFD6 /* sv */, + 7D9BF12A2336FF9C005DCFD6 /* vi */, + 7D9BF12C2336FFA2005DCFD6 /* ro */, + 7D9BF12E2336FFA9005DCFD6 /* fi */, + 7D9BF1302336FFAF005DCFD6 /* da */, ); name = Localizable.strings; sourceTree = ""; @@ -552,6 +580,13 @@ 43AB512E2133161900B3D58D /* nb */, 43AB512F2133161A00B3D58D /* ru */, 43AB51302133161A00B3D58D /* pl */, + 7D9BF1232336FF88005DCFD6 /* ja */, + 7D9BF1252336FF8F005DCFD6 /* pt-BR */, + 7D9BF1272336FF96005DCFD6 /* sv */, + 7D9BF1292336FF9C005DCFD6 /* vi */, + 7D9BF12B2336FFA2005DCFD6 /* ro */, + 7D9BF12D2336FFA9005DCFD6 /* fi */, + 7D9BF12F2336FFAF005DCFD6 /* da */, ); name = Localizable.strings; sourceTree = ""; diff --git a/ShareClient/da.lproj/Localizable.strings b/ShareClient/da.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..8f44a1b5fc984630a7dc64b6f2a5f1abe196da78 GIT binary patch literal 548 zcmb`DOA5k35JYS3DMFTlcmQ$X2V97{h!+TcgJvR`5InKRP~S`<34*$jp*xf6uCD5N z-23V(&{{|B_!dftv%hEBd!(vN!LHgUQwkcdv|~X%8z0D{7UA zW?FD!8RFpi0X-M5pMeIr>N6|UC*6>qA@Qwaz=RHS+=dYYt&=Ym={Xm1@M|VFUL#f?WkJnBkE4YkQ2{ue2>A8U?qKS_f$7LoV>@Bz5eU| Qm+O`0XujUG`l}o~0p-A3BLDyZ literal 0 HcmV?d00001 diff --git a/ShareClient/fi.lproj/Localizable.strings b/ShareClient/fi.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..f369bb81b63a254b3359702d33f9423bd5553396 GIT binary patch literal 550 zcmb`D!3x4K5JczfSA-q~@dLzzD0mR{(EdQFRtuU+Q^l`WUsAOqs22&Frn@tN6~r#QOXVTcR3_xk%2aAkHU^)n3OL7I=>#+5)uHN7@}iW(s>s#%E@MqK z=cKa4Ch!fIL+D?UHMr`d73ovo2+WZ9h8UpGLB~%R)5Xf&oj5wBgr9lE?eJdV_|?I? zYYW$^$D}D6D&QG-t;J3aLbeg@@U_HmMpChRK6Z_u@emP%i M#y%f=ZT`H28-1f&eESX~Qc+2PhFWUIcdM9K`Fo>-YE5Rj+|--a>A`ZH#@@@ra7pT z+V-x}P)l8oktG%$A274=`U%wlR~5KIebNn?sS)2MsxTDb$u=CIV&(2m97=}BcAki`G1^85z$60cv6U>ZTMAw~VV^R*QqIP_$ z3^dY&lgbbq&yT?zynabF##M(|i9YEjV0y$iM3)H>bKHgtRE+G?iA5G$b76+unTytyF^=I`mX$LE(R#Ylu zO*Q8vvcx{{4VZJ#&!`$)^_dmvlWqiNNPI&Kn9yd9e_@P@m8+aMloG$!Xv}eS4hWmRW{3{(i0OD_2GXMYp literal 0 HcmV?d00001 diff --git a/ShareClient/sv.lproj/Localizable.strings b/ShareClient/sv.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..c36bd4b417f83d5b2b8b0c70e9d1ef6070c10f51 GIT binary patch literal 558 zcmb`DOA5j;5QhJ?rwA?u@c`mN6kLe9&I?@a5MsVYNqXC=yXAUmhus)&7_yU+<_!mB|woW%>%8dO29e5edG z(u8B>h)u*Bdh)2Bku|vLz}3_z-6lOf;#)@-h6X%g!Z|8V{^7)=K|FxC5Cs>aF6;$L{VQlHjf!5^gQ#E9iXx~R2{TD%=Dm3{ zw`*HX8O2&_!M#_8ZNfX(GDOPEfY?c?a&3vus83XcI)^WG1ex+`ko6~iVOoMJi0!K` zeGN6{B(m5l;0-mq&_5??P}PPj(x<)=HC^mmMF)lkJbuC%U94QC#L+3i{LFK_LwkYZ zR|W5?Em*4-lO}8^182ZJc^--<@GZzX@;&mti^XRF|J2>rMXLK*Q}%LDt!{M2NBXbs QUwWq+vBk$W%U`MB4zILWNB{r; literal 0 HcmV?d00001 diff --git a/ShareClientUI/da.lproj/Localizable.strings b/ShareClientUI/da.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..d9bc5560a08add40e55e570e4bd3aea2397cb23b GIT binary patch literal 2122 zcmb`I;cnV66ov0^o+9FBHMI{gO%u?mf2cMUcz~1wL!}9-fwm94J;t{0*zp{vR7_eG zkvR7CxyR?+8-D+~urn)cWVKbcw6#6jgO#>pq?v-Zg*mR$R*VW_YGMkz<88xFkritN z5yH8$Yo2FzVLj{HfLQH%Vb`9g3WLC84Vq3|z;nr6 z-1Ij0Czvx9e#v`MPugfM+}kV8@0NZ^tx*dpopV68ThN`y-FOat%Q<$r1vcUnRCVlE zrny%?oLVeP(4=nkYjkuyaT$ZNVxRW5>%^hS7OWT0D%MmH^5Sit;@~`=HK&U;v;t$# zY|Waqy@O$JDl)umW)i0`Q+IL=!P#+zDi+`9-my9h-uK9;Ynnwb?3ul(@}uv!oeZj8 z)%F8951xIyBbKbytQ9uqDYcU7mqdqN(wPI7biPTmmR8>K{@*k`c-QxyVN~@h(>>)L zGGF6@`Zo4g?&$=ac3roXj^Bz+crDi#@5nS)c4jy9!6~-# zHoB3R=Cl9T3p?;tKT1dYuFkB9>j0-4M#l_AR(<`yCtCYm+KS ztya6S$1`(|&y1a4KTqx0oQU^{@bw3v9iu-ClWql4L!uh?j| z@SGQnD`qq1NiV4(Tln@@S|2UNl0KternIx6&3U9#3iS-%nT~AEL?0iLB?Ntp*|DB6)r0a%=xsOs`tiar2ZCH!-QKqEA8N6gkxWTfe z`*O68Wa@ZAZ}uy+uX{qz3_#K|fl;id&>oqkevY-B7YOP}RpJiJ2hY0S=S$Wa)|^SH z#_kzKZO`xyCq#P z9dCf@rE0C$v8=K*o6$A#c8F}oS=2@5mAH+uclN}4jl#~p`QNT!`Nh|&1w-mMn{o%} zj=2Ft_!=u-byF7AM>~1lJ(1nMjEU6{ydOT75Gr~++*isi>|w$0@J*r~dGu#PJ=AA@ z4}$L99c(x3Z~s|N-S)NcPptEmQp11Yn5#Rr3r@iyp6aYvk;E~#=C^S=wQoBE9r<Fk=S>mT}%>eIqMG5hS#(37u9 I%ogv0-=`{2e*gdg delta 40 ycmV+@0N4MX5b6g4|NfH>0iu(H0w$B<12(h11mppe6bDoTL;yvTPX$YpxCdlM2@aqD diff --git a/ShareClientUI/es.lproj/Localizable.strings b/ShareClientUI/es.lproj/Localizable.strings index 269261402fd36c79ca6b8a6eae75ab24098920af..d58ad77e9db85a1416919d95f2e44ee99e505247 100644 GIT binary patch literal 2116 zcmb_dL2lbH5S+7LLHL+M@_?c!+Qi8vMT^9GfTGB$0NY9}IZ0pFxAY19K-(G8%#y4F z=MV^@$mMc(c6OKg`{x8la5zPeH5TZw!3s4-&LnYMwHWx+xZ})Gr>Bm?Emupv(p+=T zQA2hv@R{EuoM3_}K2lewe(=s}lwLC2!E%C@twCC`h>(+Y~b|LQ=nUL3%N+L`0Xnx)?f(hdgKXc*;cslAS zZb$12jzXwaz7khJA}oPdu_7;x zXF)8B^^U%lj6L%&75FwqM8YgU_>iz>r*I888f~ykz>?XTT~u z(m)WVSOv|u^nh^Ud_Py#>_Ed+Vp4*}_zWBTi+!s#{ z6|Om|>(oP%sQNZOhq?!ptNqbMock;qzH|DMJyk>SIO8o<@hSV`(0y`7J5RnpR7WY| zds^3x{7AGLdfDI8mgld9zM&1b{^;?Fhu_qEJDfSQ6|UF~hp?)?Vm1tClq!pgxx{Gw z{<>~Z#Htr@7xOxQmYLuAPD{GsuFE}FIA%Q^7x~HKK3q|%N%Q&k^`d{HSk=EyfAd2* Ts0w|NY7teFaG!?$m^e-pJ8gO2J_qof-7e#GA_WAp zY_E6c=gc{?>z_YP?br$%*~)6Wv(h%Uw3)SxG*j?(YYo@T?im%>tgtEUD_<42ENj*Z zEEMP5KJh-bQybWk4Y8Hicf7W|8=m>h6Mi*O3hot8k1M~{9*EyCijm(Fv#@vENA?lV zig-f12)>VuBmRcD600@y@^4vjd~e98NN>S70I3+5kSS&?u~uaTzIQx@L0@ws)I3$U zs-1@%ktK1Ux%lj^G{IXuIV+=1B(LX!T9)LT?I7zTiWr0Z6Ec=|L$25Z_d$_4RmfjzN*#?7hO^fh&pO0=u~YR2 zP_$f;UsaP-+1DqrI|k&@HOZ`R?HOP1+@$ACFN3;Iy(tYI17`0Sd2g6sVspuRMQ3$u zN_#<-Ml4?671pT-eKqerukO!yRi~@>yUd6DUAs%W>163TrM9i8G2P3J{H<|>>sYep-^(p=2s2oIklXLvpb{?tuf z>}#UwtbHQ>h6?xZXz#nLp1tE9vm$Idw`=bIhcV}OYS-+CLparANfXB?^i@!*3cB|( z{_UPx1{dm_nhY)qo2+>{S)$>Q#(QLlb$Mh#fLjeJ>%J82jzMGrAM}CDmJC6 e{>_KDpZ4q>*@eCEU)CA>V&AxHR9JFHtiJ%qoltuK literal 0 HcmV?d00001 diff --git a/ShareClientUI/fr.lproj/Localizable.strings b/ShareClientUI/fr.lproj/Localizable.strings index 22f3090cefe4ca478a015e96da710894668a236f..39485de4e792583edd94bbca79da3763a3e502f5 100644 GIT binary patch literal 2128 zcmcJQ-EPxB5QXPDPhs^2sS@-75JDxDDx?-rlW^}gO|g{5Rh*Y{>=OH^iyN}8S#8-9cT?i5!dt>| zvR(1azLHn|hBzy(s7zIqy0c3=v9|*<>KYf;*Y<#~t2y=cvX?=MlwNPixe1tamCx8~ z*{ke~-xh^=Ur(@(=R-9|EMDJ;Jbgtbo4n#2_203(30+g9q%%*{(BM&a zcEn1q-kk3=1?Jn%b%D)(r^Q@NzmpPDzt0MZ@Y7&!$fS)v|y7tcanBDE3mf$G_G*YrdABNp*C@U3R9dcE7%)P|x*0 nw6cbac!KKiU$~F^NzdNVy+bQf;uOVe0yk)1|H^TW=RNreT0>d9 delta 29 lcmca0Fo}cd|G&usjPoY9FsV#_!fdhm1j{eR%_i(Ji~zT83orlx diff --git a/ShareClientUI/it.lproj/Localizable.strings b/ShareClientUI/it.lproj/Localizable.strings index 0d0428a3d8b6834204a83ba03f1bee401222de33..e81975113a851df3525d06e46d5c7e50bd7e37e6 100644 GIT binary patch literal 2098 zcmb`I-EPxB5QXPDPhsT-sTb`7AcR6%dQ*N>;sE?osbG=O&-Eo?V^9hUU|is?)x>UM_?BxGh#;!HFok=;C0Dcs5F}g z>~qE|W)*YiP0_R#-~F97oECG=)3oQwGwiRfuozp8Z-^@*5tf)&3o=EShpfe{n6B}( z3Y;dDrhE7MIHXxT|9yA9{tFsewjpY5SAloc#|=?8tTyb4y#+YBFiJR1cPkz_t_(AO zho6pLtWaf?^x0QKQQZ*{^_ykZ*Y?C&uj-`i)gXc@OB~!0a~m-Ct9{8{!(L$*d>gxG z|NfJR2Pl(10eF*)0wj~@130tF1R4Pga{zMycK~kyasXtLe+NsG P>;w*zRt8qHCI<=uTT2q6 diff --git a/ShareClientUI/ja.lproj/Localizable.strings b/ShareClientUI/ja.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..7fae84bb530e633a1067492beed65f3d6f4410e2 GIT binary patch literal 1918 zcmb_dJ#Q016nwQMC}~+)R4J0}0rBBTksv_ikD!zn`)n*ZcTw(~1Sx_RxuoDlp3Zoj&*{heAZe*qd;V8 zp`;@%w7e~esSEoldaMnJ-b(6_Wlere?QOX zr7!#6Niq9coN$6{20Fvt1+pu;>8{qXJ)hx`MWM$Yjg_RoQd zLoVeB*Gk8B@*8tl2N4o3xu(EraXGKDO0U;GH#xN@$jEDv%wEYW)&_rjr5{Ea=utX&i=4f(kA1&J ztU=7kHJ**^@D^(FJBBqoE}_0TdP3dE!N>lm``5bKtKyw<^c=2|&WG$%Rl0y4-TN*| zeK!YA?B%%E{!FL_)vQ)AR+(MPp|y8`=X9N{x=&^WhI6bVE_=6CXF8me<*lkkpRz|r zGMVGfeV40heCG*4<#>uwAy)FyKc3w_#K0<3Mm#y)smOd6Baa?FO)kOaRrdp(6SLic zH&5Re#V-)ux2uE4?nd(iQy(GE;u{&J{mkSZ&OgMGUh*0Qh6|h~JgXQ>RgHJ**Sy~X zgIMgCS90+_7U%Ty(u|p$K*^Jl8fmSEy+b#IT;J`DZt!vq&G|2VsO#Bieqc65XSna# Kd7|~vnf?zT=TL?K delta 43 zcmZ1^aE+bm|G&usjB_SWV^W#?j#-M=ogs&zlp&iTpP`r`b@M@%r;M8=*f|&hRcQ^} diff --git a/ShareClientUI/nl.lproj/Localizable.strings b/ShareClientUI/nl.lproj/Localizable.strings index 19cf30d9bfd90cf8114eb0e76338b198914ac99e..16924461991790facdb2309e93947337a7b68442 100644 GIT binary patch literal 2106 zcmb`I&2AGx5QO{erx@j!L-GI!p^!+v1c4G8&bD!a!)9%H?Ktr8z*jRKdS)?lB#^bc z^V2`o)ivXvKhEvcf?e9uTD!A_t?kh!wqc}|z-(?Ezlq&53fL^M3HF&;!z0UZR`v2J4Pw;8)61~&2wU(h^+j< z9%7E~yub1!bgCimD5iFElwdoeHqqiKdT9O-a|>N-%JYf}2Gk*bM&L+z7I>-d0NOj= zLa5m+)-hw;Fq<%U4#kkx(!1R0qIaqyb9Pxo@@g;eZedTkRbwAtA6G&mEQ!|+FEKKU z{EHE>z93f<`St8#pug`pM$|p0->ODkmn!s#$CgNc$EBEE%)hWHnX`XGRWqUrq57}R zX_OIN?N=N_TG^t_I@?*#Fi2IkD&EJQ zb?k|uU}L-Gt&=y2z0+81r<*|MdKDx6siKVVP((*26{;&b4=G!X=lET6h3|7b6VgtJ zbOmPJ#ye21sps%{c9nhT**nU#qc|zj|HD|bIkp?re+;M8lsn)U>(x?yROL0N80mTX;xf^sgqYSPu%>3+L AumAu6 diff --git a/ShareClientUI/pl.lproj/Localizable.strings b/ShareClientUI/pl.lproj/Localizable.strings index 99edf0d9642bf81aef76c28c8b476a4ab124d7e6..027f7f30f2670d3731ad96ef3fdbb2c39e9ddb92 100644 GIT binary patch literal 2088 zcmb`I-A)@Z5QQffRi!+I#U&T;0993`iNp;p2$BZ~A)!k{g0dSzqrP-spzU{TjO`^T zNUc`u_20~#Idkm&^ZVEi%~{`;wy>F1wz4}LTSHGXj?vU=p0VA~bL?5N$JsTbIj?pu zSaa-t;qMp+0d7d304!vH9H&;6?I|nI`2F3IHjNa`vB4|c*VmI%MiC>r}A@noY4x2 zMiY-$-sgJ+SH5a6kRhVo`%^n)@RT)JVB?*GgfSul7fD^#L+V>c2DgQ+obJS>#J4-X-n$8 zBj$t0oNIo@+LASAr+k+vGS4ZV7G)Z+r2Ix+p##(zS6-|8+cv^`ziE#SZh| z!MlCI@FgB{73Unsdtm-lt=co#uCCY`Q{!0uSmV>e>Y~_{u${q+>fU(G=_Fo*N2k7N zY2nOQswR#YayGI{TAjMFubBE$v8txqOVv>}FSQd9?(&$Boj>svBK2Bm_TM4{a6FPr z&`XZ<9>ltDH>|D5X7_1M$~tfDPZ-0U-rz+Zr}m3)d4m20XUXTtE>QhGtkP4gLBbhk zH-4>+FP-VPDPP&@))Q~BlEde@6f>X8&)Ue2P|gw7c}>b(_iIP$OR+Tip9<0cOg!qp kr@!+))^)q&`xCOSc-W#e-C}F|+0nVuO`!j1MK9^)FA@q+1poj5 delta 33 pcmZ1>@PwV||G&urtQwPz7)vHkVp5s>g4t~I36^V&n+4d#7y;w#3?l#l diff --git a/ShareClientUI/pt-BR.lproj/Localizable.strings b/ShareClientUI/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..db3fec2901c2c0f6d00dc5d19c8e85b3e9fa974d GIT binary patch literal 2090 zcmbtV+fLg+6gM!uY%%5# z!8{joiT8mV$wf>_Ra#;gatdpy&gC(LV+#o_Mo40$lgkl%=JFvgWS9plV6{}&)10Y7;uP~ULWsKE6) zpj_ffWNcN6pBNgnO0)xaWQKkAj7NH%P4)s;lPFVIW!zf=^H@@RIW9v&EXF6-&MKAi zPBzGPjarTJ>Xn-89FK8OH=AGSeCo0vjq%Q^wcOw~kK8Kv6*wd=sza~w%i}oP_JqpT zQ)abJq2UIXxs)sN`t0(Nxo3nryow~6o*+Zs*Qo|C~cNOKNC;j+7oj=Fyqbh8Bz~i_`*bfNUU&A4$N~-BK(8bP;nf8n| zTg`gqG1r)!l~CGyz@wQav&ce-3fQLTr?xyd$Tv?XI}td8Zl|9YnLEC#c0D4=mXn!W z>6#bLz#F{p%)=c2~xL@*8FvzPYmK6f9up6C`5O@{$D{Ac~M^Z<-uo=nBAh!*KLvkdNs%|%LdN48) z$eQ2l_o-K}y8Z9@2nTQ&qCt%*DlBk=5=*|x;`nt1&tHid-yD4!`Z!$jYtBoaHP;+H zl;;#b`8>c8dgx<7Uq$_8)QV5fdv3XBT+J+wSHrvIRooKS%Q$c!E&o``j7cjRqKIK}& zHHR}k8{G0O@q0q=xI5Ho#A5w@X(`iI-gPsiV|YDL=Aobu^@1Ygc)fphA98%C)q&A{;G){p6a$^1H}#8;Z+ z_{C;5+qQPa0*9RBVP_V3uiLdF^;xaYR>o?r<(l)<|M51~i;lk``^8-oGsIn^Q@)~3 ODm*f`&e6q-V*Uen+Dm8v literal 0 HcmV?d00001 diff --git a/ShareClientUI/ru.lproj/Localizable.strings b/ShareClientUI/ru.lproj/Localizable.strings index a1c724d9ded921a75611e31dfc4d572317bd8fa3..95dce2fec870d96f2a3e3f817ccba0914ffc0448 100644 GIT binary patch literal 2106 zcmb_d%Wm5+5ZnV#J{4#WJ+(}FDRM}RG)9WrieEuTY znj)*f0a^%>R^)PbI6F)I{&gUGqNOjHEM+Ehxsw}7rGUi|jjyTXxKg=>rQwsoN6Qty z7P#rT#GHl)P@eD^Eux^Pc8h3`LkIQw1{6zd5mW|v- zOf3oSU3srg)RF3`L)B0nSf61x6g*+qRTFlCF^;t0NxO%42k%6Ef(K(YfwBgy69xi<|&GdzicUlW6M0(*h46yKgFvcNI>EYIX-HJS3f^h=Taj@|)b%iyl77+Z|V zq96{-TMksrFfsg+MY1|ao`vDhRis}z?=gG;dnc-ExU$ST9-l|VY`Muim&=VFu910# z(F}8B?+RE7V>v9R>k*&*4eHXv9p>sGPJzoRlDl&CsnU#9N(~u#jRNnfJYua^v8(K5 zlz~d5PH&L&-e4}Pdxp6Tb6N&?XL1Y6@5%KA_iVBF{gGX2lUf`+qs(ycW&AJW`QFrg z6)=4k)WYL=ZLoZS=32lsjCj95jIxr;%)4`7v94imc#UgL4pUU#oe_?uL9psP@bc)` z;a$_oN1I+Ie+jN{z#K9)G&RhTi#%x=%LSh7zSPu`_7oQD$rFrq@p%f8FIUmgX3Xd0 zUn4OUOw`wkE*Q%`l(Zk!B;50MEm4g==l@p7YOU=hD$hUmHulGnzen~K8Xg*5Ta_F` NEr(DIS!$L}h(8&$Jh}h? delta 61 zcmdlb@P?h~|G&v>jB_T}FsV#_#%wY949l&_?^yUIhp6omi) diff --git a/ShareClientUI/sv.lproj/Localizable.strings b/ShareClientUI/sv.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..ad70818cfbfb95484b8852a297b39145f95c4e1b GIT binary patch literal 2084 zcmb`I-EP`I5QXQOr?7IFi{t^Ks-i@SDiO6J@Bj`3f?`bM1(LjPpP`p+zq8A-UWbZG zsVr>o&zw1P=B)Ys>(b7xuz{_uwz(~>v6Yp!;Y~9IqX%+ zQ$DO(soIn z%BvXrGB~=PID93pqV5G(z3;Gk_sq3mJO@?E|DB(5JI`ZDHPIsrP`AvkS(BDCm0Z-V=fBb>5)a3@Y3!Fdu5b-9lLzr$sljaxhrz+Jmcgc zMK{c^*fZq0Mx}N|@uaBEz$H~TqF!kg{25nsM<%}irs~f3dz80vo_oMrUS=1=om6$2NPO7k_T#4=#XWktgnY-_s@0jy$ z(f$cv2z_xLi45Nyd9Lx@(-%x#QcdqY6nP#)O#CK9>!i=^C#WG`zoX&lugNu>Uj2!X zd)jQDeeKR(VA!DI@l&0A_Pw(|F&)BCwby&3T(^&K%oUy32>+krslLW8B#!y)$Nawm zU)4&p*vs)@F6C^`wKGoa0`FXO`jOXq+CB1L%B9i&bjQ|rw4ut<|3{xvebU*VnDxQf PajvA7PD((m4^I9A`)N{j literal 0 HcmV?d00001 diff --git a/ShareClientUI/vi.lproj/Localizable.strings b/ShareClientUI/vi.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..7a5274bb581cbb59ca378648892995739f596788 GIT binary patch literal 2182 zcmcJR%}(1;5QWF`3RdkKT)~b7JU~@d1tgGwwt_@rYr;>WCNaehKaay3@JuYbX5IEX z_j0+m2}-4^ifmuspP4gf&W!W>*M_Z`vn?xaYUehxE1OthH6zV9-p;JzSJ(w3$DWcs z&Q5t7b7|+4HOCIw*|7tjYqnv_wql>zt5bKJn(?f-w`XoRH^qwMD!C`SI#=5e`xT>L z`4cvsedJoPO-`=n!Z_e$mg_mRJj?O{a}zv0F{|}kzuv?*<*em*tbOOqlaD~QKY)4} z?Bb-yO29AzhhlZuIp;1^dK-A`1IAcMVnuV|-dw5tX)%|0+G%J4>^Y5D+M2tbaEOV(kt~PEZm|-W78?)QDy+Ya zPrfUUV`L{Uin##CjM0Cqlg2J6x}hqvpm^q z$JoUBcZ^=cl{l8Kh+wD1dh-1)d&urHqheIeLr&eU7GVVtlQvhZPkJDlyo zxxK3MMSW-+q_@6~q`77!mv~e6zQO(#@y_oBNgLlf`%@GLaJh;WLdSdr^{k@{bqVp= z)I+;pzKyfZc;61GoJClr!+ES}s2%xYtx2uP=l{~p42)t|-%0%gSd@!?XMaN2qgwS1tg#d-Kwn(d K!x9{Y-24G565HToo7Eolq;bjo?P9t4w|7 zx?xUl32CMRirWjYU%E| z%YD;3)$n#HCy8#tj~A2E58FPkFSZ5=qEZJVZE2$A-3V+g*bmWTJ@~z$?&SX16^_rW zh|1&Z<qpvdqLT={K00jneAG5gl3TeeI4mEG;$tMUKi z+z+ok==>ut8&nQJ*__j<8Kng9R* delta 31 ncmbQmKZBj=|G!D>8k6l9b0+68DNNqNthc#}Wf$Y*1#G_nyWb1} From 83b89d5badb86219a5da400437fc3cdea12b03b3 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 30 Dec 2019 23:44:04 -0600 Subject: [PATCH 15/15] Bump carthage rev for release --- Cartfile | 2 +- Cartfile.resolved | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cartfile b/Cartfile index 05195c5..ba2a5c1 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "LoopKit/LoopKit" "dev" +github "LoopKit/LoopKit" ~> 3.0 diff --git a/Cartfile.resolved b/Cartfile.resolved index 14df51b..924d56e 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "LoopKit/LoopKit" "3ea3bb600b599701f4fe0196409b1249c3d4e8bc" +github "LoopKit/LoopKit" "v3.0"