diff --git a/Meshtastic.xcodeproj/project.pbxproj b/Meshtastic.xcodeproj/project.pbxproj index e9b19fea..30dbe152 100644 --- a/Meshtastic.xcodeproj/project.pbxproj +++ b/Meshtastic.xcodeproj/project.pbxproj @@ -327,6 +327,17 @@ AB4622DCF4B1D4115ED00312 /* SendMessageIntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FCB3877F157D9011FA5C6CF /* SendMessageIntentHandler.swift */; }; B0E4EEF2D2C41A884A5E949C /* SearchForMessagesIntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E644AE784C52500A9241481 /* SearchForMessagesIntentHandler.swift */; }; 9BC51D7EF97090D149658843 /* SetMessageAttributeIntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDA6A18109101FA06A9FBBFB /* SetMessageAttributeIntentHandler.swift */; }; + AA0005WTCH00000000BF0001 /* MeshtasticWatchApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0001 /* MeshtasticWatchApp.swift */; }; + AA0005WTCH00000000BF0002 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0002 /* ContentView.swift */; }; + AA0005WTCH00000000BF0003 /* MeshNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0003 /* MeshNode.swift */; }; + AA0005WTCH00000000BF0004 /* WatchBLEManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0004 /* WatchBLEManager.swift */; }; + AA0005WTCH00000000BF0005 /* WatchLocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0005 /* WatchLocationManager.swift */; }; + AA0005WTCH00000000BF0006 /* FoxhuntCompassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0006 /* FoxhuntCompassView.swift */; }; + AA0005WTCH00000000BF0007 /* NearbyNodesListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0007 /* NearbyNodesListView.swift */; }; + AA0005WTCH00000000BF0008 /* DeviceConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0008 /* DeviceConnectionView.swift */; }; + AA0005WTCH00000000BF0009 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0009 /* Assets.xcassets */; }; + AA0005WTCH00000000BF0010 /* MeshtasticProtobufs in Frameworks */ = {isa = PBXBuildFile; productRef = AA0005WTCH00000000PD0001 /* MeshtasticProtobufs */; }; + AA0005WTCH00000000BF0011 /* Meshtastic Watch App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = AA0005WTCH00000000FR0012 /* Meshtastic Watch App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -344,6 +355,13 @@ remoteGlobalIDString = DDDE59F329AF163D00490C6C; remoteInfo = WidgetsExtension; }; + AA0005WTCH00000000CX0001 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DDC2E14C26CE248E0042C5E4 /* Project object */; + proxyType = 1; + remoteGlobalIDString = AA0005WTCH00000000NT0001; + remoteInfo = "Meshtastic Watch App"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -358,6 +376,17 @@ name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; + AA0005WTCH00000000CP0001 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + AA0005WTCH00000000BF0011 /* Meshtastic Watch App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -744,6 +773,18 @@ 5FCB3877F157D9011FA5C6CF /* SendMessageIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageIntentHandler.swift; sourceTree = ""; }; 0E644AE784C52500A9241481 /* SearchForMessagesIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchForMessagesIntentHandler.swift; sourceTree = ""; }; CDA6A18109101FA06A9FBBFB /* SetMessageAttributeIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetMessageAttributeIntentHandler.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0001 /* MeshtasticWatchApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshtasticWatchApp.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0002 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0003 /* MeshNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshNode.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0004 /* WatchBLEManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchBLEManager.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0005 /* WatchLocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchLocationManager.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0006 /* FoxhuntCompassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoxhuntCompassView.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0007 /* NearbyNodesListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearbyNodesListView.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0008 /* DeviceConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceConnectionView.swift; sourceTree = ""; }; + AA0005WTCH00000000FR0009 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + AA0005WTCH00000000FR0010 /* Meshtastic Watch App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Meshtastic Watch App.entitlements"; sourceTree = ""; }; + AA0005WTCH00000000FR0011 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AA0005WTCH00000000FR0012 /* Meshtastic Watch App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Meshtastic Watch App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ @@ -783,6 +824,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AA0005WTCH00000000FP0001 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AA0005WTCH00000000BF0010 /* MeshtasticProtobufs in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -1270,6 +1319,7 @@ DDC2E15626CE248E0042C5E4 /* Meshtastic */, DDDE59F729AF163D00490C6C /* Widgets */, 25F5D5C82C4375A8008036E3 /* MeshtasticTests */, + AA0005WTCH00000000GR0001 /* Meshtastic Watch App */, DDC2E15526CE248E0042C5E4 /* Products */, DD8EDE9226F97A2B00A5A10B /* Frameworks */, ); @@ -1282,6 +1332,7 @@ DDC2E15426CE248E0042C5E4 /* Meshtastic.app */, DDDE59F429AF163D00490C6C /* WidgetsExtension.appex */, 25F5D5C72C4375A8008036E3 /* MeshtasticTests.xctest */, + AA0005WTCH00000000FR0012 /* Meshtastic Watch App.app */, ); name = Products; sourceTree = ""; @@ -1539,6 +1590,48 @@ path = Widgets; sourceTree = ""; }; + AA0005WTCH00000000GR0004 /* Views */ = { + isa = PBXGroup; + children = ( + AA0005WTCH00000000FR0006 /* FoxhuntCompassView.swift */, + AA0005WTCH00000000FR0007 /* NearbyNodesListView.swift */, + AA0005WTCH00000000FR0008 /* DeviceConnectionView.swift */, + ); + path = Views; + sourceTree = ""; + }; + AA0005WTCH00000000GR0002 /* Managers */ = { + isa = PBXGroup; + children = ( + AA0005WTCH00000000FR0004 /* WatchBLEManager.swift */, + AA0005WTCH00000000FR0005 /* WatchLocationManager.swift */, + ); + path = Managers; + sourceTree = ""; + }; + AA0005WTCH00000000GR0003 /* Models */ = { + isa = PBXGroup; + children = ( + AA0005WTCH00000000FR0003 /* MeshNode.swift */, + ); + path = Models; + sourceTree = ""; + }; + AA0005WTCH00000000GR0001 /* Meshtastic Watch App */ = { + isa = PBXGroup; + children = ( + AA0005WTCH00000000FR0001 /* MeshtasticWatchApp.swift */, + AA0005WTCH00000000FR0002 /* ContentView.swift */, + AA0005WTCH00000000FR0010 /* Meshtastic Watch App.entitlements */, + AA0005WTCH00000000FR0011 /* Info.plist */, + AA0005WTCH00000000FR0009 /* Assets.xcassets */, + AA0005WTCH00000000GR0002 /* Managers */, + AA0005WTCH00000000GR0003 /* Models */, + AA0005WTCH00000000GR0004 /* Views */, + ); + path = "Meshtastic Watch App"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1569,11 +1662,13 @@ DDC2E15126CE248E0042C5E4 /* Frameworks */, DDC2E15226CE248E0042C5E4 /* Resources */, DDDE5A0829AF163F00490C6C /* Embed Foundation Extensions */, + AA0005WTCH00000000CP0001 /* Embed Watch Content */, ); buildRules = ( ); dependencies = ( DDDE5A0229AF163E00490C6C /* PBXTargetDependency */, + AA0005WTCH00000000TD0001 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( DD4C11E02E8099C3003F2F2E /* PreferenceKeys */, @@ -1613,6 +1708,26 @@ productReference = DDDE59F429AF163D00490C6C /* WidgetsExtension.appex */; productType = "com.apple.product-type.app-extension"; }; + AA0005WTCH00000000NT0001 /* Meshtastic Watch App */ = { + isa = PBXNativeTarget; + buildConfigurationList = AA0005WTCH00000000CL0001 /* Build configuration list for PBXNativeTarget "Meshtastic Watch App" */; + buildPhases = ( + AA0005WTCH00000000SP0001 /* Sources */, + AA0005WTCH00000000FP0001 /* Frameworks */, + AA0005WTCH00000000RP0001 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Meshtastic Watch App"; + packageProductDependencies = ( + AA0005WTCH00000000PD0001 /* MeshtasticProtobufs */, + ); + productName = "Meshtastic Watch App"; + productReference = AA0005WTCH00000000FR0012 /* Meshtastic Watch App.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -1671,6 +1786,7 @@ DDC2E15326CE248E0042C5E4 /* Meshtastic */, DDDE59F329AF163D00490C6C /* WidgetsExtension */, 25F5D5C62C4375A8008036E3 /* MeshtasticTests */, + AA0005WTCH00000000NT0001 /* Meshtastic Watch App */, ); }; /* End PBXProject section */ @@ -1712,6 +1828,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AA0005WTCH00000000RP0001 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA0005WTCH00000000BF0009 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -2049,6 +2173,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AA0005WTCH00000000SP0001 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA0005WTCH00000000BF0001 /* MeshtasticWatchApp.swift in Sources */, + AA0005WTCH00000000BF0002 /* ContentView.swift in Sources */, + AA0005WTCH00000000BF0003 /* MeshNode.swift in Sources */, + AA0005WTCH00000000BF0004 /* WatchBLEManager.swift in Sources */, + AA0005WTCH00000000BF0005 /* WatchLocationManager.swift in Sources */, + AA0005WTCH00000000BF0006 /* FoxhuntCompassView.swift in Sources */, + AA0005WTCH00000000BF0007 /* NearbyNodesListView.swift in Sources */, + AA0005WTCH00000000BF0008 /* DeviceConnectionView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -2063,6 +2202,11 @@ target = DDDE59F329AF163D00490C6C /* WidgetsExtension */; targetProxy = DDDE5A0129AF163E00490C6C /* PBXContainerItemProxy */; }; + AA0005WTCH00000000TD0001 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AA0005WTCH00000000NT0001 /* Meshtastic Watch App */; + targetProxy = AA0005WTCH00000000CX0001 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -2419,6 +2563,68 @@ }; name = Release; }; + AA0005WTCH00000000BC0001 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Meshtastic Watch App/Meshtastic Watch App.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Meshtastic Watch App/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Meshtastic Foxhunt"; + INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Meshtastic needs Bluetooth to connect directly to your Meshtastic radio for foxhunt direction finding."; + INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Meshtastic needs your location to calculate distance and bearing to mesh nodes during foxhunt."; + INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 2.7.10; + PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Debug; + }; + AA0005WTCH00000000BC0002 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Meshtastic Watch App/Meshtastic Watch App.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Meshtastic Watch App/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Meshtastic Foxhunt"; + INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Meshtastic needs Bluetooth to connect directly to your Meshtastic radio for foxhunt direction finding."; + INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Meshtastic needs your location to calculate distance and bearing to mesh nodes during foxhunt."; + INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 2.7.10; + PRODUCT_BUNDLE_IDENTIFIER = gvh.MeshtasticClient.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -2458,6 +2664,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AA0005WTCH00000000CL0001 /* Build configuration list for PBXNativeTarget "Meshtastic Watch App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA0005WTCH00000000BC0001 /* Debug */, + AA0005WTCH00000000BC0002 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ @@ -2539,6 +2754,10 @@ package = DD0D3D202A55CEB10066DB71 /* XCRemoteSwiftPackageReference "CocoaMQTT" */; productName = CocoaMQTT; }; + AA0005WTCH00000000PD0001 /* MeshtasticProtobufs */ = { + isa = XCSwiftPackageProductDependency; + productName = MeshtasticProtobufs; + }; /* End XCSwiftPackageProductDependency section */ /* Begin XCVersionGroup section */