以前,在 Xcode 10 中,我们使用altool
上传到 App Store:
ALTOOL="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool"
"$ALTOOL" --upload-app --file "$IPA_PATH" --username "$APP_STORE_USERNAME" --password @keychain:"Application Loader: $APP_STORE_USERNAME"
但是在 Xcode 11 中,"Application Loader.app"不再存在,作为 Xcode 11 更改的一部分:
Xcode 支持从管理器窗口或使用 xcodebuild 或 xcrun altool 从命令行上传应用程序。Application Loader 不再包含在 Xcode 中。(29008875(
那么我们现在如何从命令行上传到TestFlight或App Store呢?
使用 Xcode 11 作为命令行工具,要验证或上传 ipa,请将 altool
替换为 xcrun altool
:
xcrun altool --validate-app --file "$IPA_PATH" --username "$APP_STORE_USERNAME" --password @keychain:"Application Loader: $APP_STORE_USERNAME"
xcrun altool --upload-app --file "$IPA_PATH" --username "$APP_STORE_USERNAME" --password @keychain:"Application Loader: $APP_STORE_USERNAME"
获取有关xcrun altool --help
的更多帮助。
使用命令行工具,
xcrun altool --upload-app -f path -u username -p password
如果您的Apple帐户使用双因素身份验证,则您的密码将是错误的,您需要转到 https://appleid.apple.com/account/manage "Security - Generate Password"
以获取密码
如果你有其他错误,你可以添加--verbose
来打印详细错误日志,就像
xcrun altool --upload-app -f path -u username -p password --verbose
并且,获取有关xcrun altool --help
的更多帮助
至少从 Xcode 11 开始,作为导出工作流程的一部分,这可以通过 xcodebuild 非常容易和直接地完成。 只需创建一个 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>compileBitcode</key>
<true/>
<key>destination</key>
<string>upload</string>
<key>method</key>
<string>app-store</string>
<key>provisioningProfiles</key>
<dict>
<key>YOUR_BUNDLE_ID</key>
<string>YOUR_PROFILE_NAME</string>
</dict>
<key>signingCertificate</key>
<string>YOUR_CERT_NAME</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>YOUR_TEAM_ID</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>
一旦你有了这个,将存档上传到应用商店连接的命令非常简单,使用 xcodebuild exportArchive 命令:
xcodebuild -exportArchive
-archivePath PATH_TO_APP_ARCHIVE
-exportPath OUTPUT_PATH
-exportOptionsPlist exportOptions.plist
如果你想知道你的PATH_TO_ARCHIVE在哪里,首先只需使用 xcodebuild archive 命令,例如:
xcodebuild -sdk iphoneos
-workspace myWorkspace.xcworkspace
-scheme myScheme
-configuration Release
-archivePath PATH_TO_ARCHIVE archive
您现在还可以使用Apple名为"Transporter"的新应用程序这是Xcode应用程序加载器的替代品。
另一种验证/上传 .ipa 的方法,而不必每次都生成一次密码:
- 前往应用商店连接控制台
- 生成 API 密钥。然后下载密钥(.p8(并复制
Issuer ID
并KEY ID
。
要验证运行,请执行以下操作:
xcrun altool --validate-app -f {YOURAPP}.ipa -t ios --apiKey {YOUR KEY ID} --apiIssuer {YOUR ISSURE ID}
要上传到应用商店,请运行:
xcrun altool --upload-app -f {YOURAPP}.ipa -t ios --apiKey {YOUR KEY ID} --apiIssuer {YOUR ISSURE ID}