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:
31
ios/TetherApp/Sources/Info.plist
Normal file
31
ios/TetherApp/Sources/Info.plist
Normal 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>
|
||||
95
ios/TetherApp/Sources/RoomView.swift
Normal file
95
ios/TetherApp/Sources/RoomView.swift
Normal 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()
|
||||
}
|
||||
}
|
||||
11
ios/TetherApp/Sources/TetherApp.swift
Normal file
11
ios/TetherApp/Sources/TetherApp.swift
Normal file
@@ -0,0 +1,11 @@
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct TetherApp: App {
|
||||
@State private var store = TetherStore()
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
RoomView(store: store)
|
||||
}
|
||||
}
|
||||
}
|
||||
72
ios/TetherApp/Sources/TetherStore.swift
Normal file
72
ios/TetherApp/Sources/TetherStore.swift
Normal 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
|
||||
}
|
||||
}
|
||||
350
ios/TetherApp/TetherApp.xcodeproj/project.pbxproj
Normal file
350
ios/TetherApp/TetherApp.xcodeproj/project.pbxproj
Normal 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 */;
|
||||
}
|
||||
7
ios/TetherApp/TetherApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
ios/TetherApp/TetherApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal 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
41
ios/TetherApp/project.yml
Normal 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: {}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
@@ -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
|
||||
...
|
||||
@@ -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
Reference in New Issue
Block a user