edit | blame | history | raw

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

用户目标

  • 用户确认 Apple 系统内置应用应单独管理,不应继续混入 SmartStart 大 catalog。
  • 用户进一步要求:SmartStart 总表里凡是与 Apple 内置应用冲突的条目应移除,避免同一应用出现两个名称来源和两个备注来源。
  • 用户要求汇总方案、形成 todo list,并分工执行。

已完成事项

  • 形成并执行方案:
  • Apple 默认应用资源成为 Apple 内置应用名称/备注/分类的唯一项目内权威来源。
  • SmartStart 大 catalog 不再携带 com.apple.* 默认应用条目。
  • macOS bundle 自带本地化名称仍作为 Apple 官方系统来源优先使用;Apple 独立表作为 fallback 和默认备注来源。
  • 新增 Apple 独立资源:
  • Research/AppleDefaultApps/AppleDefaultApps.source.csv
  • Research/AppleDefaultApps/AppleDefaultApps.base.json
  • Research/AppleDefaultApps/AppleDefaultApps.manifest.json
  • Research/AppleDefaultApps/AppleDefaultApps.localizations.<lang>.json 共 29 个语言文件
  • Research/AppleDefaultApps/Scripts/build-apple-default-apps.mjs
  • 新增 runtime:
  • Apptag/AppleDefaultAppCatalog.swift
  • 支持 bundle ID 匹配、Apple 默认备注、Apple 分类、familiar 判断、语言 fallback、fingerprint 保护和 deflate 资源读取。
  • 修改 runtime 边界:
  • DataLayer.swift:Apple 默认备注播种改用 AppleDefaultAppCatalog.defaultNote(for:),写入 .appleDefault;用户清空备注继续写 .manual 空 fingerprint。
  • ContentView.swift:语言切换时同时 relocalize Apple 默认备注和 SmartStart 默认备注。
  • SmartStartService.swift:Apple 分类走 Apple 独立 catalog;SmartStart 不再暴露 defaultNote(for:) 给 Apple 播种使用;SmartStart apply 保持不覆盖 .manual
  • 删除旧 Apptag/AppleDefaultAppNotes.swift,避免继续误用中文硬编码或旧 fallback。
  • 清理 SmartStart 资源:
  • SmartStart_UltimateDefaultCatalog.csv 移除 77 条 com.apple.* 行。
  • SmartStart_UltimateDefaultCatalog.base.json 移除 77 条 Apple runtime entries。
  • 从 29 个 SmartStart_UltimateDefaultCatalog.notes.<lang>.json 移除 2233 条 Apple notes。
  • 更新 SmartStart manifest 计数。
  • 修改 Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs:未来 SmartStart CSV 若出现 com.apple.* 会直接失败,不再允许重新生成脏数据。
  • 修改构建脚本:
  • build.sh 复制 AppleDefaultApps.base.jsonAppleDefaultApps.manifest.json
  • 29 个 Apple localization JSON 压缩为 .json.deflate 打进 app bundle。
  • 构建时禁止未压缩 Apple localizations 被打进 bundle。
  • 新增 QA:
  • Scripts/apple_default_apps_resource_qa.sh
  • Scripts/apple_default_note_policy_qa.sh
  • 重写 Scripts/smartstart_catalog_resource_qa.sh,断言 SmartStart 无 Apple 冲突。
  • 更新版本:
  • Apptag/Info.plist7.8.18 / 20260608.0126
  • CHANGELOG.md:新增 7.8.18;标记 7.8.17 已废弃、未继续发布。

QA 与构建证据

  • Scripts/apple_default_apps_resource_qa.sh
  • PASS:77 apps、29 languages、notes <= 80、runtime resource boundary PASS。
  • Scripts/smartstart_catalog_resource_qa.sh
  • PASS:29 languages、3453 non-Apple entries、29 notes catalogs no Apple default conflicts。
  • Scripts/apple_default_note_policy_qa.sh
  • PASS:Apple defaults、SmartStart defaults、manual notes 分离。
  • Scripts/quick_search_app_name_qa.sh
  • PASS:贝锐向日葵被控 wrapper wins over nested isunclient。
  • Scripts/quick_search_system_app_qa.sh
  • PASS:Keychain Access / 钥匙串访问 indexed search candidates。
  • APP_BUILD=20260608.0126 bash build.sh
  • PASS:生成 /Users/ar/Projects/Taglauncher-7.8.15-source/build/TagLauncher.app
  • bundle 验证:
  • CFBundleShortVersionString=7.8.18
  • CFBundleVersion=20260608.0126
  • codesign --verify --deep --strict --verbose=2 build/TagLauncher.app PASS。
  • bundle 资源:Apple base 77 条、Apple localization deflate 29 个、SmartStart entries 3453、SmartStart Apple entries 0、SmartStart notes deflate 29 个、未压缩 Apple/SmartStart notes 0。

未决问题

  • 当前产物是本地 QA .app,不是正式冻结发布包。
  • 正式发布还需要后续执行冻结、提交、release manifest、tag、DMG/App Store 包和 App Store 资料整理。
  • 工作区仍包含之前已有的 Release 截图资料脏改,本轮未处理也未回滚。

后续建议

  • 用户确认本地 QA 结果后,再执行正式冻结流程。
  • 冻结前应整理工作区,区分本次 Apple/SmartStart 修复与之前 Release 截图资料改动。
  • 正式分发时按发布规则生成 .dmg、manifest、SHA256、tag,并重新整理 App Store 上传资料。