以前,在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,作为the Xcode 11 changes的一部分,“ Application Loader.app”不再存在:
Xcode支持使用Organizer窗口或使用xcodebuild或xcrun altool从命令行上传应用程序。 Xcode不再包含Application Loader。 (29008875)
那我们现在如何从命令行上传到TestFlight或App Store?
答案 0 :(得分:9)
使用命令行工具,
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
答案 1 :(得分:4)
使用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
的更多帮助。
答案 2 :(得分:3)
至少从Xcode 11开始,作为导出工作流的一部分,可以非常轻松地直接使用xcodebuild进行此操作。只需创建一个exportOptions.plist文件,该文件为“ destination”键指定“ upload”,为“ method”键指定“ app-store”。这是一个示例,但是当然可以满足您的需求:
<?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
答案 3 :(得分:2)
您现在还可以使用Apple的新应用“ Transporter” 可以替代Xcode应用程序加载器。