Ariver
2026-06-04 0fdcf539329447a3c5e988acde6d18a585c05110
Add 7.8.13 App Store candidate package
35 files added
804 ■■■■■ changed files
Release/AppStore-7.8.13-20260604.1121/APP_STORE_ASSET_INVENTORY.md 50 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/APP_STORE_CONNECT_METADATA.md 149 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/APP_STORE_RELEASE_CHECKLIST.md 69 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Archive/TagLauncher-7.8.13-build20260604.1121.dmg patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Assets/TagLauncher-AppIcon-1024.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/BUILD_SIGN_UPLOAD.md 87 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/FIRST_TIME_MAC_APP_STORE_TODO.md 60 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Legal/PRIVACY_POLICY.md 47 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Legal/PRIVACY_POLICY.zh-Hans.md 47 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/QA_RELEASE_EVIDENCE.md 38 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/README.md 69 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/RELEASE_MANIFEST.md 65 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Review/APP_REVIEW_NOTES.md 29 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/SHA256SUMS.txt 18 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/.gitkeep patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-01-SCR-20260604-jwdv-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-02-SCR-20260604-jwen-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-03-SCR-20260604-jwgb-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-04-SCR-20260604-jwgq-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-05-SCR-20260604-jwhd-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-06-SCR-20260604-jwic-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-07-SCR-20260604-jwji-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-08-SCR-20260604-jwkh-2880x1800.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/SCREENSHOT_SHOT_LIST.md 36 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwdv.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwen.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwgb.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwgq.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwhd.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwic.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwji.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwkh.png patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Submitted/.gitkeep patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Support/SUPPORT.md 40 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/Upload/.gitkeep patch | view | raw | blame | history
Release/AppStore-7.8.13-20260604.1121/APP_STORE_ASSET_INVENTORY.md
New file
@@ -0,0 +1,50 @@
# App Store Asset Inventory
## App Icon
- File: `Assets/TagLauncher-AppIcon-1024.png`
- SHA256: `a4495740d03a9b7517da2cfc6a3f9f5e16e2e33495ad772738493c826004928c`
- Source: `Apptag/Assets.xcassets/AppIcon.appiconset/icon_1024_preview.png`
- Status: prepared
## Screenshot Requirements Checked
- Apple allows 1 to 10 screenshots per platform.
- Accepted formats: `.jpeg`, `.jpg`, `.png`.
- Mac screenshots must be 16:10.
- Accepted Mac sizes: `1280 x 800`, `1440 x 900`, `2560 x 1600`, `2880 x 1800`.
## User Raw Screenshots
The screenshots provided earlier were preserved unchanged in `Screenshots/raw/`.
All raw screenshots are `3420 x 2224`, so they are archived as source material rather than direct App Store upload assets.
- `Screenshots/raw/SCR-20260604-jwdv.png`
- `Screenshots/raw/SCR-20260604-jwen.png`
- `Screenshots/raw/SCR-20260604-jwgb.png`
- `Screenshots/raw/SCR-20260604-jwgq.png`
- `Screenshots/raw/SCR-20260604-jwhd.png`
- `Screenshots/raw/SCR-20260604-jwic.png`
- `Screenshots/raw/SCR-20260604-jwji.png`
- `Screenshots/raw/SCR-20260604-jwkh.png`
## App Store Screenshot Candidates
These files were center-cropped from the raw screenshots to 16:10 and exported as `2880 x 1800` PNG files.
- `Screenshots/AppStore/mac-01-SCR-20260604-jwdv-2880x1800.png`
- `Screenshots/AppStore/mac-02-SCR-20260604-jwen-2880x1800.png`
- `Screenshots/AppStore/mac-03-SCR-20260604-jwgb-2880x1800.png`
- `Screenshots/AppStore/mac-04-SCR-20260604-jwgq-2880x1800.png`
- `Screenshots/AppStore/mac-05-SCR-20260604-jwhd-2880x1800.png`
- `Screenshots/AppStore/mac-06-SCR-20260604-jwic-2880x1800.png`
- `Screenshots/AppStore/mac-07-SCR-20260604-jwji-2880x1800.png`
- `Screenshots/AppStore/mac-08-SCR-20260604-jwkh-2880x1800.png`
## Final Visual Review Before Upload
- [ ] Confirm screenshots do not expose private installed apps, account names, documents, messages, or notifications.
- [ ] Confirm cropped screenshot content still shows the intended UI.
- [ ] Pick 3 to 6 strongest screenshots for upload, or upload all 8 if the sequence reads well.
- [ ] Ensure localized screenshots match the selected App Store Connect language.
Release/AppStore-7.8.13-20260604.1121/APP_STORE_CONNECT_METADATA.md
New file
@@ -0,0 +1,149 @@
# App Store Connect Metadata Draft
这些是 TagLauncher `7.8.13` 的 App Store Connect 填写草稿。提交前请把支持邮箱、隐私政策 URL、支持 URL、版权归属和价格策略替换为真实值。
## App Information
- Name: `TagLauncher`
- Bundle ID: `com.taglauncher.app`
- SKU: `taglauncher-macos`
- Category: `Utilities`
- Version: `7.8.13`
- Minimum macOS: `15.0`
- Primary language: `English (U.S.)` or `Simplified Chinese`
- Distribution method: Public App Store
- Release option: Manual release after approval
## Subtitle Options
English, 30 characters max:
- `Tag-based app launcher`
- `Launch apps by tag`
Simplified Chinese, 30 characters max:
- `标签化应用启动器`
- `用标签启动 Mac 应用`
## Promotional Text Draft
English:
Find and launch Mac apps from a tag-based grid or Quick Search, with flexible grouping and fullscreen-friendly window behavior.
Simplified Chinese:
用标签网格和 Quick Search 快速找到 Mac 应用,支持自定义分组,并适配多显示器和全屏 Space。
## Description Draft
TagLauncher is a fast tag-based launcher for Mac apps.
Organize installed apps into visual tag groups, open a fullscreen-friendly app grid from a global hotkey, and jump directly to apps with Quick Search. It is designed for people who have many apps and want a calmer, faster way to find the right one without hunting through Launchpad, Finder, or the Dock.
Highlights:
- Open the app grid with Option-Shift-Space.
- Search apps, tags, and notes with Quick Search.
- Group apps by custom tags.
- Tune icon size, tag position, app list style, and Dock visibility.
- Import and export your category layout.
- Works across multiple displays and fullscreen Spaces.
## Chinese Description Draft
TagLauncher 是一个基于标签的 Mac 应用启动器。
你可以把已安装的应用整理成可视化标签分组,用全局快捷键唤出应用网格,也可以通过 Quick Search 直接搜索应用、标签和备注。它适合安装了很多应用、希望更快找到目标应用的人。
亮点:
- 使用 Option-Shift-Space 打开应用网格。
- 使用 Quick Search 搜索应用、标签和备注。
- 用自定义标签整理应用。
- 可调整图标大小、标签位置、列表样式和 Dock 显示。
- 支持分类布局的导入和导出。
- 支持多显示器和全屏 Space 场景。
## Keywords Draft
English:
`launcher,tags,apps,productivity,quick search,utility,mac`
Simplified Chinese:
`启动器,标签,应用,效率,搜索,工具,Mac`
## What's New
Version 7.8.13:
- Fixed an issue where newly installed apps could appear in other launchers but not show up in TagLauncher's App Grid or Quick Search until the app index was refreshed.
- Added a lightweight app-directory signature check when opening App Grid or Quick Search, so app index refreshes only when standard application folders change.
- Improved release QA coverage for Quick Search result discovery and fullscreen window stability.
中文:
- 修复新安装应用可能已能被其他启动器搜索到,但 TagLauncher 的 App Grid / Quick Search 仍暂时找不到的问题。
- 打开 App Grid 或 Quick Search 时增加轻量应用目录签名检查,仅在标准应用目录变化时刷新索引。
- 补强 Quick Search 结果发现和全屏窗口稳定性的发布 QA。
## App Review Notes Draft
TagLauncher is a macOS utility for organizing installed applications into visual tag groups and launching them from a keyboard-accessible app grid.
Primary review flow:
1. Launch TagLauncher.
2. Press `Option-Shift-Space` to show the app grid.
3. Press `Space` while the app grid is visible to open Quick Search.
4. Type part of an installed app name to search.
5. Press `Escape` once to close Quick Search.
6. Press `Escape` again to close the app grid.
7. Open Settings from the menu bar or with `Command-Comma`.
Expected behavior:
- The app grid intentionally appears above normal and fullscreen app windows.
- In fullscreen and Split View Spaces, AppGrid, Quick Search, and Settings should remain in the current Space instead of switching to another Space.
- While the app grid is visible, TagLauncher may hide the Dock depending on user settings and shows TagLauncher's menu bar.
- The system Force Quit window remains above TagLauncher.
- Import/export uses standard macOS file panels.
- The app scans installed applications locally to build the launcher index.
- In sandboxed App Store builds, login-at-launch may be disabled if the LaunchAgent approach is unavailable.
No demo account is required.
## Privacy Draft
Current code audit:
- No background network API usage found.
- App preferences are stored locally with `UserDefaults`.
- Tag/category data is stored locally under the user's Application Support area.
- The app scans installed applications locally to build the launcher index.
- Import/export only touches user-selected files.
- No analytics SDK, advertising SDK, tracking SDK, crash reporting SDK, or third-party tracking SDK is bundled.
- Help/support/release links may open externally in the user's browser only after user action.
Privacy questionnaire starting point:
- Data collected: `No`, assuming no analytics/crash reporting/network telemetry is added before submission.
- Tracking: `No`.
- Privacy policy URL: required. Publish `Legal/PRIVACY_POLICY.md` or its final edited version before submission.
## Screenshot Plan
Use `Screenshots/AppStore/` for upload candidates. All 8 files are `2880 x 1800` PNG.
Recommended upload order:
1. App Grid with tag groups.
2. Quick Search with a sample query.
3. Settings showing appearance/layout controls.
4. Hotkey or Quick Search settings.
5. Optional import/export or tag editing view.
Avoid screenshots that expose private installed apps, folders, account names, messages, or notifications.
Release/AppStore-7.8.13-20260604.1121/APP_STORE_RELEASE_CHECKLIST.md
New file
@@ -0,0 +1,69 @@
# App Store Release Checklist
## 本地冻结
- [x] 源码版本为 `7.8.13`
- [x] Build 为 `20260604.1121`
- [x] `CHANGELOG.md` 已包含 7.8.13
- [x] 修复提交已推送到 `origin/codex/fix-quick-search-focus-routing`
- [x] 已重新构建 `.app`
- [x] 已重新生成 7.8.13 DMG
- [x] DMG 已复制到 `Archive/`
- [x] 7.8.12 标记为不再提交 App Store
- [x] 冻结 tag 已创建并推送:`v7.8.13-build20260604.1121`
## 本地 QA
- [x] App bundle 签名校验通过
- [x] DMG `hdiutil verify` 通过
- [x] DMG 挂载检查通过
- [x] DMG 内 app 版本/build 正确
- [x] DMG 内包含 `/Applications` symlink
- [x] Quick Search 新安装应用刷新路径通过 targeted 验证
- [x] Full window logic QA 通过
- [x] `SHA256SUMS.txt` 校验通过
- [x] `git diff --check` 通过
## App Store Connect 资料
- [x] App 图标 1024 png 已准备:`Assets/TagLauncher-AppIcon-1024.png`
- [x] 用户原始截图已收录:`Screenshots/raw/`
- [x] App Store 尺寸截图已导出:`Screenshots/AppStore/`
- [x] 截图均为 2880 x 1800 PNG
- [x] 英文/中文描述草稿已准备
- [x] What's New 草稿已准备
- [x] Review Notes 草稿已准备
- [x] Privacy Policy 草稿已准备
- [x] Support 页草稿已准备
## 账号侧提交前必须完成
- [ ] Apple Developer Program 会员有效
- [ ] App Store Connect 已创建 app record
- [ ] Bundle ID 使用 `com.taglauncher.app`
- [ ] SKU 使用最终值,例如 `taglauncher-macos`
- [ ] 选择 macOS 平台和 Utilities 类别
- [ ] 填写支持 URL
- [ ] 发布隐私政策 URL
- [ ] 在 App Privacy 中选择符合当前代码的数据收集声明
- [ ] 完成 Age Rating 问卷
- [ ] 完成 Export Compliance 问卷
- [ ] 完成价格和可用地区
- [ ] 完成版权、联系信息和审核联系信息
- [ ] 安装或创建 Mac App Distribution 证书
- [ ] 安装或创建 Mac Installer Distribution 证书
- [ ] 创建并下载 `com.taglauncher.app` 的 Mac App Store provisioning profile
- [ ] 用账号证书重新签名并生成上传 `.pkg`
- [ ] 用 Transporter/Xcode/altool 上传构建
- [ ] 在 App Store Connect 选择 build 并提交审核
## 官方要求核对日期
核对日期:2026-06-04。
- Screenshot specifications: https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications
- Upload app previews and screenshots: https://developer.apple.com/help/app-store-connect/manage-app-information/upload-app-previews-and-screenshots/
- Upload builds: https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds/
- Manage app privacy: https://developer.apple.com/help/app-store-connect/manage-app-information/manage-app-privacy/
- Certificate overview: https://developer.apple.com/help/account/certificates/certificates-overview/
- App Store provisioning profile: https://developer.apple.com/help/account/provisioning-profiles/create-an-app-store-provisioning-profile/
Release/AppStore-7.8.13-20260604.1121/Archive/TagLauncher-7.8.13-build20260604.1121.dmg
Binary files differ
Release/AppStore-7.8.13-20260604.1121/Assets/TagLauncher-AppIcon-1024.png
Release/AppStore-7.8.13-20260604.1121/BUILD_SIGN_UPLOAD.md
New file
@@ -0,0 +1,87 @@
# Build, Sign, Package, Upload
## 当前状态
本目录内的 DMG 是本地 QA / 可回滚候选包:
- `Archive/TagLauncher-7.8.13-build20260604.1121.dmg`
- SHA256: `f594509807ca5aa72c6a9fdf118a4f3c9ee991528cd5dbe68587ea5fe601d6f6`
它不是 App Store Connect 最终上传包。App Store 上传需要 Apple Developer 账号侧证书和 provisioning profile。
## 账号侧前置条件
- Apple Developer Program 会员有效。
- App Store Connect 中存在 macOS app record。
- Bundle ID 是 `com.taglauncher.app`。
- Keychain 中有 Mac App Distribution 或 Apple Distribution 证书。
- Keychain 中有 Mac Installer Distribution 证书。
- 已下载并安装匹配 `com.taglauncher.app` 的 Mac App Store provisioning profile。
## 手动签名构建示例
把证书名称替换为你 Keychain 中的真实名称:
```bash
APP_STORE=1 \
APP_BUILD=20260604.1121 \
CODESIGN_IDENTITY="Mac App Distribution: YOUR NAME (TEAMID)" \
zsh ./build.sh
```
验证:
```bash
codesign --verify --deep --strict build/TagLauncher.app
codesign -d --entitlements :- build/TagLauncher.app
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' build/TagLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' build/TagLauncher.app/Contents/Info.plist
```
## 生成 Mac App Store 上传包
示例命令:
```bash
mkdir -p build/AppStore
productbuild \
  --component build/TagLauncher.app /Applications \
  --sign "Mac Installer Distribution: YOUR NAME (TEAMID)" \
  build/AppStore/TagLauncher-7.8.13-build20260604.1121.pkg
```
验证 package 签名:
```bash
pkgutil --check-signature build/AppStore/TagLauncher-7.8.13-build20260604.1121.pkg
```
## 上传方式
Apple 当前支持用 Xcode、Swift Playground、altool 或 Transporter 上传构建。对这个项目,推荐先用 Transporter 图形界面上传 `.pkg`,因为它能直接显示交付日志和错误。
可选命令行校验和上传:
```bash
xcrun altool --validate-app \
  -f build/AppStore/TagLauncher-7.8.13-build20260604.1121.pkg \
  -t macos \
  -u APPLE_ID_EMAIL \
  -p APP_SPECIFIC_PASSWORD
xcrun altool --upload-app \
  -f build/AppStore/TagLauncher-7.8.13-build20260604.1121.pkg \
  -t macos \
  -u APPLE_ID_EMAIL \
  -p APP_SPECIFIC_PASSWORD
```
## 上传后检查
- App Store Connect 中 build 进入 Processing。
- Processing 完成后,选择 version `7.8.13` 的 build。
- 检查没有 Invalid Binary、Missing Entitlement、Bundle ID mismatch、version/build mismatch。
- 填写 `APP_STORE_CONNECT_METADATA.md` 中的文案。
- 上传 `Screenshots/AppStore/` 中的截图。
- 发布隐私政策 URL,并在 App Privacy 中提交问卷。
- 提交 App Review。
Release/AppStore-7.8.13-20260604.1121/FIRST_TIME_MAC_APP_STORE_TODO.md
New file
@@ -0,0 +1,60 @@
# First-Time Mac App Store Todo
## Apple Developer Account
- [ ] 确认 Apple Developer Program 会员有效。
- [ ] 确认当前 Apple ID 有 Account Holder/Admin/App Manager 权限。
- [ ] 确认 Agreements、Tax、Banking 没有阻塞项。
## App Record
- [ ] 在 App Store Connect 创建 macOS app record。
- [ ] Name: `TagLauncher`
- [ ] Bundle ID: `com.taglauncher.app`
- [ ] SKU: `taglauncher-macos`
- [ ] Primary language: English 或 Simplified Chinese
- [ ] Category: Utilities
- [ ] Minimum macOS: `15.0`
## Certificates And Profiles
- [ ] 创建或确认 Mac App Distribution / Apple Distribution 证书。
- [ ] 创建或确认 Mac Installer Distribution 证书。
- [ ] 创建 Mac App Store Connect provisioning profile。
- [ ] Profile 的 App ID 必须匹配 `com.taglauncher.app`。
- [ ] 把证书私钥和 profile 安装到负责上传的 Mac。
## Metadata
- [ ] 填写 subtitle。
- [ ] 填写 description。
- [ ] 填写 keywords。
- [ ] 填写 what's new。
- [ ] 填写 support URL。
- [ ] 填写 marketing URL,如没有可留空。
- [ ] 填写 copyright。
- [ ] 选择价格和可用地区。
- [ ] 完成 Age Rating。
- [ ] 完成 Export Compliance。
## Privacy
- [ ] 发布隐私政策网页。
- [ ] 在 App Store Connect 填写隐私政策 URL。
- [ ] App Privacy 选择当前版本的数据收集情况。
- [ ] 若代码未来加入 analytics、crash reporting、network telemetry 或第三方 SDK,必须重新审计隐私问卷。
## Screenshots
- [ ] 检查 `Screenshots/AppStore/` 中 8 张 `2880 x 1800` PNG。
- [ ] 删除任何暴露私人信息的截图。
- [ ] 上传 1 到 10 张 Mac 截图。
- [ ] 确认截图顺序能解释核心使用流程。
## Build Upload
- [ ] 按 `BUILD_SIGN_UPLOAD.md` 生成 App Store 签名 `.pkg`。
- [ ] 用 Transporter 或 Xcode 上传。
- [ ] 等待 Processing 完成。
- [ ] 选择 build `20260604.1121`。
- [ ] 提交审核。
Release/AppStore-7.8.13-20260604.1121/Legal/PRIVACY_POLICY.md
New file
@@ -0,0 +1,47 @@
# TagLauncher Privacy Policy Draft
Effective date: 2026-06-04
This is a draft for App Store submission. Replace contact details and publish it at the final privacy policy URL before submitting the app.
## Overview
TagLauncher is a macOS utility for organizing and launching installed applications. The app is designed to work locally on your Mac.
## Data Collection
TagLauncher does not collect personal data from users in the current 7.8.13 build.
The app does not include analytics SDKs, advertising SDKs, tracking SDKs, crash reporting SDKs, or third-party telemetry SDKs in the current 7.8.13 build.
## Local Data
TagLauncher stores preferences and launcher configuration locally on your Mac, including:
- App preferences.
- Tag and category configuration.
- Imported or exported category files selected by the user.
TagLauncher scans installed applications locally to build its launcher index. This scan is used only to display and search apps on the user's Mac.
## Network Use
The current 7.8.13 build does not perform background network API calls. Help, support, or release links may open in the user's browser only after user action.
## User-Selected Files
Import and export features use standard macOS file panels. TagLauncher accesses only files selected by the user for those actions.
## Tracking
TagLauncher does not track users across apps or websites.
## Contact
Support email: REPLACE_WITH_SUPPORT_EMAIL
Privacy policy URL: REPLACE_WITH_FINAL_PRIVACY_POLICY_URL
## Changes
If TagLauncher's data practices change in a future version, this policy and the App Store privacy responses must be updated before release.
Release/AppStore-7.8.13-20260604.1121/Legal/PRIVACY_POLICY.zh-Hans.md
New file
@@ -0,0 +1,47 @@
# TagLauncher 隐私政策草稿
生效日期:2026-06-04
这是 App Store 提交用草稿。提交前请替换联系方式,并发布到最终隐私政策 URL。
## 概览
TagLauncher 是一个用于整理和启动已安装应用的 macOS 工具。当前版本设计为在用户的 Mac 本地工作。
## 数据收集
当前 7.8.13 版本不会收集用户个人数据。
当前 7.8.13 版本不包含 analytics SDK、广告 SDK、tracking SDK、崩溃上报 SDK 或第三方遥测 SDK。
## 本地数据
TagLauncher 会在用户 Mac 本地保存偏好设置和启动器配置,包括:
- 应用偏好设置。
- 标签和分类配置。
- 用户主动选择导入或导出的分类文件。
TagLauncher 会在本地扫描已安装应用,用于建立启动器索引。该扫描仅用于在用户 Mac 上展示和搜索应用。
## 网络使用
当前 7.8.13 版本不会执行后台网络 API 调用。帮助、支持或发布说明链接仅会在用户主动操作后通过浏览器打开。
## 用户选择的文件
导入和导出功能使用标准 macOS 文件面板。TagLauncher 只会访问用户为这些操作主动选择的文件。
## 跟踪
TagLauncher 不会跨 App 或网站跟踪用户。
## 联系方式
支持邮箱:REPLACE_WITH_SUPPORT_EMAIL
隐私政策 URL:REPLACE_WITH_FINAL_PRIVACY_POLICY_URL
## 变更
如果未来版本的数据实践发生变化,必须在发布前更新本政策和 App Store 隐私问卷。
Release/AppStore-7.8.13-20260604.1121/QA_RELEASE_EVIDENCE.md
New file
@@ -0,0 +1,38 @@
# QA Release Evidence
## Build Under Test
- Version: 7.8.13
- Build: 20260604.1121
- Source commit: 1d19c0593ebe6abe60468e12e87459ab68586603
- Artifact: Archive/TagLauncher-7.8.13-build20260604.1121.dmg
## Completed Checks
- `APP_BUILD=20260604.1121 zsh ./build.sh`: passed
- `codesign --verify --deep --strict build/TagLauncher.app`: passed
- Built app Info.plist version: `7.8.13`
- Built app Info.plist build: `20260604.1121`
- `zsh ./make_dmg.sh`: passed
- `hdiutil verify build/TagLauncher-7.8.13-build20260604.1121.dmg`: passed
- Mounted DMG contains `TagLauncher.app`: passed
- Mounted DMG contains `Applications -> /Applications`: passed
- Mounted app Info.plist version/build: `7.8.13 / 20260604.1121`
- Mounted app signing verification: passed
- `bash -n Scripts/window_logic_qa.sh`: passed
- `Scripts/window_logic_qa.sh`: passed, final result `ALL WINDOW LOGIC QA PASSED`
- `git diff --cached --check`: passed for the staged 7.8.13 release materials
## Regression Verified For This Fix
- Scenario: a new app is installed after TagLauncher has already built its app index.
- Repro app used by user: boringNotch.
- Expected: App Grid and Quick Search detect standard application directory signature changes when opened.
- Expected: Quick Search for `notch` returns `boringNotch` instead of `未找到 App`.
- Observed targeted result before packaging: `FOUND_BORING=true`, `FOUND_NO_RESULTS=false`.
## Risk Notes
- The refresh trigger only checks standard application directory signatures. It intentionally avoids a full app scan on every open.
- If an app is installed into a nonstandard directory not covered by the configured search paths, it may still require a manual refresh or future search-path expansion.
- The local DMG is ad-hoc signed for rollback QA. App Store upload requires the account-side signed package described in `BUILD_SIGN_UPLOAD.md`.
Release/AppStore-7.8.13-20260604.1121/README.md
New file
@@ -0,0 +1,69 @@
# TagLauncher 7.8.13 App Store 候选资料
生成时间:2026-06-04 12:15:27 HKT
## 包信息
- 产品:TagLauncher
- 类型:正式可回滚测试包 / App Store 候选资料
- 版本:7.8.13
- Build:20260604.1121
- Bundle ID:com.taglauncher.app
- 最低系统版本:macOS 15.0
- 源码分支:codex/fix-quick-search-focus-routing
- 源码提交:1d19c0593ebe6abe60468e12e87459ab68586603
- 冻结 tag:v7.8.13-build20260604.1121
## 重要结论
- 7.8.12 的 App Store 发布包不应继续提交市场。
- 7.8.13 是本次重新冻结的候选版本,包含用户可见修复:新安装应用后,App Grid 和 Quick Search 会在打开时轻量检查应用目录签名,并在目录变化时刷新索引。
- 本目录内 DMG 是本地可回滚候选包,不是 App Store Connect 的最终上传产物。上传 App Store 仍需要 Apple Developer 账号侧签名证书、Mac App Store provisioning profile 和上传包。
## 安装包
- DMG:Archive/TagLauncher-7.8.13-build20260604.1121.dmg
- SHA256:f594509807ca5aa72c6a9fdf118a4f3c9ee991528cd5dbe68587ea5fe601d6f6
- 大小:5990963 bytes
## App Store 资料
- 发布清单:APP_STORE_RELEASE_CHECKLIST.md
- 资产清单:APP_STORE_ASSET_INVENTORY.md
- App Store Connect 文案草稿:APP_STORE_CONNECT_METADATA.md
- 签名、打包和上传说明:BUILD_SIGN_UPLOAD.md
- 首次上架账号侧待办:FIRST_TIME_MAC_APP_STORE_TODO.md
- 审核备注:Review/APP_REVIEW_NOTES.md
- 隐私政策草稿:Legal/PRIVACY_POLICY.md、Legal/PRIVACY_POLICY.zh-Hans.md
- 支持页草稿:Support/SUPPORT.md
- 截图计划:Screenshots/SCREENSHOT_SHOT_LIST.md
- App 图标:Assets/TagLauncher-AppIcon-1024.png
- 用户原始截图:Screenshots/raw/
- App Store 上传候选截图:Screenshots/AppStore/
## 本版本变更
- App Grid / Quick Search 打开时检查 `/Applications`、`~/Applications`、系统 Applications 等标准应用目录的轻量签名。
- 目录签名未变化时不刷新索引、不重建界面,避免拖慢每次打开体验。
- 目录签名变化时后台刷新应用索引,使新安装应用能被 App Grid 和 Quick Search 发现。
- QA 脚本补强了 Quick Search 搜索结果、全屏 overlay 稳定性、Dock 点击和 hover 轨迹验证。
## 官方要求核对
- Apple 当前要求 Mac 截图为 16:10,接受 1280 x 800、1440 x 900、2560 x 1600、2880 x 1800,且 Mac app 必须提供截图。
- App Store Connect 允许每个平台上传 1 到 10 张截图,格式为 `.jpeg`、`.jpg` 或 `.png`。
- 构建上传可使用 Xcode、Swift Playground、altool 或 Transporter;macOS app 上传也支持 Transporter/altool。
- macOS App Store 手动签名需要 Apple Developer 账号中的 Mac App Distribution / Mac Installer Distribution 证书,以及匹配 `com.taglauncher.app` 的 Mac App Store provisioning profile。
- 隐私政策 URL 是所有 App Store app 的必填项,隐私问卷需要准确声明应用和第三方代码的数据实践。
## 回滚方式
如需回滚到本包对应源码状态:
```bash
git checkout v7.8.13-build20260604.1121
APP_BUILD=20260604.1121 zsh ./build.sh
zsh ./make_dmg.sh
```
如需直接恢复安装包,使用本目录 `Archive/` 下的 DMG。
Release/AppStore-7.8.13-20260604.1121/RELEASE_MANIFEST.md
New file
@@ -0,0 +1,65 @@
# Release Manifest
## Identity
- Product: TagLauncher
- Package kind: formal rollback test package / App Store candidate materials
- Version: 7.8.13
- Build: 20260604.1121
- Bundle ID: com.taglauncher.app
- Minimum macOS: 15.0
- Generated at: 2026-06-04 12:15:27 HKT
- Branch: codex/fix-quick-search-focus-routing
- Source commit: 1d19c0593ebe6abe60468e12e87459ab68586603
- Release tag: v7.8.13-build20260604.1121
## Artifact
- Build artifact: build/TagLauncher-7.8.13-build20260604.1121.dmg
- Archived artifact: Release/AppStore-7.8.13-20260604.1121/Archive/TagLauncher-7.8.13-build20260604.1121.dmg
- SHA256: f594509807ca5aa72c6a9fdf118a4f3c9ee991528cd5dbe68587ea5fe601d6f6
- Size: 5990963 bytes
## Build Commands
```bash
APP_BUILD=20260604.1121 zsh ./build.sh
zsh ./make_dmg.sh
mv build/TagLauncher.dmg build/TagLauncher-7.8.13-build20260604.1121.dmg
```
## Verification Commands
```bash
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' build/TagLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' build/TagLauncher.app/Contents/Info.plist
codesign --verify --deep --strict build/TagLauncher.app
hdiutil verify build/TagLauncher-7.8.13-build20260604.1121.dmg
shasum -a 256 build/TagLauncher-7.8.13-build20260604.1121.dmg
```
## Verification Results
- App version check: passed, returned `7.8.13`
- App build check: passed, returned `20260604.1121`
- Code signing verification: passed
- DMG verification: passed
- DMG mount metadata check: passed
- DMG contains `TagLauncher.app`
- DMG contains `Applications -> /Applications`
- Mounted App version/build matched expected values
- Mounted App code signing verification: passed
- Targeted Quick Search verification: passed, newly installed `boringNotch` was searchable after app directory signature refresh
- Full window logic QA: passed, returned `ALL WINDOW LOGIC QA PASSED`
- SHA256 recorded: `f594509807ca5aa72c6a9fdf118a4f3c9ee991528cd5dbe68587ea5fe601d6f6`
## Release Scope
- This release supersedes 7.8.12 for App Store submission.
- This release keeps the refresh path light: if application directory signatures have not changed, opening App Grid / Quick Search does not rebuild the index.
- This release does not change App Grid layout, Settings, import/export, file panels, or window level strategy beyond QA hardening.
## Rollback Reference
- Rollback source reference: `v7.8.13-build20260604.1121`
- Rollback artifact reference: `Archive/TagLauncher-7.8.13-build20260604.1121.dmg`
Release/AppStore-7.8.13-20260604.1121/Review/APP_REVIEW_NOTES.md
New file
@@ -0,0 +1,29 @@
# App Review Notes
TagLauncher is a macOS utility for organizing installed applications into visual tag groups and launching them from a keyboard-accessible app grid.
No demo account is required.
## Review Flow
1. Launch TagLauncher.
2. Press `Option-Shift-Space` to show the app grid.
3. Press `Space` while the app grid is visible to open Quick Search.
4. Type part of an installed app name to search.
5. Press `Escape` once to close Quick Search.
6. Press `Escape` again to close the app grid.
7. Open Settings from the menu bar or with `Command-Comma`.
## Expected Behavior
- The app scans installed applications locally to build the launcher index.
- The app grid intentionally appears above normal and fullscreen app windows.
- In fullscreen and Split View Spaces, AppGrid, Quick Search, and Settings should remain in the current Space instead of switching to another Space.
- While the app grid is visible, TagLauncher may hide the Dock depending on user settings and shows TagLauncher's menu bar.
- The system Force Quit window remains above TagLauncher.
- Import/export uses standard macOS file panels.
- In sandboxed App Store builds, login-at-launch may be disabled if the LaunchAgent approach is unavailable.
## 7.8.13 Specific Note
Version 7.8.13 improves discovery of newly installed applications. When App Grid or Quick Search opens, TagLauncher performs a lightweight signature check of standard application folders. If those folders changed, the local app index refreshes; if not, no full rescan is performed.
Release/AppStore-7.8.13-20260604.1121/SHA256SUMS.txt
New file
@@ -0,0 +1,18 @@
f594509807ca5aa72c6a9fdf118a4f3c9ee991528cd5dbe68587ea5fe601d6f6  Archive/TagLauncher-7.8.13-build20260604.1121.dmg
a4495740d03a9b7517da2cfc6a3f9f5e16e2e33495ad772738493c826004928c  Assets/TagLauncher-AppIcon-1024.png
b2aa2f117f0e570a286e6c39183d1a1499801e84cd9b875fe99ba86a74101976  Screenshots/AppStore/mac-01-SCR-20260604-jwdv-2880x1800.png
ecdb40253464a3d5b89bb4c564d9819f7683fc0d4247aba936f647ab9b24b197  Screenshots/AppStore/mac-02-SCR-20260604-jwen-2880x1800.png
42916c8157b5789867b0a6665a3d327c4ca02a89da0d2ff1ceb8345ee0a4c4b8  Screenshots/AppStore/mac-03-SCR-20260604-jwgb-2880x1800.png
473c41872069e8144f61fa06b78ffab596562226ee9d3af0fa072eddec40ba83  Screenshots/AppStore/mac-04-SCR-20260604-jwgq-2880x1800.png
efbd9bf903dc8726fb63f547e47bef5fc68b76845dfaea3015f57f6dd2a9c470  Screenshots/AppStore/mac-05-SCR-20260604-jwhd-2880x1800.png
095208a3a1472a563f4d2c5952fa9b23910d7feb6abf800e38ab0fc72479ddc7  Screenshots/AppStore/mac-06-SCR-20260604-jwic-2880x1800.png
615a8ca6a719c6f465a641caeeeded20f3066885c26bd5dbe033ddf1ede514db  Screenshots/AppStore/mac-07-SCR-20260604-jwji-2880x1800.png
e59cd0e4ef61d64db0c4b56faf280b392fc86aa49d4390d3dab8e732003cc7d8  Screenshots/AppStore/mac-08-SCR-20260604-jwkh-2880x1800.png
93252c42fb276662dc5f47afe1a1f08c0e0de86fc49d482196c3da4369a7fceb  Screenshots/raw/SCR-20260604-jwdv.png
6f9d4533382f218df85bab51123dcb33865756855c733aa4c2323075fa4d3e79  Screenshots/raw/SCR-20260604-jwen.png
79a80cfe4e8869cde3947cb2cf000fb8fe13d73c2a76ce5da7209c1e254645d5  Screenshots/raw/SCR-20260604-jwgb.png
568a2d5c9048700511c869d0c20003cc4cca20578ed02365ab276da3fcd2b65b  Screenshots/raw/SCR-20260604-jwgq.png
41780a10fe8f6ec16bcdacdf164e662e17b29697352dab21fa8ce95d44a4aa3d  Screenshots/raw/SCR-20260604-jwhd.png
e87b74e23dce17334b2b14b1e446d3707a70497c300c24cfffc613808bf6c37f  Screenshots/raw/SCR-20260604-jwic.png
e9952a1ae03776bfdda295447ff487b8647b12f025af962a18dc141cb298162b  Screenshots/raw/SCR-20260604-jwji.png
ad6c1d1ae9bc997f036b220517fd89690c1cbcc9adcd19f4f19c2ba1a93ed0b9  Screenshots/raw/SCR-20260604-jwkh.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/.gitkeep
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-01-SCR-20260604-jwdv-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-02-SCR-20260604-jwen-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-03-SCR-20260604-jwgb-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-04-SCR-20260604-jwgq-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-05-SCR-20260604-jwhd-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-06-SCR-20260604-jwic-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-07-SCR-20260604-jwji-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/AppStore/mac-08-SCR-20260604-jwkh-2880x1800.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/SCREENSHOT_SHOT_LIST.md
New file
@@ -0,0 +1,36 @@
# Screenshot Shot List
## 已收录资产
- 原始截图目录:`Screenshots/raw/`
- 原始截图数量:8
- 原始截图尺寸:3420 x 2224
- 上传候选目录:`Screenshots/AppStore/`
- 上传候选数量:8
- 上传候选尺寸:2880 x 1800
## 上传候选文件
1. `Screenshots/AppStore/mac-01-SCR-20260604-jwdv-2880x1800.png`
2. `Screenshots/AppStore/mac-02-SCR-20260604-jwen-2880x1800.png`
3. `Screenshots/AppStore/mac-03-SCR-20260604-jwgb-2880x1800.png`
4. `Screenshots/AppStore/mac-04-SCR-20260604-jwgq-2880x1800.png`
5. `Screenshots/AppStore/mac-05-SCR-20260604-jwhd-2880x1800.png`
6. `Screenshots/AppStore/mac-06-SCR-20260604-jwic-2880x1800.png`
7. `Screenshots/AppStore/mac-07-SCR-20260604-jwji-2880x1800.png`
8. `Screenshots/AppStore/mac-08-SCR-20260604-jwkh-2880x1800.png`
## 建议上传顺序
1. App Grid:展示标签分组和应用图标。
2. Quick Search:展示输入查询和候选结果。
3. Settings:展示外观或布局设置。
4. Hotkey / Quick Search 设置:展示可配置性。
5. Import / Export 或 tag editing:展示高级管理能力。
## 上传前检查
- [ ] 截图没有暴露私人应用、账号、文件夹、消息或通知。
- [ ] 裁切后主 UI 没有被截掉。
- [ ] 截图语言和 App Store Connect 选择的 localization 一致。
- [ ] 如果只上传部分截图,优先选择最能说明核心价值的 3 到 6 张。
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwdv.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwen.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwgb.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwgq.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwhd.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwic.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwji.png
Release/AppStore-7.8.13-20260604.1121/Screenshots/raw/SCR-20260604-jwkh.png
Release/AppStore-7.8.13-20260604.1121/Submitted/.gitkeep
Release/AppStore-7.8.13-20260604.1121/Support/SUPPORT.md
New file
@@ -0,0 +1,40 @@
# TagLauncher Support Draft
This is a draft support page for App Store Connect. Publish it at the final Support URL before submission.
## Product
TagLauncher for macOS
## Current Version
- Version: 7.8.13
- Build: 20260604.1121
- Minimum macOS: 15.0
## Getting Started
1. Launch TagLauncher.
2. Press `Option-Shift-Space` to open the app grid.
3. Press `Space` while the app grid is visible to open Quick Search.
4. Use Settings to customize icon size, tag display, hotkeys, and layout.
## Troubleshooting
If a newly installed app does not appear immediately:
1. Open App Grid or Quick Search again.
2. TagLauncher 7.8.13 checks standard application folder changes when these views open.
3. If the app is installed outside standard application folders, move it to `/Applications` or `~/Applications`.
If hotkeys do not work:
1. Check macOS System Settings permissions.
2. Confirm another app is not using the same shortcut.
3. Restart TagLauncher.
## Contact
Support email: REPLACE_WITH_SUPPORT_EMAIL
Privacy policy: REPLACE_WITH_FINAL_PRIVACY_POLICY_URL
Release/AppStore-7.8.13-20260604.1121/Upload/.gitkeep