Ariver
2026-05-23 211eeed2112bec6bd1301c7a15d1e0deebe78226
Prepare Mac App Store release checklist
2 files added
175 ■■■■■ changed files
Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md 130 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.6.0-a416923/README.md 45 ●●●●● patch | view | raw | blame | history
Release/AppStore-7.6.0-a416923/APP_STORE_TODO.md
New file
@@ -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.
Release/AppStore-7.6.0-a416923/README.md
New file
@@ -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/)