Skip to content

Commit 9cd7ca5

Browse files
committed
Update RELEASE.md for manual App Store upload workflow
- Replaced automated upload commands with Xcode Organizer instructions - Updated troubleshooting section for App Store upload issues - Added manifest.json description length limit to common issues - Updated version checklist with manual upload step
1 parent c38c78e commit 9cd7ca5

1 file changed

Lines changed: 16 additions & 35 deletions

File tree

RELEASE.md

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -95,50 +95,29 @@ just builds # List available builds
9595

9696
For publishing on the Mac App Store.
9797

98-
### Full Pipeline
98+
### Build Archive
9999

100100
```bash
101101
just 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
```
122116
build/
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

144123
In [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:
265245
2. [ ] Create git tag: `git tag v0.0.X`
266246
3. [ ] Push tag: `git push origin v0.0.X`
267247
4. [ ] 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

Comments
 (0)