Sleepy iOS a.v.1.0.40 — QA 缺口全面闭环(264 用例全绿)
Sleepy iOS a.v.1.0.40 — QA 缺口全面闭环(264 用例全绿)
真实 QA 抓出并修复的 bug
sleepy URL scheme 从未注册(深链 -10814 根因)
- Info.plist 缺 CFBundleURLTypes,
sleepy://深链在真机/模拟器上直接报 -10814(无法打开)。已注册sleepyscheme。
Reminder 时间行点击完全失效(点击区 19pt)
- ReminderScreen 时间行 Button 用了
.buttonStyle(.plain)但没有.contentShape(Rectangle()),a11y/实际可点击区域只有文字那一行(19.3pt)——点行右侧空白处什么都不发生。补 contentShape 后全行可点。与 a.v.1.0.39 修的 AllTables 齿轮是同一类根因(第三次)。
深链链路定位(Xcode 14.3.1 模拟器双重缺陷,产线代码零改动)
XCUIApplication.open(_:)在本 Xcode/iOS16.4 组合上丢 URL:SpringBoard 只收到 launch 请求、收不到 with-url 请求,onOpenURL 永远不触发。双端同步 log stream 取证。- 产线链路用
simctl openurl对照实验证完:onOpenURL → deepLinkCourse → 编辑页预填高等数学,全通。 - UI 测试改用 app 内
SLEEPY_UI_TEST_OPENURL钩子自触发UIApplication.shared.open,走真实 lsd 路由。真实用户路径不受影响。
QA 缺口闭合(本轮新增 15 个 UI 用例 + 2 项断言补强)
- 导出全路径 5 用例:JSON / ICS / 分享文本,snackbar 文案+自动消失,分享面板取消回退。
- Reminder 权限状态机 4+1 用例:master→daily→before-class 幂等开启链;denied 专项批(xcrun uninstall 后单跑)验证拒绝路径。权限弹窗必须经
springboard.alerts.firstMatch.buttons查询。 - 文件导入桥接 1 用例:系统文件面板弹出/取消/不误弹预览。
- Widget 归档矩阵补强到 11 组合:TodayWidgetRV × sm/md/lg + TwoDay/WeekList/WeekView/WeekGridWidgetV19 × md/lg,归档日志逐一断言。
- 深链 4 用例全绿:课程深链开编辑页(预填)、非法 id 停留课表、导入深链弹预览(表名+冲突数)、空文本不崩。
sleepy://open冒烟从空壳改为真实路由验证。
测试基建沉淀
- 种子课程 id 固定 1..4(深链测试确定性定位)。
- ImportPreviewDialog / ManagementPage / ExportScreen / ReminderScreen 补稳定 accessibilityIdentifier(跨 locale 不变)。
- xcresult 解析:
id._value嵌套、-only-testing bundle 缺 case 层节点,均已记档。
回归终态
- 全量 264 passed / 0 failed / 1 skipped(denied 权限用例在权限固化后按设计 skip,uninstall 重演已单独验证为绿)。