Как загрузить в 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>&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, например:

    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}
Другие вопросы по тегам