Best use case
App Store Connect is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Apple App Store submission and management expertise
Teams using App Store Connect should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/app-store-connect/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How App Store Connect Compares
| Feature / Agent | App Store Connect | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Apple App Store submission and management expertise
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# App Store Connect Skill
## Overview
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.
## Allowed Tools
- `bash` - Execute xcrun, altool, and Transporter commands
- `read` - Analyze app metadata and configuration files
- `write` - Generate metadata files and API configurations
- `edit` - Update app store metadata
- `glob` - Search for metadata and screenshot files
- `grep` - Search for patterns in configurations
## Capabilities
### App Store Connect API
1. **API Authentication**
- Configure API keys and JWT tokens
- Implement token refresh logic
- Handle rate limiting
- Configure team and issuer IDs
2. **App Management**
- Create and manage app records
- Configure app capabilities
- Manage bundle IDs
- Handle app transfers
### Build Management
3. **Build Upload**
- Upload builds via Transporter
- Configure altool uploads
- Handle build processing status
- Manage build metadata
- Configure App Store connect upload
4. **Build Information**
- Track build processing
- Configure build usage compliance
- Manage export compliance
- Handle build expiration
### TestFlight
5. **Beta Distribution**
- Configure internal testing groups
- Manage external beta testers
- Set up beta build distribution
- Handle beta app review
- Configure test information
6. **Beta Feedback**
- Collect crash reports
- Manage feedback submissions
- Track tester engagement
- Analyze beta metrics
### Metadata Management
7. **App Information**
- Configure app name and subtitle
- Set primary and secondary categories
- Manage age ratings
- Configure privacy policy URLs
- Set support and marketing URLs
8. **Version Metadata**
- Write descriptions and keywords
- Manage what's new text
- Configure promotional text
- Handle copyright information
9. **Media Assets**
- Upload app screenshots
- Configure app previews
- Manage app icons
- Handle different device sizes
### In-App Purchases
10. **IAP Configuration**
- Create consumable products
- Configure subscriptions
- Set up subscription groups
- Handle promotional offers
- Configure introductory pricing
### Submission
11. **Review Submission**
- Submit for App Review
- Handle review notes
- Configure demo account
- Manage review attachments
- Track review status
12. **Release Management**
- Configure release options
- Set up phased releases
- Handle manual releases
- Manage version releases
## Target Processes
This skill integrates with the following processes:
- `ios-appstore-submission.js` - App Store submission
- `beta-testing-setup.js` - TestFlight configuration
- `app-store-optimization.js` - ASO metadata
- `automated-release-management.js` - Release automation
## Dependencies
### Required
- Apple Developer account
- App Store Connect access
- Xcode (for Transporter)
- Valid signing certificates
### Optional
- Fastlane
- App Store Connect API key
- Transporter app
## Configuration
### API Key Setup
```bash
# Generate API key in App Store Connect
# Users and Access > Keys > App Store Connect API
# Key file structure
AuthKey_XXXXXXXXXX.p8
```
### Environment Variables
```bash
# 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)"
```
## Usage Examples
### Upload Build with xcrun
```bash
# 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 Deliver Configuration
```ruby
# fastlane/Deliverfile
app_identifier("com.example.myapp")
username("developer@example.com")
# 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: "review@example.com",
demo_user: "demo@example.com",
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)
```
### Metadata Directory Structure
```
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/
```
### Screenshots Directory
```
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/
└── ...
```
### App Store Connect API Usage
```swift
// 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
}
}
```
### TestFlight Configuration
```ruby
# 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: "review@example.com",
contact_first_name: "John",
contact_last_name: "Doe",
contact_phone: "+1 555 555 5555",
demo_account_name: "demo@example.com",
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
```
### In-App Purchase Configuration
```json
{
"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"
}
]
}
]
}
```
## Quality Gates
### Submission Readiness
- All required metadata complete
- Screenshots for all required sizes
- Privacy policy URL valid
- Age rating configured
- App review information complete
### Build Requirements
- Valid code signing
- No missing entitlements
- Export compliance configured
- Build processed successfully
### Compliance
- App Privacy questionnaire complete
- IDFA usage declared
- Third-party code disclosed
## Related Skills
- `fastlane-cicd` - Build automation
- `swift-swiftui` - iOS development
- `mobile-security` - App security
## Version History
- 1.0.0 - Initial release with App Store Connect API supportRelated Skills
connected-papers-mapper
Citation graph exploration for discovering related work through visual graph traversal
steel-connection-designer
Steel connection design skill for bolted and welded connections per AISC specifications
salesforce-connector
Bi-directional Salesforce CRM integration for sales data management
pipedrive-connector
Pipedrive CRM integration optimized for SMB sales teams
hubspot-connector
HubSpot CRM and Marketing Hub integration for sales and marketing alignment
dynamics365-connector
Microsoft Dynamics 365 Sales integration with Power Platform support
feast-feature-store
Feature store management skill for online/offline feature serving, feature registration, and training-serving consistency.
process-builder
Scaffold new babysitter process definitions following SDK patterns, proper structure, and best practices. Guides the 3-phase workflow from research to implementation.
babysitter
Orchestrate via @babysitter. Use this skill when asked to babysit a run, orchestrate a process or whenever it is called explicitly. (babysit, babysitter, orchestrate, orchestrate a run, workflow, etc.)
yolo
Run Babysitter autonomously with minimal manual interruption.
user-install
Install the user-level Babysitter Codex setup.
team-install
Install the team-pinned Babysitter Codex workspace setup.