Establish watch relay contracts and platform package wiring

This commit is contained in:
2026-09-18 09:34:26 +04:00
parent a92698e1e6
commit 9b87299bf5
22 changed files with 778 additions and 159 deletions
+4 -1
View File
@@ -5,11 +5,14 @@ scratch=$(mktemp -d "${TMPDIR:-/private/tmp}/wristivo-check.XXXXXX")
trap 'rm -rf "$scratch"' EXIT
export CLANG_MODULE_CACHE_PATH="$scratch/clang-cache"
export SWIFTPM_MODULECACHE_OVERRIDE="$scratch/module-cache"
# This dependency-free package has no plugins. Disable nested SwiftPM sandboxing
# These local packages have no third-party dependencies or plugins. Disable nested SwiftPM sandboxing
# for agent environments; Swift Testing does not need the XCTest bundle runner.
swift test --package-path Packages/WristivoKit --scratch-path "$scratch/swiftpm" \
--cache-path "$scratch/cache" --config-path "$scratch/config" \
--security-path "$scratch/security" --disable-sandbox --disable-xctest
swift test --package-path Adapters/WatchBridge --scratch-path "$scratch/watchbridge" \
--cache-path "$scratch/cache" --config-path "$scratch/config" \
--security-path "$scratch/security" --disable-sandbox --disable-xctest
plutil -lint Resources/PrivacyInfo.xcprivacy
if [ "${1:-}" = "--apps" ]; then
extra_args=()
+6
View File
@@ -25,6 +25,10 @@ package = project.new(Xcodeproj::Project::Object::XCLocalSwiftPackageReference)
package.relative_path = 'Packages/WristivoKit'
project.root_object.package_references << package
bridge_package = project.new(Xcodeproj::Project::Object::XCLocalSwiftPackageReference)
bridge_package.relative_path = 'Adapters/WatchBridge'
project.root_object.package_references << bridge_package
def add_sources(project, target, pattern)
Dir.glob(pattern).sort.each do |path|
ref = project.main_group.find_file_by_path(path) || project.main_group.new_file(path)
@@ -63,6 +67,8 @@ add_sources(project, phone, 'Apps/iPhone/*.swift')
add_sources(project, watch, 'Apps/Watch/*.swift')
link_product(project, phone, package, 'SamsungProtocol')
link_product(project, watch, package, 'GestureCore')
link_product(project, phone, bridge_package, 'WatchBridgePhone')
link_product(project, watch, bridge_package, 'WatchBridgeWatch')
phone.build_configurations.each do |c|
c.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = '$(WRISTIVO_BUNDLE_PREFIX)'
c.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2'