Help us improve
Share bugs, ideas, or general feedback.
From app-store-deployment
Deploys iOS and Android mobile apps to App Store and Google Play with code signing, versioning, and GitHub Actions CI/CD. Use for release preparation, certificate setup, and pipeline automation.
npx claudepluginhub secondsky/claude-skills --plugin app-store-deploymentHow this skill is triggered — by the user, by Claude, or both
Slash command
/app-store-deployment:app-store-deploymentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Publish mobile applications to iOS App Store and Google Play with proper procedures.
Guides mobile app deployment to App Store Connect and Google Play Console: configuration, code signing/provisioning, Fastlane automation, review compliance, phased rollouts, Crashlytics/Sentry integration.
Sets up Fastlane release pipelines for iOS/Android mobile apps: code signing with Match/keystores, beta distribution to TestFlight/Firebase, App Store/Google Play submission, CI integration, versioning.
App build, code signing, TestFlight, and App Store distribution for all Apple platforms. Use when preparing releases, configuring signing, uploading to TestFlight, or submitting to App Store.
Share bugs, ideas, or general feedback.
Publish mobile applications to iOS App Store and Google Play with proper procedures.
# Build archive
xcodebuild -workspace App.xcworkspace \
-scheme App \
-sdk iphoneos \
-configuration Release \
-archivePath build/App.xcarchive \
archive
# Export IPA
xcodebuild -exportArchive \
-archivePath build/App.xcarchive \
-exportOptionsPlist ExportOptions.plist \
-exportPath build/
xcrun altool --upload-app \
--type ios \
--file build/App.ipa \
--username "$APPLE_ID" \
--password "$APP_SPECIFIC_PASSWORD"
# Generate keystore (once)
keytool -genkey -v -keystore release.keystore \
-alias app -keyalg RSA -keysize 2048 -validity 10000
# Build release bundle
./gradlew bundleRelease
RELEASE_STORE_FILE=release.keystore
RELEASE_KEY_ALIAS=app
RELEASE_STORE_PASSWORD=****
RELEASE_KEY_PASSWORD=****
{
"version": "1.2.3",
"ios": { "buildNumber": "45" },
"android": { "versionCode": 45 }
}
on:
push:
tags: ['v*']
jobs:
deploy-ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Set up environment
run: |
# Accept Xcode license if needed
sudo xcodebuild -license accept || true
- name: Build archive
run: |
xcodebuild -workspace App.xcworkspace \
-scheme App \
-sdk iphoneos \
-configuration Release \
-archivePath build/App.xcarchive \
archive
- name: Export IPA
run: |
xcodebuild -exportArchive \
-archivePath build/App.xcarchive \
-exportOptionsPlist ExportOptions.plist \
-exportPath build/
- name: Upload to App Store Connect
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APP_SPECIFIC_PASSWORD: ${{ secrets.APP_SPECIFIC_PASSWORD }}
run: |
xcrun altool --upload-app \
--type ios \
--file build/App.ipa \
--username "$APPLE_ID" \
--password "$APP_SPECIFIC_PASSWORD"
deploy-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./gradlew bundleRelease
- uses: r0adkll/upload-google-play@v1