Explorar o código

add new target

polscm32 aka Marvout hai 1 ano
pai
achega
554f4949db

+ 397 - 0
FreeAPS.xcodeproj/project.pbxproj

@@ -328,6 +328,7 @@
 		BDF34F952C10D27300D51995 /* DeterminationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF34F942C10D27300D51995 /* DeterminationData.swift */; };
 		BDF34F952C10D27300D51995 /* DeterminationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF34F942C10D27300D51995 /* DeterminationData.swift */; };
 		BDF530D82B40F8AC002CAF43 /* LockScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF530D72B40F8AC002CAF43 /* LockScreenView.swift */; };
 		BDF530D82B40F8AC002CAF43 /* LockScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF530D72B40F8AC002CAF43 /* LockScreenView.swift */; };
 		BDFD165A2AE40438007F0DDA /* TreatmentsRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFD16592AE40438007F0DDA /* TreatmentsRootView.swift */; };
 		BDFD165A2AE40438007F0DDA /* TreatmentsRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFD16592AE40438007F0DDA /* TreatmentsRootView.swift */; };
+		BDFF799F2D25AA890016C40C /* TrioWatch Watch App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = BDFF797C2D25AA870016C40C /* TrioWatch Watch App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		BF1667ADE69E4B5B111CECAE /* ManualTempBasalProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680C4420C9A345D46D90D06C /* ManualTempBasalProvider.swift */; };
 		BF1667ADE69E4B5B111CECAE /* ManualTempBasalProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680C4420C9A345D46D90D06C /* ManualTempBasalProvider.swift */; };
 		C2A0A42F2CE03131003B98E8 /* ConstantValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2A0A42E2CE0312C003B98E8 /* ConstantValues.swift */; };
 		C2A0A42F2CE03131003B98E8 /* ConstantValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2A0A42E2CE0312C003B98E8 /* ConstantValues.swift */; };
 		C967DACD3B1E638F8B43BE06 /* ManualTempBasalStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCFE0781F9074C2917890E8 /* ManualTempBasalStateModel.swift */; };
 		C967DACD3B1E638F8B43BE06 /* ManualTempBasalStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCFE0781F9074C2917890E8 /* ManualTempBasalStateModel.swift */; };
@@ -553,6 +554,27 @@
 			remoteGlobalIDString = 6B1A8D162B14D91500E76752;
 			remoteGlobalIDString = 6B1A8D162B14D91500E76752;
 			remoteInfo = LiveActivityExtension;
 			remoteInfo = LiveActivityExtension;
 		};
 		};
+		BDFF798C2D25AA890016C40C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 388E595025AD948C0019842D /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = BDFF797B2D25AA870016C40C;
+			remoteInfo = "TrioWatch Watch App";
+		};
+		BDFF79962D25AA890016C40C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 388E595025AD948C0019842D /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = BDFF797B2D25AA870016C40C;
+			remoteInfo = "TrioWatch Watch App";
+		};
+		BDFF799D2D25AA890016C40C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 388E595025AD948C0019842D /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = BDFF797B2D25AA870016C40C;
+			remoteInfo = "TrioWatch Watch App";
+		};
 /* End PBXContainerItemProxy section */
 /* End PBXContainerItemProxy section */
 
 
 /* Begin PBXCopyFilesBuildPhase section */
 /* Begin PBXCopyFilesBuildPhase section */
@@ -579,6 +601,7 @@
 			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
 			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
 			dstSubfolderSpec = 16;
 			dstSubfolderSpec = 16;
 			files = (
 			files = (
+				BDFF799F2D25AA890016C40C /* TrioWatch Watch App.app in Embed Watch Content */,
 			);
 			);
 			name = "Embed Watch Content";
 			name = "Embed Watch Content";
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -981,6 +1004,9 @@
 		BDF34F942C10D27300D51995 /* DeterminationData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeterminationData.swift; sourceTree = "<group>"; };
 		BDF34F942C10D27300D51995 /* DeterminationData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeterminationData.swift; sourceTree = "<group>"; };
 		BDF530D72B40F8AC002CAF43 /* LockScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockScreenView.swift; sourceTree = "<group>"; };
 		BDF530D72B40F8AC002CAF43 /* LockScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockScreenView.swift; sourceTree = "<group>"; };
 		BDFD16592AE40438007F0DDA /* TreatmentsRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TreatmentsRootView.swift; sourceTree = "<group>"; };
 		BDFD16592AE40438007F0DDA /* TreatmentsRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TreatmentsRootView.swift; sourceTree = "<group>"; };
+		BDFF797C2D25AA870016C40C /* TrioWatch Watch App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "TrioWatch Watch App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		BDFF798B2D25AA890016C40C /* TrioWatch Watch AppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "TrioWatch Watch AppTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
+		BDFF79952D25AA890016C40C /* TrioWatch Watch AppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "TrioWatch Watch AppUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
 		BF8BCB0C37DEB5EC377B9612 /* BasalProfileEditorRootView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BasalProfileEditorRootView.swift; sourceTree = "<group>"; };
 		BF8BCB0C37DEB5EC377B9612 /* BasalProfileEditorRootView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BasalProfileEditorRootView.swift; sourceTree = "<group>"; };
 		C19984D62EFC0035A9E9644D /* TreatmentsProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TreatmentsProvider.swift; sourceTree = "<group>"; };
 		C19984D62EFC0035A9E9644D /* TreatmentsProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TreatmentsProvider.swift; sourceTree = "<group>"; };
 		C2A0A42E2CE0312C003B98E8 /* ConstantValues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConstantValues.swift; sourceTree = "<group>"; };
 		C2A0A42E2CE0312C003B98E8 /* ConstantValues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConstantValues.swift; sourceTree = "<group>"; };
@@ -1193,6 +1219,9 @@
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFileSystemSynchronizedRootGroup section */
 /* Begin PBXFileSystemSynchronizedRootGroup section */
+		BDFF797D2D25AA870016C40C /* TrioWatch Watch App */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "TrioWatch Watch App"; sourceTree = "<group>"; };
+		BDFF798E2D25AA890016C40C /* TrioWatch Watch AppTests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "TrioWatch Watch AppTests"; sourceTree = "<group>"; };
+		BDFF79982D25AA890016C40C /* TrioWatch Watch AppUITests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "TrioWatch Watch AppUITests"; sourceTree = "<group>"; };
 		DDCEBF412CC1B42500DF4C36 /* Views */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Views; sourceTree = "<group>"; };
 		DDCEBF412CC1B42500DF4C36 /* Views */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Views; sourceTree = "<group>"; };
 /* End PBXFileSystemSynchronizedRootGroup section */
 /* End PBXFileSystemSynchronizedRootGroup section */
 
 
@@ -1235,6 +1264,27 @@
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
+		BDFF79792D25AA870016C40C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79882D25AA890016C40C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79922D25AA890016C40C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXFrameworksBuildPhase section */
 /* End PBXFrameworksBuildPhase section */
 
 
 /* Begin PBXGroup section */
 /* Begin PBXGroup section */
@@ -1866,6 +1916,9 @@
 				38FCF3EE25E9028E0078B0D1 /* FreeAPSTests */,
 				38FCF3EE25E9028E0078B0D1 /* FreeAPSTests */,
 				3818AA44274C229000843DB3 /* Packages */,
 				3818AA44274C229000843DB3 /* Packages */,
 				6B1A8D1C2B14D91600E76752 /* LiveActivity */,
 				6B1A8D1C2B14D91600E76752 /* LiveActivity */,
+				BDFF797D2D25AA870016C40C /* TrioWatch Watch App */,
+				BDFF798E2D25AA890016C40C /* TrioWatch Watch AppTests */,
+				BDFF79982D25AA890016C40C /* TrioWatch Watch AppUITests */,
 				388E595925AD948C0019842D /* Products */,
 				388E595925AD948C0019842D /* Products */,
 				3818AA48274C267000843DB3 /* Frameworks */,
 				3818AA48274C267000843DB3 /* Frameworks */,
 				192F0FF5276AC36D0085BE4D /* Recovered References */,
 				192F0FF5276AC36D0085BE4D /* Recovered References */,
@@ -1878,6 +1931,9 @@
 				388E595825AD948C0019842D /* FreeAPS.app */,
 				388E595825AD948C0019842D /* FreeAPS.app */,
 				38FCF3ED25E9028E0078B0D1 /* FreeAPSTests.xctest */,
 				38FCF3ED25E9028E0078B0D1 /* FreeAPSTests.xctest */,
 				6B1A8D172B14D91600E76752 /* LiveActivityExtension.appex */,
 				6B1A8D172B14D91600E76752 /* LiveActivityExtension.appex */,
+				BDFF797C2D25AA870016C40C /* TrioWatch Watch App.app */,
+				BDFF798B2D25AA890016C40C /* TrioWatch Watch AppTests.xctest */,
+				BDFF79952D25AA890016C40C /* TrioWatch Watch AppUITests.xctest */,
 			);
 			);
 			name = Products;
 			name = Products;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -2976,6 +3032,7 @@
 			);
 			);
 			dependencies = (
 			dependencies = (
 				6B1A8D272B14D91700E76752 /* PBXTargetDependency */,
 				6B1A8D272B14D91700E76752 /* PBXTargetDependency */,
+				BDFF799E2D25AA890016C40C /* PBXTargetDependency */,
 			);
 			);
 			name = FreeAPS;
 			name = FreeAPS;
 			packageProductDependencies = (
 			packageProductDependencies = (
@@ -3028,12 +3085,81 @@
 			productReference = 6B1A8D172B14D91600E76752 /* LiveActivityExtension.appex */;
 			productReference = 6B1A8D172B14D91600E76752 /* LiveActivityExtension.appex */;
 			productType = "com.apple.product-type.app-extension";
 			productType = "com.apple.product-type.app-extension";
 		};
 		};
+		BDFF797B2D25AA870016C40C /* TrioWatch Watch App */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BDFF79A02D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch App" */;
+			buildPhases = (
+				BDFF79782D25AA870016C40C /* Sources */,
+				BDFF79792D25AA870016C40C /* Frameworks */,
+				BDFF797A2D25AA870016C40C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			fileSystemSynchronizedGroups = (
+				BDFF797D2D25AA870016C40C /* TrioWatch Watch App */,
+			);
+			name = "TrioWatch Watch App";
+			packageProductDependencies = (
+			);
+			productName = "TrioWatch Watch App";
+			productReference = BDFF797C2D25AA870016C40C /* TrioWatch Watch App.app */;
+			productType = "com.apple.product-type.application";
+		};
+		BDFF798A2D25AA890016C40C /* TrioWatch Watch AppTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BDFF79A32D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch AppTests" */;
+			buildPhases = (
+				BDFF79872D25AA890016C40C /* Sources */,
+				BDFF79882D25AA890016C40C /* Frameworks */,
+				BDFF79892D25AA890016C40C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BDFF798D2D25AA890016C40C /* PBXTargetDependency */,
+			);
+			fileSystemSynchronizedGroups = (
+				BDFF798E2D25AA890016C40C /* TrioWatch Watch AppTests */,
+			);
+			name = "TrioWatch Watch AppTests";
+			packageProductDependencies = (
+			);
+			productName = "TrioWatch Watch AppTests";
+			productReference = BDFF798B2D25AA890016C40C /* TrioWatch Watch AppTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		BDFF79942D25AA890016C40C /* TrioWatch Watch AppUITests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BDFF79A62D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch AppUITests" */;
+			buildPhases = (
+				BDFF79912D25AA890016C40C /* Sources */,
+				BDFF79922D25AA890016C40C /* Frameworks */,
+				BDFF79932D25AA890016C40C /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BDFF79972D25AA890016C40C /* PBXTargetDependency */,
+			);
+			fileSystemSynchronizedGroups = (
+				BDFF79982D25AA890016C40C /* TrioWatch Watch AppUITests */,
+			);
+			name = "TrioWatch Watch AppUITests";
+			packageProductDependencies = (
+			);
+			productName = "TrioWatch Watch AppUITests";
+			productReference = BDFF79952D25AA890016C40C /* TrioWatch Watch AppUITests.xctest */;
+			productType = "com.apple.product-type.bundle.ui-testing";
+		};
 /* End PBXNativeTarget section */
 /* End PBXNativeTarget section */
 
 
 /* Begin PBXProject section */
 /* Begin PBXProject section */
 		388E595025AD948C0019842D /* Project object */ = {
 		388E595025AD948C0019842D /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
+				LastSwiftUpdateCheck = 1620;
 				LastUpgradeCheck = 1240;
 				LastUpgradeCheck = 1240;
 				TargetAttributes = {
 				TargetAttributes = {
 					388E595725AD948C0019842D = {
 					388E595725AD948C0019842D = {
@@ -3043,6 +3169,17 @@
 						CreatedOnToolsVersion = 12.4;
 						CreatedOnToolsVersion = 12.4;
 						TestTargetID = 388E595725AD948C0019842D;
 						TestTargetID = 388E595725AD948C0019842D;
 					};
 					};
+					BDFF797B2D25AA870016C40C = {
+						CreatedOnToolsVersion = 16.2;
+					};
+					BDFF798A2D25AA890016C40C = {
+						CreatedOnToolsVersion = 16.2;
+						TestTargetID = BDFF797B2D25AA870016C40C;
+					};
+					BDFF79942D25AA890016C40C = {
+						CreatedOnToolsVersion = 16.2;
+						TestTargetID = BDFF797B2D25AA870016C40C;
+					};
 				};
 				};
 			};
 			};
 			buildConfigurationList = 388E595325AD948C0019842D /* Build configuration list for PBXProject "FreeAPS" */;
 			buildConfigurationList = 388E595325AD948C0019842D /* Build configuration list for PBXProject "FreeAPS" */;
@@ -3091,6 +3228,9 @@
 				388E595725AD948C0019842D /* FreeAPS */,
 				388E595725AD948C0019842D /* FreeAPS */,
 				38FCF3EC25E9028E0078B0D1 /* FreeAPSTests */,
 				38FCF3EC25E9028E0078B0D1 /* FreeAPSTests */,
 				6B1A8D162B14D91500E76752 /* LiveActivityExtension */,
 				6B1A8D162B14D91500E76752 /* LiveActivityExtension */,
+				BDFF797B2D25AA870016C40C /* TrioWatch Watch App */,
+				BDFF798A2D25AA890016C40C /* TrioWatch Watch AppTests */,
+				BDFF79942D25AA890016C40C /* TrioWatch Watch AppUITests */,
 			);
 			);
 		};
 		};
 /* End PBXProject section */
 /* End PBXProject section */
@@ -3127,6 +3267,27 @@
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
+		BDFF797A2D25AA870016C40C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79892D25AA890016C40C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79932D25AA890016C40C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXResourcesBuildPhase section */
 /* End PBXResourcesBuildPhase section */
 
 
 /* Begin PBXShellScriptBuildPhase section */
 /* Begin PBXShellScriptBuildPhase section */
@@ -3724,6 +3885,27 @@
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
+		BDFF79782D25AA870016C40C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79872D25AA890016C40C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BDFF79912D25AA890016C40C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXSourcesBuildPhase section */
 /* End PBXSourcesBuildPhase section */
 
 
 /* Begin PBXTargetDependency section */
 /* Begin PBXTargetDependency section */
@@ -3737,6 +3919,21 @@
 			target = 6B1A8D162B14D91500E76752 /* LiveActivityExtension */;
 			target = 6B1A8D162B14D91500E76752 /* LiveActivityExtension */;
 			targetProxy = 6B1A8D262B14D91700E76752 /* PBXContainerItemProxy */;
 			targetProxy = 6B1A8D262B14D91700E76752 /* PBXContainerItemProxy */;
 		};
 		};
+		BDFF798D2D25AA890016C40C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = BDFF797B2D25AA870016C40C /* TrioWatch Watch App */;
+			targetProxy = BDFF798C2D25AA890016C40C /* PBXContainerItemProxy */;
+		};
+		BDFF79972D25AA890016C40C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = BDFF797B2D25AA870016C40C /* TrioWatch Watch App */;
+			targetProxy = BDFF79962D25AA890016C40C /* PBXContainerItemProxy */;
+		};
+		BDFF799E2D25AA890016C40C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = BDFF797B2D25AA870016C40C /* TrioWatch Watch App */;
+			targetProxy = BDFF799D2D25AA890016C40C /* PBXContainerItemProxy */;
+		};
 /* End PBXTargetDependency section */
 /* End PBXTargetDependency section */
 
 
 /* Begin PBXVariantGroup section */
 /* Begin PBXVariantGroup section */
@@ -4120,6 +4317,179 @@
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
+		BDFF79A12D25AA890016C40C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_IDENTITY = "Apple Development";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_ASSET_PATHS = "\"TrioWatch Watch App/Preview Content\"";
+				DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)";
+				ENABLE_PREVIEWS = YES;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				INFOPLIST_KEY_CFBundleDisplayName = TrioWatch;
+				INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
+				INFOPLIST_KEY_WKCompanionAppBundleIdentifier = org.nightscout.9X82U8BHFK.trio;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = org.nightscout.9X82U8BHFK.trio.watchkitapp;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+				SWIFT_EMIT_LOC_STRINGS = YES;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Debug;
+		};
+		BDFF79A22D25AA890016C40C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_IDENTITY = "Apple Development";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_ASSET_PATHS = "\"TrioWatch Watch App/Preview Content\"";
+				DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)";
+				ENABLE_PREVIEWS = YES;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				INFOPLIST_KEY_CFBundleDisplayName = TrioWatch;
+				INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
+				INFOPLIST_KEY_WKCompanionAppBundleIdentifier = org.nightscout.9X82U8BHFK.trio;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = org.nightscout.9X82U8BHFK.trio.watchkitapp;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				SWIFT_EMIT_LOC_STRINGS = YES;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Release;
+		};
+		BDFF79A42D25AA890016C40C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 9X82U8BHFK;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = "org.nightscout.--DEVELOPMENT-TEAM-.trio.TrioWatch-Watch-AppTests";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+				SWIFT_EMIT_LOC_STRINGS = NO;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TrioWatch Watch App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TrioWatch Watch App";
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Debug;
+		};
+		BDFF79A52D25AA890016C40C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 9X82U8BHFK;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = "org.nightscout.--DEVELOPMENT-TEAM-.trio.TrioWatch-Watch-AppTests";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SWIFT_EMIT_LOC_STRINGS = NO;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TrioWatch Watch App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TrioWatch Watch App";
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Release;
+		};
+		BDFF79A72D25AA890016C40C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 9X82U8BHFK;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = "org.nightscout.--DEVELOPMENT-TEAM-.trio.TrioWatch-Watch-AppUITests";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+				SWIFT_EMIT_LOC_STRINGS = NO;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				TEST_TARGET_NAME = "TrioWatch Watch App";
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Debug;
+		};
+		BDFF79A82D25AA890016C40C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = 1;
+				DEVELOPMENT_TEAM = 9X82U8BHFK;
+				ENABLE_USER_SCRIPT_SANDBOXING = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu17;
+				GENERATE_INFOPLIST_FILE = YES;
+				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+				MARKETING_VERSION = 1.0;
+				PRODUCT_BUNDLE_IDENTIFIER = "org.nightscout.--DEVELOPMENT-TEAM-.trio.TrioWatch-Watch-AppUITests";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SWIFT_EMIT_LOC_STRINGS = NO;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = 4;
+				TEST_TARGET_NAME = "TrioWatch Watch App";
+				WATCHOS_DEPLOYMENT_TARGET = 11.2;
+			};
+			name = Release;
+		};
 /* End XCBuildConfiguration section */
 /* End XCBuildConfiguration section */
 
 
 /* Begin XCConfigurationList section */
 /* Begin XCConfigurationList section */
@@ -4159,6 +4529,33 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Debug;
 			defaultConfigurationName = Debug;
 		};
 		};
+		BDFF79A02D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch App" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BDFF79A12D25AA890016C40C /* Debug */,
+				BDFF79A22D25AA890016C40C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		BDFF79A32D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch AppTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BDFF79A42D25AA890016C40C /* Debug */,
+				BDFF79A52D25AA890016C40C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		BDFF79A62D25AA890016C40C /* Build configuration list for PBXNativeTarget "TrioWatch Watch AppUITests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BDFF79A72D25AA890016C40C /* Debug */,
+				BDFF79A82D25AA890016C40C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
 /* End XCConfigurationList section */
 /* End XCConfigurationList section */
 
 
 /* Begin XCRemoteSwiftPackageReference section */
 /* Begin XCRemoteSwiftPackageReference section */

+ 11 - 0
TrioWatch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json

@@ -0,0 +1,11 @@
+{
+  "colors" : [
+    {
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 13 - 0
TrioWatch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,13 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 6 - 0
TrioWatch Watch App/Assets.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 17 - 0
TrioWatch Watch App/ContentView.swift

@@ -0,0 +1,17 @@
+import SwiftUI
+
+struct ContentView: View {
+    var body: some View {
+        VStack {
+            Image(systemName: "globe")
+                .imageScale(.large)
+                .foregroundStyle(.tint)
+            Text("Hello, world!")
+        }
+        .padding()
+    }
+}
+
+#Preview {
+    ContentView()
+}

+ 6 - 0
TrioWatch Watch App/Preview Content/Preview Assets.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 9 - 0
TrioWatch Watch App/TrioWatchApp.swift

@@ -0,0 +1,9 @@
+import SwiftUI
+
+@main struct TrioWatch_Watch_AppApp: App {
+    var body: some Scene {
+        WindowGroup {
+            ContentView()
+        }
+    }
+}

+ 8 - 0
TrioWatch Watch AppTests/TrioWatch_Watch_AppTests.swift

@@ -0,0 +1,8 @@
+import Testing
+@testable import TrioWatch_Watch_App
+
+struct TrioWatch_Watch_AppTests {
+    @Test func example() async throws {
+        // Write your test here and use APIs like `#expect(...)` to check expected conditions.
+    }
+}

+ 33 - 0
TrioWatch Watch AppUITests/TrioWatch_Watch_AppUITests.swift

@@ -0,0 +1,33 @@
+import XCTest
+
+final class TrioWatch_Watch_AppUITests: XCTestCase {
+    override func setUpWithError() throws {
+        // Put setup code here. This method is called before the invocation of each test method in the class.
+
+        // In UI tests it is usually best to stop immediately when a failure occurs.
+        continueAfterFailure = false
+
+        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
+    }
+
+    override func tearDownWithError() throws {
+        // Put teardown code here. This method is called after the invocation of each test method in the class.
+    }
+
+    @MainActor  func testExample() throws {
+        // UI tests must launch the application that they test.
+        let app = XCUIApplication()
+        app.launch()
+
+        // Use XCTAssert and related functions to verify your tests produce the correct results.
+    }
+
+    @MainActor  func testLaunchPerformance() throws {
+        if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) {
+            // This measures how long it takes to launch your application.
+            measure(metrics: [XCTApplicationLaunchMetric()]) {
+                XCUIApplication().launch()
+            }
+        }
+    }
+}

+ 24 - 0
TrioWatch Watch AppUITests/TrioWatch_Watch_AppUITestsLaunchTests.swift

@@ -0,0 +1,24 @@
+import XCTest
+
+final class TrioWatch_Watch_AppUITestsLaunchTests: XCTestCase {
+    override class var runsForEachTargetApplicationUIConfiguration: Bool {
+        true
+    }
+
+    override func setUpWithError() throws {
+        continueAfterFailure = false
+    }
+
+    @MainActor  func testLaunch() throws {
+        let app = XCUIApplication()
+        app.launch()
+
+        // Insert steps here to perform after app launch but before taking a screenshot,
+        // such as logging into a test account or navigating somewhere in the app
+
+        let attachment = XCTAttachment(screenshot: app.screenshot())
+        attachment.name = "Launch Screen"
+        attachment.lifetime = .keepAlways
+        add(attachment)
+    }
+}