如何使用Xcode 11从命令行上传到App Store?

时间:2019-06-04 01:38:27

标签: ios xcode appstoreconnect xcode11

以前,在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?

4 个答案:

答案 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>&lt;none&gt;</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应用程序加载器。