it-swarm.com.ru

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, чтобы проверить.

164
mrks

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

510
H6.

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

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

88
Stunner

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

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

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

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

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

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

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

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

48
damote

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

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

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

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

32
Rahul Patel

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

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

libPods.a in my list of frameworks

26
Rizwan Sattar

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

Build Active Architecture Only: YES
21
Durul Dalkanat

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

Вместо этого я запустил 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 из списка.

10
gravy

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

 Only that remains here

Обычно это происходит из-за запуска rnpm link и способа работы rnpm.

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

8
SudoPlz

Мои шаги: 

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

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

7
David Liu

Возникла та же проблема после обновления Deployment target с 7.0 до 8.0 и включения use_frameworks!

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

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

6
Tim

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

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

4
thatzprem

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

  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)

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

2
Sakthimuthiah

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

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

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

Удачи!

2
Renat Gatin

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

2
Shardon

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

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

1
tamtoum1987

Это была моя проблема при попытке интегрировать 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)Image

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

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

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

1
Hariks

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

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

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

1
Abuzar Amin

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

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

1
Narasimha Nallamsetty

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

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

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

1
Saikiran K

Мой метод

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

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

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

1
Supapon Pick Pucknavin

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

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

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

1
Vasanth

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

0
Chintu the cool kid