Publishes mobile applications to iOS App Store and Google Play with code signing, versioning, and CI/CD automation. Use when preparing app releases, configuring signing certificates, or setting up automated deployment pipelines.
86
82%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
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 bundleReleaseRELEASE_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@v188da5ff
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.