Skip to content

List SimulatorFrameworkBridge's sources instead of its directory - #20

Merged
rubu merged 4 commits into
sync/upstream-2026-10from
sync/01-xcodegen-sources
Oct 13, 2026
Merged

rubu merged 4 commits into
sync/upstream-2026-10from
sync/01-xcodegen-sources

Conversation

@rubu

@rubu rubu commented Oct 8, 2026 •

Copy link
Copy Markdown

XcodeGen 2.46 puts the subgroups of a spec-directory source (path: .) in two groups, and Xcode 27.2 refuses to open the generated SimulatorFrameworkBridge.xcodeproj ("The reference "Runtime" is a member of more than one group"). Listing the bridge's sources explicitly avoids it (yonaskolb/XcodeGen#1651, fix pending in #1652).

Only builds with Xcode 27.2 need it; CI builds with the runner's Xcode 26, which opens the project either way. It can be reverted once a released XcodeGen includes #1652.

First of the stack onto sync/upstream-2026-10, a mirror of facebook/idb at f0342d65 (2026-10-12).

🤖 Generated with Claude Code

@rubu
rubu force-pushed the sync/01-xcodegen-sources branch from 3d159e2 to 5824a81 Compare October 8, 2026 19:51
@rubu
rubu marked this pull request as ready for review October 9, 2026 07:48
@mrvissercb
mrvissercb self-requested a review October 9, 2026 18:39
SimulatorFrameworkBridge-iOS:
templates: [Guest]
platform: iOS
# Listed rather than `.`: XcodeGen 2.46 puts a spec-directory source's subgroups in two groups,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 thought: Once XcodeGen ships #1652, is there a ticket so we remember to switch both targets back to path: .?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👨 let's just maybe carry #1652 as a comment reference in the code to track for the next time we're here?

- path: Swift
- path: SimulatorFrameworkBridge.swift
- path: SimulatorFrameworkBridge-Bridging-Header.h
- path: Privacy.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 question: New top-level files under SimulatorFrameworkBridge will need to be added to both target lists by hand. Is that fine until the XcodeGen fix lands?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think we are in a spot were we won't need any extra syncs, so we could delay the next one until the XcodeGen fix lands.

@rubu
rubu force-pushed the sync/01-xcodegen-sources branch from 5824a81 to 0b1bc2b Compare October 12, 2026 20:29
rubu and others added 2 commits October 13, 2026 17:36
XcodeGen 2.46 puts a spec-directory source's subgroups in two groups, which Xcode 27.2 refuses to
open (yonaskolb/XcodeGen#1651).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream exposes eject over gRPC and sends it as a Consumer usage, which the Indigo transport has no
equivalent for. Eject now carries the legacy soft keyboard source as well, so Indigo delivers it too;
iOS toggles the software keyboard on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rubu
rubu force-pushed the sync/01-xcodegen-sources branch from 0b1bc2b to 514ec5a Compare October 13, 2026 14:36
rubu and others added 2 commits October 13, 2026 17:51
Mirrors how simctl forwards them, which is how the Appetize simulator hooks get their
DYLD_INSERT_LIBRARIES.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A client names a POSIX shared-memory region and the display's current frame is
copied into it. The request carries the buffer, so a copy is answered when it is
asked for rather than on the next rendered frame, which a still display would
never produce and a screenshot could never wait out.

A client can attach before the display has rendered, which is what boot
verification does, so a request arriving with no surface yet waits for the first
one instead of failing. Waiters are released when the display tears down, so none
outlives the stream.

The scale factor is fixed by the first request that names one, so the geometry a
client probed stays true for every frame after it.

Rows are copied packed, dropping the surface's row padding, and only 4-channel, 8-bit
surfaces are copied.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rubu rubu closed this Oct 13, 2026
@rubu
rubu merged commit 21cbfa9 into sync/upstream-2026-10 Oct 13, 2026
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.

2 participants