Build, archive, and export iOS/macOS apps with xcodebuild before uploading to App Store Connect. Use when you need to create an IPA or PKG for upload.
Install
npx skillscat add rudrankriyam/app-store-connect-cli-skills/asc-xcode-build Install via the SkillsCat registry.
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)
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 \
-allowProvisioningUpdatesA 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 \
-allowProvisioningUpdates3. 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:
--pkgautomatically sets platform toMAC_OS.- For
.pkguploads,--versionand--build-numberare required (they are not auto-extracted like IPA uploads). - Add
--waitif 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 5Troubleshooting
"No profiles for bundle ID" during export
- Add
-allowProvisioningUpdatesflag - 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 CURRENT_PROJECT_VERSION and rebuild.
Notes
- Always clean before archive for release builds
- Use
xcodebuild -showBuildSettingsto verify configuration - For submission issues (encryption, content rights), see
asc-submission-healthskill