iOS 27: HealthKit's authorization sheet reads as one node, so label and ref presses can't reach it
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- ios, typescript
调研方向
Start at the iOS simulator snapshot and press handling paths that use XCTest, then trace how remote content boundaries and element frames are handled. Reproduce with the HealthKit authorization sheet on an iOS 27 simulator; use the reported XCTest element and host view frames to check snapshot discovery and tap coordinates. Done when controls are reachable by labels or refs and presses activate the intended controls.
由索引模型根据 Issue 内容生成。
描述
Summary
On an iOS 27.0 simulator, HealthKit's authorization sheet (the one HKHealthStore.requestAuthorization or SwiftUI's .healthDataAccessRequest presents) reads as a single [application] node. press 'label=…', find, and refs can't reach any of its controls, so the only way to answer it is coordinate taps from a screenshot. An earlier session on 0.21.x saw press @ref and press 'label=…' report success on the sheet's switches and Allow button while nothing changed.
XCTest itself can read and tap this sheet, so this looks like the snapshot stopping at the remote view's boundary rather than a missing accessibility tree.
Environment
- agent-device 0.21.31 (through T3 Code's device tools)
- Xcode 27, iOS 27.0 simulator (iPhone 18 Pro)
Repro
- Run any app that asks for HealthKit types the user hasn't decided yet, for example
HKHealthStore().requestAuthorization(toShare: [], read: [HKQuantityType(.stepCount)])at launch. - With the Health Access sheet on screen:
$ agent-device snapshot -i
Snapshot: 1 nodes (truncated)
Simulator AX snapshot unavailable (remote-content-boundary); used XCTest for this app generation.
No snapshot backend could read this screen (snapshot returned no semantic controls or content). …
@e1 [application] "A Better Me"
$ agent-device press 'label="Select All 1 Topic"' --settle
Error (COMMAND_FAILED): Selector did not match: label="Select All 1 Topic"
Right after a fresh install, the same snapshot -i printed circuit-disabled and "XCTest-backed snapshot tiers are running with a short recovery probe after recent slow accessibility work on this screen" instead.
What XCTest sees on the same sheet
A UI test in the app's target finds and taps every control:
app.cells["UIA.Health.AuthSheet.AllCategoryButton"]exists, with a "Select All N Topics" static text inside it.app.buttons["Allow"], and a cell containing "Don’t Allow" (Allow/Continue sit in the same cell).XCUIElement.frameis in screen points:(22, 403, 358, 52)for the Select All cell.XCUIElement.snapshot().framefor the same cell is(22, 341, 358, 52): frames inside the sheet are relative to its remote host view, whichapp.snapshot()shows at(0, 62, 402, 812)with a child of the same size at the origin. Tapping a snapshot frame as-is lands 62 pt too high, which may explain presses that "succeed" with no effect.element.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap()works. Plainelement.tap()on these elements did not, in our earlier attempts.
Suggested fix
Descend into the remote content through XCTest, and translate its frames by the host view's origin before tapping (or tap through XCUICoordinate on the element).
- 主要语言
- TypeScript
- 星标
- 5.3k
- 派生
- 377
- 平均合并
- 13 小时 49 分钟
- 30 天内合并 PR
- 650
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
callstack/agent-device 的其他 Issue
-
bug ready-for-agent
难度 2/5 1-3 小时 新手友好度 90/100
callstack/agent-device#4212 · 1 条评论 ·
维护者通常 1 天内回复
-
iOS alert wait: the last poll can get ~30 ms and turns "no alert" into a failed read可能已有人在做 @pcbeingused333 于 5 天前认领。 未关闭bug ready-for-agent
难度 2/5 1-3 小时 新手友好度 77/100
callstack/agent-device#4018 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
callstack/agent-device#1869 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 70/100
callstack/agent-device#4216 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 55/100
callstack/agent-device#4215 ·
维护者通常 1 天内回复
查看 callstack/agent-device 的全部 Issue
相似的 Issue
-
unwrapDatabaseError masks real DB errors with TypeError: Cannot convert object to primitive value未关闭
难度 2/5 1-3 小时 新手友好度 74/100
NEARBuilders/everything-dev#798 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
vercel-labs/durable-harness#53 ·
维护者通常 1 天内回复
-
[Bug]: Redesign tab bars ignore clicks on Linux: hidden chat layers keep window drag regions可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
experiência: a doc manda subir para o Micro do Supabase, mas não diz que exige plano pago nem quanto custa可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭area/docs area/ui enhancement
难度 1/5 1-3 小时 新手友好度 88/100
melgarafael/DeskcommCRM#4098 ·
维护者通常 1 天内回复
-
dependencies platform: ios
难度 1/5 1-3 小时 新手友好度 78/100
software-mansion/react-native-executorch#1617 ·
维护者通常 1 天内回复