Встраивать различные рамки на основе конфигурации сборки - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть 4 конфигурации сборки:

  • Отладка
  • Выпуск
  • WhiteLabelDebug
  • WhiteLabelRelease

Configurations

Debug и Release должны связывать и вставлять мои пользовательские LightTheme.framework, а не WhiteLabelTheme.framework.

WhiteLabelDebug и WhiteLabelReleaseдолжен связывать и вставлять мой пользовательский WhiteLabelTheme.framework, а не LightTheme.framework.

Обе эти платформы имеют некоторый пользовательский код, локализованные строки, цвета, шрифты и изображения.Мы используем другую схему для создания каждой конфигурации и отправки ее в App Store как совершенно другое приложение.Однако в настоящее время и у нашего фирменного приложения, и у белого ярлыка есть оба набора изображений, шрифты, цвета, строки и т. Д. Что действительно вредит размеру файла.

Я могу легко ослабить привязку обеих платформ к цели приложения, но не могу понять, как встроить каркас только на основе текущей конфигурации.

Embed Frameworks settings

1 Ответ

0 голосов
/ 26 февраля 2019

Перейдите к целевым этапам сборки и добавьте New Run Script Phase в качестве последнего шага.

Вот как может выглядеть скрипт:

if [[ ${CONFIGURATION} == "WhiteLabelRelease" ]]; then
    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LightTheme.framework"
elif [[ ${CONFIGURATION} == "Release" ]]; then
    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WhiteLabelTheme.framework"
fi

При сборке любой из ваших * релизных сборок(и Архивирование для отправки), скрипт удалит соответствующую структуру.Он оставит их на месте при отладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...