Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ cd StoreReady && make build
```bash
storeready playstore-checkup . # Google Play
storeready appstore-checkup . # Apple App Store
storeready release-checklist # Manual Apple release gates
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID> # ASC dry-run lane
```

Findings are sorted by severity:
Expand All @@ -61,6 +63,7 @@ Findings are sorted by severity:
| **Privacy** | — | PrivacyInfo.xcprivacy, Required Reason APIs |
| **Binary** | — | IPA inspection: icons, size, launch storyboard, ATS |
| **Store API** | — | App Store Connect: metadata, screenshots, builds |
| **Release lane** | — | `release-checklist` + `publish` (ASC CLI gated flow) |
| **Guidelines** | Built-in Play policy matrix | Built-in Apple Review Guidelines |
| **Policy checklist** | Automated + manual review items | Automated + manual review items |

Expand All @@ -75,6 +78,19 @@ Findings are sorted by severity:

All commands support `--format json` and `--output <file>` for pipeline integration.

## Apple End-to-End Lane

```bash
# 1) Manual/hybrid policy gates not fully automatable
storeready release-checklist --app-type all

# 2) Automated local + ASC gates, then ASC release dry-run
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID>

# 3) Real submit after review
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID> --confirm
```

## AI Integrations

**Claude Code:**
Expand All @@ -93,4 +109,4 @@ Then invoke with `$store-preflight-compliance` in either tool.

---

[Google Play](docs/google-play.md) &nbsp;&bull;&nbsp; [Apple App Store](docs/apple-app-store.md) &nbsp;&bull;&nbsp; [All Commands](docs/commands.md) &nbsp;&bull;&nbsp; [License (MPL-2.0)](LICENSE)
[Google Play](docs/google-play.md) &nbsp;&bull;&nbsp; [Apple App Store](docs/apple-app-store.md) &nbsp;&bull;&nbsp; [All Commands](docs/commands.md) &nbsp;&bull;&nbsp; [Release Notes](RELEASE_NOTES.md) &nbsp;&bull;&nbsp; [License (MPL-2.0)](LICENSE)
21 changes: 21 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Release Notes

## 2026-03-24

### Added
- `storeready publish` command for an end-to-end Apple release lane:
- Runs local StoreReady preflight gates
- Runs ASC metadata scan gates
- Executes `asc release run` (dry-run by default, `--confirm` for real submission)
- `storeready release-checklist` command to output structured manual/hybrid App Store release gates with app-type profiles.

### Apple ASC Verification Coverage Expanded
- Added checks for:
- content rights declaration
- privacy policy URL coverage on app-info localizations
- version copyright metadata presence

### Documentation Updates
- Updated `README.md` with Apple end-to-end lane usage.
- Updated `docs/commands.md` with `publish` and `release-checklist`.
- Updated `docs/apple-app-store.md` with corrected scan tier descriptions and release-lane docs.
36 changes: 32 additions & 4 deletions docs/apple-app-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,38 @@ storeready scan --app-id 6758967212

| Tier | Checks |
|------|--------|
| 1 | Metadata completeness — descriptions, keywords, URLs |
| 2 | Content analysis — platform references, placeholders |
| 3 | Binary inspection — build processing status |
| 4 | Historical pattern matching — age rating, encryption |
| 1 | Metadata/completeness — app access, version state, metadata limits, screenshots, build status, age rating, encryption, content rights, privacy policy URL, copyright, territory/pricing |
| 2 | Content analysis — platform references, placeholders, URL reachability, external TestFlight coverage |
| 3 | Reserved for future binary/API expansion |
| 4 | Reserved for future historical pattern matching |

## `release-checklist` — Manual/hybrid release gate list

```bash
storeready release-checklist
storeready release-checklist --app-type subscription
```

Use this before final submit to review non-fully-automatable checks:
- Review notes and tester credentials
- Account deletion, IAP/restore, SIWA parity
- Legal links and metadata truthfulness
- App-type specific risk gates (subscription, social, kids, health, games, macos, ai, crypto, vpn)

## `publish` — End-to-end StoreReady + ASC lane

```bash
# Safe default: dry-run release flow after all gates pass
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID>

# Real submit
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID> --confirm
```

Flow:
1. Local StoreReady preflight gates
2. ASC API scan gates
3. `asc release run` execution

## `guidelines` — Apple guideline browser

Expand Down
29 changes: 29 additions & 0 deletions docs/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,33 @@ All commands support:
--output file.json # write to file instead of stdout
```

## New Apple Release Commands

### `release-checklist` — Manual/hybrid App Store release gates

```bash
storeready release-checklist
storeready release-checklist --app-type subscription
storeready release-checklist --format json --output release-checklist.json
```

Use this before submit to verify non-fully-automatable requirements (review notes, account deletion, IAP/restore, SIWA parity, legal links, app-type specific policies).

### `publish` — StoreReady-gated ASC CLI release lane

```bash
# Dry-run by default
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID>

# Real submit
storeready publish --app-id <ID> --version <X.Y.Z> --build <BUILD_ID> --confirm
```

Pipeline:
1. Run local preflight checks (can skip with `--skip-local-checks`)
2. Run ASC metadata scan checks (can skip with `--skip-asc-scan`)
3. Execute `asc release run` (dry-run unless `--confirm`)

## Architecture

```
Expand All @@ -58,6 +85,8 @@ storeready
├── ipa Binary-only inspection
├── scan App Store Connect API checks (tiers 1–4)
├── release-checklist Manual/hybrid App Store release gate list
├── publish StoreReady-gated ASC release lane
├── auth App Store Connect authentication
├── guidelines Apple guideline browser
├── play-guidelines Google Play policy browser
Expand Down
Loading