From 25b4d4783fb0656bc4959a185feba7c5ed885073 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Thu, 11 Jun 2026 13:11:10 +0200 Subject: [PATCH] =?UTF-8?q?docs(apple):=20README=20=E2=80=94=20tvOS=20targ?= =?UTF-8?q?et,=20tier-3=20slice=20build=20instructions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- clients/apple/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/clients/apple/README.md b/clients/apple/README.md index 3a93741..6e859e7 100644 --- a/clients/apple/README.md +++ b/clients/apple/README.md @@ -62,6 +62,9 @@ What's here, all compiled and tested on macOS (Xcode 26.5 / Swift 6.3): ```sh rustup target add aarch64-apple-darwin x86_64-apple-darwin bash scripts/build-xcframework.sh # → clients/apple/PunktfunkCore.xcframework +# + BUILD_IOS=1 for the iOS slices (rustup target add aarch64-apple-ios{,-sim} x86_64-apple-ios) +# + BUILD_TVOS=1 for tvOS — TIER-3 Rust targets, built from source: +# rustup toolchain install nightly && rustup component add rust-src --toolchain nightly cd clients/apple swift build && swift test # loopback/remote tests self-skip without a host swift run PunktfunkClient # the unbundled dev shell (CLI) @@ -192,7 +195,11 @@ signing, bundle id `io.unom.punktfunk`. Notes: status bar + home indicator hidden) and the iPadOS cursor is hidden over the video (`UIPointerInteraction` `.hidden()` — visible again when ⌘⎋ releases capture); on iOS first run the stream mode defaults to the device's native screen so the video - fills the display. Known gaps: true pointer LOCK (`prefersPointerLocked`) isn't + fills the display. **tvOS** runs the same app (target **Punktfunk-tvOS**, first-lit + in the Apple TV simulator at 720p60): playback-only audio (no mic on tvOS), + focus-driven UI (`.card` host tiles), no kb/mouse capture yet — input lands with + gamepad support, the natural tvOS input anyway; core slices are tier-3 Rust targets + (see Build above). Known gaps: true pointer LOCK (`prefersPointerLocked`) isn't consulted through UIHostingController, so the hidden cursor can still drift onto a second screen (fixing it means putting the controller into the UIKit presentation chain); and