Add iOS v1 client: TetherKit SPM + SwiftUI app

TetherKit: Codable Message envelope (1:1 with Go server), SSE reader over
URLSession.bytes, TetherClient with reconnect/backoff. 3 wire-format tests pass.
TetherApp: SwiftUI room UI (connect, live feed, send clipboard/text, tap-to-copy),
generated via XcodeGen (project.yml). SSE-only, foreground; no WebRTC/APNs yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 00:11:31 -05:00
parent a0f7498663
commit 14b6be7548
1407 changed files with 5123 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
<key>NSLocalNetworkUsageDescription</key>
<string>tether connects to your clipboard relay on the local network.</string>
<key>UILaunchScreen</key>
<dict/>
</dict>
</plist>

View File

@@ -0,0 +1,95 @@
import SwiftUI
import TetherKit
struct RoomView: View {
@Bindable var store: TetherStore
@State private var draft = ""
var body: some View {
NavigationStack {
VStack(spacing: 0) {
connectionBar
Divider()
feedList
Divider()
composer
}
.navigationTitle("tether")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Circle()
.fill(store.connected ? .green : .secondary)
.frame(width: 10, height: 10)
}
}
}
}
private var connectionBar: some View {
VStack(spacing: 8) {
TextField("http://tether.lan:8765", text: $store.serverURL)
.textInputAutocapitalization(.never)
.autocorrectionDisabled()
.keyboardType(.URL)
HStack {
TextField("room id (8 hex)", text: $store.room)
.textInputAutocapitalization(.never)
.autocorrectionDisabled()
Button(store.connected ? "Reconnect" : "Connect") { store.connect() }
.buttonStyle(.borderedProminent)
}
if let err = store.lastError {
Text(err).font(.caption).foregroundStyle(.red)
.frame(maxWidth: .infinity, alignment: .leading)
}
}
.textFieldStyle(.roundedBorder)
.padding()
}
private var feedList: some View {
List(store.feed) { msg in
VStack(alignment: .leading, spacing: 4) {
Text(msg.text ?? "")
.lineLimit(4)
HStack {
Text(msg.source ?? "?").font(.caption2)
Spacer()
Text(msg.date, style: .time).font(.caption2)
}
.foregroundStyle(.secondary)
}
.contentShape(Rectangle())
.onTapGesture { store.copyToPasteboard(msg) }
.swipeActions {
Button("Copy") { store.copyToPasteboard(msg) }.tint(.blue)
}
}
.listStyle(.plain)
.overlay {
if store.feed.isEmpty {
ContentUnavailableView("No messages yet",
systemImage: "doc.on.clipboard",
description: Text("Connect, then send from any device in the room."))
}
}
}
private var composer: some View {
HStack {
TextField("Type or paste…", text: $draft, axis: .vertical)
.textFieldStyle(.roundedBorder)
.lineLimit(1...4)
Button {
if draft.isEmpty { store.sendClipboard() }
else { store.send(draft); draft = "" }
} label: {
Image(systemName: draft.isEmpty ? "doc.on.clipboard" : "paperplane.fill")
.font(.title2)
}
.disabled(!store.connected)
}
.padding()
}
}

View File

@@ -0,0 +1,11 @@
import SwiftUI
@main
struct TetherApp: App {
@State private var store = TetherStore()
var body: some Scene {
WindowGroup {
RoomView(store: store)
}
}
}

View File

@@ -0,0 +1,72 @@
import Foundation
import SwiftUI
import UIKit
import TetherKit
/// Observable bridge between `TetherClient` (transport) and SwiftUI.
/// Owns the receive task and the local clipboard side-effects.
@MainActor @Observable
final class TetherStore {
var serverURL: String = UserDefaults.standard.string(forKey: "serverURL") ?? "http://tether.lan:8765"
var room: String = UserDefaults.standard.string(forKey: "room") ?? ""
var feed: [Message] = []
var connected = false
var lastError: String?
private let deviceID = UIDevice.current.identifierForVendor?.uuidString ?? UUID().uuidString
private var client: TetherClient?
private var receiveTask: Task<Void, Never>?
func connect() {
guard let base = URL(string: serverURL.trimmingCharacters(in: .whitespaces)),
!room.isEmpty else {
lastError = "Set a server URL and room id first."
return
}
UserDefaults.standard.set(serverURL, forKey: "serverURL")
UserDefaults.standard.set(room, forKey: "room")
disconnect()
let cfg = TetherClient.Config(baseURL: base, room: room, from: deviceID)
let c = TetherClient(config: cfg)
client = c
connected = true
lastError = nil
receiveTask = Task {
for await msg in await c.clipboardStream() {
feed.insert(msg, at: 0)
if feed.count > 100 { feed.removeLast() }
}
connected = false
}
}
func disconnect() {
receiveTask?.cancel()
receiveTask = nil
connected = false
}
/// Read the system pasteboard (foreground only iOS bans background reads)
/// and push it to the room.
func sendClipboard() {
guard let text = UIPasteboard.general.string, !text.isEmpty else {
lastError = "Clipboard is empty."
return
}
send(text)
}
func send(_ text: String) {
guard let c = client else { return }
Task {
do { try await c.send(text) }
catch { lastError = "Send failed: \(error.localizedDescription)" }
}
}
/// Copy a received message back onto the local pasteboard.
func copyToPasteboard(_ msg: Message) {
UIPasteboard.general.string = msg.text
}
}

View File

@@ -0,0 +1,350 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
/* Begin PBXBuildFile section */
74D3E9952DD8E0913BE6B299 /* TetherApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59E41534347FCDEDED407D6 /* TetherApp.swift */; };
A0B34D3F9849F9BC614CC058 /* TetherStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7D1001BBAABF813AB29AD45 /* TetherStore.swift */; };
B00ECEE60ABBEFEDFF548750 /* TetherKit in Frameworks */ = {isa = PBXBuildFile; productRef = 214441C31F40D721B6B47F10 /* TetherKit */; };
CCA52ACB37EF809880064207 /* RoomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F373509C266AF62E742C792A /* RoomView.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
331B3970CED74956D9BE87FF /* TetherApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = TetherApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
41B6BEFA7CFACAAA3507391B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
B59E41534347FCDEDED407D6 /* TetherApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TetherApp.swift; sourceTree = "<group>"; };
C4E3CFAF660DDE2C62CD1996 /* TetherKit */ = {isa = PBXFileReference; lastKnownFileType = folder; name = TetherKit; path = ../TetherKit; sourceTree = SOURCE_ROOT; };
D7D1001BBAABF813AB29AD45 /* TetherStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TetherStore.swift; sourceTree = "<group>"; };
F373509C266AF62E742C792A /* RoomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
A97B508FAD5DC69149AA5DB8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B00ECEE60ABBEFEDFF548750 /* TetherKit in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0565A8CEDDE5C5C0BE113DA3 /* Sources */ = {
isa = PBXGroup;
children = (
41B6BEFA7CFACAAA3507391B /* Info.plist */,
F373509C266AF62E742C792A /* RoomView.swift */,
B59E41534347FCDEDED407D6 /* TetherApp.swift */,
D7D1001BBAABF813AB29AD45 /* TetherStore.swift */,
);
path = Sources;
sourceTree = "<group>";
};
485FAD0A0B0809694D9B7B77 = {
isa = PBXGroup;
children = (
5EF696014E5E1F874C5B729B /* Packages */,
0565A8CEDDE5C5C0BE113DA3 /* Sources */,
717BFFF9FC0CFF5C5EFFF376 /* Products */,
);
sourceTree = "<group>";
};
5EF696014E5E1F874C5B729B /* Packages */ = {
isa = PBXGroup;
children = (
C4E3CFAF660DDE2C62CD1996 /* TetherKit */,
);
name = Packages;
sourceTree = "<group>";
};
717BFFF9FC0CFF5C5EFFF376 /* Products */ = {
isa = PBXGroup;
children = (
331B3970CED74956D9BE87FF /* TetherApp.app */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
AC341A4B4EDFDC4C3AD2F0C5 /* TetherApp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 032827B25A14759DD2501508 /* Build configuration list for PBXNativeTarget "TetherApp" */;
buildPhases = (
6EF56AF088F40C274BCA5B54 /* Sources */,
A97B508FAD5DC69149AA5DB8 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = TetherApp;
packageProductDependencies = (
214441C31F40D721B6B47F10 /* TetherKit */,
);
productName = TetherApp;
productReference = 331B3970CED74956D9BE87FF /* TetherApp.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
76822E0F7563E5868E7A89FA /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430;
TargetAttributes = {
AC341A4B4EDFDC4C3AD2F0C5 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = EC9400412735B9FCCDE4DED9 /* Build configuration list for PBXProject "TetherApp" */;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
en,
);
mainGroup = 485FAD0A0B0809694D9B7B77;
minimizedProjectReferenceProxies = 1;
packageReferences = (
05E8667CA64523CECB82791D /* XCLocalSwiftPackageReference "../TetherKit" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = 717BFFF9FC0CFF5C5EFFF376 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
AC341A4B4EDFDC4C3AD2F0C5 /* TetherApp */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
6EF56AF088F40C274BCA5B54 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CCA52ACB37EF809880064207 /* RoomView.swift in Sources */,
74D3E9952DD8E0913BE6B299 /* TetherApp.swift in Sources */,
A0B34D3F9849F9BC614CC058 /* TetherStore.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
34B8C4EB3F519898D07EFD9B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Sources/Info.plist;
INFOPLIST_KEY_NSAppTransportSecurity = "";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "tether connects to your clipboard relay on the local network.";
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.1.0;
PRODUCT_BUNDLE_IDENTIFIER = io.pecord.tether;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
370C8005542C3C6CA5C95685 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
C43F83B7E47FEBE11D45EE58 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Sources/Info.plist;
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "tether connects to your clipboard relay on the local network.";
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.1.0;
PRODUCT_BUNDLE_IDENTIFIER = io.pecord.tether;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
F5F0867AAFA961DC5B7FC432 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
032827B25A14759DD2501508 /* Build configuration list for PBXNativeTarget "TetherApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
34B8C4EB3F519898D07EFD9B /* Debug */,
C43F83B7E47FEBE11D45EE58 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
EC9400412735B9FCCDE4DED9 /* Build configuration list for PBXProject "TetherApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
370C8005542C3C6CA5C95685 /* Debug */,
F5F0867AAFA961DC5B7FC432 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
/* Begin XCLocalSwiftPackageReference section */
05E8667CA64523CECB82791D /* XCLocalSwiftPackageReference "../TetherKit" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = ../TetherKit;
};
/* End XCLocalSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
214441C31F40D721B6B47F10 /* TetherKit */ = {
isa = XCSwiftPackageProductDependency;
productName = TetherKit;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 76822E0F7563E5868E7A89FA /* Project object */;
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

41
ios/TetherApp/project.yml Normal file
View File

@@ -0,0 +1,41 @@
name: TetherApp
options:
bundleIdPrefix: io.pecord
deploymentTarget:
iOS: "17.0"
createIntermediateGroups: true
packages:
TetherKit:
path: ../TetherKit
targets:
TetherApp:
type: application
platform: iOS
sources:
- Sources
dependencies:
- package: TetherKit
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: io.pecord.tether
MARKETING_VERSION: "0.1.0"
CURRENT_PROJECT_VERSION: "1"
GENERATE_INFOPLIST_FILE: true
# Free Apple ID signing for on-device runs; blank is fine for Simulator.
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Automatic
# http:// to the LAN server — allow cleartext on local network.
INFOPLIST_KEY_NSLocalNetworkUsageDescription: "tether connects to your clipboard relay on the local network."
INFOPLIST_KEY_UILaunchScreen_Generation: true
configs:
Debug:
INFOPLIST_KEY_NSAppTransportSecurity: ""
info:
path: Sources/Info.plist
properties:
NSAppTransportSecurity:
NSAllowsLocalNetworking: true
NSLocalNetworkUsageDescription: "tether connects to your clipboard relay on the local network."
UILaunchScreen: {}

View File

@@ -0,0 +1,48 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Combine.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405596000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Combine.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 491412
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563522000000000
path: 'System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 167873
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,68 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405610000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 179160
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776556880000000000
path: 'usr/include/ObjectiveC.apinotes'
size: 11147
sdk_relative: true
- mtime: 1776555503000000000
path: 'usr/include/Dispatch.apinotes'
size: 19
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563522000000000
path: 'System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 167873
sdk_relative: true
- mtime: 1776563516000000000
path: 'usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 6636
sdk_relative: true
- mtime: 1776563739000000000
path: 'usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 57506
sdk_relative: true
- mtime: 1776563970000000000
path: 'usr/lib/swift/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22494
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,36 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Darwin.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405583000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Darwin.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 77504
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,64 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Dispatch.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405605000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Dispatch.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 210900
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563522000000000
path: 'System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 167873
sdk_relative: true
- mtime: 1776556880000000000
path: 'usr/include/ObjectiveC.apinotes'
size: 11147
sdk_relative: true
- mtime: 1776555503000000000
path: 'usr/include/Dispatch.apinotes'
size: 19
sdk_relative: true
- mtime: 1776563516000000000
path: 'usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 6636
sdk_relative: true
- mtime: 1776563739000000000
path: 'usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 57506
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,100 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Foundation.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405644000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Foundation.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 3785860
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563522000000000
path: 'System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 167873
sdk_relative: true
- mtime: 1776556880000000000
path: 'usr/include/ObjectiveC.apinotes'
size: 11147
sdk_relative: true
- mtime: 1776555503000000000
path: 'usr/include/Dispatch.apinotes'
size: 19
sdk_relative: true
- mtime: 1776563516000000000
path: 'usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 6636
sdk_relative: true
- mtime: 1776563739000000000
path: 'usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 57506
sdk_relative: true
- mtime: 1776563970000000000
path: 'usr/lib/swift/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22494
sdk_relative: true
- mtime: 1776555837000000000
path: 'usr/include/XPC.apinotes'
size: 123
sdk_relative: true
- mtime: 1777083012000000000
path: 'System/Library/Frameworks/Security.framework/Headers/Security.apinotes'
size: 162
sdk_relative: true
- mtime: 1776553088000000000
path: 'System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes'
size: 81098
sdk_relative: true
- mtime: 1776563957000000000
path: 'usr/lib/swift/XPC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 45109
sdk_relative: true
- mtime: 1776564143000000000
path: 'usr/lib/swift/IOKit.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 3690
sdk_relative: true
- mtime: 1776561853000000000
path: 'usr/lib/swift/Observation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 5150
sdk_relative: true
- mtime: 1776563484000000000
path: 'usr/lib/swift/System.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 95431
sdk_relative: true
- mtime: 1776564811000000000
path: 'System/Library/Frameworks/Foundation.framework/Modules/Foundation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1155103
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,72 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/IOKit.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405613000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/IOKit.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 30136
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776556880000000000
path: 'usr/include/ObjectiveC.apinotes'
size: 11147
sdk_relative: true
- mtime: 1776555503000000000
path: 'usr/include/Dispatch.apinotes'
size: 19
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563522000000000
path: 'System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 167873
sdk_relative: true
- mtime: 1776563516000000000
path: 'usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 6636
sdk_relative: true
- mtime: 1776563739000000000
path: 'usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 57506
sdk_relative: true
- mtime: 1776563970000000000
path: 'usr/lib/swift/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22494
sdk_relative: true
- mtime: 1776564143000000000
path: 'usr/lib/swift/IOKit.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 3690
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,52 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405587000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 50836
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776556880000000000
path: 'usr/include/ObjectiveC.apinotes'
size: 11147
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776562794000000000
path: 'usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 22987
sdk_relative: true
- mtime: 1776563516000000000
path: 'usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 6636
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,44 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Observation.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405589000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Observation.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 30876
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
- mtime: 1776561730000000000
path: 'usr/include/_DarwinFoundation2.apinotes'
size: 1145
sdk_relative: true
- mtime: 1776561783000000000
path: 'usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 18805
sdk_relative: true
- mtime: 1776561789000000000
path: 'usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2677
sdk_relative: true
- mtime: 1776561795000000000
path: 'usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 1573
sdk_relative: true
- mtime: 1776559222000000000
path: 'usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 4363
sdk_relative: true
- mtime: 1776561805000000000
path: 'usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 19539
sdk_relative: true
- mtime: 1776559177000000000
path: 'usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 280495
sdk_relative: true
- mtime: 1776561853000000000
path: 'usr/lib/swift/Observation.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 5150
sdk_relative: true
version: 1
...

View File

@@ -0,0 +1,12 @@
---
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Swift.swiftmodule/arm64e-apple-macos.swiftmodule'
dependencies:
- mtime: 1777405569000000000
path: '/Applications/Xcode-26.5.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/26.5/Swift.swiftmodule/arm64e-apple-macos.swiftmodule'
size: 15012500
- mtime: 1776558630000000000
path: 'usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface'
size: 2193647
sdk_relative: true
version: 1
...

Some files were not shown because too many files have changed in this diff Show More