Я получил ошибку при архивировании проекта. Это моя среда.
- 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'
Я не уверен, что означает ошибка?
Ответы:
Открываете ли вы рабочую область (созданную CocoaPods) вместо xcodeproj?
источник
Podfile
, указать платформу следующим образом:platform :ios, :deployment_target => "3.2"
. Это должно правильно настроить его при следующем запускеpod install
..xcworkspace
файл, а не.xcodeproj
. Таким образом, в дополнение к вашему проекту, Xcode знает о проекте вPods/
каталоге и о том, как его собратьlibPods.a
..xcodeproj
открытое, вам нужно закрыть его, прежде чем открыть.xcworkspace
файл.Я разделил приложение и цели теста в Podfile, используя
Это привело к появлению двух новых продуктов libPods-App.a и libPods-AppTests.a , соответственно, и они сделали предыдущий продукт libPods.a устаревшим. Мне пришлось удалить этот продукт из раздела « Связать двоичные файлы с библиотеками» конфигурации фаз сборки обеих целей.
источник
Я столкнулся с подобной проблемой сегодня.
Preview
вместе с существующимиDebug
иRelease
Теперь при компиляции в этой новой
Preview
конфигурации компилятор не сможет связываться с Pods и выдает мне следующее сообщение:Решение:
Я должен был бежать
снова и таким образом конфигурируем cocoapods для новой
Preview
конфигурации. Он обновил мой проект, рабочее пространство и файл проекта Pod, и проблема исчезлаисточник
Будьте уверены, что вы открываете
.xcworkspace
, а не.xcodeproj
источник
Решение не сработало для меня, это действительно невыносимо, есть файл
libpods.a
(который был красного цвета), я удалил его, и все работает отлично! Приветствую меня;)источник
Я разделил свои списки стручков в
Podfile
для различных целей, таких как:И побежал
pod install
Это создало новую библиотеку,
libPods-ABC.a
с которой мой бинарный файл должен был ссылаться. Но ошибка в том , что она не удалить предыдущую библиотеку ИЭlibPods.a
.Решение: Удалите библиотеку
libPods.a
изBuild Phases
изLink Binary With Libraries
.источник
У меня был указан старый файл libPod.a (вероятно, из-за меня меняющихся целей).
Настройки проекта -> Этапы сборки -> Связать двоичные файлы с библиотеками
Как правило, cocoapods включает только одну библиотеку, такую как
libPods-target.a
илиlibPods.a
. Я решил это, удалив дубликат.источник
Pods.debug
наPods-MyApp.debug
, так что теперь мне нужно толькоlibPods-MyApp.a
(был значок «выцветший» для старогоlibPods.a
),если у вас возникли проблемы с этим на 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
ОБНОВЛЕНИЕ Убедитесь, что у вас есть последние драгоценности / Cocoapods
Вы захотите пересобрать проект, используя Pod Install, чтобы пересобрать проект.
источник
Если Xcode жалуется при связывании, например, Библиотека не найдена для -lPods, он не обнаруживает неявные зависимости.
Выберите «Продукт»> «Редактировать схему». Нажмите «Создать». Добавьте статическую библиотеку «Pods» и убедитесь, что она находится вверху списка. Очистите и соберите снова. Если это не сработает, убедитесь, что источник спецификации, которую вы пытаетесь включить, был вытащил из github. Сделайте это, посмотрев в / Pods /. Если оно пустое (не должно быть), убедитесь, что в ~ / .cocoapods / master //. Podspec указан правильный URL-адрес git-концентратора. Если по-прежнему не работает, проверьте настройки местоположения сборки XCode. Перейдите в «Настройки» -> «Местоположения» -> «Производные данные» -> «Дополнительно» и установите расположение сборки на «Относительно рабочей области».
http://docs.cocoapods.org/guides/getting_started.html
источник
У меня была такая же проблема, когда я редактировал Podfile, добавляя цель, которую я использовал без цели ранее.
Podfile
После недолгих размышлений я обнаружил, что в целевых свойствах >> вкладка «Общие» >> раздел «Связанные фреймворки и библиотеки» появились новый libPods-xxxx.a и старый libPods.a
Я только что удалил libPods.a и все работало нормально.
источник
Вики CocoaPods на GitHub имеет ответ прямо в их FAQ :
Product > Edit Scheme
Build
<Project Dir>/Pods/<Name of spec you are trying to include>
. Если оно пустое (не должно быть), убедитесь, что в~/.cocoapods/master/<spec>/<spec>.podspec
нем указан правильный URL-адрес github.Preferences -> Locations -> Derived Data -> Advanced
и установите расположение сборки "Относительно рабочей области".источник
Я переименовывал проект в «NBSelector» из «Партнеры».
После переименования проекта произошла ошибка «Библиотека не найдена для libPods-Partners». Xcode пытался связать старый файл Partners.a. Просто удалите его, если у вас есть podInstalled после переименования.
источник
Использование ONLY_ACTIVE_ARCH = NO во всех модулях решило проблему для меня. Чтобы сделать это постоянным, я добавил хук post_install к своему Podfile:
pod install
и вы сделали.источник
Вы создали «Распространение» или аналогичную конфигурацию для архивов Ad-Hoc и App Store? Как и многие другие, я следовал рекомендациям Apple и назвал конфигурацию «Release», назвал ее «Distribution» и установил для нее различные правила подписи. Ну, может быть, это была рекомендация, прежде чем они представили схемы и опцию «Распределить» в Организаторе, во всяком случае, я просто имел ее раньше.
Тогда у меня была такая же проблема со стручками. При отладке все работало хорошо, но архивирование не удалось с ошибкой ссылки. После того, как я попробовал то и это, я изменил конфигурацию архива моего исходного проекта с «Распространение» на «Выпуск», и ошибка связи исчезла.
Тем не менее, архив не показывался в Организаторе, хотя я мог найти его в файловой системе, но он имел размер 0.
Последним шагом для исправления всего этого было изменение настройки «Пропустить установку» для конфигурации «Освобождение» на «НЕТ». Обратите внимание, что вы должны сделать это только для вашего основного проекта, но не для проекта Pods. Лучше оставить проект Pods как есть, так как он генерируется каждый раз, когда вы запускаете 'pod install'.
Обновление Только что получил ответ от разработчиков CocoaPods. Мне кажется, это не работает, так как у меня правильно настроена конфигурация Pods. Но это может помочь кому-то еще.
источник
В моем случае проблема заключалась в том, что для местоположения производных данных XCode была выбрана опция «Legacy». Цель CocoaPods (libPods.a) создавалась правильно, но Xcode искал ее не в том месте.
Переключение на «Уникальный» (по умолчанию) решило проблему. Вы можете сделать это, перейдя в «Настройки»> «Местоположения» и нажав кнопку «Дополнительно ...».
источник
Только добавление «Пути поиска в библиотеке» (в настройках сборки «MyProject») в «Pods / build / Debug-iphonesimulator» работало для меня (при использовании симулятора).
Получил это отсюда: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
источник
Если вы архивируете для iOS7 и Xcode5 и получили эти ошибки, перейдите по этой ссылке. Похоже, что Apple отказывается от архитектуры, которая необходима для какао-бобов https://github.com/CocoaPods/CocoaPods/pull/1352
источник
Я обнаружил, что выбор «Найти неявные зависимости» (в рамках схемы продукта / редактирования) решит эту проблему вместо того, чтобы добавлять стручки в качестве цели.
источник
Я рассмотрел каждый ответ здесь, но для меня это было безумно просто ... Перейдите в Target -> Build Phases, затем удалите libPods-YourProject.a, затем добавьте его снова, используя «+». Не беспокойтесь о том, что библиотека красная, это нормально.
источник
Я использовал старую версию cocoapod после обновления cocoapods, он предлагает мне обновить установленный модуль из-за серьезного обновления, так как я обновляюсь после долгого времени. Я обновляю его и обновляю стручки новой версии. Но после этого я получил ошибку как
library not found for -lPods-xxxprojectName-xxxxxpodName
После того, как я попробовал так много решений, приведенных в ответе в этом разделе, у меня не получилось. Затем я пошел в настройки своего проекта и обнаружил, что путь стручков был изменен, который был на
Other Linker Flag
Проверьте
Manage Schemes
правильность названия вашего стручка и сравните его.Other Linker Flag
Измените его, если он не похожСтарый путь был
-l"lPods-xxxprojectName-xxxxxpodName"
Но новые стручки были только,
xxxxxpodName
поэтому я заменилOther Linker Flag
на новую, как показано нижеИзменен путь к стручку,
-l"xxxxxpodName"
и это работает.Я не знаю точной причины этого, но, возможно, это поможет кому-то.
источник
Я открыл рабочее пространство, но получил ту же ошибку.
Построить активную архитектуру только для ДА
решить мою проблему.
источник
Решил это, выполнив следующие шаги:
источник
В моем случае
pod install
исправлена проблема, после создания схем распространения и выпуска.источник
У меня такая же проблема при архивировании для отправки. Обсуждение этой проблемы можно найти здесь: https://github.com/CocoaPods/CocoaPods/issues/155.
Таким образом, у меня работают два метода:
- platform :ios, :deployment_target => "5.0"
источник
Использование Xcode 5 с iOS 7
Это то, что я сделал после того, как застрял на час. Удалите ARM64 из Настройки сборки> Допустимая архитектура.
ДОБАВЛЕНО: Кроме того, для моего случая не было полученного местоположения данных. Я выбрал уникальное место для постройки.
источник
если вы используете iOS7 и Xcode 5, выполните:
источник
Я пробовал КАЖДЫЙ ответ в этой теме безрезультатно. Наконец, я решил мою проблему, сопоставив «Путь к продуктам сборки до конфигурации» в моем целевом проекте со значением в проекте Pods. Оказывается, они строили в двух разных местах вывода. Ни одно из других предложений в этой теме не было актуально для меня. Было бы здорово, если бы XCode дал полезное описание ошибки (например, ПОЧЕМУ он не может использовать lib - файл не найден, соответствующая архитектура не найдена и т. Д.).
источник
В этом выпуске, если вы уже установили и обновили модуль в своей системе, тогда ваш XCode не может найти библиотеку Pods. Для решения этой проблемы, пожалуйста, проверьте следующие причины, которые могут иметь место:
источник
пытаться
link_with YouTarget1, YouTarget2 ...
Мой проект сработал, цели внезапно перестали компилироваться. Затем добавил "link_with" и вернулся в нормальное состояние.
Видимо, теперь он просто подключается к первой цели, вот что говорит ссылка:
http://guides.cocoapods.org/syntax/podfile.html#link_with
источник
Если вы все еще получаете эту проблему, попробуйте:
Сделал работу для меня, надеюсь, это поможет вам.
источник