fix(ios-qa): compile the private-API touch bridge out of Release builds

PR #2264 claimed DebugBridgeTouch.m (KIF-derived in-process touch synthesis
using private UIKit/IOKit symbols: _touchesEvent, IOHIDEventCreateDigitizer*,
_AXSSetAutomationEnabled) was "compiled out in Release," but the body was gated
only by TARGET_OS_IOS, so a Release iOS build carried the private symbols (App
Store rejection risk). The safety half of the fix (closed PR #2269) never
landed. Gate the body on `#if TARGET_OS_IOS && DEBUG` and add the cSettings
DEBUG define to the DebugBridgeTouch target so `#if DEBUG` is true in debug and
false in release (mirrors the Core/UI swiftSettings). A free static tripwire
pins both halves; the nm/strings symbol proof needs an iOS-SDK build and belongs
in the device/periodic tier.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-08-16 10:14:33 -07:00
co-authored by Claude Fable 5
parent 3c93aef0ff
commit 33a55562f7
5 changed files with 86 additions and 2 deletions
+3
View File
@@ -32,6 +32,9 @@ let package = Package(
dependencies: [],
path: "Sources/DebugBridgeTouch",
publicHeadersPath: "include",
cSettings: [
.define("DEBUG", .when(configuration: .debug)),
],
linkerSettings: [
.linkedFramework("UIKit", .when(platforms: [.iOS])),
]