edit | blame | history | raw

Taglauncher 会话记录 - 2026-06-08 16

用户目标

  • 用户反馈切换到英文后仍看到 Apple 内置应用备注中的中文。
  • 用户质疑测试覆盖,并要求解释为什么还有中文。

排查结论

  • 当前真实应用身份为 com.taglauncher.app,Application Support 路径为 /Users/ar/Library/Application Support/TagLauncher/tags.json
  • 用户当前语言设置为 en
  • TagLauncher/tags.json 中仍有 4 条 Apple app 中文备注:Home、Music、Phone、TV;metadata 为 origin=appleDefault
  • 英文 Apple 资源文件和 build bundle 中的英文 deflate 资源均正确,Home/Music/Phone/TV 对应英文备注均为英文。
  • 根因不是资源文件缺失,而是运行时触发点设计不完整:
  • 7.8.18/7.8.19 的备注重本地化主要依赖语言切换事件或 App Grid 的 ContentView。
  • 如果用户当前已经处在英文,启动 App 时不会触发语言切换事件,旧 Apple 默认中文备注不会自动迁移。
  • 如果在 Settings 中切语言时 App Grid 不存在,ContentView 的监听也可能错过事件。

已完成修复

  • 修改 Apptag/ApptagApp.swift
  • App 启动后调用 relocalizeDefaultAppNotesForCurrentLanguageAsync()
  • 语言切换后也调用同一全局路径。
  • 该路径扫描当前 app,并重本地化 .appleDefault.catalogDefault 默认备注,然后广播数据刷新。
  • 修改 Scripts/apple_default_note_policy_qa.sh
  • 增加 AppDelegate 全局重本地化检查。
  • 要求启动路径和语言切换路径都调用默认备注重本地化。
  • 更新版本:
  • 7.8.20 / 20260608.1030
  • 更新 CHANGELOG.md
  • 记录 7.8.20 修复启动时旧默认备注不会迁移的问题。

验证结果

  • Scripts/apple_default_note_policy_qa.sh PASS。
  • Scripts/apple_default_apps_resource_qa.sh PASS。
  • Scripts/smartstart_catalog_resource_qa.sh PASS。
  • Quick Search 两条回归已在修复前重跑 PASS,后续未修改搜索路径。
  • APP_BUILD=20260608.1030 bash build.sh PASS。
  • bash make_dmg.sh PASS。
  • hdiutil verify build/TagLauncher-7.8.20-build20260608.1030.dmg PASS。
  • App metadata:7.8.20 / 20260608.1030
  • codesign --verify --deep --strict --verbose=2 build/TagLauncher.app PASS。
  • bundle 资源:Apple apps 77、Apple localizations 29、SmartStart entries 3453、SmartStart Apple entries 0。
  • DMG 内容检查:包含 TagLauncher.appApplications -> /Applications 链接。

产物

  • /Users/ar/Projects/Taglauncher-7.8.15-source/build/TagLauncher-7.8.20-build20260608.1030.dmg
  • SHA256:964d807faa2a819da3ecacd6ac3ecbe373178198ed41f303ff93dbc29bddc9e5

后续建议

  • 用户安装 7.8.20 后重新打开 App;启动时应自动把当前英文环境下的 Apple 默认中文备注迁移为英文。
  • 如仍看到中文,需要确认那条备注是否被用户手动编辑成 .manual,manual 按产品规则不会自动覆盖。