CocoaPods «Pods.xcconfig» конфликтует с существующими

У меня есть проект с несколькими целями. Существует файл xcconfig, связанный с проектом, и несколько файлов xcconfig, связанных с целями.

Теперь я хочу включить стороннюю библиотеку через CocoaPods. После $ pod install CocoaPods ввернул оригинальный проект, так как он связывает свой собственный файл Pds.xcconfig с целью исходного проекта. Это полностью игнорирует и перезаписывает параметры, определенные в исходном xcconfig, связанные с проектом, и отключает исходный файл xcconfig, связанный с целевыми объектами. Следовательно, проект оказался завинченным.

Например, Cocoapods определяет следующее в своем Pods.xcconfig которое связано с каждой целью:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1

У меня разные конфигурации для каждой конфигурации, например, для Debug файла конфигурации osx.debug.xcconfig определяет

GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0

Каков разумный и жизнеспособный подход к решению таких конфликтов?

Редактировать:

Я просмотрел список проблем CocoaPods на GitHub. Похоже, что существует большое количество вопросов, связанных с файлами xcconfig, некоторые из которых более 2 лет. Они обсуждаются, а затем закрываются, но, как мне показалось, проблема еще не решена.

IMHO, это фундаментальная и основная проблема: есть проект, который использует файлы xcconfig. Затем нужно включить стороннюю библиотеку через CocoaPods. После выполнения pod install проект запутан.

Итак, что с этим?

У вас все еще может быть ваш торт и (частично) его есть. Файл xcconfig ваших целей может включать в себя cocoapods one:

 #include "../Pods/Pods.xcconfig" MY_SETTING = YES ... 

Тем не менее, часть, которую вы все еще не можете есть, – это когда вы хотите указать флаги, уже установленные в Pods.xcconfig. Я не могу найти способ добавить к путям, которые Cocoapods уже заданы во включенном файле, например, вы хотите:

 HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes 

Однако эта строка просто отбрасывает путь поиска заголовков Cocoapods, оставляя только MyOtherIncludes 🙁

Одним из обходных путей для этого должно быть перемещение MyOtherIncludes в файлы xcconfig проекта, которые Cocoapods не трогает. К сожалению, это не сработало для меня, YMMV.

Interesting Posts

выпуск IOS 10.1 и Xcode 8

Отключить UIButton без эффекта выцветания

Как перезагрузить мой UIViewController при нажатии некоторых кнопок?

Как показать ход копирования большого файла в iOS?

Подкласс UIView бросает «Селектор не найден» при вызове метода UIView + Category

UILabel анимации неправильно

Отключение пользовательского ввода для UITextfield в быстром

Скорость AVSpeechUterrance в iOS 8

Как я могу управлять событием кнопки «Готово» для AVPlayer в iOS 8?

Можете ли вы определить, включена ли защита Wi-Fi в сети, к которой вы подключены, на iOS?

Как установить специальный профиль подготовки на устройстве тестера без использования iTunes и TestFlight

Будет ли кнопка выхода из моего iPhone-приложения нарушать правила Apple?

Мой опознаватель может быть вызван один раз

Переопределение sendEvent в пользовательском UIApplication для обнаружения события аппаратной клавиатуры

Swift 3 – загрузка ранее сохраненного аудиофайла в качестве строки base64

Давайте будем гением компьютера.