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

pxiryf3j  于 2022-11-19  发布在  iOS
关注(0)|答案(5)|浏览(275)

以前,在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“不再作为the Xcode 11 changes的一部分存在:
Xcode支持从“管理器”窗口上传应用程序,或使用xcodebuild或xcrun altool从命令行上传应用程序。Xcode不再附带Application Loader。(29008875)
那么,我们现在如何从命令行上传到TestFlight或App Store呢?

y4ekin9u

y4ekin9u1#

使用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帮助

nzk0hqpo

nzk0hqpo2#

使用命令行工具,

xcrun altool --upload-app -f path -u username -p password

如果您的苹果帐户使用双因素身份验证,您的密码可能是错误的,您需要转到**https://appleid.apple.com/account/manage**"Security - Generate Password"获取密码
如果你得到其他错误,你可以添加--verbose打印详细错误日志,就像

xcrun altool --upload-app -f path -u username -p password --verbose

此外,还可以通过xcrun altool --help获得更多帮助

z9gpfhce

z9gpfhce3#

至少在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>

一旦你有了这些,上传一个归档到app store connect的命令就非常简单了,使用xcodebuildexportArchive命令:

xcodebuild -exportArchive \
               -archivePath PATH_TO_APP_ARCHIVE \
               -exportPath OUTPUT_PATH \
               -exportOptionsPlist exportOptions.plist

如果您想知道PATH_TO_ARCHIVE在哪里,首先只需使用xcodebuildarchive命令,例如:

xcodebuild -sdk iphoneos \
               -workspace myWorkspace.xcworkspace \
               -scheme myScheme \
               -configuration Release \
               -archivePath PATH_TO_ARCHIVE archive
raogr8fs

raogr8fs4#

您现在还可以使用Apple的新应用程序“Transporter“,它是Xcode应用程序加载器的替代品。

cotxawn7

cotxawn75#

另一种验证/上传.ipa * 而无需 * 每次都生成一次性密码的方法:

要验证运行:

xcrun altool --validate-app -f {YOURAPP}.ipa -t ios --apiKey {YOUR KEY ID} --apiIssuer {YOUR ISSURE ID}

要上传到App Store,请运行:

xcrun altool --upload-app -f {YOURAPP}.ipa -t ios --apiKey {YOUR KEY ID} --apiIssuer {YOUR ISSURE ID}

相关问题