Add Meshtastic Watch App target to Xcode project

Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Apple/sessions/c00f322c-e5f5-40cc-8ade-2ce2e34693f6

Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-19 04:32:59 +00:00 committed by GitHub
parent 98afec1b81
commit 319f3303e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 = "<group>"; };
0E644AE784C52500A9241481 /* SearchForMessagesIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchForMessagesIntentHandler.swift; sourceTree = "<group>"; };
CDA6A18109101FA06A9FBBFB /* SetMessageAttributeIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetMessageAttributeIntentHandler.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0001 /* MeshtasticWatchApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshtasticWatchApp.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0002 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0003 /* MeshNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshNode.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0004 /* WatchBLEManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchBLEManager.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0005 /* WatchLocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchLocationManager.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0006 /* FoxhuntCompassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoxhuntCompassView.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0007 /* NearbyNodesListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NearbyNodesListView.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0008 /* DeviceConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceConnectionView.swift; sourceTree = "<group>"; };
AA0005WTCH00000000FR0009 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
AA0005WTCH00000000FR0010 /* Meshtastic Watch App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Meshtastic Watch App.entitlements"; sourceTree = "<group>"; };
AA0005WTCH00000000FR0011 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
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 = "<group>";
@ -1539,6 +1590,48 @@
path = Widgets;
sourceTree = "<group>";
};
AA0005WTCH00000000GR0004 /* Views */ = {
isa = PBXGroup;
children = (
AA0005WTCH00000000FR0006 /* FoxhuntCompassView.swift */,
AA0005WTCH00000000FR0007 /* NearbyNodesListView.swift */,
AA0005WTCH00000000FR0008 /* DeviceConnectionView.swift */,
);
path = Views;
sourceTree = "<group>";
};
AA0005WTCH00000000GR0002 /* Managers */ = {
isa = PBXGroup;
children = (
AA0005WTCH00000000FR0004 /* WatchBLEManager.swift */,
AA0005WTCH00000000FR0005 /* WatchLocationManager.swift */,
);
path = Managers;
sourceTree = "<group>";
};
AA0005WTCH00000000GR0003 /* Models */ = {
isa = PBXGroup;
children = (
AA0005WTCH00000000FR0003 /* MeshNode.swift */,
);
path = Models;
sourceTree = "<group>";
};
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 = "<group>";
};
/* 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 */