Пользовательские конфигурации сборки XCode с пользовательскими структурами и Cocoapods - PullRequest
0 голосов
/ 30 октября 2019

У меня есть проект с основной целью iOS, некоторые пользовательские платформы, исходные файлы которых находятся в том же проекте, и CocoaPods.

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

Две цели для подготовки и производства

  • MyProduct (Staging) с настройками по умолчанию Debug, Release
  • MyProduct (Production) с настройками по умолчанию Debug, Release

Я был так раздражен необходимостью каждый раз проверять две цели в диалоге сохранения. Я решил иметь только одну цель, но несколько конфигураций сборки. И, что удивительно, вы можете делать практически все с конфигурациями сборки и переменными в ваших файлах Info.plist.

Две конфигурации сборки для среды

Поэтому я изменил конфигурации следующим образом:

  1. Я изменил Debug на Debug Staging
  2. Я изменил Release на Release Staging
  3. Я добавил Debug Production
  4. Я добавил Release Production

Мне также пришлось обновить настройки схемы, чтобы использовать правильную конфигурацию.

Поскольку вы изменяете конфигурацию в проекте, а не в отдельных целях, все цели получатэти конфигурации.

Проблема с пользовательскими фреймворками и CocoaPods

Поскольку я использую CocoaPods, я запустил pod install, чтобы также сгенерировать конфигурации для модулей. Это успешно, и я могу построить и запустить мою основную цель с различными конфигурациями.

Теперь проблема в том, что я больше не могу ни создавать свои собственные фреймворки, ни их модульные тесты. Я получаю такие ошибки:

  • Сбой команды MergeSwiftModule с ненулевым кодом выхода
  • Каркас не найден "Pods_MyProject"

Я уже пробовал все, от очистки производных данных до дезинтеграции CocoaPods.

1 Ответ

0 голосов
/ 30 октября 2019

Оказалось, что Cocoapods каким-то образом запутывается, когда больше нет конфигурации по умолчанию Debug и Release. После выполнения pod install я смог увидеть 6 конфигураций сборки для проекта Pods Xcode:

  • Debug
  • Debug Staging
  • Debug Production
  • Release
  • Release Staging
  • Release Production

Решение

Я решил использовать Debug и Release для производственной среды и Debug Staging и Release Staging для промежуточной среды. Я снова запустил pod install и: Проблема решена. Я вижу 4 конфигурации сборки для проекта Pods:

  • Debug <- Производство </li>
  • Debug Staging
  • Release <- Производство </li>
  • Release Staging

Все пользовательские фреймворки снова создаются успешно, и я могу снова запустить свои юнит-тесты.

...