如何使用 Xcode 11 从命令行上传到 App Store?
How to upload to App Store from command line with Xcode 11?
之前,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 supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with 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账号使用了TWO-FACTOR Authentication,你的密码可能是错误的,你需要去https://appleid.apple.com/account/manage"Security - Generate Password"
获取密码
如果你弄错了,你可以添加--verbose
来打印详细的错误日志,就像
xcrun altool --upload-app -f path -u username -p password --verbose
并且,通过 xcrun altool --help
获得更多帮助
您现在还可以使用 Apple 的一款名为“Transporter”的新应用
这是 Xcode 应用程序加载器的替代品。
至少从 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
之前,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 supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with 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账号使用了TWO-FACTOR Authentication,你的密码可能是错误的,你需要去https://appleid.apple.com/account/manage"Security - Generate Password"
获取密码
如果你弄错了,你可以添加--verbose
来打印详细的错误日志,就像
xcrun altool --upload-app -f path -u username -p password --verbose
并且,通过 xcrun altool --help
您现在还可以使用 Apple 的一款名为“Transporter”的新应用 这是 Xcode 应用程序加载器的替代品。
至少从 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