У меня есть проект с основной целью iOS, некоторые пользовательские платформы, исходные файлы которых находятся в том же проекте, и CocoaPods.
Недавно я изменил имена конфигурации сборки своего Xcode и добавил еще два, чтобы покрытьдве среды (подготовка, производство) плюс конфигурация отладки и выпуска для каждой среды.
Две цели для подготовки и производства
MyProduct (Staging)
с настройками по умолчанию Debug
, Release
MyProduct (Production)
с настройками по умолчанию Debug
, Release
Я был так раздражен необходимостью каждый раз проверять две цели в диалоге сохранения. Я решил иметь только одну цель, но несколько конфигураций сборки. И, что удивительно, вы можете делать практически все с конфигурациями сборки и переменными в ваших файлах Info.plist.
Две конфигурации сборки для среды
Поэтому я изменил конфигурации следующим образом:
- Я изменил
Debug
на Debug Staging
- Я изменил
Release
на Release Staging
- Я добавил
Debug Production
- Я добавил
Release Production
Мне также пришлось обновить настройки схемы, чтобы использовать правильную конфигурацию.
Поскольку вы изменяете конфигурацию в проекте, а не в отдельных целях, все цели получатэти конфигурации.
Проблема с пользовательскими фреймворками и CocoaPods
Поскольку я использую CocoaPods, я запустил pod install
, чтобы также сгенерировать конфигурации для модулей. Это успешно, и я могу построить и запустить мою основную цель с различными конфигурациями.
Теперь проблема в том, что я больше не могу ни создавать свои собственные фреймворки, ни их модульные тесты. Я получаю такие ошибки:
- Сбой команды MergeSwiftModule с ненулевым кодом выхода
- Каркас не найден "Pods_MyProject"
Я уже пробовал все, от очистки производных данных до дезинтеграции CocoaPods.