-lPods에 대한 라이브러리를 찾을 수 없습니다


334

프로젝트를 보관할 때 오류가 발생했습니다. 이것은 내 환경입니다.

  • 맥 OS 라이온
  • 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는 XCode 프로젝트 종속성을 관리하는 데 사용한 CocoaPod라고 생각합니다. https://github.com/CocoaPods/CocoaPods

이것은 내 Podfile입니다

platform :ios  
dependency 'libPusher', '1.1'

오류의 의미가 확실하지 않습니까?


어떤 대답도 다루지 않은 문제의 원인. 이 답변을 여기에서 확인하십시오 : stackoverflow.com/questions/24050012/…
hasan

답변:


611

xcodeproj 대신 작업 공간 (CocoaPods에서 생성 한)을 열었습니까?


26
나는했다. 포드 프로젝트의 릴리스 아키텍처를 'armv6 armv7'로 변경하면 문제가 해결됩니다.
angelokh

10
Aha에서 다음 Podfile과 같이 플랫폼을 지정하십시오 platform :ios, :deployment_target => "3.2". 다음에 실행할 때 올바르게 구성해야합니다 pod install.
합금

248
초보자가 확실하게하려면 .xcworkspace파일이 아닌 파일을 열어야 합니다 .xcodeproj. 이런 식으로 Xcode는 프로젝트 외에도 Pods/디렉토리 의 프로젝트 와 빌드 방법을 알고 libPods.a있습니다.
Jonathan Tran

13
@JonathanTran의 의견에서 ... .xcodeproj열기가있는 경우 .xcworkspace파일 을 열기 전에 닫아야 합니다.
Ross

4
포드를 사용하는 프로젝트에는 아키텍처가 armv6 armv7로 설정되어 있어야합니다 (포드 프로젝트 아키텍처에서 사용하는 옵션 인 경우). 그렇게하지 않으면 같은 오류가 발생합니다.
Patrick Bassut

173

Podfile에서 앱과 테스트 대상을 사용하여 분리했습니다.

target :App do
    
end

target :AppTests do
    
end

이로 인해 두 개의 새로운 제품 libPods-App.alibPods-AppTests.a 가 각각 생성 되었으며 이전 제품인 libPods.a는 더 이상 사용되지 않습니다. 두 대상 의 빌드 단계 구성의 라이브러리와 바이너리 링크 섹션 에서이 제품을 제거해야했습니다 .


3
예,이 스레드에서 12 가지 다른 것을 시도한 후에 이것은 나를위한 것입니다. 내 podfile에는 위와 같이 두 개의 대상이 있으므로 libPods.a가 작성되지 않았습니다. 라이브러리가있는 링크 바이너리 섹션에서 libPods.a를 삭제하면 "고정"됩니다 (물론 SQLite 라이브러리 누락 등으로 인해 32 개의 "정의되지 않은 기호"메시지가 정렬되어 있습니다.
Hot Licks

이것은 stackoverflow.com/a/21694261/581994 및 다른 몇 가지와 동일한 수정 사항 입니다.
핫 릭

현재 여전히 발생하는 문제
nsantorello

"이전 제품인 libPods.a를 폐기했습니다. 제거해야했습니다 ..."
Vassily

이것은 주로 저에게 문제였습니다. 어떤 이유로, 나는 거기에 더 오래된 테스트 대상의 바이너리를 가지고있었습니다.
LJ 윌슨

119

나는 오늘 비슷한 문제에 부딪쳤다.

  1. 새 프로젝트를 설정했습니다
  2. 코코아 포드를 설치했습니다
  3. 나는 새로운 구성을 만들어 Preview기존과 함께 Debug하고Release
  4. 이제이 새로운 Preview구성을 컴파일 할 때 컴파일러는 포드와 연결할 수없고 다음 메시지를 표시 할 수 없습니다.

    ld: library not found for -lPods

해결책:

내가해야했던 것은 달렸다

 pod install

새로운 Preview구성을 위해 cocoapod를 구성합니다. 내 프로젝트, 작업 공간 및 포드의 프로젝트 파일을 업데이트했는데 문제가 사라졌습니다.


1
이것은 또한 나를 잡았다. 특히 구성을 만든 후에도 계속 작동했으며 문제가 발생한 파생 데이터를 정리했을 때만였습니다.
Daniel Wood

"pod install --verbose"또는 "pod update --verbose"출력의 "보내는 통계"섹션에 표시된 경고에주의하십시오. 예를 들어 "yourApp [Debug]`대상은 ` "에 정의 된 빌드 설정 또는"... 대상은`OTHER_LDFLAGS` 빌드 설정 ... "보다 우선합니다.
jk7

구성 별 빌드 제품 경로 에서 미리보기 구성을 변경 한 다음 pod install 을 수행하면 pod 가 pod 프로젝트에 내 값을 저장 하지 않습니다.
liu pluto

아! 확장에 대한 새 구성을 작성한 직후에 문제점이 발생했습니다. 처음 3 단계는 문제를 이해하는 데 도움이됩니다. 감사!
iHarshil

70

열지 .xcworkspace말고 확인하십시오.xcodeproj


이것은 내 문제였다. 일반 Xcode 프로젝트 파일에서 프로젝트를 열었습니다. 코코아 포드를 사용하기 시작하면 .xcodeproj가 아니라 .xcworkspace 파일에서 프로젝트를 열어야합니다.
HotFudge

hehe 난 항상 이렇게 :)
yeahdixon

이건 이건
bryan

세상에 안아주고 싶어 처음부터 문제가되지 않은 많은 것들이 변경되었습니다!
kjonsson

53

해결책이 저에게 효과적이지 않았습니다. 이것은 정말로 견딜 수 없으며, 파일을 libpods.a제거했습니다 (빨간색으로 표시되어 있음). 제거하고 모든 것이 잘 작동합니다! 나에게 건배;)


6
나에게도 일어났다. 타겟 이름을 변경하고 문제가있는 아티팩트 .a 파일을 작성했습니다.
seenickcode

이렇게하면 Cocoapods를 사용하여 추가 한 라이브러리가 프로젝트에 추가되지 않습니다.
Francisco Corrales Morales

1
u는 내 하루를 만들었다 : D, 2 개의 목표가 있었고 나는 하나를 삭제했지만 그 포드는 여전히
그리며

나도 마찬가지였다. 그것은 수년 동안 만지지 않은 오래된 프로젝트 였지만 여전히 오래된 형식의 포드 파일 등을 가지고있었습니다.
Departamento B

46

포드 목록을 다음 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 PhasesLink Binary With Libraries.



2
해결책이 다릅니다. 이것은이 정확한 솔루션을 사용하여 나를 고쳤습니다.
cynistersix

라이브러리 libPods.a를 제거한 다음 pod install로 문제를 해결하십시오.
bisma

1
오류가 "ld : -lPods에 대한 라이브러리를 찾을 수 없음"으로 IPHONEOS_DEPLOYMENT_TARGET = 9.0을 내보낼 때 해결되었습니다.
jacksonfdam

대상 이름을 바꾼 후 나에게 효과적입니다.
alsantos123

46

오래된 libPod.a 파일을 지정했습니다 (대상 변경으로 인한 것 같습니다).

프로젝트 설정 -> 빌드 단계 -> 바이너리를 라이브러리와 연결

일반적으로 cocoapod에는 libPods-target.aor 와 같은 하나의 라이브러리 만 포함됩니다 libPods.a. 중복을 제거하여 해결했습니다.


5
이것은 나를 위해 일했습니다. 테스트 대상 (* Tests 및 * UITests)에 대한 포드 지원을 추가하고 기본 구성이에서 Pods.debug으로 변경 Pods-MyApp.debug되었으므로 이제는 libPods-MyApp.a(이전에는 "페이딩 된"아이콘이 있음) 만 필요합니다 libPods.a.
Nicolas Miari

나에게 희미한 아이콘은 없었지만 이것이 유일한 해결책이었습니다.
Yogesh Maheshwari

여기도 마찬가지입니다. 감사합니다
rmvz3

프로젝트 이름을 변경하면 오류가 발생합니다. 위의 솔루션이 나를 위해 일했습니다.
guness

44

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을 사용하여 프로젝트를 다시 빌드하여 프로젝트를 다시 빌드하려고합니다.


아주 오래된 프로젝트에 CP를 추가 한 후 나에게 적합했습니다.
Josh Hudnall

나에게도 똑같이-아주 오래된 프로젝트에 CP를 추가하고 시뮬레이터를 빌드 할 수는 있지만 장치 빌드를 전환하자마자 빌드가 실패했습니다. 그 대답은 많은 도움이되었습니다!
Florian

40

링크 할 때 Xcode가 불평하면 (예 : -lPods에 대한 라이브러리를 찾을 수 없음) 암시 적 종속성을 감지하지 못합니다.

제품> 구성표 편집으로 이동 빌드를 클릭하십시오. 포드 정적 라이브러리 추가를 클릭하고 목록 상단에 있는지 확인하십시오. 정리하고 다시 빌드하십시오. 그래도 작동하지 않으면 포함시키려는 스펙의 소스가 올바른지 확인하십시오. github에서 가져 왔습니다. / Pods /를보고이를 수행하십시오. 비어있는 경우 (그렇지 않아야 함) ~ / .cocoapods / master //. podspec에 올바른 자식 허브 URL이 있는지 확인하십시오. 여전히 작동하지 않으면 XCode 빌드 위치 설정을 확인하십시오. 환경 설정-> 위치-> 파생 데이터-> 고급으로 이동하여 빌드 위치를“작업 공간에 상대적”으로 설정하십시오.

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


3
첫 번째 부분은 내 문제를 수정했습니다 (제품> 구성표 편집, 첫 번째 항목으로 빌드에 포드 추가). 감사합니다
William Power

xCode 6.3에서 cocoapods 0.36.0 으로이 문제가 발생 했으며이 문제가 해결되었습니다. 감사합니다!
ProgrammierTier

xcode 6.3 cocoapods 0.37과 동일-> 감사합니다 !! 목표 설정에 열중하고 문제는 계획이었습니다. 그냥 포드를 추가하십시오.
altagir

36

이전에 대상없이 사용중인 대상을 추가하여 Podfile을 편집 할 때 동일한 문제가 발생했습니다.

포드 파일

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

궁금해 한 후 대상 속성 >> 일반 탭 >> 연결된 프레임 워크 및 라이브러리 섹션에 새로운 libPods-xxxx.a와 이전 libPods.a가 있음을 발견했습니다.

방금 libPods.a를 제거하고 모든 것이 잘 작동했습니다.


그것은 나에게도 문제였다. 문제의 원인은 개발 중에 CocoaPods와 Podfile 형식을 업그레이드 한 것입니다.
gklka

2
포드에 대상을 추가 한 후 정확히 동일한 시나리오가있었습니다. 정확성 +1
Adriano Spadoni

27

GitHub의 CocoaPods 위키 는 FAQ에 정답이 있습니다 .

  • 이동 Product > Edit Scheme
  • 클릭 Build
  • 포드 정적 라이브러리를 추가하고 목록 상단에 있는지 확인하십시오.
  • 청소하고 다시 빌드
  • 그래도 문제가 해결되지 않으면 포함시키려는 사양의 소스가 github에서 가져 왔는지 확인하십시오. 에서 살펴보면됩니다 <Project Dir>/Pods/<Name of spec you are trying to include>. 비어 있으면 (그렇지 않아야 함) ~/.cocoapods/master/<spec>/<spec>.podspec올바른 github URL이 있는지 확인 하십시오.
  • 여전히 작동하지 않으면 XCode 빌드 위치 설정을 확인하십시오. Preferences -> Locations -> Derived Data -> Advanced빌드 위치로 이동하여 "작업 영역에 상대적"으로 설정하십시오.

스크린 샷


6
나는이 문제에 부딪 쳤지 만이 단계를 수행 할 수없는 것 같습니다. "Pods 정적 라이브러리 추가 및 목록 상단에 있는지 확인하십시오"라는 메시지가 표시됩니다. 정적 라이브러리는 빌드 구성표에 추가하기 위해 클릭하면 표시되지 않습니다. 어떤 생각?
베이 필립스

@BayPhillips 현재 프로젝트를 닫고 프로젝트 폴더에서 생성 된 .xcworkspace를 엽니 다. 정적 라이브러리가 나타납니다
Juneho Nam

12

"Partners"에서 "NBSelector"로 프로젝트 이름을 바꾸고있었습니다.

프로젝트 이름을 바꾼 후 "libPods-Partners에 대한 라이브러리를 찾을 수 없습니다"오류가 발생했습니다. Xcode가 기존 Partners.a 파일에 연결하려고했습니다. 이름을 바꾼 후에 podInstalled가 있으면 제거하십시오.

여기에 이미지 설명을 입력하십시오


내 문제에 대한 완벽한 해결책 :) 그러나 포드를 제거한 후 사용하려면 다시 추가해야합니다
satheesh

11

모든 포드에서 ONLY_ACTIVE_ARCH = NO를 사용하면 문제가 해결되었습니다. 이를 지속적으로 유지하기 위해 Podfile에 post_install 훅을 추가했습니다.

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
      target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      end
  end
end

pod install 그리고 당신은 끝났습니다.


8

Ad-Hoc 및 App Store 아카이브를 만들기 위해 '배포'또는 유사한 구성을 작성 했습니까? 다른 많은 사람들과 마찬가지로 나는 Apple의 권장 사항을 따르고 '배포'라는 별명을 '배포'라고 부르고 다른 서명 규칙을 설정했습니다. 어쨌든, 그들은 Organizer에서 스키마와 "배포"옵션을 도입하기 전에 권장 사항 일 수 있습니다.

그런 다음 포드와 동일한 문제가있었습니다. 디버깅 할 때 모두 잘 작동했지만 링크 오류로 인해 아카이브에 실패했습니다. 이것을 시도한 후에 원래 프로젝트의 아카이브 구성을 '배포'에서 '릴리스'로 변경했는데 링크 오류가 사라졌습니다.

그러나 아카이브는 파일 시스템에서 찾을 수는 있지만 Organizer에는 표시되지 않았지만 크기는 0이었습니다.

이 모든 문제를 해결하기위한 마지막 단계는 '릴리스'구성의 "설치 건너 뛰기"설정을 "아니오"로 변경하는 것이 었습니다. 이 작업은 기본 프로젝트에서만 수행해야하지만 포드 프로젝트에서는 수행하지 않아야합니다. Pods 프로젝트는 'pod install'을 실행할 때마다 생성되므로 그대로 두는 것이 좋습니다.

업데이트 방금 CocoaPods devs로부터 답변을 받았습니다 . 포드 구성이 올바르게 설정되어 있기 때문에 저에게는 효과가없는 것 같습니다. 그러나 그것은 다른 누군가를 도울 수 있습니다.


8

제 경우에는 Xcode의 파생 데이터 위치가 "레거시"옵션으로 설정되어 있다는 것이 문제였습니다. CocoaPods 대상 (libPods.a)이 올바르게 작성되었지만 Xcode가 잘못된 위치를 찾고있었습니다.

"Unique"(기본값)로 전환하면 문제가 해결되었습니다. 환경 설정> 위치로 이동하여 고급 ... 버튼을 클릭하면됩니다.


그러나 "레거시"를 사용해야하는 상황에 처해 있으며 다른 솔루션을 계속 검색하십시오.
CocoaBob



4

제품 / 편집 체계에서 "암시 적 종속성 찾기"를 선택하면 대상으로 포드를 추가 할 필요없이이 문제가 해결됩니다.


또한 pod install을 다시 실행하면 이러한 단계를 수행하면 도움이 될 수 있습니다.
StackRunner

3

나는 여기에 대한 모든 대답을 거쳤지만 나에게는 매우 간단했습니다 ... 대상-> 빌드 단계로 이동 한 다음 libPods-YourProject.a를 제거한 다음 "+"를 사용하여 다시 추가하십시오. 라이브러리가 빨간색임을 걱정하지 마십시오. 괜찮습니다.


3

나는 cocoapods를 업데이트 한 후 오래된 cocoapod 버전을 사용했는데 오랜 시간이 지나면 업데이트 할 때 주요 업데이트로 인해 설치된 포드를 업데이트하는 것이 좋습니다. 나는 그것을 업데이트하고 새로운 버전의 포드가 잘 업데이트되었습니다. 그러나 그 후 나는 같은 오류가 발생library not found for -lPods-xxxprojectName-xxxxxpodName

이 thred에 대한 답변으로 제공된 많은 솔루션을 시도한 후에 이것 중 어느 것도 나를 위해 일하지 않았습니다. 그런 다음 프로젝트 설정으로 이동하여 포드 경로가 변경되었음을 발견했습니다.Other Linker Flag

당신을 확인 Manage Schemes올바른 포드 이름과의 비교 Other Linker Flag와 유사하지 않을 경우 그것은 변경,

오래된 포드 경로는 -l"lPods-xxxprojectName-xxxxxpodName"

그러나 새로운 포드는 단지 아래처럼 새로운 것으로 xxxxxpodName교체되었습니다.Other Linker Flag

포드 경로로 변경되었으며 -l"xxxxxpodName"작동했습니다.

나는 이것 뒤에 완벽한 이유를 모르지만 이것이 도움이 될 수 있습니다.


3

작업 공간을 열었지만 같은 오류가 발생했습니다.

활성 아키텍처 만 YES로 설정

내 문제를 해결하십시오.


도움이됩니다. 감사합니다. 어쨌든 디버그에만 "예"로 설정되어 있고 나머지 구성에는 "아니오"가 있고 디버그 이외의 모든 빌드에서 해당 오류가 발생했습니다.
Pavel Yakimenko

이것은 나에게만 도움이되었습니다. 'Open as .workspace'라는 대답은 너무 지루합니다. 개발자가 먼저 설치 안내서 문서를 충분히 확인해야한다고 생각합니다.
KoreanXcodeWorker

2

아래 단계를 수행하여 해결했습니다.

  • cocoapods 설치를 업데이트하십시오. ($ [sudo] gem install cocoapods)
  • 프로젝트에서 종속성을 다시 설치하십시오. (포드 설치)
  • 정리하고 다시 빌드 / 보관하십시오.

이것은 실제로 매우 잘 작동했습니다. 내 프로젝트에서 포드 중 하나를 업데이트했는데 문제가 발생했습니다. 나는이 단계를 수행했으며 효과가있었습니다. 빠른 수정이었습니다. 감사합니다
agarcian

2

필자의 경우 pod install배포 및 릴리스 구성표를 만든 후 문제를 해결했습니다.


1

제출을 위해 보관할 때도 같은 문제가 발생했습니다. 이 문제에 대한 토론은 여기에서 찾을 수 있습니다 : https://github.com/CocoaPods/CocoaPods/issues/155

요약하면 두 가지 방법이 효과적입니다.

  1. "환경 설정-> 위치-> 고급"을 "사용자 정의 (작업 영역에 상대적)"으로 설정 또는
  2. Podfile을 - platform :ios, :deployment_target => "5.0"

1

iOS 7에서 Xcode 5 사용

이것은 내가 한 시간 동안 붙어서 한 일입니다. 빌드 설정> 유효한 아키텍처에서 ARM64를 제거하십시오.

추가 : 또한 제 경우에는 데이터 위치가 파생되지 않았습니다. 빌드 위치에 대해 고유 한 것을 선택했습니다.


1

iOS7 및 Xcode 5를 사용하는 경우 다음을 수행하십시오.

  • 포드 프로젝트를 선택하십시오.
  • 대상 포드로 이동하여 빌드 설정에서 아키텍처-> 표준 아키텍처 (armv7, armv7s)를 선택하십시오.
  • 포드 프로젝트의 모든 대상에 대해 동일한 작업을 수행하십시오.

1

나는이 스레드에서 모든 대답을 시도했지만 아무 소용이 없었다. 마지막으로 대상 프로젝트의 "사전 구성 빌드 제품 경로"를 포드 프로젝트의 값과 일치시켜 문제를 해결했습니다. 그들이 두 개의 다른 출력 위치에 구축하고 있음이 밝혀졌습니다. 이 글의 다른 제안들 중 어느 것도 나와 관련이 없습니다. XCode가 유용한 오류 설명을 제공하면 좋을 것입니다 (WHY가 lib를 사용할 수없는 이유-파일을 찾을 수 없음, 일치하는 아키텍처가 없습니다 등).


1

이 문제에서 시스템에 포드를 이미 설치하고 업데이트 한 경우 Xcode에서 포드 라이브러리를 찾을 수 없습니다.이 문제를 해결하려면 다음과 같은 원인이 있는지 확인하십시오.

  1. 작업 공간을 사용하고 있습니다.
  2. 포드 라이브러리가 빌드됩니다.
  3. 포드 라이브러리는 프로젝트의 제품 그룹에서 참조됩니다.
  4. 대상은 프레임 워크 빌드 단계와 링크 된 포드 라이브러리를 포함합니다.

1

시험

link_with 'YouTarget1', 'YouTarget2'...

내 프로젝트가 효과가 있었고 대상이 갑자기 컴파일을 중단했습니다. 그런 다음 "link_with"를 추가하고 정상으로 돌아 왔습니다.

분명히, 이제는 첫 번째 대상에 연결됩니다.

http://guides.cocoapods.org/syntax/podfile.html#link_with


이 문제는 저를 위해 고쳤습니다 ... 문제가있었습니다. 첫 번째 대상이 구축 중이고 두 번째 대상이 "ld : -lPods에 대한 라이브러리를 찾을 수 없음"으로 실패했습니다.
Muxor

1

여전히이 문제가 발생하면 다음을 시도하십시오.

pod update

저에게 도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.