# 26.0702 - Taglauncher / Coder3 - 8.3.5 排序释放 ## 用户目标 - 基于用户截图中的 8.3.5 需求,只处理一个变更:标签列表中的自定义排序不再作为 Pro 功能限制,免费用户也可以持久保存。 - 明确不做:自定义快捷键仍然保持 Pro 用户专用,相关逻辑和 UI 不改。 - 完成后生成 8.3.5 本地 DMG 和 App Store 上传 `.pkg`,并完成发布冻结。 ## 当前起点 - 源码根目录:`/Users/ar/Projects/Taglauncher/src` - 分支:`codex/pro-custom-hotkeys-8.2.0` - 需求来源:用户截图标注和后续澄清: - 第一项“标签列表的自定义排序”去掉 Pro 限制。 - 第二项“自定义快捷键”先别动。 - 最新澄清:自定义快捷键给 Pro 用户这个逻辑不用改。 ## 已完成事项 - `TagEditor.reorderTags(_:)` 移除 Pro 权益判断,免费用户拖动标签列表顺序后可持久保存。 - 主界面标签导航拖动结束时不再走免费用户预览 toast,直接保存标签顺序。 - Pro 对比表移除“自定义排序:标签在列表中的位置(=容器显示位置)”这一行。 - 保留“自定义快捷键”为 Pro 功能,未更改相关门禁。 - 版本递增到 `8.3.5 (20260702.1046)`。 - 生成本地验收 DMG 和 App Store 上传 `.pkg`。 - 使用 App Store 完整 entitlements 重新签名 `.pkg` 内 App,避免 App Store Connect 再报 application identifier 缺失。 - 创建冻结 tag:`v8.3.5-build20260702.1046`。 ## 核心事实 / 变更快照 - 变更对象:标签列表排序持久化权益、Pro 对比表权益列表、8.3.5 发布基线。 - 事实来源: - `01bab54 Release 8.3.5 free tag order persistence` - `2309264 Freeze TagLauncher 8.3.5 release artifacts` - `v8.3.5-build20260702.1046` - `/Users/ar/Projects/Taglauncher/src/Apptag/DataLayer.swift` - `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift` - `/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift` - 变更前: - 免费用户拖动标签列表顺序只能预览,不持久保存。 - Pro 对比表包含标签列表排序持久化相关行。 - 自定义快捷键为 Pro 功能。 - 变更后: - 免费用户和 Pro 用户都可以持久保存标签列表顺序。 - Pro 对比表不再展示标签列表排序持久化行。 - 自定义快捷键仍为 Pro 功能,未释放。 - 容器内部 App 图标排序持久化仍为 Pro 功能。 - 范围边界: - 不迁移历史数据。 - 不改自定义快捷键、容器内部 App 图标排序、标签颜色、Pro 主题、备注额度、数据导入导出等其他权益。 - 不改 App Store Connect 网页配置,本轮只完成本地包与上传包准备。 - 验证证据: - `bash Scripts/pro_custom_container_quota_qa.sh` PASS - `bash Scripts/pro_feature_gate_qa.sh` PASS - `bash Scripts/pro_localization_qa.sh` PASS - `bash Scripts/app_ordering_data_qa.sh` PASS - `bash Scripts/pro_custom_hotkeys_qa.sh` PASS - `bash Scripts/macos14_availability_typecheck_qa.sh` PASS - `bash Scripts/pro_display_mode_preview_qa.sh` PASS - `bash Scripts/theme_settings_qa.sh` PASS - `APP_BUILD=20260702.1046 bash build.sh` PASS - `bash Scripts/macos14_build_metadata_qa.sh build/TagLauncher.app` PASS - `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app` PASS - `.pkg` 的 `pkgutil --check-signature`、expanded app `codesign --verify`、版本号/build、entitlements、embedded provisioning profile 预检通过。 ## 文件变更 - `/Users/ar/Projects/Taglauncher/src/Apptag/DataLayer.swift` - `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift` - `/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift` - `/Users/ar/Projects/Taglauncher/src/Scripts/pro_custom_container_quota_qa.sh` - `/Users/ar/Projects/Taglauncher/src/Docs/Requirements/2026-07-01-pro-custom-container-quota-prd.md` - `/Users/ar/Projects/Taglauncher/CODEGRAPH.md` - `/Users/ar/Projects/Taglauncher/src/CHANGELOG.md` - `/Users/ar/Projects/Taglauncher/src/Apptag/Info.plist` - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/RELEASE_MANIFEST.md` - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/PKG_PREFLIGHT_REPORT.md` - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/SHA256SUMS.txt` - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/Preflight/TagLauncher-AppStore-full.entitlements` ## 交付产物 - 本地验收 DMG: - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/Archive/TagLauncher-8.3.5-build20260702.1046.dmg` - SHA256:`c378548b9f5186e2e71de08a2b0efc6e33bc84e2785dd98fc62e05903026a729` - App Store 上传包: - `/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg` - SHA256:`647b64ba420d60f4df1b72daff50f3174ab4c5da61b513ed0d9dc2d7eee2a417` ## 可复用命令 / Runbook ### 8.3.5 QA 回归 用途:验证标签列表排序免费持久化、自定义快捷键仍为 Pro、Pro 对比表行集和常规 Pro 门禁没有回退。 前置条件:在源码目录执行。 ```bash cd /Users/ar/Projects/Taglauncher/src bash Scripts/pro_custom_container_quota_qa.sh bash Scripts/pro_feature_gate_qa.sh bash Scripts/pro_localization_qa.sh bash Scripts/app_ordering_data_qa.sh bash Scripts/pro_custom_hotkeys_qa.sh bash Scripts/macos14_availability_typecheck_qa.sh bash Scripts/pro_display_mode_preview_qa.sh bash Scripts/theme_settings_qa.sh APP_BUILD=20260702.1046 bash build.sh bash Scripts/macos14_build_metadata_qa.sh build/TagLauncher.app codesign --verify --deep --strict --verbose=2 build/TagLauncher.app ``` 搜索关键词:`8.3.5`、`20260702.1046`、`free tag order persistence`、`pro_custom_container_quota_qa`、`pro_custom_hotkeys_qa`、`TagLauncher-8.3.5-build20260702.1046.pkg` ### 8.3.5 发布包路径与预检 用途:找回本轮本地验收 DMG、App Store 上传 `.pkg` 和预检命令。 ```bash cd /Users/ar/Projects/Taglauncher/src hdiutil verify Release/AppStore-8.3.5-20260702.1046/Archive/TagLauncher-8.3.5-build20260702.1046.dmg pkgutil --check-signature Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg pkgutil --expand-full Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg Release/AppStore-8.3.5-20260702.1046/Preflight/expanded codesign --verify --deep --strict --verbose=2 Release/AppStore-8.3.5-20260702.1046/Preflight/expanded/com.taglauncher.app.pkg/Payload/TagLauncher.app shasum -a 256 Release/AppStore-8.3.5-20260702.1046/Archive/TagLauncher-8.3.5-build20260702.1046.dmg Release/AppStore-8.3.5-20260702.1046/Upload/TagLauncher-8.3.5-build20260702.1046.pkg ``` ## 未决问题 - 本轮未执行 App Store Connect / Transporter 上传。 - 如要提交审核,使用本轮 `.pkg` 上传后再在 App Store Connect 选择 build。 ## 后续建议 - 若后续继续调整 Pro 对比表,先明确“免费可用但 Pro 更强”的功能是否应该出现,避免把免费能力误列成 Pro 锁定项。 - 自定义快捷键仍是 Pro 权益,后续如要开放需重新开需求,不与本轮 8.3.5 排序释放混做。