Предупреждение о пути поиска библиотеки Xcode 7

117

Это предупреждение, которое он показывает:

каталог не найден для опции '-F / Applications / Xcode-beta.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS9.0.sdk / Developer / Library / Frameworks' "

Может ли кто-нибудь помочь разрешить предупреждение?

Арваз Шейх
источник
1
Этот ответ исправил для меня эту ошибку: stackoverflow.com/questions/26665196/…
fpr0001
@arwaz shaikh Не забудьте отметить мой ответ как правильный (если вы думаете, что он правильно отвечает на ваш вопрос), это может помочь людям быстрее найти его через Google или Stack Overflow.
King-Wizard
Возможный дубликат ld: warning: каталог для опции не найден
Senseful

Ответы:

225

Вот как я исправил эту проблему

В дополнение к миграции моего проекта Xcode с Xcode 6.4 на Xcode 7 я получаю следующее предупреждение (после компиляции) для тестовой цели :

directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/Developer/Library/Frameworks'

На самом деле я кое-что обнаружил, сравнивая новый проект со старым ...

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

$(SDKROOT)/Developer/Library/Frameworks
$(inherited)

В новом проекте «Пути поиска фреймворка» оставались пустыми.

После удаления этих записей в моем старом проекте предупреждение было удалено.

Ноты:

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

Кроме того, на всякий случай, если в один прекрасный день вы снова столкнетесь с одним из двух следующих предупреждающих сообщений , просто помните, что вам придется это сделать: если предупреждение относится к параметру '-L/...'Пути поиска в библиотеке, удалите материал там. Однако, если предупреждение относится к параметру « '-F/...'Пути поиска фреймворка», удалите этот материал.

Король-Мастер
источник
2
Вышесказанное верно. Однако, если вы используете CocoaPods, я обнаружил, что запись также может находиться в файлах * .xcconfig, которые она создает. Решение идентично: удалите его, в данном случае из строки FRAMEWORK_SEARCH_PATHS в ваших файлах * .xcconfig.
экотакс
2
У меня точно такая же проблема (-F / ...), и я уже удалил материал в Framework Search Paths, но предупреждение все еще появляется.
Gabe12
4
Очистите и заново соберите проект Xcode, и предупреждающее сообщение должно исчезнуть.
King-Wizard
1
Я не использовал тестовую цель, и мне пришлось удалить ее, чтобы создать.
theLastNightTrain
У King-Wizard есть правильный ответ, однако, более конкретно, вам нужно зайти в свой проект «Настройки сборки»> «Пути поиска»> «Пути поиска фреймворка»
pyRabbit
19

Судя по сообщению об ошибке, первое, что нужно сделать, - это исправить путь к цели. Вы можете редактировать пути, как показано в ответах на этот вопрос StackOverflow . Обязательно проверьте путь для всех ваших целей, если вы не уверены, что вызывает ошибку - это меня немного встревожило после обновления проекта до бета-версии Xcode 7; в FRAMEWORK_SEARCH_PATHS был путь к тестовой цели, которую нужно было удалить. Путь, который был там, был именно тем путем, по которому вы сообщили о получении предупреждения; удаление пути устранило его.

Дэйв Руск
источник
16

Король-Волшебник, по сути, прав, уточню еще немного -

Xcode 7 ищет вашу среду тестирования XCtest.frameworkпо несуществующему пути. Путь, заданный в $(SDKROOT)/Developer/Library/Frameworksразделе «Пути поиска -> Пути поиска фреймворка», ищет фреймворк, в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworksкотором путь не является допустимым. Вы можете удалить строку, $(SDKROOT)/Developer/Library/Frameworksчтобы удалить ошибку и по-прежнему иметь возможность запускать тесты.

Правильный путь к «XCTest.framework» - /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworksдля любопытных.

Надеюсь, это поможет.

Эрик Мерфи
источник
1

У меня была такая же ошибка с Xcode 9.2, и вот мои решения, не выполняемые вручную:

  1. Щелкните свой проект в Project Navigator.
  2. Перейдите к целям и нажмите MyProjectNameTest.
  3. Нажмите "Параметры сборки" и найдите " Пути поиска платформы ".
  4. В разделе « Пути поиска платформы» удалите пути и оставьте символ «$ (унаследованный)».

введите описание изображения здесь

Для тех из вас, у кого есть следующая ошибка:

каталог не найден для опции '-L /…

это означает, что это ошибка библиотеки, поэтому вы можете попробовать выполнить следующие действия:

  1. Нажмите на свой проект (цели)
  2. Нажмите "Настройки сборки", найдите "Пути поиска в библиотеке"
  3. В разделе "Пути поиска в библиотеке" удалите пути и оставьте знак $ (унаследованный).
Хорхе Касариего
источник