Подтвердить что ты не робот

Добавить элементы Bundle для конкретной схемы?

Я хотел бы добавить некоторые элементы пакета только для конкретной схемы. Я мог бы создать run- script, но там я не могу прочитать текущую схему.

Есть ли еще один шанс добавить некоторые файлы пакетов только для конкретной схемы в xCode 9.x?

4b9b3361

Ответ 1

В script вы можете получить текущую конфигурацию сборки.

Вы можете дублировать текущую конфигурацию сборки, это сохранит все ваши настройки для этой конфигурации. После этого переименуйте новую конфигурацию и обратитесь к ней в своей схеме, вы хотите добавить элементы пакета (нет необходимости использовать отдельную схему, вы можете сказать, что, например, вы хотите добавить эти ресурсы только для работы. этот случай просто установил новую конфигурацию для выполнения конфигурации сборки существующей схемы).

После того, как вы все настроите, вы можете проверить конкретную конфигурацию в run- script следующим образом:

if [ "${CONFIGURATION}" = "BetaDebug" ] || [ "${CONFIGURATION}" = "BetaRelease" ] ; then
// Do something specific for that config
elif [ "${CONFIGURATION}" = "ProductionDebug" ] || [ "${CONFIGURATION}" = "ProductionRelease" ] ; then
// Do something specific for that config
fi

где "${CONFIGURATION}" - имя конфигурации.

Ответ 2

Запустите script следующим образом после фазы Copy Bundle Resources:

if [ "${CONFIGURATION}" = "Release" ]; then
cp -r ${PROJECT_DIR}/Settings/production/Settings.bundle "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi

Ответ 3

К сожалению, вы не можете добавить файл только для конкретной схемы, используя Xcode 9, но вы можете создать новую цель, дублирующую другую, и вы можете настроить свою конкретную схему для создания этой специальной цели. Таким образом, вы можете добавлять файлы только к специальной цели (и косвенно к специальной схеме). Для дублирования целей это очень легко сделать. Вы можете посмотреть этот ответ

Здесь вы можете найти учебное пособие о том, как использовать цели для управления разработками, строит сборки Vs.

Надеюсь, что ответ на ваш вопрос.