Как загрузить в App Store из командной строки с 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" больше не существует, как часть изменений Xcode 11:
Xcode поддерживает загрузку приложений из окна Organizer или из командной строки с помощью xcodebuild или xcrun altool. Загрузчик приложений больше не включен в Xcode. (29008875)
Так как же теперь загрузить данные из командной строки в TestFlight или App Store?
5 ответов
С 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, ваш пароль будет неправильным, вам нужно перейти на 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, например:
xcodebuild -sdk iphoneos \
-workspace myWorkspace.xcworkspace \
-scheme myScheme \
-configuration Release \
-archivePath PATH_TO_ARCHIVE archive
Теперь вы также можете использовать новое приложение от Apple под названием " Transporter", которое является заменой загрузчику приложений Xcode.
Другой способ проверить/загрузить .ipa без необходимости каждый раз генерировать одноразовый пароль:
- Перейдите в консоль App Store Connect.
- Сгенерируйте API-ключ. Затем загрузите ключ (.p8) и скопируйте
Issuer ID
иKEY ID
.
Чтобы подтвердить запуск:
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}