App-store-connect-cli-skills asc-xcode-build
Build, archive, export, and manage Xcode version/build numbers with asc and xcodebuild before uploading to App Store Connect. Use when you need to create an IPA or PKG for upload.
install
source · Clone the upstream repo
git clone https://github.com/rorkai/app-store-connect-cli-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/rorkai/app-store-connect-cli-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/asc-xcode-build" ~/.claude/skills/rorkai-app-store-connect-cli-skills-asc-xcode-build && rm -rf "$T"
manifest:
skills/asc-xcode-build/SKILL.mdsource content
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
ascBefore 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
when you are not running from the project root.--project-dir "./MyApp" - Use
for deterministic reads in multi-target projects.--target "App" - These commands support both legacy
projects and modernagvtool
/MARKETING_VERSION
setups.CURRENT_PROJECT_VERSION
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:
automatically sets platform to--pkg
.MAC_OS- For
uploads,.pkg
and--version
are required (they are not auto-extracted like IPA uploads).--build-number - Add
if you want to wait for build processing to complete.--wait
Build Number Management
Each upload requires a unique build number higher than previously uploaded builds.
In Xcode project settings:
- build number (e.g., "316")CURRENT_PROJECT_VERSION
- version string (e.g., "2.2.0")MARKETING_VERSION
Check existing builds:
asc builds list --app "APP_ID" --platform IOS --limit 5
Troubleshooting
"No profiles for bundle ID" during export
- Add
flag-allowProvisioningUpdates - 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
to verify configurationxcodebuild -showBuildSettings - For submission issues (encryption, content rights), see
skillasc-submission-health