From ios-craft
Step-by-step App Store submission workflow. Use when the user wants to ship to TestFlight or the App Store. Covers certificates, provisioning, app icons, screenshots, metadata, review guidelines, and common rejection prevention. Written for first-time submitters.
npx claudepluginhub ildunari/kosta-plugins --plugin ios-craftThis skill uses the workspace's default tool permissions.
Guide the user through publishing their iOS app from zero to live on the App Store. Adapt pace to their experience level — assume first-time submitter unless they indicate otherwise.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Guide the user through publishing their iOS app from zero to live on the App Store. Adapt pace to their experience level — assume first-time submitter unless they indicate otherwise.
Before anything else, confirm:
com.yourname.appname)If any prerequisite is missing, help the user resolve it before continuing.
See references/signing-explained-for-beginners.md for the full explanation.
Key points to convey:
Recommend automatic signing for beginners. Only discuss manual signing if the user has a team, CI/CD pipeline, or enterprise distribution needs.
Walk the user through:
Xcode → Target → Signing & Capabilities tab
✓ "Automatically manage signing" is checked
✓ Team is selected (their Apple Developer account)
✓ No red errors in the signing section
If errors appear, common fixes:
Requirements:
Assets.xcassets → AppIconQuick validation:
# Check image dimensions and alpha channel
sips -g pixelHeight -g pixelWidth -g hasAlpha /path/to/icon.png
If hasAlpha: yes, remove it:
sips -s format png --setProperty formatOptions 100 /path/to/icon.png -o /path/to/icon_no_alpha.png
Starting with Xcode 15, a single 1024x1024 icon auto-generates all sizes. No need for multiple icon files.
Before archiving, verify the app works on a physical device:
Xcode → Product → Destination → [Select physical device]
Xcode → Product → Run (⌘R)
Check for:
Xcode → Product → Destination → "Any iOS Device (arm64)"
Xcode → Product → Archive (⌘⇧B doesn't work — must use Archive)
Wait for the archive to complete. The Organizer window opens automatically.
From Organizer:
Common archive failures:
Go to appstoreconnect.apple.com:
My Apps → + → New App
Fill in:
myapp-v1)Complete the required metadata — see references/app-store-metadata-template.md
See references/screenshot-sizes-and-automation.md for required sizes and automation.
Minimum required sets:
Optional but recommended:
Up to 10 screenshots per size. First 3 are most important — they appear in search results.
After uploading the build from Xcode:
Recommended testing checklist before submission:
In App Store Connect:
Review typically takes 24-48 hours. You'll receive email updates.
See references/app-store-rejection-prevention.md for the full list.
Top 10 rejection reasons to check before submitting:
After approval:
If rejected: