Apple App Ship
End-to-end skill for building and shipping Apple platform apps. Covers five phases:
- App Architecture & Code → references/app-architecture.md
- App Polish & Ship-Readiness → references/app-polish.md
- Marketing Website → references/marketing-website.md
- App Store Images → references/app-store-images.md
- App Store Connect Submission → references/app-store-connect.md
Companion skills
This skill owns the ship workflow; the craft in each phase is delegated to dedicated skills
that stay current. The table below is the registry — run it as a preflight: before
starting, check that the companions for the phases you'll run are available (they appear in your
available skills). For any that are missing, tell the user and offer to install it —
npx skills find <skill-name> — then proceed. Don't fall back to inline guidance for delegated work.
| Phase / area |
Companion skills |
| Plan & build (1) — UI/HIG, SwiftUI, build, signing |
apple-design, swiftui-ui-patterns, swiftui-expert-skill, swiftui-liquid-glass, xcode-mcp, asc-signing-setup, asc-xcode-build |
| Polish & readiness (2) — tests, guidelines, notarization |
swift-testing-pro, app-store-review, asc-notarization |
| Marketing website (3) |
frontend-design |
| App Store images (4) |
asc-shots-pipeline, asc-screenshot-resize |
| App Store Connect submission (5) — record, metadata, ASO, release |
asc-app-create-ui, asc-metadata-sync, asc-whats-new-writer, asc-localize-metadata, asc-aso-audit, asc-release-flow, asc-submission-health, asc-build-lifecycle, asc-id-resolver, asc-workflow |
| TestFlight & beta |
asc-testflight-orchestration, asc-crash-triage |
| Monetization |
asc-ppp-pricing, asc-subscription-localization, asc-revenuecat-catalog-sync, asc-apple-ads |
| Final review |
apple-appstore-reviewer |
All asc-* skills drive the asc CLI — asc-cli-usage covers its basics.
Workflow
Determine which phase the user needs, then read only that reference file. Most projects flow sequentially but users may jump to any phase.
Phase Selection
| User says |
Phase |
| "Build me an app" / "Create a new app" |
1 → app-architecture.md |
| "Polish for release" / "Add data seeder" / "Fix shortcuts" |
2 → app-polish.md |
| "Build the website" / "Marketing site" |
3 → marketing-website.md |
| "Generate App Store screenshots" / "Marketing images" |
4 → app-store-images.md |
| "Submit to App Store" / "App Store metadata" |
5 → app-store-connect.md |
| "Ship this app" (end-to-end) |
Read phases sequentially as needed |
Final review
When the work is finished — before submitting to App Store Connect — run apple-appstore-reviewer
over the codebase to catch App Store optimizations and likely rejection reasons. Always finish an
end-to-end "ship this app" run with this review.
Key Conventions (All Phases)
- Always use the latest versions of Swift and Xcode (currently Swift 6, Xcode 26+)
- Bundle identifier pattern:
com.yourcompany.<appname> (e.g. com.yourcompany.myapp) — use your own reverse-DNS domain
- CloudKit container pattern:
iCloud.com.yourcompany.<appname>
- Zero third-party dependencies (100% Apple frameworks)
- All SwiftData model properties optional (CloudKit requirement)
#if DEBUG for any debug-only code (stripped from Release builds)
- Platform conditionals:
#if os(iOS), #if os(macOS), #if os(watchOS), #if os(tvOS)
- macOS "Designed for iPad" apps:
#if os(macOS) does NOT match — use #if os(iOS)
- watchOS/tvOS targets get their own copies of models (not shared framework)
- Package manager: pnpm (not npm) for web projects
Reusable Assets
scripts/generate-appstore-images.js — Node + sharp generator for bespoke branded App Store images (device frames, Dynamic Island, headlines, shadows); the fallback when asc-shots-pipeline isn't the fit. See references/app-store-images.md.
1---2name: apple-app-ship3description: End-to-end workflow for building, polishing, and shipping native Apple platform apps (iOS, iPadOS, macOS, watchOS, tvOS) with SwiftUI — from architecture to App Store submission. Covers the app code, a marketing website, App Store screenshots, and App Store Connect metadata. Use when: (1) creating a new Apple app from scratch, (2) polishing an existing app for release, (3) building a marketing website for an Apple app, (4) generating App Store marketing screenshots, (5) preparing App Store Connect submission (metadata, privacy labels, review notes), (6) adding debug data seeders for screenshot-ready previews, (7) any "ship this app" workflow covering multiple phases from code to published listing.4---56# Apple App Ship78End-to-end skill for building and shipping Apple platform apps. Covers five phases:9101. **App Architecture & Code** → references/app-architecture.md112. **App Polish & Ship-Readiness** → references/app-polish.md123. **Marketing Website** → references/marketing-website.md134. **App Store Images** → references/app-store-images.md145. **App Store Connect Submission** → references/app-store-connect.md1516## Companion skills1718This skill owns the *ship workflow*; the craft in each phase is delegated to dedicated skills19that stay current. The table below is the **registry** — run it as a **preflight**: before20starting, check that the companions for the phases you'll run are available (they appear in your21available skills). For any that are missing, tell the user and offer to install it —22`npx skills find <skill-name>` — then proceed. Don't fall back to inline guidance for delegated work.2324| Phase / area | Companion skills |25|--------------|------------------|26| Plan & build (1) — UI/HIG, SwiftUI, build, signing | `apple-design`, `swiftui-ui-patterns`, `swiftui-expert-skill`, `swiftui-liquid-glass`, `xcode-mcp`, `asc-signing-setup`, `asc-xcode-build` |27| Polish & readiness (2) — tests, guidelines, notarization | `swift-testing-pro`, `app-store-review`, `asc-notarization` |28| Marketing website (3) | `frontend-design` |29| App Store images (4) | `asc-shots-pipeline`, `asc-screenshot-resize` |30| App Store Connect submission (5) — record, metadata, ASO, release | `asc-app-create-ui`, `asc-metadata-sync`, `asc-whats-new-writer`, `asc-localize-metadata`, `asc-aso-audit`, `asc-release-flow`, `asc-submission-health`, `asc-build-lifecycle`, `asc-id-resolver`, `asc-workflow` |31| TestFlight & beta | `asc-testflight-orchestration`, `asc-crash-triage` |32| Monetization | `asc-ppp-pricing`, `asc-subscription-localization`, `asc-revenuecat-catalog-sync`, `asc-apple-ads` |33| Final review | `apple-appstore-reviewer` |3435All `asc-*` skills drive the `asc` CLI — `asc-cli-usage` covers its basics.3637## Workflow3839Determine which phase the user needs, then read only that reference file. Most projects flow sequentially but users may jump to any phase.4041### Phase Selection4243| User says | Phase |44|-----------|-------|45| "Build me an app" / "Create a new app" | 1 → app-architecture.md |46| "Polish for release" / "Add data seeder" / "Fix shortcuts" | 2 → app-polish.md |47| "Build the website" / "Marketing site" | 3 → marketing-website.md |48| "Generate App Store screenshots" / "Marketing images" | 4 → app-store-images.md |49| "Submit to App Store" / "App Store metadata" | 5 → app-store-connect.md |50| "Ship this app" (end-to-end) | Read phases sequentially as needed |5152### Final review5354When the work is finished — before submitting to App Store Connect — run `apple-appstore-reviewer`55over the codebase to catch App Store optimizations and likely rejection reasons. Always finish an56end-to-end "ship this app" run with this review.5758### Key Conventions (All Phases)5960- **Always use the latest versions of Swift and Xcode** (currently Swift 6, Xcode 26+)61- **Bundle identifier pattern**: `com.yourcompany.<appname>` (e.g. `com.yourcompany.myapp`) — use your own reverse-DNS domain62- **CloudKit container pattern**: `iCloud.com.yourcompany.<appname>`63- Zero third-party dependencies (100% Apple frameworks)64- All SwiftData model properties optional (CloudKit requirement)65- `#if DEBUG` for any debug-only code (stripped from Release builds)66- Platform conditionals: `#if os(iOS)`, `#if os(macOS)`, `#if os(watchOS)`, `#if os(tvOS)`67- macOS "Designed for iPad" apps: `#if os(macOS)` does NOT match — use `#if os(iOS)`68- watchOS/tvOS targets get their own copies of models (not shared framework)69- Package manager: **pnpm** (not npm) for web projects7071### Reusable Assets7273- `scripts/generate-appstore-images.js` — Node + sharp generator for bespoke branded App Store images (device frames, Dynamic Island, headlines, shadows); the fallback when `asc-shots-pipeline` isn't the fit. See references/app-store-images.md.