Цель... отменяет настройку `OTHER_LDFLAGS`, определенную в` Pods/Pods.xcconfig
Я включил SpatialIite
в проект Xcode, который использует заголовочный файл из Proj.4
, только один заголовок. Оба являются проектами Xcode и имеют статические цели.
Я пытаюсь перейти из подмодуля git в Cocoapods. Поскольку статические объекты, кажется, трудно использовать с Cocoapods, я просто хочу, чтобы проект был построен обычным способом. Я сделал podspec для Proj.4
. После написания podfile для SpatialLite
я получил предупреждения:
[!] The target `SpatialiteIOS [Debug]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The target `SpatialiteIOS [Debug - Release]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Я прочитал эту проблему, но я почти не знаю, что означают предупреждения и что я могу сделать, чтобы исправить это.
Кроме того, когда я открываю рабочую область, а также открываю только проект SpatiaLite, оба предназначены для Mac OSX 64, когда предполагается, что это проект iOS. Мой podfile говорит "platform: ios".
Ответы
Ответ 1
Это определенно работает большую часть времени:
Перейдите в свою целевую настройку → Другие флаги компоновщика → двойной щелчок. Добавьте $(inherited)
в новую строку.
Если у вас возникла проблема с "... target переопределяет параметр сборки GCC_PREPROCESSOR_DEFINITIONS, определенный в...", тогда вы должны добавить $(унаследованный) к целевым настройкам сборки → Макросы препроцессора
Ответ 2
Существует конфликт между вашими настройками сборки и настройками сборки по умолчанию, которые хочет Cocoapods. Чтобы увидеть параметры сборки Cocoapods, просмотрите файлы .xcconfig в Pods/Target Support Files/Pods- $ {PROJECTNAME}/в своем проекте. Для меня этот файл содержит:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Commando"
OTHER_LDFLAGS = -ObjC -framework Foundation -framework QuartzCore -framework UIKit
PODS_ROOT = ${SRCROOT}/Pods
Если вы довольны настройками Cocoapods, перейдите в Build Settings для вашего проекта, найдите подходящую настройку и нажмите клавишу Delete. Это будет использовать настройку Cocoapods.
С другой стороны, если у вас есть пользовательский параметр, который вам нужно использовать, добавьте $ (унаследованный) к этому параметру.
Ответ 3
Я видел эти 3 ошибки для команды pod в терминале
pod install
[!] Цель MY_APP [Debug/Release] переопределяет HEADER_SEARCH_PATHS...
[!] Цель MY_APP [Debug/Release] переопределяет OTHER_LDFLAGS...
[!] Цель MY_APP [Debug/Release] переопределяет GCC_PREPROCESSOR_DEFINITIONS...
Все эти 3 ошибки исчезнут, добавив $(унаследованный) в
- Пути поиска заголовков
- Другие флаги компоновщика
- Макросы препроцессора
в Project → Target → Настройки сборки
И теперь команда будет работать без каких-либо ошибок
pod install
Ответ 4
В вашем проекте найдите Target -> Build Settings -> Other Linker Flags
, выберите Other Linker Flags
, нажмите delete
(Mac Keyboard)/Backspace
(Обычная клавиатура), чтобы восстановить настройку. Это работает для меня.
Пример:
Перед
![enter image description here]()
После
![enter image description here]()
Ответ 5
У меня была аналогичная проблема, когда я запускал pod install
, я видел следующие предупреждения/ошибки (связанные с CLANG_CXX_LIBRARY
):
Ошибка/предупреждение из Cocoapods
[!] The `Project [Debug]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `Project [Release]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Исправление
- Выберите
Project
, чтобы вы могли видеть Build Settings
.
- Выберите
Target
(AppName
в разделе Targets
)
- Найти
C++ Standard Library
(Вероятно, это будет BOLD - это означает, что он переопределен).
- Выберите строку (поэтому она выделена синим цветом) и нажмите ⌘ + DELETE (Command + Backspace)
Строка не должна быть выделена полужирным шрифтом, и если вы запустите pod install
, предупреждения/ошибки должны исчезнуть.
Визуальная помощь
![CLANG_CXX_LIBRARY Error/Warning with Cocoapods]()
Ответ 6
Если Xcode жалуется при связывании, например. Библиотека не найдена для -lPods, она не обнаруживает неявные зависимости:
Перейдите в раздел Product > Edit Scheme
Нажмите "Построить"
Добавить статическую библиотеку Pods
Очистите и постройте снова
Ответ 7
Первая строка ссылки ниже сохранила мой день:
Чтобы добавить значения к параметрам из ваших настроек сборки проектов, добавьте список значений с $(унаследованным).
https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods#faq
Кроме того, не забудьте вставить эту строку в начало вашего файла подкачки:
platform :iOS, '5.0'
Ответ 8
Для меня проблема была с моими целями испытаний. У меня уже был флаг $(inherited)
в моей основной цели приложения.
Я добавил его в MyAppTests Другие флаги компоновщика. После этого, когда я запустил pod install
предупреждающее сообщение пропало. ![enter image description here]()
Ответ 9
Я добавил $(унаследованный), но мой проект все еще не компилировался. Для меня проблемой был флаг "Build for active Architecture only", мне пришлось установить его в YES.