name: asc-xcode-build description: 使用xcodebuild构建、归档和导出iOS/macOS应用,然后上传到App Store Connect。在需要创建IPA或PKG文件进行上传时使用。
Xcode构建与导出
在需要从源代码构建应用并准备上传到App Store Connect时使用此技能。
前提条件
- Xcode已安装并配置命令行工具
- 有效的签名标识和配置文件(或启用自动签名)
iOS构建流程
1. 清理与归档
xcodebuild clean archive \
-scheme "YourScheme" \
-configuration Release \
-archivePath /tmp/YourApp.xcarchive \
-destination "generic/platform=iOS"
2. 导出IPA
xcodebuild -exportArchive \
-archivePath /tmp/YourApp.xcarchive \
-exportPath /tmp/YourAppExport \
-exportOptionsPlist ExportOptions.plist \
-allowProvisioningUpdates
一个用于App Store分发的最小ExportOptions.plist:
<?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. 使用asc上传
asc builds upload --app "APP_ID" --ipa "/tmp/YourAppExport/YourApp.ipa"
macOS构建流程
1. 归档
xcodebuild archive \
-scheme "YourMacScheme" \
-configuration Release \
-archivePath /tmp/YourMacApp.xcarchive \
-destination "generic/platform=macOS"
2. 导出PKG
xcodebuild -exportArchive \
-archivePath /tmp/YourMacApp.xcarchive \
-exportPath /tmp/YourMacAppExport \
-exportOptionsPlist ExportOptions.plist \
-allowProvisioningUpdates
3. 使用asc上传PKG
macOS应用导出为.pkg文件。使用asc上传:
asc builds upload \
--app "APP_ID" \
--pkg "/tmp/YourMacAppExport/YourApp.pkg" \
--version "1.0.0" \
--build-number "123"
注意:
--pkg自动将平台设置为MAC_OS。- 对于
.pkg上传,--version和--build-number是必需的(与IPA上传不同,它们不会自动提取)。 - 添加
--wait如果您想等待构建处理完成。
构建号管理
每个上传都需要一个唯一的构建号,高于之前上传的构建。
在Xcode项目设置中:
CURRENT_PROJECT_VERSION- 构建号(例如,“316”)MARKETING_VERSION- 版本字符串(例如,“2.2.0”)
检查现有构建:
asc builds list --app "APP_ID" --platform IOS --limit 5
故障排除
导出时出现"No profiles for bundle ID"
- 添加
-allowProvisioningUpdates标志 - 验证您的Apple ID已登录Xcode
构建因缺少图标被拒绝(macOS)
macOS要求ICNS格式图标具有所有尺寸:
- 16x16, 32x32, 128x128, 256x256, 512x512(1x和2x)
CFBundleVersion太低
构建号必须高于任何之前上传的构建。增加CURRENT_PROJECT_VERSION并重新构建。
备注
- 对于发布构建,始终在归档前清理
- 使用
xcodebuild -showBuildSettings验证配置 - 对于提交问题(加密、内容权利),请参阅
asc-submission-health技能