@@ -95,50 +95,29 @@ just builds # List available builds
9595
9696For publishing on the Mac App Store.
9797
98- ### Full Pipeline
98+ ### Build Archive
9999
100100``` bash
101101just release-appstore v0.0.6
102102```
103103
104- This runs: archive-appstore → upload-appstore (with validation)
105-
106- ### Step-by-Step
107-
108- ``` bash
109- # 1. Build and sign with Apple Distribution
110- just archive-appstore v0.0.6
104+ This creates an Xcode archive ready for manual upload.
111105
112- # 2. Validate package (optional, upload does this automatically)
113- just validate-appstore
106+ ### Upload via Xcode Organizer
114107
115- # 3. Upload to App Store Connect
116- just upload-appstore
117- ```
108+ 1 . Open the archive: ` open build/v0.0.6-appstore/CacheStatus.xcarchive `
109+ 2 . In Xcode Organizer: Click ** Distribute App** → ** App Store Connect**
110+ 3 . Follow the prompts to upload
111+ 4 . Submit for review in App Store Connect
118112
119113### Output
120114
121115```
122116build/
123117└── v0.0.6-appstore/
124- ├── CacheStatus.xcarchive # Xcode archive
125- ├── ExportOptions.plist # Export configuration
126- └── export/
127- └── CF Cache Status.pkg # App Store package
118+ └── CacheStatus.xcarchive # Xcode archive
128119```
129120
130- ### App Store Connect API (Optional)
131-
132- For automated uploads, you can use API keys instead of Apple ID:
133-
134- | Variable | Description |
135- | ------------------------- | ------------------------------------ |
136- | ` APPSTORE_API_KEY_ID ` | Key ID from App Store Connect |
137- | ` APPSTORE_API_ISSUER_ID ` | Issuer ID from App Store Connect |
138- | ` APPSTORE_API_KEY_PATH ` | Path to ` .p8 ` private key file |
139-
140- Generate keys at: App Store Connect → Users and Access → Keys
141-
142121### App Store Connect Setup
143122
144123In [ App Store Connect] ( https://appstoreconnect.apple.com ) , configure:
@@ -240,12 +219,13 @@ Common issues:
240219- Hardened runtime not enabled
241220- Unsigned frameworks/binaries
242221
243- ### App Store Validation Failed
222+ ### App Store Upload Failed
244223
245- The upload script validates before uploading. Common issues :
224+ Common issues when uploading via Xcode Organizer :
246225- Missing provisioning profile
247226- Bundle ID mismatch
248227- Version/build number conflicts
228+ - manifest.json description > 112 characters (Safari extensions)
249229
250230### Certificate Issues
251231
@@ -265,11 +245,12 @@ Before releasing a new version:
2652452 . [ ] Create git tag: ` git tag v0.0.X `
2662463 . [ ] Push tag: ` git push origin v0.0.X `
2672474 . [ ] Build releases:
268- - [ ] ` just release v0.0.X ` (direct)
248+ - [ ] ` just release v0.0.X ` (direct distribution )
269249 - [ ] ` just dmg v0.0.X ` (optional DMG installer)
270- - [ ] ` just release-appstore v0.0.X ` (App Store)
271- 5 . [ ] Create GitHub release with ` .zip ` (and optionally ` .dmg ` )
272- 6 . [ ] Submit App Store version in App Store Connect
250+ - [ ] ` just release-appstore v0.0.X ` (App Store archive)
251+ 5 . [ ] Create GitHub release with ` .zip ` and ` .dmg `
252+ 6 . [ ] Upload App Store build via Xcode Organizer
253+ 7 . [ ] Submit for review in App Store Connect
273254
274255> ** Note:** Version and build number are automatically set from the git tag.
275256> ` v0.0.8 ` → MARKETING_VERSION=0.0.8, BUILD=(commit count)
0 commit comments