#ios #swift #xcode #fastlane #xcconfig
#iOS #swift #xcode #fastlane #xcconfig
Вопрос:
Используя Xcode 8, работающий на macOS Sierra, я пытаюсь объявить условную переменную в xcconfig
файле.
В моем проекте используется fastlane match, поэтому в первую очередь я хочу использовать fastlane gym для архивирования своего приложения, но я хочу также иметь возможность выполнять архивирование вручную (в целях тестирования).
Чего я хочу достичь, так это чего-то подобного:
_ARCHIVING_WITH_CLI = YES // Actually want to check for some fastlane ENV variabel here, not sure how...
#ifdef _ARCHIVING_WITH_CLI
_PROVISIONING_PROFILE_APP_STORE = sigh_com.mycomp.app_appstore
#else
_PROVISIONING_PROFILE_APP_STORE = match AppStore com.mycomp.app
#endif
PROVISIONING_PROFILE_SPECIFIER[config=Release] = $(_PROVISIONING_PROFILE_APP_STORE)
Но, по-видимому, это неправильный синтаксис. Я пытался искать документацию, но на самом деле ничего не нашел.
- Можете ли вы помочь мне с
xcconfig
синтаксисом? - Можете ли вы помочь мне с проверкой, был ли архив инициирован вручную или через fastlane gym (
xcodebuild
CLI)
Ответ №1:
Вот документация, которую вы ищете:https://docs.fastlane.tools/actions /
Вы также можете запустить gym help
и посмотреть поддерживаемые параметры. xcconfig
аналогичен любому другому параметру в вашем Fastfile:
gym {
...,
xcconfig: "STRING",
...
}
Я не уверен, почему вы хотите иметь возможность архивировать вручную после настройки match
и gym
. Вы должны иметь возможность запускать тот же Fastfile со своего компьютера, match
который будет обрабатывать установку вашего сертификата, и вы выполните то же самое.
Смотрите https://codesigning.guide /
Комментарии:
1. Извините за очень поздний ответ. Я думаю, вы неправильно поняли мой вопрос. Я не спрашиваю, как использовать xcconfig из fastlane. На самом деле я не хочу этого делать. Я настроил свой xcconfig как конфигурацию в проекте. Я спрашиваю, как объявить пользовательскую переменную bool внутри xcconfig и использовать этот bool позже в файле.
Ответ №2:
Вы можете устанавливать переменные условно на основе sdk, архитектуры или конфигурации. Формат выглядит следующим образом:
<FIELD>[<condition_name_1>=<condition_value_1>][<condition_name_2>=<condition_value_2>].. = <Value>
где condition_name_*
может быть либо sdk
/ arch
/ config
, для получения подробной информации о возможных значениях вы можете обратиться к официальной документации.
Для вашего сценария, похоже, вы можете отказаться от применения условий, основанных на sdk
, или создать пользовательские конфигурации: одну для Fastlane и одну для использования в командной строке / вручную.