библиотека не найдена для -lPods - PullRequest
322 голосов
/ 26 марта 2012

Я получил ошибку при архивировании проекта. Это мое окружение.

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

Цель развертывания проекта:

IPHONEOS_DEPLOYMENT_TARGET 3.2

Ошибка показывает:

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Полагаю, Pods - это CocoaPods, которые я использовал для управления зависимостями проекта XCode. https://github.com/CocoaPods/CocoaPods

Это мой подфайл

platform :ios  
dependency 'libPusher', '1.1'

Я не уверен, что означает ошибка?

Ответы [ 41 ]

598 голосов
/ 03 апреля 2012

Открываете ли вы рабочую область (созданную CocoaPods) вместо xcodeproj?

171 голосов
/ 15 апреля 2014

Я разделил приложение и цели теста в Podfile с помощью

target :App do
    …
end

target :AppTests do
    …
end

Это привело к двум новым продуктам libPods-App.a и libPods-AppTests.a , соответственно, и они сделали предыдущий продукт libPods.a устаревшим , Мне пришлось удалить этот продукт из раздела Link Binary With Libraries конфигурации Phases обеих целей.

118 голосов
/ 02 января 2013

Сегодня я столкнулся с подобной проблемой.

  1. Я установил новый проект
  2. Я установил какао-бобы
  3. Я создал новую конфигурацию Preview вместес существующими Debug и Release
  4. Теперь при компиляции на этой новой конфигурации Preview компилятор не сможет связываться с модулями и выдает мне следующее сообщение:

    ld: library not found for -lPods
    

Решение:

Мне нужно было снова запустить

 pod install

и, таким образом, сконфигурировать cocoapods для новой конфигурации Preview.Он обновил мой проект, рабочее пространство и файл проекта Pod, и проблема исчезла

66 голосов
/ 09 января 2013

Убедитесь, что вы открываете .xcworkspace, а не .xcodeproj

53 голосов
/ 04 ноября 2014

У меня не сработало решение, это действительно невыносимо, есть файл libpods.a (красного цвета), я удалил его, и все работает нормально!Приветствую меня;)

46 голосов
/ 21 июня 2014

Я разделил списки своих модулей в Podfile для различных целей, таких как:

target :ABC do
  pod 'KissXML', '~> 5.0'
  pod 'libPhoneNumber-iOS', '~> 0.7.2'
end

target :ABCTests do
  pod 'OCMock', '~> 2.2.1', :inhibit_warnings => true
end

И запустил pod install

Это создало новую библиотеку libPods-ABC.a, к котороймой двоичный файл должен был ссылаться на.Но ошибка заключалась в том, что она не удаляла предыдущую библиотеку, т.е. libPods.a.

Решение: Удалить библиотеку libPods.a из Build Phases из Link Binary With Libraries.

45 голосов
/ 22 января 2016

У меня был указан старый файл libPod.a (возможно, из-за меня меняющихся целей).

Настройки проекта -> Фазы сборки -> Связь двоичных файлов с библиотеками

Как правило, cocoapods включает только одну библиотеку, такую ​​как libPods-target.a или libPods.a. Я решил это, удалив дубликат.

44 голосов
/ 15 октября 2013

если у вас проблемы с этим на cocoapods v25 / Xcode 5

Проект Pods Xcode теперь устанавливает для параметра сборки ONLY_ACTIVE_ARCH значение YES в конфигурации отладки. Вы должны будете установить то же самое в вашем проекте / цели, иначе сборка не удастся.

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250

UPDATE Убедитесь, что у вас есть последние драгоценности / кокосовые

  • система обновления самоцветов
  • Обновление самоцвета cocoapods

Вы захотите пересобрать проект, используя Pod Install для перестройки проекта.

38 голосов
/ 24 сентября 2013

Если Xcode жалуется при связывании, например Библиотека не найдена для -lPods, она не обнаруживает неявные зависимости.

Перейти к продукту> Редактировать схему Нажмите на Build Добавьте статическую библиотеку Pods и убедитесь, что она находится вверху списка Очистить и построить снова Если это не сработает, убедитесь, что источник спецификации, которую вы пытаетесь включить, был извлечен из github. Сделайте это, посмотрев в / Pods /. Если он пуст (не должен быть), убедитесь, что в ~ / .cocoapods / master //. Podspec указан правильный URL-адрес git-концентратора. Если по-прежнему не работает, проверьте настройки местоположения сборки XCode. Перейдите в «Настройки» -> «Местоположения» -> «Производные данные» -> «Дополнительно» и установите для местоположения сборки значение «Относительно рабочей области».

http://docs.cocoapods.org/guides/getting_started.html

36 голосов
/ 06 апреля 2015

У меня была такая же проблема, когда я редактировал Podfile, добавляя цель, которую я использовал без цели ранее.

Podfile

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

После недолгих размышлений я обнаружил, что в целевых свойствах >> вкладка Общие >> раздел Связанные фреймворки и библиотеки появился новый libPods-xxxx.a и старый libPods.a

Я только что удалил libPods.a и все работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...