Xcode - ld: библиотека не найдена для -lPods

Я получаю эти ошибки, когда пытаюсь создать приложение для iOS.

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

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

POOS ROOT в настройках сборки:

${SRCROOT}/Pods

Я не создавал этот проект Xcode - просто вытащил его из git, чтобы проверить.

27 ответов

Решение

Если проект использует CocoaPods, помните, что всегда нужно открывать .xcworkspace файл вместо .xcodeproj файл.

Была и эта проблема. Что-то не так с моей установкой CocoaPods. Никакие модули, кроме KIF, не устанавливались должным образом. Я следил за комментариями в этой теме, чтобы помочь.

По сути, мне нужно было убедиться, что Build Active Architectures Only настройки для моего проекта и проекта Pods были равны.

После нескольких часов исследований это решение сработало для меня:

(отказ от ответственности: результаты могут отличаться в зависимости от обстоятельств)

Library not found -lPods-(someCocoapod) ошибка произошла из-за нескольких записей в:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

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

Слишком много часов потеряно...

Мое исправление:

удаляйте строки -lPods-(someCocoaPod) в списке "Другие флаги компоновщика", НО только в том случае, если $(унаследовано) находится вверху. Сначала я был неуверен, но обнадеживающим признаком было то, что я все еще видел ссылки на свои кокосопод, когда вышел из режима редактирования (унаследовано). Я тестировал в отладке и выпуске, оба из которых давали мне ошибки, и проблема была немедленно решена.

Похоже, что проект использует кокоаподы. и что файлы отсутствуют в вашем проекте.

Вы не можете просто скачать его с Git. Вам нужно установить его из cocoapods.

для получения дополнительной помощи, вы можете прочитать Введение в CocoaPods Tutorial

Если проект использует CocoaPods знать, чтобы всегда открывать .xcworkspace файл вместо .xcodeproj файл

Моя проблема была исправлена ​​следующим конфигом:

Build Active Architecture Only: YES

Если у вас есть несколько целей в вашем проекте, Cocoapods, возможно, хорошо интегрировались только с одной из них.

Я должен был вручную связать с libPods.a в "Связать двоичные файлы с библиотеками" для каждой дополнительной цели, которую я имел.

libPods.a в моем списке фреймворков

Эта проблема, связанная с lPods, может быть исправлена ​​с помощью следующих шагов

  • Выберите цель проекта.
  • Идти к "Build Phases" в "Link Binary With Libraries",
  • Сейчас удаляем ".a" файл той библиотеки, которая создает проблему.
  • Очистить и построить.

Это будет работать

Если кто-то пришел сюда, чтобы исправить ошибку с react-native-fbsdk после установки с помощью Cocoapodsимейте в виду, что вы должны удалить все остальные файлы.a на этапах сборки проектов и сохранить только файл.a от cocoapods, называемых libPods-WhateverAppName.a,

Только то, что осталось здесь

Обычно это вызвано бегом rnpm link и как работает rnpm.

После того, как я удалил файл.a из файла facebook из моих фаз сборки, мой проект снова заработал.

Ни один из приведенных выше ответов не помог мне.

То, что я сделал вместо этого, было запущено pod install с pod командование за пределами target раздел. Так, например:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Я быстро исправил это и возвратил ошибочную стручок назад в target раздел, где он принадлежал и бежал pod install снова:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

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

Таким образом, решение состояло в том, чтобы войти в Общие настройки моей Цели и перейти к Связанным фреймворкам и библиотекам и просто удалить -libPods.a из списка.

Мои шаги:

  1. Удалите папку "pods" и файл "Pods".
  2. Введите "pod install" в Терминал.
  3. Введите "pod update" в Терминал.

В дополнение к тому, что для "Build Active Architectures" было установлено значение YES, как упоминалось в предыдущих ответах, это было то, что сделало это для меня.

Потребовалось время, чтобы понять это ... Я пытаюсь создать быстрый фреймворк, который, в свою очередь, зависит от одной библиотеки стручков какао, для которой я получал эту ошибку при создании сборки в режиме выпуска, в режиме отладки он работал нормально!

Я проверил, все ли цели имеют одну и ту же цель развертывания, и обнаружил, что у цели несоответствующих модулей была другая цель развертывания iOS, чем у моей платформы, поэтому я везде оставил одну и ту же цель развертывания iOS (быстрая платформа, цели для модулей), и это работало как шарм!

Была такая же проблема после обновления Deployment target от 7.0 в 8.0 и позволяющий use_frameworks!

cocoapods не удалял ранее сгенерированный PodName.a файлы из Frameworks раздел моего проекта.

Поэтому мне пришлось удалить их вручную, потому что они вызвали linker error

Если в проекте используются CocoaPods, следует всегда открывать файл.xcworkspace вместо файла.xcodeproj. если вы используете.xcworkspace, переустановите файл pod, удалив pods, и снова вставьте pods и установите его!!! это сработало для меня

Это была моя проблема при попытке интегрировать Firebase в мой проект Xcode с использованием cocoapods

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

После нескольких часов поиска и опробования различных исправлений, перечисленных в стековом потоке, моя проблема была наконец исправлена ​​с помощью следующих шагов

  1. Идти к Build Settings, ищи Other Linker Flags, удалите все ожидаемые значения $(inherited) Образ

Сделайте это для всех целей.

  1. Удалить папку pods. (ios/Pods)
  2. Делать pod update

Вуаля! Все ошибки компоновщика исчезнут.

Удалите все соответствующие файлы / папки источника импортированных cocoapods, кроме podfile.

install cocoapod снова. Это должно очистить любое избыточное извлечение из исходного источника.

У меня такая же проблема

pod install и pod update в командной строке решают мою проблему

Когда вы клонируете проект откуда-то, использующим Cocoapods, вам необходимо установить их в свой проект.

Вот пошагово, что нужно сделать:

  • 1) клонировать исходный код на локальную машину;
  • 2) закрыть проект xcode (если открыт);
  • 3) установите приложение cocoapods на ваш Mac, выполнив следующую команду в терминале: "gem install cocoapods", добавьте "sudo " в начале, если не сработало;
  • 4) зайдите в корень вашего проекта xcode с помощью команды "cd" в терминале;
  • 5) в этой папке должен быть Podfile; если вы хотите проверить его дважды, используйте команду "cat Podfile", он отобразит содержимое этого файла с библиотеками, которые должны быть установлены в вашем проекте;
  • 6) затем используйте команду "pod install" для загрузки и установки библиотек в ваш проект; будет создан файл Podfile.lock и файл {имя вашего проекта}.xcworkspace;
  • 7) отныне вы должны использовать {имя вашего проекта}.xcworkspace, чтобы открыть его в xcode;

Удачи!

Для меня следующее сработало.

  1. Перейдите к "Цель проекта -> Настройки сборки -> Предварительная обработка -> Макросы препроцессора". Установите "COCOAPODS=1" во всех Отладке, Интеграции, Выпуске под "Макросами препроцессора"
  2. Добавьте следующее в "Другие флаги компоновщика" в разделе "Цель проекта"
    1. $ наследуется
    2. -ObjC
    3. -lC++
    4. -all_load

Очистите и запустите проект. Если ошибка по-прежнему получает то же самое, попробуйте установить "Цель проекта -> Параметры сборки -> Создать только активные архитектуры", установить "Отладка" на "ДА" и установить "Интеграция и выпуск" на "Нет". Затем повторите ту же настройку "Build Active Architectures Only" для всех "целей модулей"

Очистите и запустите проект. Если вы получаете следующую ошибку

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Тогда попробуйте мистер Майк ответить по этой ссылке

Xcode 5.1 - нет архитектур для компиляции (ONLY_ACTIVE_ARCH=YES, активная arch=x86_64, VALID_ARCHS=i386)

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

В проекте с несколькими целями у меня возникла та же проблема после изменения имени схемы и приложения, и я пытался обновить модули. Эта проблема возникла из-за нескольких записей в Этапы сборки -> Связать двоичные файлы с библиотеками, в которых была указана как предыдущая библиотека.a, так и текущая, а предыдущая больше не существовала. Удаление библиотеки оттуда очистило проблему.

Потратив на это полдня, я обнаружил свою проблему. Я увеличил цель развертывания с 10 до 12,1 из-за некоторых зависимостей. Я обновил цель развертывания проекта и все свои модули.

Я только что обнаружил, что есть цель развертывания на целевом уровне. После повышения до 12.1 мой проект снова строится.

Целевой показатель для "проекта"

Подфайл:

Цель развертывания для «Target»:

Приведенное ниже решение сработало для версии core-plot 2.3. Сделайте следующие изменения в разделе других флагов компоновщика.

1.Добавьте $(унаследованный) и перетащите этот элемент в верхнюю позицию. 2. Удалите префикс "Pods-" из -l "Pods-fmemopen", l"Pods-NSAttributedStringMarkdownParser" и -l"Pods-MagicalRecord".

если проблема не устранена, наконец, посмотрите, установлен ли PODS_ROOT или нет. Вы можете проверить это в пользовательском разделе.

Мой метод

  1. создайте новый проект и установите модуль, он будет работать без ошибок.

  2. Скопируйте текст в "Другие флаги компоновщика" в новом проекте в старый проект. Сделать старый проект таким же новым проектом.

  3. Проверьте "Пути поиска заголовка" тоже.

Для меня это сработало. Я изменил название своего приложения с someApp на otherApp. И я использую какао-бобы для интеграции нескольких сторонних сервисов. Поэтому из-за этого добавлено 2 файла libPod (так как я изменил название и цель приложения). Наконец мне пришлось удалить один libPod. И это сработало.

target-> фазы сборки-> связать двоичные файлы с библиотеками

Я получил ту же ошибку.

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

Исправление: Позже я обнаружил, что Рабочая область автоматически создается внутри существующего проекта при добавлении зависимостей. И работать над этим рабочим пространством.

У меня такая же проблема с собственной библиотекой, называемой linear-gradient, но я думаю, что проблема вызвана добавлением пробела между -L -L ... здесь экран ошибки

Я пробую все решения на этой странице, спасибо за помощь

Эта ошибка

Библиотека для -lRNDateTimePicker не найдена

Было решено путем понижения рейтинга «@react-native-community/datetimepicker» до «5.1.0» с «^ 6.3.2».

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

Проверьте цель развертывания в целом и перейдите к файлу pod и посмотрите

платформа: ios, '11.0'

этот 11.0 должен быть таким же в цели развертывания

Другие вопросы по тегам