edit | blame | history | raw

TagLauncher 会话记录 - 2026-06-07

用户目标

  • 排查为什么 Mole 能识别“贝锐向日葵被控”的中文名称,而 TagLauncher Quick Search / App Grid 显示内部英文名 isunclient
  • 判断 TagLauncher 的应用名称识别逻辑是否仍有遗漏,并在发布前修复。

已完成事项

  • 确认本机应用结构:
  • 外层:/Applications/贝锐向日葵被控.app
  • 内层:/Applications/贝锐向日葵被控.app/Wrapper/isunclient.app
  • 使用 mdls 和 Swift 元数据验证:
  • 外层 Spotlight / Finder 本地化名为 贝锐向日葵被控
  • 内层 Spotlight 名为 isunclient
  • 内层 bundle CFBundleDisplayName 仍可读到 贝锐向日葵被控
  • 确认当前源码扫描逻辑使用 .skipsPackageDescendants,正常情况下只枚举外层 app,不会进入内层 Wrapper/isunclient.app
  • 加固 AppInfo.displayName:当语言映射没有命中时,回退到扫描阶段收集到的本地化名称,而不是直接回退内部英文名。
  • 加固应用名称候选来源:增加 NSURLLocalizedNameKey 作为 Finder / LaunchServices 风格的本地化显示名来源。
  • 新增回归脚本 Scripts/quick_search_app_name_qa.sh,覆盖“贝锐向日葵被控 / isunclient” wrapper 结构。
  • 按用户可见修复将版本升为 7.8.16,build 升为 20260607.2329
  • 完成本地 QA 构建:/Users/ar/Projects/Taglauncher-7.8.15-source/build/TagLauncher.app

关键决策

  • 该问题不应通过重写搜索引擎解决;根因集中在应用显示名候选和 wrapper / nested app 结构识别。
  • 修复范围保持轻量:只增加本地化显示名兜底和回归检查,不改 Quick Search 排序、窗口层级、输入焦点或 App Grid 布局。
  • 当前构建为本地 QA 构建,不等同于正式 App Store 发布包;如继续发布,需要重新冻结并生成 7.8.16 的正式 release package。

文件变更

  • /Users/ar/Projects/Taglauncher-7.8.15-source/Apptag/DataLayer.swift
  • displayName 增加 localizedNames.first 兜底。
  • 应用名候选增加 .localizedNameKey 来源。
  • /Users/ar/Projects/Taglauncher-7.8.15-source/Scripts/quick_search_app_name_qa.sh
  • 新增 wrapper / nested app 名称回归检查。
  • /Users/ar/Projects/Taglauncher-7.8.15-source/Apptag/Info.plist
  • 版本更新为 7.8.16
  • build 更新为 20260607.2329
  • /Users/ar/Projects/Taglauncher-7.8.15-source/CHANGELOG.md
  • 新增 7.8.16 发布记录。

验证记录

  • Scripts/quick_search_app_name_qa.sh
  • PASS:贝锐向日葵被控 wrapper 优先于内层 isunclient
  • Scripts/quick_search_system_app_qa.sh
  • PASS:Keychain Access / 钥匙串访问 搜索候选仍正常
  • APP_BUILD=20260607.2329 bash build.sh
  • PASS:生成 /Users/ar/Projects/Taglauncher-7.8.15-source/build/TagLauncher.app
  • 元数据检查:
  • CFBundleShortVersionString = 7.8.16
  • CFBundleVersion = 20260607.2329
  • codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
  • PASS:valid on disk,satisfies its Designated Requirement

未决问题

  • 还没有生成正式 7.8.16 App Store 发布目录、DMG/PKG、manifest、SHA256 和 release tag。
  • /Users/ar/Projects/Taglauncher-7.8.15-source 中存在一些发布截图/文档相关未提交改动,本轮未触碰,后续冻结前需要单独处理归属。

后续建议

  • 若继续上架,下一步应重新冻结 7.8.16,生成新的 App Store 发布资料和正式签名包。
  • 在真机上安装新构建后,重点复测 Quick Search 搜索 向日贝锐isunclient,以及 App Grid 中该应用的显示名称。