Release
Submit iOS app to App Store for reviewFrom its SKILL.md
npx -y skills add greenstevester/fastlane-skill --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.7 KB, as published. Nobody here has run it
App Store Production Release
Submit the iOS app to App Store Connect for review and release.
Pre-flight Checks
- Fastlane installed: !
fastlane --version 2>/dev/null | grep "fastlane " | head -1 || echo "✗ Not installed - run: brew install fastlane" - Fastfile exists: !
ls fastlane/Fastfile 2>/dev/null && echo "✓ Found" || echo "✗ Not found - run /setup-fastlane first" - App-specific password: !
[ -n "$FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD" ] && echo "✓ Set" || echo "⚠️ Not set - export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'"
Arguments: ${ARGUMENTS:-none}
What This Does
fastlane release (Submit Existing Build)
- Selects latest TestFlight build already uploaded
- Submits for App Store review
- Ideal when you've already tested a beta build
fastlane release_full (Full Pipeline)
- Syncs certificates via Match (appstore type) — only once you've run the
matchskill; the basesetup-fastlanelane skips this - Bumps version number (if
version:provided) - Increments build number
- Builds release archive with gym
- Uploads to App Store Connect
- Submits for review
- Auto-releases after approval (if
auto_release:true)
Scope:
release/release_fullupload the binary + app-level metadata/screenshots. They do not upload in-app-purchase / subscription assets (per-IAP Review Information → Screenshot, 1024² Image (Optional) promos) — those are managed by hand in App Store Connect. See thesnapshotskill for screenshot upload details (deliverlayout, RGB/no-alpha, what it does and doesn't cover).
Commands
Submit Existing TestFlight Build
Run from your project directory (where fastlane/ lives):
fastlane release
Full Release with Version Bump
fastlane release_full version:"1.1.0"
Full Release with Auto-Release
fastlane release_full version:"1.2.0" auto_release:true
This will automatically release to the App Store once Apple approves the build.
Workflow Recommendation
- Test first: Run
fastlane betato upload to TestFlight - Verify in TestFlight: Ensure the build works correctly
- Submit for review: Run
fastlane releaseto submit the tested build - Or full pipeline: Use
fastlane release_fullfor a fresh build + submit
Troubleshooting
"No value found for 'username'"
Set your Apple ID in fastlane/Appfile:
apple_id("[email protected]")
"Please sign in with an app-specific password"
- Go to https://account.apple.com → Sign-In & Security → App-Specific Passwords
- Generate a password named "Fastlane"
- Export it:
export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'
"The provided entity includes an attribute with a value that has already been used"
The version number already exists. Increment the version:
fastlane release_full version:"1.0.1"
Build rejected or needs changes
- Address Apple's feedback
- Increment build number and re-upload:
fastlane beta
- Submit again:
fastlane release
After Submission
- Review time: Typically 24-48 hours (can be longer)
- Check status: App Store Connect → My Apps → Your App → App Store
- If rejected: Review feedback, fix issues, increment build, resubmit
- If approved with auto_release: App goes live immediately
- If approved without auto_release: Manually release in App Store Connect