Не удается экспортировать архив из Xcode в командной строке

У меня есть проект, из которого я пытаюсь экспортировать архив Enterprise.

Это отлично работает через интерфейс Xcode (версия Xcode 9.3 (9E145)), но я пытаюсь сделать это через командную строку (так что я могу автоматизировать это в нашем CI).

Я экспортирую тот же архив, что и внутри Xcode, поэтому я достаточно уверен, что сам архив создан правильно.

Команда, которую я запускаю,

xcodebuild "-exportArchive" "-archivePath" "archive.xcarchive" -exportPath . -exportOptionsPlist ./export_options.plist

И содержимое export_options.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>
        <false></false>
        <key>method</key>
        <string>enterprise</string>
        <key>provisioningProfiles</key>
        <dict>
            <key>com.correct.app.identifier</key>
            <string>XC iOS: com.correct.app.identifier</string>
        </dict>
        <key>signingCertificate</key>
        <string>iPhone Distribution: MYBRAND</string>
        <key>teamID</key>
        <string>ABCDEFGHI</string>
    </dict>
</plist>

Ошибка, которую я получаю,

2018-04-07 16:54:02.104 xcodebuild[67144:5293266] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/c4/t3_jplmx5qn7dkxx95rqv2qh0000gn/T/MyBrand_2018-04-07_16-54-02.095.xcdistributionlogs'.
2018-04-07 16:54:04.108 xcodebuild[67144:5293266] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fbf2ad5b240>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
    "Error Domain=IDEProfileLocatorErrorDomain Code=1 \"No profiles for 'com.correct.app.identifier' were found\" UserInfo={NSLocalizedDescription=No profiles for 'com.correct.app.identifier' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS In House provisioning profiles matching 'com.correct.app.identifier'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.}"
)}
error: exportArchive: No profiles for 'com.correct.app.identifier' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'com.correct.app.identifier' were found" UserInfo={NSLocalizedDescription=No profiles for 'com.correct.app.identifier' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS In House provisioning profiles matching 'com.correct.app.identifier'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.}

** EXPORT FAILED **

Я проверил свой экспорт изнутри Xcode, и он использует тот же сертификат и профиль обеспечения, которые я указал в своем файле export_options.plist.

Любые предложения кто-нибудь?


person deanWombourne    schedule 07.04.2018    source источник
comment
Когда происходит сборка xcode, сбрасывайте весь процесс, используя ps auxe| grep xcodebuild, просто убедитесь, что вы не пропустили переменную среды, которая устанавливается xcode   -  person Tarun Lalwani    schedule 10.04.2018
comment
Итак, когда вы экспортируете из IDE, вы подписываетесь с профилем и сертификатом In House Distribution? Поскольку в качестве метода вы выбрали предприятие, он ищет в вашем каталоге профилей обеспечения профиль обеспечения с указанным вами идентификатором команды, а также идентификатором приложения, то есть типом профиля внутреннего распространения. Расположение профиля подготовки можно найти здесь: stackoverflow.com/a/45642752/3708242   -  person wottle    schedule 10.04.2018
comment
Если вы хотите, чтобы этот вопрос получил достойные ответы, вам нужно будет предоставить более подробную информацию в соответствии с запросом в комментариях.   -  person wottle    schedule 12.04.2018
comment
Я не увидел в комментариях просьб о подробностях (я предположил, что ваше замечание по поводу подписания внутренним сертификатом было риторическим, иначе мой вопрос не имел бы смысла) - какие еще подробности вам нужны?   -  person deanWombourne    schedule 12.04.2018
comment
Я бы показал ваши настройки подписи кода в вашем проекте. Есть причина, по которой вы предложили награду, а активности нет. Ваш вопрос выше сводится к тому, что очень подробная подпись кода не работает для меня. Этому может быть много причин. Возможно, вам не хватает закрытого ключа. Вы можете по-разному подписывать двоичные файлы в среде IDE и в командной строке, даже если вы думаете, что пытаетесь подписать их одинаково. Ваш профиль подготовки, указанный в файле export_options.plist, может не совпадать, как вы думаете.   -  person wottle    schedule 13.04.2018
comment
Кроме того, я обычно использую UUID профиля подготовки в записи ключа provisioningProfiles. Вы можете найти UUID, открыв файл .mobileprovision профиля подготовки предприятия в TextEdit. Это делает очень явным, какой профиль подготовки вы хотите использовать в сборке.   -  person wottle    schedule 13.04.2018
comment
Попробуйте изменить <key>method</key> <string>development</string>, если он работает правильно. У вас проблема с сертификатом. Если установлен флажок «Автоматически управлять подписью», попробуйте снять флажок «Автоматически управлять подписью», а затем выберите свой профиль обеспечения.   -  person a.masri    schedule 17.04.2018