Make standalone watchOS app

Seto Elkahfi committed Jul 30, 2026 at 21:56 UTC 84cac7f715119ac51e4fa26a3f24e492054bb500
2 files changed +11
Runners/XCRSControlKitRunner.xcodeproj/project.pbxproj
+10
@@ -10,6 +10,7 @@
10 0BF8E6E42A39CE747AD5ED5D /* ControlKitRunnerUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D582F818EB333BD812EBDAC7 /* ControlKitRunnerUITests.swift */; };
11 0DFC449880A304B5154D7F6D /* XCRSControlKit in Frameworks */ = {isa = PBXBuildFile; productRef = BE99FEAB3F75651FC71BB9B5 /* XCRSControlKit */; };
12 100DCE12F169B8A38E219931 /* ControlKitRPCServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976BFE251DB7DC2248C8D0E7 /* ControlKitRPCServer.swift */; };
13 + 16FD91843DB787E92BBF41D6 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 243F4A0C8F7567EDEEE21282 /* README.md */; };
14 25622E0215D89F31880E6356 /* ControlKitRunnerUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D582F818EB333BD812EBDAC7 /* ControlKitRunnerUITests.swift */; };
15 2CE41182704301ED3E17F12A /* NIOCore in Frameworks */ = {isa = PBXBuildFile; productRef = 611C969D93EC290726A7395E /* NIOCore */; };
16 3CAE36F48F2BB14EC17B1A49 /* NIOHTTP1 in Frameworks */ = {isa = PBXBuildFile; productRef = 39DF23C6EF63909919D192E1 /* NIOHTTP1 */; };
@@ -20,6 +21,7 @@
21 561834A353CBD37B8354A58E /* NIOCore in Frameworks */ = {isa = PBXBuildFile; productRef = 786AF91DEFF9CFAF6733FE5D /* NIOCore */; };
22 57C6D92B45E7092A5C2AD7D2 /* ControlKitRunnerApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FB5CFB03469D6F6B4B90338 /* ControlKitRunnerApp.swift */; };
23 57E28C91935955E0FCA55C21 /* NIOCore in Frameworks */ = {isa = PBXBuildFile; productRef = 1EEBDB1A27DC2D28A6BB1B95 /* NIOCore */; };
24 + 5AE42BE2CFBC1A90028E7C6C /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 511F38504131E988C4903A29 /* README.md */; };
25 5C1F1D551479D29CA351EEF1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E395E1A9D0B3259F9C816109 /* Assets.xcassets */; };
26 607F9363076F0FE76CA24A73 /* ControlKitRunnerApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5591C7FEF7205CCA88C10507 /* ControlKitRunnerApp.swift */; };
27 673EB3CCA913F73C710B72B0 /* NIOCore in Frameworks */ = {isa = PBXBuildFile; productRef = 58494EA2BBD98AE84158250F /* NIOCore */; };
@@ -95,10 +97,12 @@
97 08CFC4F37BB1C3444B435EC8 /* ControlKit-tvOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "ControlKit-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
98 0AF2C936A45BEF3E427051E8 /* ControlKit-iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "ControlKit-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
99 1D9522A60419FFC7F405FE88 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
100 + 243F4A0C8F7567EDEEE21282 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
101 2A9F28238A4519F25B302BD1 /* ControlKit-visionOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "ControlKit-visionOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
102 3686EC34042E55BB49FCE937 /* ControlKit-macOS-UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ControlKit-macOS-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
103 3DFF0D230E8E7D8DF4E8AF86 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
104 40A16F9F72DA073E165B0149 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
105 + 511F38504131E988C4903A29 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
106 5591C7FEF7205CCA88C10507 /* ControlKitRunnerApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ControlKitRunnerApp.swift; sourceTree = "<group>"; };
107 5A26B9285A83B3312F79B286 /* ControlKit-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ControlKit-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
108 5A89F5048B0CAE4988FB1203 /* ControlKit-visionOS-UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = "ControlKit-visionOS-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -220,6 +224,7 @@
224 children = (
225 FD4E3603A115950345EC4C96 /* Assets.xcassets */,
226 EC6FBC92946E0D2F913F6A1E /* ControlKitRunnerApp.swift */,
227 + 243F4A0C8F7567EDEEE21282 /* README.md */,
228 );
229 path = watchOS;
230 sourceTree = "<group>";
@@ -230,6 +235,7 @@
235 40A16F9F72DA073E165B0149 /* Assets.xcassets */,
236 B4A7C1166461333A52056112 /* ControlKit-macOS-UITests.entitlements */,
237 5591C7FEF7205CCA88C10507 /* ControlKitRunnerApp.swift */,
238 + 511F38504131E988C4903A29 /* README.md */,
239 );
240 path = macOS;
241 sourceTree = "<group>";
@@ -557,6 +563,7 @@
563 buildActionMask = 2147483647;
564 files = (
565 560FDA8EB7B9DE368869D155 /* Assets.xcassets in Resources */,
566 + 16FD91843DB787E92BBF41D6 /* README.md in Resources */,
567 );
568 runOnlyForDeploymentPostprocessing = 0;
569 };
@@ -574,6 +581,7 @@
581 buildActionMask = 2147483647;
582 files = (
583 9DF1151412A41AC8D2EDE2D5 /* Assets.xcassets in Resources */,
584 + 5AE42BE2CFBC1A90028E7C6C /* README.md in Resources */,
585 );
586 runOnlyForDeploymentPostprocessing = 0;
587 };
@@ -1008,6 +1016,7 @@
1016 isa = XCBuildConfiguration;
1017 buildSettings = {
1018 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1019 + INFOPLIST_KEY_WKWatchOnly = YES;
1020 PRODUCT_BUNDLE_IDENTIFIER = "com.smbcloud.xcrs-controlkit.watchos.runner";
1021 PRODUCT_NAME = ControlKit;
1022 SDKROOT = watchos;
@@ -1020,6 +1029,7 @@
1029 isa = XCBuildConfiguration;
1030 buildSettings = {
1031 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1032 + INFOPLIST_KEY_WKWatchOnly = YES;
1033 PRODUCT_BUNDLE_IDENTIFIER = "com.smbcloud.xcrs-controlkit.watchos.runner";
1034 PRODUCT_NAME = ControlKit;
1035 SDKROOT = watchos;
Runners/project.yml
+1
@@ -137,6 +137,7 @@ targets:
137 base:
138 TARGETED_DEVICE_FAMILY: "4"
139 ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
140 + INFOPLIST_KEY_WKWatchOnly: YES
141 ControlKit-watchOS-UITests:
142 templates: [UITests]
143 platform: watchOS