iOS: every snapshot command fails with "escaped its cumulative clip" while a system alert is shown at the largest Dynamic Type size
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- ios, typescript
Rechercherichtung
Read SnapshotPresentationInvariant.swift in the snapshot presentation source linked from the issue, then inspect validateRegular and the failing node’s cumulative clip handling. Reproduce with the largest Dynamic Type size and an App Tracking Transparency alert on either listed simulator. Done when snapshot succeeds and the visible alert button can be found and tapped without breaking the reported wait/is behavior.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
On an iOS simulator with the text size set to the largest accessibility size (accessibility-extra-extra-extra-large), every command that takes a snapshot fails while the App Tracking Transparency prompt is on screen:
Error (COMMAND_FAILED): regular iOS snapshot node escaped its cumulative clip
At that size the prompt's title no longer fits and iOS lets its content extend past the alert's frame. The regular-snapshot clip invariant rejects the whole capture, so the prompt cannot be answered by text or ref (find text "Ask App Not to Track" click), and wait/is on the app underneath fail too. The error's own hint says: "This is a runner presentation bug: report it with the failing command and the app under test."
Environment
- agent-device 0.21.28 (invariant unchanged on
mainat 63f762e and in0.21.29-nightly.20261018.74) - macOS 26.6.2, Xcode 27.1 (27A9275), Node 24.22.0
- Simulators: iPhone SE (3rd generation) on iOS 17.5; iPhone 17e on iOS 27.0; English locale
- Target app: an Expo development build that calls
requestTrackingAuthorizationafter its first screen
Reproduction
xcrun simctl ui "$SIM" content_size accessibility-extra-extra-extra-large
xcrun simctl privacy "$SIM" reset all <bundle id> # ATT status back to notDetermined
npx agent-device open <bundle id> --platform ios --udid "$SIM" --relaunch
npx agent-device alert wait 10000 # exit 0, prints the prompt title
npx agent-device snapshot -i # exit 1, COMMAND_FAILED
npx agent-device find text "Ask App Not to Track" click # exit 1, COMMAND_FAILED
| Text size | iOS 17.5 (iPhone SE 3rd gen) | iOS 27.0 (iPhone 17e) |
|---|---|---|
large … accessibility-extra-extra-large (6 sizes) |
snapshot -i exit 0, 1 run each |
exit 0, 1 run each |
accessibility-extra-extra-extra-large |
exit 1, 3 of 3 | exit 1, 2 of 2 |
Commands that don't snapshot keep working at the largest size: alert wait, alert get and alert accept (exit 0, tracking authorized), and press x y on the "Ask App Not to Track" button at coordinates read from screenshot (tracking denied, then wait on the app succeeds).
Failure details (--json):
- iOS 17.5:
"reason": "regular-node-outside-cumulative-clip", node3, frame{x: 48, y: 33, w: 279, h: 621.5}within clip{x: 32, y: 18, w: 311, h: 631}: it overflows the bottom of the clip by 5.5 pt. - iOS 27.0: frame
{x: 48, y: 664.7, w: 294, h: 290.7}within clip{x: 18, y: 70.7, w: 354, h: 716}: it starts above the clip's bottom edge (786.7) and ends at 955.
Cause
SnapshotPresentationInvariant.validateRegular (source), introduced in #1946, throws regularNodeOutsideCumulativeClip as soon as one node is not contained in its ancestors' clip. UIKit itself lets a system alert's content exceed its frame at large Dynamic Type sizes, so one overflowing node fails the whole capture.
Expected
The snapshot succeeds: the overflowing node is clipped to its ancestor (or dropped if fully outside), and find text "Ask App Not to Track" click taps the visible button.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 339
- Ø Merge
- 11 Std. 54 Min.
- Gemergte PRs (30 T.)
- 745
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus callstack/agent-device
-
Limrun iOS fill reports success but drops non-ASCII textEvtl. vergeben @mvanhorn hat das vor 2 Tagen übernommen. Offenbug ready-for-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 87/100
callstack/agent-device#3819 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
callstack/agent-device#1869 ·
Maintainer antworten meist innerhalb von 1 Tag
-
iOS: XCTest runner publishes window-relative frames and shifted taps for an iPad app that does not fill the screen (Windowed Apps / Stage Manager)Evtl. vergeben @thymikee hat das heute übernommen. Offenneeds-triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 20/100
callstack/agent-device#3899 ·
Maintainer antworten meist innerhalb von 1 Tag
-
iOS 27: `_UIFloatingBarContainerView` still marks content "covered" when the container matches its parent or sits a few points below the viewport topEvtl. vergeben @jonstuebe hat das vor 1 Tag übernommen. Offenbug
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 68/100
callstack/agent-device#3883 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 24/100
callstack/agent-device#3871 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in callstack/agent-device
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
db-ux-design-system/core-web#8613 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug:new
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
callstackincubator/simlock#934 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
gchq/LD-Explorer#286 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
foxglove/mcap#1907 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag