Skip to content

feat(capture): the simulator screen program ships universal, so Intel workers stream - #1185

Open
AndrewBeniston wants to merge 1 commit into
callstackincubator:mainfrom
AndrewBeniston:fix/universal-screen-capture
Open

AndrewBeniston wants to merge 1 commit into
callstackincubator:mainfrom
AndrewBeniston:fix/universal-screen-capture

Conversation

@AndrewBeniston

Copy link
Copy Markdown

Refs #1184.

Why

The simulator screen program runs on the worker's own CPU. An Intel Mac, or an x86_64 macOS VM, is a worker too. But dist/bin/simlock-screen-capture was arm64 only, so the console stream and lease input could not start on those workers.

Change

scripts/build-capture.mjs only:

  • simlock-screen-capture builds with --arch arm64 --arch x86_64. With more than one --arch, SwiftPM uses Xcode's build system, so the script copies the binary from apple/Products/Release rather than release/.
  • simlock-device-capture still builds for the host alone. It needs Xcode 27, which runs on Apple silicon only.

Checked

On a macOS 26.7 x86_64 VM, with Xcode 26.6:

  • node scripts/build-capture.mjs built dist/bin/simlock-screen-capture in 31 s, and lipo -archs prints x86_64 arm64. The device program failed with no such module 'CoreDevice', as expected without Xcode 27, and the script went on. That is the behaviour it was designed for.
  • The universal binary streamed a leased iPhone SE (3rd generation) on iOS 26.5: 17 H.264 frames, 78,566 bytes in 4 s.
  • oxfmt --check and oxlint pass on the file.

Not checked: the build on the Apple silicon release runner with Xcode 27. I expect its cross-build to x86_64 to work, but I have not run it.

If your triage-bug or deliver flow would rather own this change, please take the patch or close this pull request. The Issue holds the evidence.

… workers stream

The simulator program runs on the worker's own CPU. An Intel Mac or an
x86_64 macOS VM is a worker too, but dist/bin/simlock-screen-capture was
arm64 only, so the console stream and lease input could not start there.

Build it with --arch arm64 --arch x86_64 and copy the universal binary
from apple/Products/Release. The device program needs Xcode 27, which
runs on Apple silicon only, so it still builds for the host alone.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant