From 211eeed2112bec6bd1301c7a15d1e0deebe78226 Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Sat, 23 May 2026 03:12:37 +0800 Subject: [PATCH] Prepare Mac App Store release checklist --- Release/AppStore-7.6.0-a416923/README.md | 45 +++++++++++++++ Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md | 130 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+), 0 deletions(-) diff --git a/Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md b/Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md new file mode 100644 index 0000000..6dfdf5c --- /dev/null +++ b/Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md @@ -0,0 +1,130 @@ +# TagLauncher Mac App Store TODO + +Baseline: `a416923` / `qa-passed-7.6.0-20260523` + +## 0. Go/No-Go Gate + +- [ ] Decide whether TagLauncher can ship through the Mac App Store or should remain direct-distribution only. +- [ ] Enable and test App Sandbox; Mac App Store distribution requires sandboxing. +- [ ] Audit whether these features survive sandboxing: + - [ ] Global hotkeys. + - [ ] Scanning installed apps. + - [ ] Launching selected apps. + - [ ] Import/export panels. + - [ ] Login-at-launch behavior. + - [ ] Window levels over fullscreen Spaces. +- [ ] Replace LaunchAgent writing with an App Store-safe login item approach if login launch remains required. +- [ ] Document any temporary sandbox exception entitlement and why review can verify it. + +## 1. Apple Account And App Record + +- [ ] Confirm Apple Developer Program membership is active. +- [ ] Accept current App Store Connect agreements. +- [ ] Complete tax and banking setup if the app will be paid. +- [ ] Create or confirm the App Store Connect app record: + - [ ] Platform: macOS. + - [ ] Name: `TagLauncher`. + - [ ] Bundle ID: `com.taglauncher.app`. + - [ ] SKU: choose a stable internal SKU, for example `taglauncher-macos`. + - [ ] Primary language. + - [ ] User access settings. +- [ ] Confirm the primary category matches the app bundle category. + +## 2. Build, Signing, And Packaging + +- [ ] Create an App Store signing path instead of the current ad-hoc local build. +- [ ] Add or generate an Xcode project/scheme if needed for App Store archive workflow. +- [ ] Add an entitlements file with App Sandbox enabled. +- [ ] Add only the minimum required sandbox entitlements. +- [ ] Verify `CFBundleShortVersionString` is `7.6.0`. +- [ ] Increment `CFBundleVersion` for every App Store upload attempt. +- [ ] Ensure the app icon includes App Store-ready sizes, including 1024x1024. +- [ ] Produce an App Store-signed build using Xcode or an equivalent supported workflow. +- [ ] Upload through Xcode, Transporter, altool, or App Store Connect API. +- [ ] Keep the direct-distribution DMG separate from the App Store upload artifact. + +## 3. Privacy, Security, And Compliance + +- [ ] Write and publish a privacy policy URL. +- [ ] Decide whether a privacy choices URL is needed. +- [ ] Complete App Store Connect app privacy answers. +- [ ] Audit local data: + - [ ] Tags and preferences. + - [ ] Installed app metadata. + - [ ] Imported/exported files. + - [ ] Crash or diagnostics data, if any. + - [ ] Network calls, if any. +- [ ] Add `PrivacyInfo.xcprivacy` if required by the final build setup or SDK usage. +- [ ] Confirm no undeclared third-party SDKs are bundled. +- [ ] Confirm encryption export compliance answer. +- [ ] Prepare user-facing wording for any macOS permissions used by the app. +- [ ] Confirm no private APIs or review-risky window behavior are used. + +## 4. Product Page Metadata + +- [ ] App name. +- [ ] Subtitle. +- [ ] Short promotional text, if applicable. +- [ ] Full description. +- [ ] Keywords. +- [ ] What's New for `7.6.0`. +- [ ] Support URL. +- [ ] Marketing URL, if available. +- [ ] Privacy policy URL. +- [ ] Copyright. +- [ ] License agreement choice. +- [ ] Age rating questionnaire. +- [ ] Content rights declaration. +- [ ] Price and availability. +- [ ] App Review contact information. +- [ ] App Review notes explaining: + - [ ] Global hotkey behavior. + - [ ] Fullscreen/multi-display overlay behavior. + - [ ] How to trigger appgrid and Quick Search. + - [ ] Any sandbox exception entitlement. + +## 5. Screenshots And Visual Assets + +- [ ] Capture clean macOS screenshots from the locked build. +- [ ] Include appgrid view. +- [ ] Include Quick Search view. +- [ ] Include Settings view. +- [ ] Include import/export flow if useful. +- [ ] Prepare localized screenshots only after English/Chinese core metadata is approved. +- [ ] Verify screenshots meet current App Store Connect specs. +- [ ] Prepare optional app preview video only if it helps review/marketing. + +## 6. QA For App Store Build + +- [ ] Run `Scripts/window_logic_qa.sh` against the App Store-signed sandboxed build. +- [ ] Repeat manual two-real-screen smoke test. +- [ ] Test fresh install with no existing user defaults. +- [ ] Test upgrade from the current direct-distribution build. +- [ ] Test first launch permission prompts. +- [ ] Test login item behavior. +- [ ] Test import/export under sandbox. +- [ ] Test force-quit window remains above TagLauncher. +- [ ] Verify Dock/menu bar behavior while appgrid is visible. +- [ ] Verify App Store build has no debug logging or temp files. + +## 7. Submission Flow + +- [ ] Upload build. +- [ ] Wait for App Store Connect processing. +- [ ] Resolve upload warnings/errors. +- [ ] Add processed build to the app version. +- [ ] Fill every required metadata field. +- [ ] Attach screenshots. +- [ ] Complete privacy questionnaire. +- [ ] Complete sandbox exception usage information, if any. +- [ ] Add for Review. +- [ ] Submit for Review. +- [ ] Track review status and respond to reviewer questions quickly. + +## 8. Release And Archive + +- [ ] Choose manual or automatic release after approval. +- [ ] Create a final git tag for the submitted build. +- [ ] Archive the exact submitted artifact, entitlements, provisioning profile notes, and App Store Connect metadata. +- [ ] Record review feedback and required follow-up fixes. +- [ ] Keep the direct DMG release path separate from Mac App Store releases. diff --git a/Release/AppStore-7.6.0-a416923/README.md b/Release/AppStore-7.6.0-a416923/README.md new file mode 100644 index 0000000..f688686 --- /dev/null +++ b/Release/AppStore-7.6.0-a416923/README.md @@ -0,0 +1,45 @@ +# TagLauncher App Store Release Prep + +This folder is the clean App Store preparation workspace for the locked QA-passed build. + +## Locked Baseline + +- Branch: `main` +- Commit: `a416923` +- Tag: `qa-passed-7.6.0-20260523` +- App version: `7.6.0` +- Build: `20260523.0303` +- QA script: `Scripts/window_logic_qa.sh` +- QA result: `ALL WINDOW LOGIC QA PASSED` + +## Local Artifacts + +- App: `/Users/ar/Projects/Taglauncher/build/TagLauncher.app` +- DMG: `/Users/ar/Projects/Taglauncher/build/TagLauncher.dmg` +- App size: `7.1M` +- DMG size: `5.6M` +- DMG SHA-256: `1bb9a25c911fc167da6e19b8d483bec9082f73ad2aefa73c1ce5efcdb55ad789` +- Executable SHA-256: `a89f8b3ed4c1ad80202a97f65934f7a5f9e8b5c578e7340bf06d59196e509389` + +Note: the current local artifact is ad-hoc signed. App Store submission still needs App Store signing, sandbox entitlements, and an uploadable App Store build. + +## Cleanup Done + +- Removed old untracked prep material at `Doc/Taglauncher-help`. +- Started App Store prep from the locked commit above. + +## Main Checklist + +Use [APP_STORE_TODO.md](APP_STORE_TODO.md) as the working checklist. + +## Apple References + +- [App Store Connect workflow](https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-workflow/) +- [Add a new app](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/) +- [Required, localizable, and editable properties](https://developer.apple.com/help/app-store-connect/reference/required-localizable-and-editable-properties/) +- [Upload builds](https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds/) +- [Submit an app](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app/) +- [App Sandbox](https://developer.apple.com/documentation/security/app-sandbox) +- [App Sandbox information](https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-sandbox-information/) +- [App privacy details](https://developer.apple.com/app-store/app-privacy-details/) +- [Upload app previews and screenshots](https://developer.apple.com/help/app-store-connect/manage-app-information/upload-app-previews-and-screenshots/) -- Gitblit v1.9.3