Skip to content

Sleepy iOS a.v.1.0.40 — QA 缺口全面闭环(264 用例全绿)

Choose a tag to compare

@lingion lingion released this 29 Aug 03:08
· 20 commits to master since this release

Sleepy iOS a.v.1.0.40 — QA 缺口全面闭环(264 用例全绿)

真实 QA 抓出并修复的 bug

sleepy URL scheme 从未注册(深链 -10814 根因)

  • Info.plist 缺 CFBundleURLTypes,sleepy:// 深链在真机/模拟器上直接报 -10814(无法打开)。已注册 sleepy scheme。

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 重演已单独验证为绿)。