Получить пользовательские настройки сборки внутри списка exportOptionsPlist - PullRequest
0 голосов
/ 22 января 2019

У меня есть проект, который состоит из разных целей для разных сред сборки.Я получаю файл IPA на Дженкинса с xcodebuild.Я хочу определить один файл exportOptionsPlist и назначить другую переменную для разных целей.Например, для method цель Dev должна иметь development, а цель Prod должна иметь app-store.Для этого я определяю настройки User-Defined в настройках сборки.

PS: у каждой цели есть только параметры отладки и выпуска, а у каждой цели есть IPA_EXPORT_METHOD.enter image description here

Моя проблема в том, что я получаю ошибку ниже, когда пытаюсь получить IPA ( Чтение IPA_EXPORT_METHOD из файла ExportOptionsPlist ):

Ошибка домена = IDEFoundationErrorDomain Code = 1 «ошибка exportOptionsPlist для ключа« метод »: ожидалось одно из {app-store, ad-hoc, enterprise, development, validation}}, но найдено $ {IPA_EXPORT_METHOD}" UserInfo = {NSLocalizedDescription = exportOptionsPlist ошибка для ключевого «метода»: ожидалось одно из {app-store, ad-hoc, enterprise, development, validation}, но найдено $ {IPA_EXPORT_METHOD}}

Как получитьархив:

$ xcodebuild -workspace CLI.xcworkspace -scheme CLI -sdk iphoneos -configuration AppStoreDistribution archive -archivePath $PWD/build/CLI.xcarchive

Как я могу получить IPA:

$ xcodebuild -exportArchive -archivePath $PWD/build/CLI.xcarchive -exportOptionsPlist exportOptions.plist -exportPath $PWD/build

Параметры экспорта 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/>
    <key>destination</key>
    <string>export</string>
    <key>method</key>
    <string>${IPA_EXPORT_METHOD}</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.iamdeveloper.myproject.dev</key>
        <string>My Provision File</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Developer</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>XXXXXXXXX</string>
    <key>thinning</key>
    <string>&lt;thin-for-all-variants&gt;</string>
</dict>
</plist>

РЕДАКТИРОВАТЬ: Я могуопределить разные exportOptionsPlists для разных целей.Это решает мою проблему, но я хочу добиться этого одним файлом plist.

...