Integrate live phone and watch remote prototype with guarded motion control

This commit is contained in:
2026-09-18 19:11:52 +04:00
parent 3e787543c0
commit 8131f4f873
54 changed files with 4355 additions and 329 deletions
+225 -159
View File
@@ -7,43 +7,49 @@
objects = {
/* Begin PBXBuildFile section */
0E2482967C119992EFC9731BD93990F7 /* RemoteDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D461BAF88CA54866E0E56A2DD436B4A /* RemoteDemoView.swift */; };
1E53F8BEEE6D61CE71E682F5F7CF2147 /* RemoteCore in Frameworks */ = {isa = PBXBuildFile; productRef = E8753247C07C7B446324EE3A71951236 /* RemoteCore */; };
25F9B24B070225E1A1636D9985324EA6 /* WristivoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890F3EFC8807C413145F604429BF91F6 /* WristivoApp.swift */; };
48FCE21F445E23DBA4A5DAD86D481954 /* GestureCore in Frameworks */ = {isa = PBXBuildFile; productRef = 4BDCC823CAE7AF85DEB80F49EA2FA408 /* GestureCore */; };
641657FFCFCFB81A75762E575E913AE5 /* WristivoWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 4A082972BE30D2A9CA9B01AEDA159CD5 /* WristivoWatch.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
665A97BD7636C338F128AF1499BAFECB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9D3CF76227B20B7C3540FB24BC876B3 /* Foundation.framework */; };
6BB86F38E5C018B41C6D4E71893A23CE /* RemoteCore in Frameworks */ = {isa = PBXBuildFile; productRef = 9E6C269953D3C4013B98995A8D81F8F4 /* RemoteCore */; };
75D76893CE6B6841CEA19A8434778F3B /* WristivoWatchApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96FEDE35530887CE7794CE846AE4AB84 /* WristivoWatchApp.swift */; };
85FBE8F84E0AD27608500C0D032A71F4 /* CommandPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */; };
94FE13C392F93E0209CA935E99858801 /* WatchBridgeWatch in Frameworks */ = {isa = PBXBuildFile; productRef = D39AAD66EB3940123D81B61C66173DE9 /* WatchBridgeWatch */; };
A9EFDE4F5319C6E31CBC00B6066B1816 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */; };
BEADBF605154E2E19723E0E815F8606B /* CommandPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */; };
C93002E459E3E8DFA2E2D6947143B1F2 /* WatchRemoteDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E8D4E53699D4E49FA01E69284C27AF0 /* WatchRemoteDemoView.swift */; };
DB0584C988D0B59B83BFDC5328504D78 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8EAD0E81A4073BB85995F21AC2B4AC6 /* Foundation.framework */; };
E6D8811706FA6D163D5383674346C819 /* WatchBridgePhone in Frameworks */ = {isa = PBXBuildFile; productRef = 680557163CFB560AC3E3060AB13041E5 /* WatchBridgePhone */; };
EC287AAF374D4034FFC06B54CFCE298C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */; };
EC830E832AD41359BA3A5A23EA4C59A7 /* SamsungProtocol in Frameworks */ = {isa = PBXBuildFile; productRef = ABFF37EAE43C10491026D0A9DA7A4D16 /* SamsungProtocol */; };
08AA4B4F51B8578AA23BECB6BC9F6397 /* GestureCore in Frameworks */ = {isa = PBXBuildFile; productRef = B2609C5AB45B5068ADCC82CD7DA1B244 /* GestureCore */; };
158215224EA47D11B5D12386B165D5F2 /* PhoneControl in Frameworks */ = {isa = PBXBuildFile; productRef = BD9590230442342C4BD0D6079093ECDF /* PhoneControl */; };
2589DC213E60F7600BF0C436CDA5A201 /* CommandPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */; };
2FC5651130B9696D74CFC93426A73099 /* RemoteCore in Frameworks */ = {isa = PBXBuildFile; productRef = BB680AC5AD94E2E1204C6737D7FBA374 /* RemoteCore */; };
3D36C48360A9A18C24F7290A5457885A /* RemoteDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D461BAF88CA54866E0E56A2DD436B4A /* RemoteDemoView.swift */; };
5C651CD2004E850FE569853F50C04511 /* WatchBridgeWatch in Frameworks */ = {isa = PBXBuildFile; productRef = 8B59743D623BC3D8F186FD3B820C6297 /* WatchBridgeWatch */; };
5E2DC3FB24B5F9350BFF6CC336B776D5 /* WristivoWatchApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96FEDE35530887CE7794CE846AE4AB84 /* WristivoWatchApp.swift */; };
763341B20334FB6F3E1A5A160BE4EACC /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */; };
7DF8D444491684E427CDDC4FDF1F2804 /* LivePhoneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EB00680D6186AAB2100EFEB7ECF9783 /* LivePhoneView.swift */; };
877FCF9404EBC38A60762247CF2859E4 /* RemoteCore in Frameworks */ = {isa = PBXBuildFile; productRef = D4C49CD50DE70AAEF4600DC056B49E4A /* RemoteCore */; };
8896DDC459CD9BD3CE4545109F120F2F /* PhoneAppComposition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CF531D616DF67256FF6B45F261F406A /* PhoneAppComposition.swift */; };
8B60054882487EFA4DAD717BF0D621F8 /* MotionCapture in Frameworks */ = {isa = PBXBuildFile; productRef = 3C3315C9117F9BBC8BD3132FE6AD8BAB /* MotionCapture */; };
8EEE5A0A19C98EEFEC8DBC74AE82BB1F /* WatchRemoteDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E8D4E53699D4E49FA01E69284C27AF0 /* WatchRemoteDemoView.swift */; };
9BD72C6A3AEFD7D9C0B2FF7CEE24C0A9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */; };
B48A9F43BCE0ADE7E1F9191E47227AD7 /* SamsungProtocol in Frameworks */ = {isa = PBXBuildFile; productRef = F584742F26C2A5D56A645DB85792BAF9 /* SamsungProtocol */; };
BBE2A0BC1499B149246C5AB4DC0D26B2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9D3CF76227B20B7C3540FB24BC876B3 /* Foundation.framework */; };
CE6C5EE656027D9716585E9B9FB3CAD3 /* TVTransport in Frameworks */ = {isa = PBXBuildFile; productRef = 0E02A167398F7B9444A964240446A2F1 /* TVTransport */; };
D0B1C2E67B656B0F6763A79C075FEB9F /* WristivoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890F3EFC8807C413145F604429BF91F6 /* WristivoApp.swift */; };
D41E8416AD24AAE27C54B67A3D727EC0 /* SecureStorage in Frameworks */ = {isa = PBXBuildFile; productRef = E595FA69C204748E5F56A58A4075CFEC /* SecureStorage */; };
D5B4C5EF77D63A7E0B24F361200BBCA1 /* WatchBridgePhone in Frameworks */ = {isa = PBXBuildFile; productRef = 9F6B7B14281EC69AA5E0EB5EA91BA14D /* WatchBridgePhone */; };
DA792A51BBB9BFFB0B920F6AE8945286 /* WristivoWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 4A082972BE30D2A9CA9B01AEDA159CD5 /* WristivoWatch.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
DC21C4C763518C2B4CE86A3B016CA7D7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8EAD0E81A4073BB85995F21AC2B4AC6 /* Foundation.framework */; };
E574D39D92E400166EF03143685FC69B /* CommandPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
AD16755ABE4DE4DC55D93AE00CC51988 /* PBXContainerItemProxy */ = {
C24B943398CBBE0C80BE10FEB2EEB2EE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A6B9AD07CCD6814B2B51DF0509865B11 /* Project object */;
proxyType = 1;
remoteGlobalIDString = E847B268313C04CBDC6F406F02397F95;
remoteGlobalIDString = 021B5C7BA1AB0214281EFF292D2534DB;
remoteInfo = WristivoWatch;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
204A5DA2221ABB055B8F5E4427992562 /* Embed Watch Content */ = {
F502729A53397FDE6D51E77DB05FEF56 /* Embed Watch Content */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
dstSubfolderSpec = 16;
files = (
641657FFCFCFB81A75762E575E913AE5 /* WristivoWatch.app in Embed Watch Content */,
DA792A51BBB9BFFB0B920F6AE8945286 /* WristivoWatch.app in Embed Watch Content */,
);
name = "Embed Watch Content";
runOnlyForDeploymentPostprocessing = 0;
@@ -52,6 +58,7 @@
/* Begin PBXFileReference section */
099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CommandPresentation.swift; path = Apps/Shared/CommandPresentation.swift; sourceTree = "<group>"; };
1CF531D616DF67256FF6B45F261F406A /* PhoneAppComposition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneAppComposition.swift; path = Apps/iPhone/PhoneAppComposition.swift; sourceTree = "<group>"; };
3D461BAF88CA54866E0E56A2DD436B4A /* RemoteDemoView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RemoteDemoView.swift; path = Apps/iPhone/RemoteDemoView.swift; sourceTree = "<group>"; };
3E8D4E53699D4E49FA01E69284C27AF0 /* WatchRemoteDemoView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WatchRemoteDemoView.swift; path = Apps/Watch/WatchRemoteDemoView.swift; sourceTree = "<group>"; };
430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Resources/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
@@ -59,31 +66,36 @@
72EF8E42887FFEC5B4C2590143572AC2 /* Base.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Base.xcconfig; path = Config/Base.xcconfig; sourceTree = "<group>"; };
890F3EFC8807C413145F604429BF91F6 /* WristivoApp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WristivoApp.swift; path = Apps/iPhone/WristivoApp.swift; sourceTree = "<group>"; };
96FEDE35530887CE7794CE846AE4AB84 /* WristivoWatchApp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WristivoWatchApp.swift; path = Apps/Watch/WristivoWatchApp.swift; sourceTree = "<group>"; };
9EB00680D6186AAB2100EFEB7ECF9783 /* LivePhoneView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LivePhoneView.swift; path = Apps/iPhone/LivePhoneView.swift; sourceTree = "<group>"; };
A2F3C9F86650749EDA3E56A620D8ED43 /* Wristivo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Wristivo.app; sourceTree = BUILT_PRODUCTS_DIR; };
D8EAD0E81A4073BB85995F21AC2B4AC6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS11.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
E9D3CF76227B20B7C3540FB24BC876B3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7E27479456E7603104693DA6C9A3E8DC /* Frameworks */ = {
9A0328506C66955C68928883584FC484 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DB0584C988D0B59B83BFDC5328504D78 /* Foundation.framework in Frameworks */,
6BB86F38E5C018B41C6D4E71893A23CE /* RemoteCore in Frameworks */,
48FCE21F445E23DBA4A5DAD86D481954 /* GestureCore in Frameworks */,
94FE13C392F93E0209CA935E99858801 /* WatchBridgeWatch in Frameworks */,
DC21C4C763518C2B4CE86A3B016CA7D7 /* Foundation.framework in Frameworks */,
2FC5651130B9696D74CFC93426A73099 /* RemoteCore in Frameworks */,
08AA4B4F51B8578AA23BECB6BC9F6397 /* GestureCore in Frameworks */,
5C651CD2004E850FE569853F50C04511 /* WatchBridgeWatch in Frameworks */,
8B60054882487EFA4DAD717BF0D621F8 /* MotionCapture in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
EF34AAE38B8E8F5C777ABCE512830344 /* Frameworks */ = {
B6BC727B014317D62607D9893E94C16A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
665A97BD7636C338F128AF1499BAFECB /* Foundation.framework in Frameworks */,
1E53F8BEEE6D61CE71E682F5F7CF2147 /* RemoteCore in Frameworks */,
EC830E832AD41359BA3A5A23EA4C59A7 /* SamsungProtocol in Frameworks */,
E6D8811706FA6D163D5383674346C819 /* WatchBridgePhone in Frameworks */,
BBE2A0BC1499B149246C5AB4DC0D26B2 /* Foundation.framework in Frameworks */,
877FCF9404EBC38A60762247CF2859E4 /* RemoteCore in Frameworks */,
B48A9F43BCE0ADE7E1F9191E47227AD7 /* SamsungProtocol in Frameworks */,
D5B4C5EF77D63A7E0B24F361200BBCA1 /* WatchBridgePhone in Frameworks */,
CE6C5EE656027D9716585E9B9FB3CAD3 /* TVTransport in Frameworks */,
D41E8416AD24AAE27C54B67A3D727EC0 /* SecureStorage in Frameworks */,
158215224EA47D11B5D12386B165D5F2 /* PhoneControl in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -123,6 +135,8 @@
72EF8E42887FFEC5B4C2590143572AC2 /* Base.xcconfig */,
099286A1280A5A4F05B7D106924EF403 /* CommandPresentation.swift */,
430827E671ADEF6F2A2CC46D934C0177 /* PrivacyInfo.xcprivacy */,
9EB00680D6186AAB2100EFEB7ECF9783 /* LivePhoneView.swift */,
1CF531D616DF67256FF6B45F261F406A /* PhoneAppComposition.swift */,
3D461BAF88CA54866E0E56A2DD436B4A /* RemoteDemoView.swift */,
890F3EFC8807C413145F604429BF91F6 /* WristivoApp.swift */,
3E8D4E53699D4E49FA01E69284C27AF0 /* WatchRemoteDemoView.swift */,
@@ -142,37 +156,13 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
51E84BBEC4583A7F7C052F58F2EAAF78 /* Wristivo */ = {
021B5C7BA1AB0214281EFF292D2534DB /* WristivoWatch */ = {
isa = PBXNativeTarget;
buildConfigurationList = 93F0F7B38CDEC6A75FDEC3AFA9C730CE /* Build configuration list for PBXNativeTarget "Wristivo" */;
buildConfigurationList = E08F800FF2710E80C01363715E0E7460 /* Build configuration list for PBXNativeTarget "WristivoWatch" */;
buildPhases = (
2866B4A68DF0BA6A92BB55E3913CCFCE /* Sources */,
EF34AAE38B8E8F5C777ABCE512830344 /* Frameworks */,
376501AED0FE93CCB5CD8877460F8CA6 /* Resources */,
204A5DA2221ABB055B8F5E4427992562 /* Embed Watch Content */,
);
buildRules = (
);
dependencies = (
75F3F1FC01E91504E0D509169C05FF60 /* PBXTargetDependency */,
);
name = Wristivo;
packageProductDependencies = (
E8753247C07C7B446324EE3A71951236 /* RemoteCore */,
ABFF37EAE43C10491026D0A9DA7A4D16 /* SamsungProtocol */,
680557163CFB560AC3E3060AB13041E5 /* WatchBridgePhone */,
);
productName = Wristivo;
productReference = A2F3C9F86650749EDA3E56A620D8ED43 /* Wristivo.app */;
productType = "com.apple.product-type.application";
};
E847B268313C04CBDC6F406F02397F95 /* WristivoWatch */ = {
isa = PBXNativeTarget;
buildConfigurationList = FA77B001FC3F57F319FC00E23843C2E4 /* Build configuration list for PBXNativeTarget "WristivoWatch" */;
buildPhases = (
9C18AE3B1CD5BEED88FD5DDB178CA25A /* Sources */,
7E27479456E7603104693DA6C9A3E8DC /* Frameworks */,
BFD51CDC523FB0EDE831D838E1110BB2 /* Resources */,
297FEE65C9762D2C35AADE096BD7DC0D /* Sources */,
9A0328506C66955C68928883584FC484 /* Frameworks */,
A8500D0A0C0A200B2283E36BA000FA31 /* Resources */,
);
buildRules = (
);
@@ -180,14 +170,42 @@
);
name = WristivoWatch;
packageProductDependencies = (
9E6C269953D3C4013B98995A8D81F8F4 /* RemoteCore */,
4BDCC823CAE7AF85DEB80F49EA2FA408 /* GestureCore */,
D39AAD66EB3940123D81B61C66173DE9 /* WatchBridgeWatch */,
BB680AC5AD94E2E1204C6737D7FBA374 /* RemoteCore */,
B2609C5AB45B5068ADCC82CD7DA1B244 /* GestureCore */,
8B59743D623BC3D8F186FD3B820C6297 /* WatchBridgeWatch */,
3C3315C9117F9BBC8BD3132FE6AD8BAB /* MotionCapture */,
);
productName = WristivoWatch;
productReference = 4A082972BE30D2A9CA9B01AEDA159CD5 /* WristivoWatch.app */;
productType = "com.apple.product-type.application";
};
2359978616F0049FAAE3392CD7B62BAC /* Wristivo */ = {
isa = PBXNativeTarget;
buildConfigurationList = DAB983D402EEB07761711034EDFB752E /* Build configuration list for PBXNativeTarget "Wristivo" */;
buildPhases = (
8B4CDB0E36F0113815A7A847F175C7E3 /* Sources */,
B6BC727B014317D62607D9893E94C16A /* Frameworks */,
D912C772FCF20DFEEACCCB5892CF2A70 /* Resources */,
F502729A53397FDE6D51E77DB05FEF56 /* Embed Watch Content */,
);
buildRules = (
);
dependencies = (
D40F97C4AB59EDDFB840293D32ACBDC6 /* PBXTargetDependency */,
);
name = Wristivo;
packageProductDependencies = (
D4C49CD50DE70AAEF4600DC056B49E4A /* RemoteCore */,
F584742F26C2A5D56A645DB85792BAF9 /* SamsungProtocol */,
9F6B7B14281EC69AA5E0EB5EA91BA14D /* WatchBridgePhone */,
0E02A167398F7B9444A964240446A2F1 /* TVTransport */,
E595FA69C204748E5F56A58A4075CFEC /* SecureStorage */,
BD9590230442342C4BD0D6079093ECDF /* PhoneControl */,
);
productName = Wristivo;
productReference = A2F3C9F86650749EDA3E56A620D8ED43 /* Wristivo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -208,95 +226,78 @@
mainGroup = AA6CD4C83BB8EE679A0550AAAF6CA77D;
minimizedProjectReferenceProxies = 0;
packageReferences = (
612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */,
C392D09E694FC793E9D75786813ADCCC /* XCLocalSwiftPackageReference "WatchBridge" */,
5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */,
57386EEA4988DA882D5A427050FD53AE /* XCLocalSwiftPackageReference "WatchBridge" */,
BFE41D2C320E50C462F22F5FEDD3115A /* XCLocalSwiftPackageReference "TVTransport" */,
66C0235140BBC6C9725E5AE8CBD4707D /* XCLocalSwiftPackageReference "SecureStorage" */,
56C6046BB877C84039B52D0053D808AB /* XCLocalSwiftPackageReference "PhoneControl" */,
C0546D2DA5F55B16D1C355CA3EB03B56 /* XCLocalSwiftPackageReference "MotionCapture" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = E852DA970C83730E757E48147D2344A5 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
51E84BBEC4583A7F7C052F58F2EAAF78 /* Wristivo */,
E847B268313C04CBDC6F406F02397F95 /* WristivoWatch */,
2359978616F0049FAAE3392CD7B62BAC /* Wristivo */,
021B5C7BA1AB0214281EFF292D2534DB /* WristivoWatch */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
376501AED0FE93CCB5CD8877460F8CA6 /* Resources */ = {
A8500D0A0C0A200B2283E36BA000FA31 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EC287AAF374D4034FFC06B54CFCE298C /* PrivacyInfo.xcprivacy in Resources */,
763341B20334FB6F3E1A5A160BE4EACC /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
BFD51CDC523FB0EDE831D838E1110BB2 /* Resources */ = {
D912C772FCF20DFEEACCCB5892CF2A70 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9EFDE4F5319C6E31CBC00B6066B1816 /* PrivacyInfo.xcprivacy in Resources */,
9BD72C6A3AEFD7D9C0B2FF7CEE24C0A9 /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
2866B4A68DF0BA6A92BB55E3913CCFCE /* Sources */ = {
297FEE65C9762D2C35AADE096BD7DC0D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
85FBE8F84E0AD27608500C0D032A71F4 /* CommandPresentation.swift in Sources */,
0E2482967C119992EFC9731BD93990F7 /* RemoteDemoView.swift in Sources */,
25F9B24B070225E1A1636D9985324EA6 /* WristivoApp.swift in Sources */,
2589DC213E60F7600BF0C436CDA5A201 /* CommandPresentation.swift in Sources */,
8EEE5A0A19C98EEFEC8DBC74AE82BB1F /* WatchRemoteDemoView.swift in Sources */,
5E2DC3FB24B5F9350BFF6CC336B776D5 /* WristivoWatchApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
9C18AE3B1CD5BEED88FD5DDB178CA25A /* Sources */ = {
8B4CDB0E36F0113815A7A847F175C7E3 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
BEADBF605154E2E19723E0E815F8606B /* CommandPresentation.swift in Sources */,
C93002E459E3E8DFA2E2D6947143B1F2 /* WatchRemoteDemoView.swift in Sources */,
75D76893CE6B6841CEA19A8434778F3B /* WristivoWatchApp.swift in Sources */,
E574D39D92E400166EF03143685FC69B /* CommandPresentation.swift in Sources */,
7DF8D444491684E427CDDC4FDF1F2804 /* LivePhoneView.swift in Sources */,
8896DDC459CD9BD3CE4545109F120F2F /* PhoneAppComposition.swift in Sources */,
3D36C48360A9A18C24F7290A5457885A /* RemoteDemoView.swift in Sources */,
D0B1C2E67B656B0F6763A79C075FEB9F /* WristivoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
75F3F1FC01E91504E0D509169C05FF60 /* PBXTargetDependency */ = {
D40F97C4AB59EDDFB840293D32ACBDC6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = WristivoWatch;
target = E847B268313C04CBDC6F406F02397F95 /* WristivoWatch */;
targetProxy = AD16755ABE4DE4DC55D93AE00CC51988 /* PBXContainerItemProxy */;
target = 021B5C7BA1AB0214281EFF292D2534DB /* WristivoWatch */;
targetProxy = C24B943398CBBE0C80BE10FEB2EEB2EE /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
0AE74C51A5980FF7C345A772BFB29C55 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_WKApplication = YES;
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "$(WRISTIVO_BUNDLE_PREFIX)";
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "$(WRISTIVO_BUNDLE_PREFIX).watchkitapp";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_STRICT_CONCURRENCY = complete;
SWIFT_VERSION = 6.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Debug;
};
0B8C0DFEB77BFF8CE1C1F368E2F7E051 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 72EF8E42887FFEC5B4C2590143572AC2 /* Base.xcconfig */;
@@ -352,7 +353,7 @@
};
name = Release;
};
142429C6DF0CAB80FB8127E0D4DAAE55 /* Debug */ = {
598823B10402AE1811A7F9BD64C3E9E4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -362,8 +363,10 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Wristivo connects to the TV you select on your home network to pair and send remote commands.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "$(WRISTIVO_BUNDLE_PREFIX)";
@@ -375,30 +378,6 @@
};
name = Debug;
};
5D249F97F4CFC9569534BE2CB17D687A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_STYLE = Automatic;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "$(WRISTIVO_BUNDLE_PREFIX)";
SDKROOT = iphoneos;
SUPPORTS_MACCATALYST = NO;
SWIFT_STRICT_CONCURRENCY = complete;
SWIFT_VERSION = 6.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7CF594D2A1A8B67A92FF51BEF2E85928 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 72EF8E42887FFEC5B4C2590143572AC2 /* Base.xcconfig */;
@@ -461,7 +440,33 @@
};
name = Debug;
};
FEA9ACEBD5497DD7394F3F4E0965A32D /* Release */ = {
80EDBFC744D81FC4D03D36A8A3830EE0 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGN_STYLE = Automatic;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Wristivo connects to the TV you select on your home network to pair and send remote commands.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "$(WRISTIVO_BUNDLE_PREFIX)";
SDKROOT = iphoneos;
SUPPORTS_MACCATALYST = NO;
SWIFT_STRICT_CONCURRENCY = complete;
SWIFT_VERSION = 6.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
ACF4DD4FCB7A6DE481CB290113BAC91C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -470,6 +475,31 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_NSMotionUsageDescription = "Wristivo uses wrist movement during calibration and active gesture sessions to recognize TV remote directions.";
INFOPLIST_KEY_WKApplication = YES;
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "$(WRISTIVO_BUNDLE_PREFIX)";
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "$(WRISTIVO_BUNDLE_PREFIX).watchkitapp";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_STRICT_CONCURRENCY = complete;
SWIFT_VERSION = 6.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 10.0;
};
name = Debug;
};
C76FED1BA41E91991F7AFDB4933D2309 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Wristivo;
INFOPLIST_KEY_NSMotionUsageDescription = "Wristivo uses wrist movement during calibration and active gesture sessions to recognize TV remote directions.";
INFOPLIST_KEY_WKApplication = YES;
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "$(WRISTIVO_BUNDLE_PREFIX)";
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
@@ -497,20 +527,20 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
93F0F7B38CDEC6A75FDEC3AFA9C730CE /* Build configuration list for PBXNativeTarget "Wristivo" */ = {
DAB983D402EEB07761711034EDFB752E /* Build configuration list for PBXNativeTarget "Wristivo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5D249F97F4CFC9569534BE2CB17D687A /* Release */,
142429C6DF0CAB80FB8127E0D4DAAE55 /* Debug */,
80EDBFC744D81FC4D03D36A8A3830EE0 /* Release */,
598823B10402AE1811A7F9BD64C3E9E4 /* Debug */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FA77B001FC3F57F319FC00E23843C2E4 /* Build configuration list for PBXNativeTarget "WristivoWatch" */ = {
E08F800FF2710E80C01363715E0E7460 /* Build configuration list for PBXNativeTarget "WristivoWatch" */ = {
isa = XCConfigurationList;
buildConfigurations = (
FEA9ACEBD5497DD7394F3F4E0965A32D /* Release */,
0AE74C51A5980FF7C345A772BFB29C55 /* Debug */,
C76FED1BA41E91991F7AFDB4933D2309 /* Release */,
ACF4DD4FCB7A6DE481CB290113BAC91C /* Debug */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -518,47 +548,83 @@
/* End XCConfigurationList section */
/* Begin XCLocalSwiftPackageReference section */
612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */ = {
5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Packages/WristivoKit;
};
C392D09E694FC793E9D75786813ADCCC /* XCLocalSwiftPackageReference "WatchBridge" */ = {
56C6046BB877C84039B52D0053D808AB /* XCLocalSwiftPackageReference "PhoneControl" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Adapters/PhoneControl;
};
57386EEA4988DA882D5A427050FD53AE /* XCLocalSwiftPackageReference "WatchBridge" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Adapters/WatchBridge;
};
66C0235140BBC6C9725E5AE8CBD4707D /* XCLocalSwiftPackageReference "SecureStorage" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Adapters/SecureStorage;
};
BFE41D2C320E50C462F22F5FEDD3115A /* XCLocalSwiftPackageReference "TVTransport" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Adapters/TVTransport;
};
C0546D2DA5F55B16D1C355CA3EB03B56 /* XCLocalSwiftPackageReference "MotionCapture" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Adapters/MotionCapture;
};
/* End XCLocalSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
4BDCC823CAE7AF85DEB80F49EA2FA408 /* GestureCore */ = {
0E02A167398F7B9444A964240446A2F1 /* TVTransport */ = {
isa = XCSwiftPackageProductDependency;
package = 612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = GestureCore;
package = BFE41D2C320E50C462F22F5FEDD3115A /* XCLocalSwiftPackageReference "TVTransport" */;
productName = TVTransport;
};
680557163CFB560AC3E3060AB13041E5 /* WatchBridgePhone */ = {
3C3315C9117F9BBC8BD3132FE6AD8BAB /* MotionCapture */ = {
isa = XCSwiftPackageProductDependency;
package = C392D09E694FC793E9D75786813ADCCC /* XCLocalSwiftPackageReference "WatchBridge" */;
productName = WatchBridgePhone;
package = C0546D2DA5F55B16D1C355CA3EB03B56 /* XCLocalSwiftPackageReference "MotionCapture" */;
productName = MotionCapture;
};
9E6C269953D3C4013B98995A8D81F8F4 /* RemoteCore */ = {
8B59743D623BC3D8F186FD3B820C6297 /* WatchBridgeWatch */ = {
isa = XCSwiftPackageProductDependency;
package = 612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = RemoteCore;
};
ABFF37EAE43C10491026D0A9DA7A4D16 /* SamsungProtocol */ = {
isa = XCSwiftPackageProductDependency;
package = 612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = SamsungProtocol;
};
D39AAD66EB3940123D81B61C66173DE9 /* WatchBridgeWatch */ = {
isa = XCSwiftPackageProductDependency;
package = C392D09E694FC793E9D75786813ADCCC /* XCLocalSwiftPackageReference "WatchBridge" */;
package = 57386EEA4988DA882D5A427050FD53AE /* XCLocalSwiftPackageReference "WatchBridge" */;
productName = WatchBridgeWatch;
};
E8753247C07C7B446324EE3A71951236 /* RemoteCore */ = {
9F6B7B14281EC69AA5E0EB5EA91BA14D /* WatchBridgePhone */ = {
isa = XCSwiftPackageProductDependency;
package = 612F0E86D70AC2A16A96EB622CA81827 /* XCLocalSwiftPackageReference "WristivoKit" */;
package = 57386EEA4988DA882D5A427050FD53AE /* XCLocalSwiftPackageReference "WatchBridge" */;
productName = WatchBridgePhone;
};
B2609C5AB45B5068ADCC82CD7DA1B244 /* GestureCore */ = {
isa = XCSwiftPackageProductDependency;
package = 5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = GestureCore;
};
BB680AC5AD94E2E1204C6737D7FBA374 /* RemoteCore */ = {
isa = XCSwiftPackageProductDependency;
package = 5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = RemoteCore;
};
BD9590230442342C4BD0D6079093ECDF /* PhoneControl */ = {
isa = XCSwiftPackageProductDependency;
package = 56C6046BB877C84039B52D0053D808AB /* XCLocalSwiftPackageReference "PhoneControl" */;
productName = PhoneControl;
};
D4C49CD50DE70AAEF4600DC056B49E4A /* RemoteCore */ = {
isa = XCSwiftPackageProductDependency;
package = 5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = RemoteCore;
};
E595FA69C204748E5F56A58A4075CFEC /* SecureStorage */ = {
isa = XCSwiftPackageProductDependency;
package = 66C0235140BBC6C9725E5AE8CBD4707D /* XCLocalSwiftPackageReference "SecureStorage" */;
productName = SecureStorage;
};
F584742F26C2A5D56A645DB85792BAF9 /* SamsungProtocol */ = {
isa = XCSwiftPackageProductDependency;
package = 5237B89A6F65701D5229E5D3EB6779A0 /* XCLocalSwiftPackageReference "WristivoKit" */;
productName = SamsungProtocol;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = A6B9AD07CCD6814B2B51DF0509865B11 /* Project object */;
@@ -14,7 +14,7 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51E84BBEC4583A7F7C052F58F2EAAF78"
BlueprintIdentifier = "2359978616F0049FAAE3392CD7B62BAC"
BuildableName = "Wristivo.app"
BlueprintName = "Wristivo"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -30,7 +30,7 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51E84BBEC4583A7F7C052F58F2EAAF78"
BlueprintIdentifier = "2359978616F0049FAAE3392CD7B62BAC"
BuildableName = "Wristivo.app"
BlueprintName = "Wristivo"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -53,7 +53,7 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51E84BBEC4583A7F7C052F58F2EAAF78"
BlueprintIdentifier = "2359978616F0049FAAE3392CD7B62BAC"
BuildableName = "Wristivo.app"
BlueprintName = "Wristivo"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -70,7 +70,7 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51E84BBEC4583A7F7C052F58F2EAAF78"
BlueprintIdentifier = "2359978616F0049FAAE3392CD7B62BAC"
BuildableName = "Wristivo.app"
BlueprintName = "Wristivo"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -14,7 +14,7 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E847B268313C04CBDC6F406F02397F95"
BlueprintIdentifier = "021B5C7BA1AB0214281EFF292D2534DB"
BuildableName = "WristivoWatch.app"
BlueprintName = "WristivoWatch"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -30,7 +30,7 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E847B268313C04CBDC6F406F02397F95"
BlueprintIdentifier = "021B5C7BA1AB0214281EFF292D2534DB"
BuildableName = "WristivoWatch.app"
BlueprintName = "WristivoWatch"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -53,7 +53,7 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E847B268313C04CBDC6F406F02397F95"
BlueprintIdentifier = "021B5C7BA1AB0214281EFF292D2534DB"
BuildableName = "WristivoWatch.app"
BlueprintName = "WristivoWatch"
ReferencedContainer = "container:Wristivo.xcodeproj">
@@ -70,7 +70,7 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E847B268313C04CBDC6F406F02397F95"
BlueprintIdentifier = "021B5C7BA1AB0214281EFF292D2534DB"
BuildableName = "WristivoWatch.app"
BlueprintName = "WristivoWatch"
ReferencedContainer = "container:Wristivo.xcodeproj">