From f6277821216390d417195af0860eca0e8d8e37ae Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 26 Jun 2026 18:09:11 +0800
Subject: [PATCH] Archive 8.1.0 App Store release

---
 src/Release/AppStore-8.1.0-20260626.1726/QA_RELEASE_EVIDENCE.md                           |   52 +++++++
 src/Release/AppStore-8.1.0-20260626.1726/RELEASE_MANIFEST.md                              |   89 ++++++++++++
 src/Release/AppStore-8.1.0-20260626.1726/PKG_PREFLIGHT_REPORT.md                          |   40 +++++
 src/Release/AppStore-8.1.0-20260626.1726/SHA256SUMS.txt                                   |    2 
 src/Release/AppStore-8.1.0-20260626.1726/APP_REVIEW_NOTES.md                              |   49 +++++++
 src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_CONNECT_METADATA.md                    |   44 ++++++
 src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg  |    0 
 src/Release/AppStore-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg |    0 
 src/Release/AppStore-8.1.0-20260626.1726/README.md                                        |   29 ++++
 src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_RELEASE_CHECKLIST.md                   |   85 ++++++++++++
 10 files changed, 390 insertions(+), 0 deletions(-)

diff --git a/src/Release/AppStore-8.1.0-20260626.1726/APP_REVIEW_NOTES.md b/src/Release/AppStore-8.1.0-20260626.1726/APP_REVIEW_NOTES.md
new file mode 100644
index 0000000..4933d3f
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/APP_REVIEW_NOTES.md
@@ -0,0 +1,49 @@
+# 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 preview display ordering.
+5. Create an empty tag in Settings > Tags; the empty tag remains visible in the App Grid with a minimal placeholder container.
+6. Drag an app to blank space outside containers to remove that tag assignment.
+7. Open Settings > General to hide or show App Grid usage tips.
+8. Open Settings > Theme to switch between free themes. Premium themes show the Pro unlock prompt and can be previewed.
+9. Open Settings > Data to export or import the local category layout. These actions are Pro features and show the Pro unlock prompt when locked.
+
+Version 8.1.0 build 20260626.1726 adds the Free + Pro model. Core app organization, launching, Quick Search, local tag editing, and the default/free themes remain usable without purchase. Pro unlock is a one-time purchase for premium themes, layout import/export, unlimited custom app notes, and persistent app ordering. Users who originally purchased TagLauncher before this Free + Pro version are automatically unlocked as Pro users.
+
+The in-app purchase product identifier is `com.taglauncher.pro.lifetime`.
+
+The app does not collect user data and does not use analytics, ads, tracking, accounts, or cloud sync. Local import/export uses user-selected files only.
+
+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 > Tags 创建一个空标签;空标签会继续显示在 App Grid 中,并带有最小占位容器。
+6. 把应用拖到容器外空白处,可以移除该标签归属。
+7. 打开 Settings > General,可以关闭或开启 App Grid 底部使用技巧。
+8. 打开 Settings > Theme,可以切换免费主题。高级主题会显示 Pro 解锁提示,并允许预览。
+9. 打开 Settings > Data,可以导出或导入本地分类布局。这两项属于 Pro 功能,锁定时会显示 Pro 解锁提示。
+
+版本 8.1.0 build 20260626.1726 新增免费版 + Pro 模式。应用整理、启动、Quick Search、本地标签编辑和默认 / 免费主题无需购买即可使用。Pro 是一次性购买,用于解锁高级主题、布局导入导出、无限自定义应用备注和应用排序持久化。早于免费版 + Pro 版本购买过 TagLauncher 的用户会自动获得 Pro。
+
+内购商品 ID 为 `com.taglauncher.pro.lifetime`。
+
+本应用不收集用户数据,不包含分析、广告、追踪、账号或云同步。本地导入导出只使用用户主动选择的文件。
+
+如果 Dock 图标被隐藏,菜单栏图标仍可使用。Dock 显示设置可在 Settings > General 中调整。
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_CONNECT_METADATA.md b/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_CONNECT_METADATA.md
new file mode 100644
index 0000000..b09c9ff
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_CONNECT_METADATA.md
@@ -0,0 +1,44 @@
+# App Store Connect Metadata Draft - 8.1.0
+
+## Version
+
+- Version: `8.1.0`
+- Build: `20260626.1726`
+- Upload package: `Upload/TagLauncher-8.1.0-build20260626.1726.pkg`
+- In-app purchase product: `com.taglauncher.pro.lifetime`
+
+## What's New - English
+
+TagLauncher now includes a Free + Pro model. Core local app organization, tag editing, launching, Quick Search, and the default/free themes remain available without purchase. Pro unlock is a one-time purchase for premium themes, layout import/export, unlimited custom notes, and persistent app ordering.
+
+This update also protects free previews from changing real user data and adds full localization coverage for the new Pro screens.
+
+## What's New - Simplified Chinese
+
+TagLauncher 现在加入免费版 + Pro 模式。基础的本地应用整理、标签编辑、应用启动、Quick Search 和默认 / 免费主题仍可免费使用。Pro 为一次性购买,可解锁高级主题、布局导入导出、无限自定义备注和应用排序持久化。
+
+本次更新也保护免费预览不写脏真实用户数据,并补齐了 Pro 相关界面的多语言文案。
+
+## Review Notes Source
+
+Use `APP_REVIEW_NOTES.md` for App Review Notes.
+
+## SOP Gate
+
+Before final App Store Connect submission:
+
+- Confirm the current App Store baseline / replaced build.
+- Review cumulative user-visible changelog entries from the baseline through `8.1.0`.
+- Confirm `com.taglauncher.pro.lifetime` exists and is attached to this app version.
+- Confirm Missing Compliance if App Store Connect asks for it.
+
+## Forbidden Terms Check
+
+The draft above intentionally avoids:
+
+- `Launchpad`
+- `LaunchPad`
+- `启动台`
+- `Spotlight 替代`
+- `Launchpad 替代`
+- Finder / Dock / Spotlight comparison marketing claims
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_RELEASE_CHECKLIST.md b/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_RELEASE_CHECKLIST.md
new file mode 100644
index 0000000..9bf65d4
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/APP_STORE_RELEASE_CHECKLIST.md
@@ -0,0 +1,85 @@
+# App Store Release Checklist
+
+Version: `8.1.0`
+
+Build: `20260626.1726`
+
+Submission type: new App Store build for version `8.1.0`.
+
+## Before Upload
+
+- [x] Source commit frozen: `2c36a4a39da126c30a5a5daedf501229412b2e1a`
+- [x] Release tag created: `v8.1.0-build20260626.1726`
+- [x] Release directory created under `src/Release/AppStore-8.1.0-20260626.1726`
+- [x] Marketing version set to `8.1.0`
+- [x] Build set to `20260626.1726`
+- [x] `CHANGELOG.md` includes 8.1.0
+- [x] CODEGRAPH checked and updated
+- [x] DMG generated and verified for local rollback only
+- [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] AppleDouble `._*` files absent from expanded package
+- [x] SHA256 recorded
+- [x] ASC metadata draft scanned for SOP forbidden words
+- [ ] In-app purchase product `com.taglauncher.pro.lifetime` confirmed in App Store Connect
+- [ ] In-app purchase product attached to version `8.1.0`
+- [ ] Current App Store baseline / version being replaced confirmed before filling What's New
+- [ ] Cumulative changelog range reviewed from the current App Store baseline through `8.1.0`
+- [ ] User-visible changes from all intermediate versions considered for What's New
+- [ ] Excluded changelog items have explicit reasons: internal QA, build tooling, refactor, or non-user-visible
+- [ ] Simplified Chinese and English What's New reviewed by the user before final ASC submission
+
+## Upload With Transporter
+
+1. Open Transporter for macOS.
+2. Add this package:
+
+```text
+/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg
+```
+
+3. Deliver the package.
+4. Wait for App Store Connect processing to finish.
+5. In App Store Connect, open the TagLauncher macOS version `8.1.0` page.
+6. Select build `20260626.1726`.
+7. Attach / confirm in-app purchase product `com.taglauncher.pro.lifetime`.
+8. If `Missing Compliance` appears, complete the export compliance question and choose `None of the algorithms mentioned above`.
+9. Before filling What's New, confirm the current App Store baseline / version being replaced and review the cumulative `CHANGELOG.md` range through `8.1.0`.
+10. Fill metadata from `APP_STORE_CONNECT_METADATA.md`, but only after the cumulative What's New copy has been reviewed by the user.
+11. Fill review notes from `APP_REVIEW_NOTES.md`.
+12. Check both Simplified Chinese and English metadata for forbidden trademark-risk phrases.
+13. Add for Review only after user approval of What's New.
+14. Submit for Review.
+15. Confirm the final status is Waiting for Review / 正在等待审核.
+
+## Do Not Upload
+
+- Do not upload `Archive/TagLauncher-8.1.0-build20260626.1726.dmg`.
+- Do not upload any temporary package under `/private/tmp`, `/tmp`, or `/var/folders`.
+- Do not leave an older build selected on the App Store Connect version page.
+- Do not submit before `com.taglauncher.pro.lifetime` is configured for review.
+
+## SOP Forbidden Metadata Terms
+
+The prepared metadata must not include:
+
+- `Launchpad`
+- `LaunchPad`
+- `启动台`
+- `Spotlight 替代`
+- `Launchpad 替代`
+- `超越原生 LaunchPad`
+- Finder / Dock / Spotlight comparison marketing claims
+
+## After Upload
+
+- Record Transporter upload result.
+- Record App Store Connect processing result.
+- Record whether Missing Compliance appeared and how it was answered.
+- Record whether the in-app purchase product was attached.
+- Record the App Store baseline / replaced version used to generate cumulative What's New.
+- 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-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg b/src/Release/AppStore-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg
new file mode 100644
index 0000000..67af6b2
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg
Binary files differ
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/PKG_PREFLIGHT_REPORT.md b/src/Release/AppStore-8.1.0-20260626.1726/PKG_PREFLIGHT_REPORT.md
new file mode 100644
index 0000000..2f71dde
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/PKG_PREFLIGHT_REPORT.md
@@ -0,0 +1,40 @@
+# PKG Preflight Report - TagLauncher 8.1.0 build 20260626.1726
+
+Package:
+
+`Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg`
+
+## Signing
+
+| Item | Value |
+| --- | --- |
+| App signing identity | `3rd Party Mac Developer Application: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` |
+| Installer signing identity | `3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)` |
+| Team ID | `CR3J54M8BQ` |
+| Profile | `TagLauncher Mac App Store 20260605.2337` |
+| Profile expiration | `2027-06-04T13:48:21Z` |
+
+## Expanded Package Checks
+
+| Check | Result |
+| --- | --- |
+| `pkgutil --expand-full` | PASS |
+| `CFBundleIdentifier` | `com.taglauncher.app` |
+| `CFBundleShortVersionString` | `8.1.0` |
+| `CFBundleVersion` | `20260626.1726` |
+| `Contents/embedded.provisionprofile` | PASS |
+| `codesign --verify --deep --strict` on expanded app | PASS |
+| `com.apple.application-identifier` | `CR3J54M8BQ.com.taglauncher.app` |
+| `com.apple.developer.team-identifier` | `CR3J54M8BQ` |
+| `com.apple.security.app-sandbox` | PASS |
+| `com.apple.security.files.user-selected.read-write` | PASS |
+| `com.apple.quarantine` | Absent |
+| AppleDouble `._*` files | Absent |
+
+## Upload Reminder
+
+Use this file in Transporter:
+
+`/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg`
+
+Do not upload the DMG from `Archive/`.
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/QA_RELEASE_EVIDENCE.md b/src/Release/AppStore-8.1.0-20260626.1726/QA_RELEASE_EVIDENCE.md
new file mode 100644
index 0000000..64707cd
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/QA_RELEASE_EVIDENCE.md
@@ -0,0 +1,52 @@
+# QA Release Evidence - TagLauncher 8.1.0 build 20260626.1726
+
+## Source Freeze
+
+| Item | Result |
+| --- | --- |
+| Source commit | `2c36a4a39da126c30a5a5daedf501229412b2e1a` |
+| Release tag | `v8.1.0-build20260626.1726` |
+| Version / build in app bundle | `8.1.0` / `20260626.1726` |
+| Minimum macOS | `14.0` |
+| CODEGRAPH | Updated and committed |
+
+## QA Commands
+
+| Command | Result |
+| --- | --- |
+| `bash Scripts/pro_feature_gate_qa.sh` | PASS |
+| `bash Scripts/pro_localization_qa.sh` | PASS |
+| `bash Scripts/theme_settings_qa.sh` | PASS |
+| `bash Scripts/app_ordering_data_qa.sh` | PASS |
+| `bash Scripts/appgrid_startup_loading_qa.sh` | PASS |
+| `bash Scripts/usage_tips_qa.sh` | PASS |
+| `bash Scripts/usage_tips_close_reminder_qa.sh` | PASS |
+| `bash Scripts/smart_category_localization_qa.sh` | PASS |
+| `bash Scripts/apple_default_note_policy_qa.sh` | PASS |
+| `bash Scripts/apple_default_apps_resource_qa.sh` | PASS |
+| `bash Scripts/window_logic_qa.sh` | PASS |
+| `bash Scripts/macos14_build_metadata_qa.sh` | PASS |
+| `bash Scripts/macos14_availability_typecheck_qa.sh` | PASS |
+| `bash Scripts/quick_search_app_name_qa.sh` | SKIP/PASS: Sunlogin wrapper fixture not installed; script exited 0 |
+
+## Build Verification
+
+| Check | Result |
+| --- | --- |
+| `APP_BUILD=20260626.1726 bash build.sh` | PASS |
+| `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app` | PASS |
+| `spctl --assess --type execute --verbose=4 build/TagLauncher.app` | Local ad-hoc build rejected by Gatekeeper; expected for non-notarized local DMG |
+| `hdiutil verify build/TagLauncher-8.1.0-build20260626.1726.dmg` | PASS |
+| Mounted DMG contains `TagLauncher.app` | PASS |
+| Mounted DMG contains `Applications -> /Applications` symlink | PASS |
+| `pkgutil --check-signature build/AppStore/TagLauncher-8.1.0-build20260626.1726.pkg` | PASS |
+| Expanded PKG bundle id/version/build | PASS: `com.taglauncher.app`, `8.1.0`, `20260626.1726` |
+| Expanded PKG embedded provisioning profile | PASS |
+| Expanded PKG sandbox entitlements | PASS |
+| Expanded PKG quarantine xattr absent | PASS |
+| Expanded PKG AppleDouble files absent | PASS |
+
+## Notes
+
+- Pro translation QA intentionally uses static completeness and fallback checks only; no `translategemma` / Ollama call is used in this release.
+- The App Store package uses the Mac App Store signing path. Upload `Upload/*.pkg`; keep `Archive/*.dmg` only for local install and rollback.
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/README.md b/src/Release/AppStore-8.1.0-20260626.1726/README.md
new file mode 100644
index 0000000..eef4419
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/README.md
@@ -0,0 +1,29 @@
+# TagLauncher 8.1.0 build 20260626.1726 Release Pack
+
+This directory contains the App Store release materials for TagLauncher `8.1.0` build `20260626.1726`.
+
+## Upload Artifact
+
+Upload this file with Transporter:
+
+`/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg`
+
+## Local Rollback Artifact
+
+Use this file for local install / rollback testing only:
+
+`/Users/ar/Projects/Taglauncher/src/Release/AppStore-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg`
+
+## Fixed Source Point
+
+- Commit: `2c36a4a39da126c30a5a5daedf501229412b2e1a`
+- Tag: `v8.1.0-build20260626.1726`
+
+## Documents
+
+- `RELEASE_MANIFEST.md`: build identity, artifacts, hashes, commands, scope.
+- `QA_RELEASE_EVIDENCE.md`: QA and package verification evidence.
+- `PKG_PREFLIGHT_REPORT.md`: expanded package signing and entitlement checks.
+- `APP_STORE_CONNECT_METADATA.md`: metadata draft and What's New starter copy.
+- `APP_REVIEW_NOTES.md`: review notes in English and Simplified Chinese.
+- `APP_STORE_RELEASE_CHECKLIST.md`: Transporter / App Store Connect checklist.
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/RELEASE_MANIFEST.md b/src/Release/AppStore-8.1.0-20260626.1726/RELEASE_MANIFEST.md
new file mode 100644
index 0000000..6944d61
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/RELEASE_MANIFEST.md
@@ -0,0 +1,89 @@
+# Release Manifest - TagLauncher 8.1.0 build 20260626.1726
+
+## Identity
+
+- Product: TagLauncher
+- Version: `8.1.0`
+- Build: `20260626.1726`
+- Bundle ID: `com.taglauncher.app`
+- Minimum macOS: `14.0`
+- Category: `public.app-category.utilities`
+- Generated at: `2026-06-26 18:03 CST`
+- Branch: `codex/appgrid-usage-tips`
+- Source commit: `2c36a4a39da126c30a5a5daedf501229412b2e1a`
+- Release tag: `v8.1.0-build20260626.1726`
+- CODEGRAPH status: checked and updated in source commit `2c36a4a`.
+
+## Artifacts
+
+- Local rollback DMG: `Release/AppStore-8.1.0-20260626.1726/Archive/TagLauncher-8.1.0-build20260626.1726.dmg`
+- App Store upload PKG: `Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg`
+- DMG SHA256: `346fc3c9bd0fcdb346d3f4ca83ffa46b34d3a5187155253d5dae7d999c39060f`
+- PKG SHA256: `32de0ef0af979b2a35d60c2b1bca7461292db86781e4c64e694128470ddde264`
+- App binary SHA256: `710073b46e176ce6224f5acfaca4e0e5d86b286355fc0bef335cab0d69f02884`
+- DMG size: `6241554` bytes
+- PKG size: `6011051` bytes
+
+## Build Commands
+
+```bash
+cd /Users/ar/Projects/Taglauncher/src
+APP_BUILD=20260626.1726 bash build.sh
+bash make_dmg.sh
+cp build/TagLauncher.dmg build/TagLauncher-8.1.0-build20260626.1726.dmg
+```
+
+## App Store Package Commands
+
+```bash
+cd /Users/ar/Projects/Taglauncher/src
+
+PROFILE="$HOME/Library/MobileDevice/Provisioning Profiles/TagLauncher_Mac_App_Store_202606052337.provisionprofile"
+APP_IDENTITY="0D7D5484FDE4EC1CA2C9225F1E71E65A256A1E7C"
+INSTALLER_IDENTITY="3rd Party Mac Developer Installer: Hainan Wanxing Technology Co., Ltd. (CR3J54M8BQ)"
+
+# Copy build/TagLauncher.app to a temporary staging directory, embed the profile,
+# clear xattrs, sign with runtime + sandbox entitlements, then productbuild.
+productbuild --component /tmp/.../stage/TagLauncher.app /Applications \
+  --sign "$INSTALLER_IDENTITY" \
+  build/AppStore/TagLauncher-8.1.0-build20260626.1726.pkg
+```
+
+The staged App Store app was signed with:
+
+- `com.apple.application-identifier = CR3J54M8BQ.com.taglauncher.app`
+- `com.apple.developer.team-identifier = CR3J54M8BQ`
+- `com.apple.security.app-sandbox = true`
+- `com.apple.security.files.user-selected.read-write = true`
+- `keychain-access-groups = [CR3J54M8BQ.*]`
+
+## Verification Commands
+
+```bash
+bash Scripts/pro_feature_gate_qa.sh
+bash Scripts/pro_localization_qa.sh
+bash Scripts/macos14_build_metadata_qa.sh
+bash Scripts/macos14_availability_typecheck_qa.sh
+codesign --verify --deep --strict --verbose=2 build/TagLauncher.app
+hdiutil verify build/TagLauncher-8.1.0-build20260626.1726.dmg
+hdiutil attach -readonly -nobrowse build/TagLauncher-8.1.0-build20260626.1726.dmg
+pkgutil --check-signature build/AppStore/TagLauncher-8.1.0-build20260626.1726.pkg
+pkgutil --expand-full build/AppStore/TagLauncher-8.1.0-build20260626.1726.pkg /tmp/taglauncher-pkg-preflight-8.1.0-180303
+codesign --verify --deep --strict --verbose=2 /tmp/taglauncher-pkg-preflight-8.1.0-180303/com.taglauncher.app.pkg/Payload/TagLauncher.app
+```
+
+## Release Scope
+
+- Adds the Free + Pro unlock model for TagLauncher.
+- Keeps core local tagging, app launching, Quick Search, default themes, Deep Blue, and Black available for free users.
+- Locks premium themes, layout import/export, unlimited custom notes, and persistent app sorting behind Pro.
+- Adds StoreKit 2 purchase, restore, transaction update listening, offline entitlement cache, and legacy paid-user unlock.
+- Protects free previews from dirtying real user data: premium theme previews do not persist, free sorting previews do not write container order, blocked notes do not mutate stored notes, and import/export is gated before file reads or writes.
+- Adds 29-language Pro copy and static QA for Pro localization and feature gates.
+
+## App Store Upload
+
+- Upload `Upload/TagLauncher-8.1.0-build20260626.1726.pkg`, not the DMG in `Archive/`.
+- Confirm the non-consumable in-app purchase product `com.taglauncher.pro.lifetime` exists in App Store Connect and is associated with version `8.1.0`.
+- If `Missing Compliance` appears, answer the encryption question with `None of the algorithms mentioned above`.
+- Before filling What's New, confirm the current App Store baseline / replaced build and review cumulative changelog entries through `8.1.0`.
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/SHA256SUMS.txt b/src/Release/AppStore-8.1.0-20260626.1726/SHA256SUMS.txt
new file mode 100644
index 0000000..2c06bbf
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/SHA256SUMS.txt
@@ -0,0 +1,2 @@
+346fc3c9bd0fcdb346d3f4ca83ffa46b34d3a5187155253d5dae7d999c39060f  Archive/TagLauncher-8.1.0-build20260626.1726.dmg
+32de0ef0af979b2a35d60c2b1bca7461292db86781e4c64e694128470ddde264  Upload/TagLauncher-8.1.0-build20260626.1726.pkg
diff --git a/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg b/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg
new file mode 100644
index 0000000..bb717ba
--- /dev/null
+++ b/src/Release/AppStore-8.1.0-20260626.1726/Upload/TagLauncher-8.1.0-build20260626.1726.pkg
Binary files differ

--
Gitblit v1.9.3