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
в "Связать двоичные файлы с библиотеками" для каждой дополнительной цели, которую я имел.
Эта проблема, связанная с 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
из списка.
Мои шаги:
- Удалите папку "pods" и файл "Pods".
- Введите "pod install" в Терминал.
- Введите "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)
После нескольких часов поиска и опробования различных исправлений, перечисленных в стековом потоке, моя проблема была наконец исправлена с помощью следующих шагов
Сделайте это для всех целей.
- Удалить папку pods. (
ios/Pods
) - Делать
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;
Удачи!
Для меня следующее сработало.
- Перейдите к "Цель проекта -> Настройки сборки -> Предварительная обработка -> Макросы препроцессора". Установите "COCOAPODS=1" во всех Отладке, Интеграции, Выпуске под "Макросами препроцессора"
- Добавьте следующее в "Другие флаги компоновщика" в разделе "Цель проекта"
- $ наследуется
- -ObjC
- -lC++
- -all_load
Очистите и запустите проект. Если ошибка по-прежнему получает то же самое, попробуйте установить "Цель проекта -> Параметры сборки -> Создать только активные архитектуры", установить "Отладка" на "ДА" и установить "Интеграция и выпуск" на "Нет". Затем повторите ту же настройку "Build Active Architectures Only" для всех "целей модулей"
Очистите и запустите проект. Если вы получаете следующую ошибку
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active 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 или нет. Вы можете проверить это в пользовательском разделе.
Мой метод
создайте новый проект и установите модуль, он будет работать без ошибок.
Скопируйте текст в "Другие флаги компоновщика" в новом проекте в старый проект. Сделать старый проект таким же новым проектом.
Проверьте "Пути поиска заголовка" тоже.
Для меня это сработало. Я изменил название своего приложения с someApp на otherApp. И я использую какао-бобы для интеграции нескольких сторонних сервисов. Поэтому из-за этого добавлено 2 файла libPod (так как я изменил название и цель приложения). Наконец мне пришлось удалить один libPod. И это сработало.
target-> фазы сборки-> связать двоичные файлы с библиотеками
Я получил ту же ошибку.
Проблема: я создал отдельное рабочее пространство и добавил в него свой существующий проект. Я получил ошибку, когда работал над этим рабочим пространством.
Исправление: Позже я обнаружил, что Рабочая область автоматически создается внутри существующего проекта при добавлении зависимостей. И работать над этим рабочим пространством.
Эта ошибка
Библиотека для -lRNDateTimePicker не найдена
Было решено путем понижения рейтинга «@react-native-community/datetimepicker» до «5.1.0» с «^ 6.3.2».
Надеюсь, поможет
Проверьте цель развертывания в целом и перейдите к файлу pod и посмотрите
платформа: ios, '11.0'
этот 11.0 должен быть таким же в цели развертывания