library/specializations/mobile-development/skills/app-store-connect/SKILL.md
Apple App Store submission and management expertise
npx skillsauth add a5c-ai/babysitter App Store ConnectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides comprehensive capabilities for Apple App Store submission and management. It enables interaction with App Store Connect API, metadata management, TestFlight distribution, and app lifecycle management.
bash - Execute xcrun, altool, and Transporter commandsread - Analyze app metadata and configuration fileswrite - Generate metadata files and API configurationsedit - Update app store metadataglob - Search for metadata and screenshot filesgrep - Search for patterns in configurationsAPI Authentication
App Management
Build Upload
Build Information
Beta Distribution
Beta Feedback
App Information
Version Metadata
Media Assets
Review Submission
Release Management
This skill integrates with the following processes:
ios-appstore-submission.js - App Store submissionbeta-testing-setup.js - TestFlight configurationapp-store-optimization.js - ASO metadataautomated-release-management.js - Release automation# Generate API key in App Store Connect
# Users and Access > Keys > App Store Connect API
# Key file structure
AuthKey_XXXXXXXXXX.p8
# App Store Connect API
export APP_STORE_CONNECT_API_KEY_ID="XXXXXXXXXX"
export APP_STORE_CONNECT_API_ISSUER_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
export APP_STORE_CONNECT_API_KEY_PATH="./AuthKey_XXXXXXXXXX.p8"
# Alternative: Base64 encoded key
export APP_STORE_CONNECT_API_KEY="$(cat AuthKey.p8 | base64)"
# Validate IPA
xcrun altool --validate-app \
--file ./build/MyApp.ipa \
--type ios \
--apiKey XXXXXXXXXX \
--apiIssuer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# Upload IPA
xcrun altool --upload-app \
--file ./build/MyApp.ipa \
--type ios \
--apiKey XXXXXXXXXX \
--apiIssuer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# fastlane/Deliverfile
app_identifier("com.example.myapp")
username("[email protected]")
# Metadata
name({
"en-US" => "My Awesome App",
"es-ES" => "Mi Aplicacion Increible"
})
subtitle({
"en-US" => "The best app ever",
"es-ES" => "La mejor app del mundo"
})
# Keywords (comma-separated)
keywords({
"en-US" => "productivity,tasks,notes,todo",
"es-ES" => "productividad,tareas,notas"
})
# URLs
support_url("https://example.com/support")
marketing_url("https://example.com")
privacy_url("https://example.com/privacy")
# App Review Information
app_review_information(
first_name: "John",
last_name: "Doe",
phone_number: "+1 555 555 5555",
email_address: "[email protected]",
demo_user: "[email protected]",
demo_password: "demo123",
notes: "Demo account is pre-configured with sample data"
)
# Submission
submit_for_review(false)
automatic_release(false)
phased_release(true)
# Precheck
precheck_include_in_app_purchases(false)
fastlane/metadata/
├── en-US/
│ ├── name.txt
│ ├── subtitle.txt
│ ├── description.txt
│ ├── keywords.txt
│ ├── release_notes.txt
│ ├── promotional_text.txt
│ ├── support_url.txt
│ ├── marketing_url.txt
│ └── privacy_url.txt
├── es-ES/
│ └── ... (same structure)
├── review_information/
│ ├── first_name.txt
│ ├── last_name.txt
│ ├── phone_number.txt
│ ├── email_address.txt
│ ├── demo_user.txt
│ ├── demo_password.txt
│ └── notes.txt
├── copyright.txt
├── primary_category.txt
├── secondary_category.txt
└── trade_representative_contact_information/
fastlane/screenshots/
├── en-US/
│ ├── iPhone 15 Pro Max-1_home.png
│ ├── iPhone 15 Pro Max-2_feature.png
│ ├── iPhone 15 Pro Max-3_settings.png
│ ├── iPhone 15 Pro-1_home.png
│ ├── iPad Pro (12.9-inch)-1_home.png
│ └── ...
└── es-ES/
└── ...
// Example: Fetching apps using App Store Connect API
import Foundation
struct AppStoreConnectClient {
let keyId: String
let issuerId: String
let privateKey: String
func generateToken() -> String {
// Generate JWT token
let header = ["alg": "ES256", "kid": keyId, "typ": "JWT"]
let payload = [
"iss": issuerId,
"exp": Int(Date().addingTimeInterval(20 * 60).timeIntervalSince1970),
"aud": "appstoreconnect-v1"
]
// Sign with ES256
return jwt
}
func fetchApps() async throws -> [App] {
let url = URL(string: "https://api.appstoreconnect.apple.com/v1/apps")!
var request = URLRequest(url: url)
request.setValue("Bearer \(generateToken())", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
let response = try JSONDecoder().decode(AppsResponse.self, from: data)
return response.data
}
}
# fastlane/Fastfile
lane :beta do
# Build
gym(scheme: "MyApp")
# Upload to TestFlight
pilot(
skip_waiting_for_build_processing: false,
distribute_external: true,
notify_external_testers: true,
# Beta groups
groups: ["Internal Testers", "External Beta"],
# Changelog
changelog: "Bug fixes and performance improvements",
# Beta App Review
beta_app_review_info: {
contact_email: "[email protected]",
contact_first_name: "John",
contact_last_name: "Doe",
contact_phone: "+1 555 555 5555",
demo_account_name: "[email protected]",
demo_account_password: "demo123",
notes: "Testing instructions here"
},
# Localized info
localized_build_info: {
"en-US" => {
whats_new: "Bug fixes and improvements"
},
"es-ES" => {
whats_new: "Correcciones y mejoras"
}
}
)
end
{
"iaps": [
{
"product_id": "com.example.premium_monthly",
"type": "auto_renewable_subscription",
"reference_name": "Premium Monthly",
"subscription_group": "Premium",
"pricing": [
{
"country": "USA",
"price_tier": 4
}
],
"localizations": [
{
"locale": "en-US",
"name": "Premium Monthly",
"description": "Unlock all premium features"
}
]
}
]
}
fastlane-cicd - Build automationswift-swiftui - iOS developmentmobile-security - App securitydevelopment
Model documentation skill for generating model cards following Google's model card framework.
development
MLflow integration skill for experiment tracking, model registry, and artifact management. Enables LLMs to log experiments, compare runs, manage model lifecycle, and retrieve artifacts through the MLflow API.
data-ai
LIME-based local explanation skill for individual predictions across tabular, text, and image data.
devops
Kubeflow Pipelines skill for ML workflow orchestration, component management, and Kubernetes-native ML.