AppStoreSkills
GitHub ↗
rorkai avatar

asc-xcode-build

Skills to automate app store deployed and everything related to it using the asc cli

$npx skills add rorkai/app-store-connect-cli-skills --skill asc-xcode-build

Reviews & ratings

Reviews are stored as YAML in this repo. Leave one by opening a PR against github/rorkai/app-store-connect-cli-skills/asc-xcode-build/reviews.yaml.

★★★★★0 reviews
Reviews are stored as YAML files in this repo under github/rorkai/app-store-connect-cli-skills/asc-xcode-build/reviews.yaml. To leave one, open a PR — no sign-in required.
No reviews yet — .

SKILL.md

Xcode Build and Export

Use this skill when you need to build an app from source and prepare it for upload to App Store Connect.

Preconditions

  • Xcode installed and command line tools configured
  • Valid signing identity and provisioning profiles (or automatic signing enabled)

Manage version and build numbers with asc

Before archiving, prefer asc xcode version ... over manual pbxproj edits when you need to inspect or bump app versions.

asc xcode version view
asc xcode version edit --version "1.3.0" --build-number "42"
asc xcode version bump --type build
asc xcode version bump --type patch

Notes:

  • Use --project-dir "./MyApp" when you are not running from the project root.
  • Use --target "App" for deterministic reads in multi-target projects.
  • These commands support both legacy agvtool projects and modern MARKETING_VERSION / CURRENT_PROJECT_VERSION setups.

iOS Build Flow

1. Clean and Archive

xcodebuild clean archive \
  -scheme "YourScheme" \
  -configuration Release \
  -archivePath /tmp/YourApp.xcarchive \
  -destination "generic/platform=iOS"

2. Export IPA

xcodebuild -exportArchive \
  -archivePath /tmp/YourApp.xcarchive \
  -exportPath /tmp/YourAppExport \
  -exportOptionsPlist ExportOptions.plist \
  -allowProvisioningUpdates

A minimal ExportOptions.plist for App Store distribution:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store-connect</string>
    <key>teamID</key>
    <string>YOUR_TEAM_ID</string>
</dict>
</plist>

3. Upload with asc

asc builds upload --app "APP_ID" --ipa "/tmp/YourAppExport/YourApp.ipa"

macOS Build Flow

1. Archive

xcodebuild archive \
  -scheme "YourMacScheme" \
  -configuration Release \
  -archivePath /tmp/YourMacApp.xcarchive \
  -destination "generic/platform=macOS"

2. Export PKG

xcodebuild -exportArchive \
  -archivePath /tmp/YourMacApp.xcarchive \
  -exportPath /tmp/YourMacAppExport \
  -exportOptionsPlist ExportOptions.plist \
  -allowProvisioningUpdates

3. Upload PKG with asc

macOS apps export as .pkg files. Upload with asc:

asc builds upload \
  --app "APP_ID" \
  --pkg "/tmp/YourMacAppExport/YourApp.pkg" \
  --version "1.0.0" \
  --build-number "123"

Notes:

  • --pkg automatically sets platform to MAC_OS.
  • For .pkg uploads, --version and --build-number are required (they are not auto-extracted like IPA uploads).
  • Add --wait if you want to wait for build processing to complete.

Build Number Management

Each upload requires a unique build number higher than previously uploaded builds.

In Xcode project settings:

  • CURRENT_PROJECT_VERSION - build number (e.g., "316")
  • MARKETING_VERSION - version string (e.g., "2.2.0")

Check existing builds:

asc builds list --app "APP_ID" --platform IOS --limit 5

Troubleshooting

"No profiles for bundle ID" during export

  • Add -allowProvisioningUpdates flag
  • Verify your Apple ID is logged into Xcode

Build rejected for missing icon (macOS)

macOS requires ICNS format icons with all sizes:

  • 16x16, 32x32, 128x128, 256x256, 512x512 (1x and 2x)

CFBundleVersion too low

The build number must be higher than any previously uploaded build. Increment it with asc xcode version bump --type build, or resolve a remote-safe number with asc builds next-build-number --app "APP_ID" --version "2.2.0" --platform IOS and then apply it with asc xcode version edit --build-number "NEXT_BUILD" before rebuilding.

Notes

  • Always clean before archive for release builds
  • Use xcodebuild -showBuildSettings to verify configuration
  • For submission issues (encryption, content rights), see asc-submission-health skill

More from rorkai/app-store-connect-cli-skills

21 other skills published by this repo. See the repo overview →

View all 22 skills in this repo →