Files
gstack/ios-qa/templates/Package.swift.template
T
Garry Tan 9ffde24474 feat(ios): Swift templates for StateServer + DebugOverlay v2 + structural Release guard
StateServer is loopback-only (::1 + 127.0.0.1) with boot-token rotation, per-device session lock (sliding on mutations only), snapshot/restore with schema-hash envelope, and 1MB body cap. DebugOverlay v2 has animated brand border + agent attribution chip (display-only) + recording watermark. Package.swift enforces structural Release-build exclusion via .when(configuration: .debug). Includes Tailscale ACL example doc.
2026-05-17 19:05:49 -07:00

39 lines
1.3 KiB
Plaintext

// AUTO-GENERATED from gstack/ios-qa/templates/Package.swift.template
//
// Drop-in SPM package definition for the DebugBridge target. The structural
// Release-build guard is the `.when(configuration: .debug)` conditional on
// every target dependency. SwiftPM refuses to link DebugBridge in Release.
//
// CI invariant: `swift build -c release` + `nm -j build/Release/<binary>
// | grep -q DebugBridge && exit 1`.
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "DebugBridge",
platforms: [.iOS(.v16), .macOS(.v13)],
products: [
.library(name: "DebugBridge", targets: ["DebugBridge"]),
],
targets: [
.target(
name: "DebugBridge",
dependencies: [],
path: "Sources/DebugBridge",
swiftSettings: [
// Belt and suspenders. The host app's `.when(configuration: .debug)`
// condition on the dependency means we never link in Release. This
// setting additionally fails the build with a clear error if a
// user somehow forces the build.
.define("DEBUG", .when(configuration: .debug)),
]
),
.testTarget(
name: "DebugBridgeTests",
dependencies: ["DebugBridge"],
path: "Tests/DebugBridgeTests"
),
]
)