From 9c9aa6e7ed0c11c741e1950a5f62737581c83bcd Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Fri, 12 Jun 2026 11:34:30 +0800 Subject: [PATCH] Record 7.9.0 App Store release pack --- src/Release/AppStore-7.9.0-20260612.1121/QA_RELEASE_EVIDENCE.md | 55 +++++++ src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg | 0 src/Release/AppStore-7.9.0-20260612.1121/APP_REVIEW_NOTES.md | 33 ++++ src/Release/AppStore-7.9.0-20260612.1121/README.md | 29 ++++ src/Release/AppStore-7.9.0-20260612.1121/RELEASE_MANIFEST.md | 73 ++++++++++ src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_RELEASE_CHECKLIST.md | 46 ++++++ src/Release/AppStore-7.9.0-20260612.1121/Archive/TagLauncher-7.9.0-build20260612.1121.dmg | 0 src/Release/AppStore-7.9.0-20260612.1121/PKG_PREFLIGHT_REPORT.md | 56 ++++++++ src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_CONNECT_METADATA.md | 114 ++++++++++++++++ 9 files changed, 406 insertions(+), 0 deletions(-) diff --git a/src/Release/AppStore-7.9.0-20260612.1121/APP_REVIEW_NOTES.md b/src/Release/AppStore-7.9.0-20260612.1121/APP_REVIEW_NOTES.md new file mode 100644 index 0000000..b245c9d --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/APP_REVIEW_NOTES.md @@ -0,0 +1,33 @@ +# App Review Notes + +## English + +TagLauncher is a local macOS utility for organizing and launching installed apps by tag. No account or demo login is required. + +How to test: + +1. Launch TagLauncher. +2. Open the App Grid from the menu bar icon or press Option-Shift-Space. +3. Use Quick Search from the grid by pressing Space. +4. Create or use a tag group, then drag an app icon within the same group to change the display order. +5. Open Settings > Data to export or import the local category layout. + +Version 7.9.0 adds manual app ordering inside each tag group. The order is stored locally as part of the category layout. The app does not collect user data and does not use analytics, ads, tracking, accounts, or cloud sync. + +If the Dock icon is hidden, the menu bar icon remains available. The Dock visibility setting can be changed in Settings > General. + +## Simplified Chinese + +TagLauncher 是一个本地 macOS 工具,用于按标签整理和启动已安装的应用。不需要账号或演示登录。 + +测试方式: + +1. 启动 TagLauncher。 +2. 点击菜单栏图标打开 App Grid,或按 Option-Shift-Space。 +3. 在 App Grid 中按 Space 打开 Quick Search。 +4. 创建或使用一个标签分组,在同一个分组内拖动应用图标即可调整显示顺序。 +5. 打开 Settings > Data,可以导出或导入本地分类布局。 + +版本 7.9.0 新增标签分组内的应用手动排序。排序数据作为本地分类布局的一部分保存。本应用不收集用户数据,不包含分析、广告、追踪、账号或云同步。 + +如果 Dock 图标被隐藏,菜单栏图标仍可使用。Dock 显示设置可在 Settings > General 中调整。 diff --git a/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_CONNECT_METADATA.md b/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_CONNECT_METADATA.md new file mode 100644 index 0000000..588d0bb --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_CONNECT_METADATA.md @@ -0,0 +1,114 @@ +# App Store Connect Metadata Draft + +Generated: 2026-06-12 + +## App Information + +- Name: `TagLauncher` +- Bundle ID: `com.taglauncher.app` +- SKU: `taglauncher-macos` +- Category: `Utilities` +- Version: `7.9.0` +- Build: `20260612.1121` +- Minimum macOS: `14.0` + +## URLs + +- Marketing URL: `https://shanghai3168.github.io/taglauncher/index.html` +- Support URL: `https://shanghai3168.github.io/taglauncher/support.html` +- Privacy Policy URL: `https://shanghai3168.github.io/taglauncher/privacy.html` +- Chinese Privacy Policy URL: `https://shanghai3168.github.io/taglauncher/privacy-zh.html` + +## Subtitle Options + +- English: `Tag-based app launcher` +- English: `Beyond Launchpad folders` +- Simplified Chinese: `标签化应用启动器` + +## What's New + +### English + +Version 7.9.0 adds manual app ordering inside each tag group. Drag apps within the same group to choose the display order, and TagLauncher will keep that order across refreshes, restarts, language changes, import/export, and layout restore. + +This update also keeps the recent Quick Search localized-name fixes, SmartStart stability improvements, macOS 14 compatibility work, and window behavior regressions. + +### Simplified Chinese + +版本 7.9.0 新增标签分组内的应用手动排序。你可以在同一个分组内拖动应用来调整显示顺序;刷新、重启、切换语言、导入导出和恢复布局时都会保留这个顺序。 + +本版本也继续包含近期的 Quick Search 本地化名称修复、SmartStart 稳定性改进、macOS 14 兼容性调整和窗口行为回归修复。 + +## Description Draft + +### English + +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. +- Reorder apps inside each tag group. +- Tune icon size, tag position, app list style, and Dock visibility. +- Import and export your category layout. +- Works across multiple displays and fullscreen Spaces. +- Keeps data local on your Mac, with no account required. + +### Simplified Chinese + +TagLauncher 是一个基于标签的 Mac 应用启动器。 + +你可以把已安装的应用整理成可视化标签分组,用全局快捷键唤出应用网格,也可以通过 Quick Search 直接搜索应用、标签和备注。它适合安装了很多应用、希望更快找到目标应用的人。 + +亮点: + +- 使用 Option-Shift-Space 打开应用网格。 +- 使用 Quick Search 搜索应用、标签和备注。 +- 用自定义标签整理应用。 +- 在同一个标签分组内手动调整应用顺序。 +- 可调整图标大小、标签位置、列表样式和 Dock 显示。 +- 支持分类布局的导入和导出。 +- 支持多显示器和全屏 Space 场景。 +- 数据保存在本机,无需账号。 + +## Keywords + +English: + +`launcher,launchpad,tags,apps,organizer,notes,backup,hotkey,search,utility,macos` + +Simplified Chinese: + +`启动器,启动台,标签,应用,整理,排序,备忘,备份,快捷键,搜索,效率,工具` + +## Promotional Text + +English: + +`Organize Mac apps by tag, reorder each group by drag, and launch faster with a keyboard-friendly grid and Quick Search.` + +Simplified Chinese: + +`用标签整理 Mac 应用,拖拽调整分组内顺序,再用快捷键和 Quick Search 更快启动应用。` + +## App Privacy Recommended Answers + +- Data collection: `No, this app does not collect data` +- Tracking: `No` +- Analytics: `No` +- Ads: `No` +- Data linked to user: `No` + +Explanation: + +TagLauncher indexes installed apps locally so users can organize and launch them. Tags, notes, preferences, app order, and layout data stay on the user's Mac. The app does not include ads, analytics SDKs, tracking, account registration, or cloud sync in this build. + +## App Review Information + +- Demo account required: `No` +- Contact email: `shanghai3168@gmail.com` +- Review notes: use `APP_REVIEW_NOTES.md` diff --git a/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_RELEASE_CHECKLIST.md b/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_RELEASE_CHECKLIST.md new file mode 100644 index 0000000..fb90549 --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/APP_STORE_RELEASE_CHECKLIST.md @@ -0,0 +1,46 @@ +# App Store Release Checklist + +Version: `7.9.0` + +Build: `20260612.1121` + +## Before Upload + +- [x] Source commit frozen: `cc75eee3160d200410dd84e5361dc11af7f01baa` +- [x] Release directory created under `src/Release/AppStore-7.9.0-20260612.1121` +- [x] DMG generated and verified +- [x] App Store `.pkg` generated with Installer certificate +- [x] Final `.pkg` expanded and inspected +- [x] Bundle ID, version, build, category, and minimum macOS verified +- [x] Embedded provisioning profile verified +- [x] Signed entitlements verified +- [x] `com.apple.quarantine` absent from expanded package +- [x] SHA256 recorded +- [x] Release tag planned: `v7.9.0-build20260612.1121` + +## Upload With Transporter + +1. Open Transporter for macOS. +2. Add this package: + +```text +/Users/ar/Projects/Taglauncher/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg +``` + +3. Deliver the package. +4. Wait for App Store Connect processing to finish. +5. In App Store Connect, open the TagLauncher macOS version page. +6. Select build `20260612.1121` for version `7.9.0`. +7. Fill metadata from `APP_STORE_CONNECT_METADATA.md`. +8. Fill review notes from `APP_REVIEW_NOTES.md`. +9. Submit for review. + +## Do Not Upload + +- Do not upload `Archive/TagLauncher-7.9.0-build20260612.1121.dmg`. +- Do not upload any temporary package under `/private/tmp` or `/var/folders`. + +## After Upload + +- Record App Store Connect processing result. +- If Apple rejects the binary, do not reuse the same build number for a new package. Increment `CFBundleVersion` with a new `YYYYMMDD.HHMM` build. diff --git a/src/Release/AppStore-7.9.0-20260612.1121/Archive/TagLauncher-7.9.0-build20260612.1121.dmg b/src/Release/AppStore-7.9.0-20260612.1121/Archive/TagLauncher-7.9.0-build20260612.1121.dmg new file mode 100644 index 0000000..fb90091 --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/Archive/TagLauncher-7.9.0-build20260612.1121.dmg Binary files differ diff --git a/src/Release/AppStore-7.9.0-20260612.1121/PKG_PREFLIGHT_REPORT.md b/src/Release/AppStore-7.9.0-20260612.1121/PKG_PREFLIGHT_REPORT.md new file mode 100644 index 0000000..71c340d --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/PKG_PREFLIGHT_REPORT.md @@ -0,0 +1,56 @@ +# TagLauncher 7.9.0 App Store `.pkg` 预检报告 + +生成日期:2026-06-12 + +上传包: + +`Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg` + +SHA256: + +`9ccd96344487844f615616edb14d297cd9a197cca7a0a82d1cbd0dd29387a5bd` + +## Build Inputs + +| 项目 | 值 | +| --- | --- | +| Version | `7.9.0` | +| Build | `20260612.1121` | +| Bundle ID | `com.taglauncher.app` | +| Team ID | `CR3J54M8BQ` | +| Minimum macOS | `14.0` | +| Category | `public.app-category.utilities` | +| App signing identity | `0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C` | +| Installer signing identity | `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` | +| Provisioning profile | `TagLauncher Mac App Store 20260605.2337` | +| Profile UUID | `da7839d6-2489-4272-b999-c61efccfe473` | +| Profile expiration | `2027-06-04 21:48:21 HKT` | + +## Verification + +| 检查项 | 结果 | +| --- | --- | +| `.pkg` 文件生成 | PASS | +| `.pkg` Installer 证书签名 | PASS | +| 展开最终 `.pkg` 并找到 `TagLauncher.app` | PASS | +| Bundle ID | PASS: `com.taglauncher.app` | +| `CFBundleShortVersionString` | PASS: `7.9.0` | +| `CFBundleVersion` | PASS: `20260612.1121` | +| `LSMinimumSystemVersion` | PASS: `14.0` | +| `LSApplicationCategoryType` | PASS: `public.app-category.utilities` | +| 嵌入 `embedded.provisionprofile` | PASS | +| Profile application identifier | PASS: `CR3J54M8BQ.com.taglauncher.app` | +| Signed application identifier | PASS: `CR3J54M8BQ.com.taglauncher.app` | +| Signed team identifier | PASS: `CR3J54M8BQ` | +| Signed sandbox entitlement | PASS | +| Signed user-selected file entitlement | PASS | +| Signed keychain access groups | PASS: `CR3J54M8BQ.*` | +| Expanded package has `com.apple.quarantine` | PASS: `0` | +| Package payload AppleDouble `._*` entries | PASS: `0` | +| Executable architecture | PASS: `arm64` | + +## Next Upload Step + +Use Transporter and select: + +`/Users/ar/Projects/Taglauncher/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg` diff --git a/src/Release/AppStore-7.9.0-20260612.1121/QA_RELEASE_EVIDENCE.md b/src/Release/AppStore-7.9.0-20260612.1121/QA_RELEASE_EVIDENCE.md new file mode 100644 index 0000000..bf8e8e8 --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/QA_RELEASE_EVIDENCE.md @@ -0,0 +1,55 @@ +# QA Evidence - TagLauncher 7.9.0 build 20260612.1121 + +## Target + +- Version: `7.9.0` +- Build: `20260612.1121` +- Source commit: `cc75eee3160d200410dd84e5361dc11af7f01baa` +- DMG: `Archive/TagLauncher-7.9.0-build20260612.1121.dmg` +- PKG: `Upload/TagLauncher-7.9.0-build20260612.1121.pkg` + +## Automated QA + +| Check | Result | +| --- | --- | +| `git diff --check` | PASS | +| `Scripts/app_ordering_data_qa.sh` | PASS | +| `Scripts/macos14_availability_typecheck_qa.sh` | PASS | +| `Scripts/macos14_build_metadata_qa.sh` | PASS | +| `Scripts/quick_search_app_name_qa.sh` | PASS | +| `Scripts/quick_search_system_app_qa.sh` | PASS | +| `Scripts/smartstart_catalog_resource_qa.sh` | PASS | +| `APP_BUILD=20260612.1121 Scripts/window_logic_qa.sh` | PASS | + +## Package Verification + +| Check | Result | +| --- | --- | +| DMG generated | PASS | +| `hdiutil verify` | PASS | +| DMG mount contains `TagLauncher.app` and `Applications` symlink | PASS | +| Mounted app version/build | PASS: `7.9.0 / 20260612.1121` | +| App Store `.pkg` generated | PASS | +| `.pkg` Installer certificate signature | PASS | +| Expanded `.pkg` contains `TagLauncher.app` | PASS | +| Bundle ID | PASS: `com.taglauncher.app` | +| Minimum macOS | PASS: `14.0` | +| Embedded provisioning profile | PASS | +| Signed application identifier | PASS: `CR3J54M8BQ.com.taglauncher.app` | +| Signed team identifier | PASS: `CR3J54M8BQ` | +| Sandbox entitlement | PASS | +| User-selected file read/write entitlement | PASS | +| Keychain access group | PASS: `CR3J54M8BQ.*` | +| Expanded package quarantine xattr | PASS: `0` | +| Package payload AppleDouble entries | PASS: `0` | +| Executable architecture | PASS: `arm64` | + +## Hashes + +- DMG SHA256: `12be827edde9ebe56dd63785eb778b48d69be80214b8bb0c850efb4d601c0adf` +- PKG SHA256: `9ccd96344487844f615616edb14d297cd9a197cca7a0a82d1cbd0dd29387a5bd` + +## Notes + +- The package is arm64-only, consistent with the current build pipeline. +- `pkgutil --check-signature` reports a valid Apple-issued Installer certificate chain on this machine. diff --git a/src/Release/AppStore-7.9.0-20260612.1121/README.md b/src/Release/AppStore-7.9.0-20260612.1121/README.md new file mode 100644 index 0000000..e1289ea --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/README.md @@ -0,0 +1,29 @@ +# TagLauncher 7.9.0 App Store Release Pack + +This directory freezes TagLauncher `7.9.0` build `20260612.1121` for App Store upload. + +## Upload Package + +Upload this file with Transporter: + +```text +/Users/ar/Projects/Taglauncher/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg +``` + +Do not upload the DMG in `Archive/`; the DMG is only for local rollback and smoke testing. + +## Artifacts + +- App Store upload pkg: `Upload/TagLauncher-7.9.0-build20260612.1121.pkg` +- Local archive DMG: `Archive/TagLauncher-7.9.0-build20260612.1121.dmg` +- Source commit: `cc75eee3160d200410dd84e5361dc11af7f01baa` +- Release tag: `v7.9.0-build20260612.1121` + +## Files + +- `APP_STORE_CONNECT_METADATA.md`: App Store Connect fields and copy. +- `APP_STORE_RELEASE_CHECKLIST.md`: upload checklist. +- `APP_REVIEW_NOTES.md`: review notes for Apple. +- `PKG_PREFLIGHT_REPORT.md`: local package inspection report. +- `QA_RELEASE_EVIDENCE.md`: QA evidence. +- `RELEASE_MANIFEST.md`: reproducible release manifest. diff --git a/src/Release/AppStore-7.9.0-20260612.1121/RELEASE_MANIFEST.md b/src/Release/AppStore-7.9.0-20260612.1121/RELEASE_MANIFEST.md new file mode 100644 index 0000000..cfbb342 --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/RELEASE_MANIFEST.md @@ -0,0 +1,73 @@ +# Release Manifest - TagLauncher 7.9.0 build 20260612.1121 + +## Identity + +- Product: TagLauncher +- Version: `7.9.0` +- Build: `20260612.1121` +- Bundle ID: `com.taglauncher.app` +- Minimum macOS: `14.0` +- Category: `public.app-category.utilities` +- Generated at: `2026-06-12 11:31 HKT` +- Branch: `codex/7.9-app-ordering` +- Source commit: `cc75eee3160d200410dd84e5361dc11af7f01baa` +- Release tag: `v7.9.0-build20260612.1121` + +## Artifacts + +- Local archive DMG: `Release/AppStore-7.9.0-20260612.1121/Archive/TagLauncher-7.9.0-build20260612.1121.dmg` +- App Store upload pkg: `Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg` +- DMG SHA256: `12be827edde9ebe56dd63785eb778b48d69be80214b8bb0c850efb4d601c0adf` +- PKG SHA256: `9ccd96344487844f615616edb14d297cd9a197cca7a0a82d1cbd0dd29387a5bd` +- DMG size: `6052912` bytes +- PKG size: `5867022` bytes + +## Build Commands + +```bash +cd /Users/ar/Projects/Taglauncher/src +APP_BUILD=20260612.1121 bash build.sh +bash make_dmg.sh +cp build/TagLauncher.dmg build/TagLauncher-7.9.0-build20260612.1121.dmg +``` + +## App Store Package Commands + +```bash +codesign --force --deep --options runtime \ + --sign 0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C \ + --entitlements /tmp/.../TagLauncher-AppStore-full.entitlements \ + /tmp/.../stage/TagLauncher.app + +productbuild \ + --component /tmp/.../stage/TagLauncher.app /Applications \ + --sign "3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)" \ + build/AppStore/TagLauncher-7.9.0-build20260612.1121.pkg +``` + +## Verification Commands + +```bash +git diff --check +bash Scripts/app_ordering_data_qa.sh +bash Scripts/macos14_availability_typecheck_qa.sh +bash Scripts/macos14_build_metadata_qa.sh +bash Scripts/quick_search_app_name_qa.sh +bash Scripts/quick_search_system_app_qa.sh +bash Scripts/smartstart_catalog_resource_qa.sh +APP_BUILD=20260612.1121 bash Scripts/window_logic_qa.sh +hdiutil verify build/TagLauncher-7.9.0-build20260612.1121.dmg +pkgutil --check-signature build/AppStore/TagLauncher-7.9.0-build20260612.1121.pkg +pkgutil --expand-full build/AppStore/TagLauncher-7.9.0-build20260612.1121.pkg /tmp/pkg-preflight +``` + +## Release Scope + +- Adds same-container App ordering in App Grid. +- Keeps cross-container move, Option copy, empty-space tag removal, Apple built-in protection, and Quick Search ranking behavior unchanged. +- Preserves the macOS 14 compatibility changes and recent Quick Search, SmartStart, settings, edit toolbar, and window logic fixes. + +## Apple Upload + +- Upload the `.pkg` in `Upload/`, not the `.dmg` in `Archive/`. +- After Transporter upload, wait for App Store Connect processing to finish, then select build `20260612.1121` for version `7.9.0`. diff --git a/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg b/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg new file mode 100644 index 0000000..c824f0b --- /dev/null +++ b/src/Release/AppStore-7.9.0-20260612.1121/Upload/TagLauncher-7.9.0-build20260612.1121.pkg Binary files differ -- Gitblit v1.9.3