-lPods에 대한 라이브러리를 찾을 수 없습니다
프로젝트를 보관할 때 오류가 발생했습니다. 이것은 내 환경입니다.
- 맥 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'
오류의 의미가 확실하지 않습니까?
xcodeproj 대신 작업 공간 (CocoaPods에서 생성 한)을 열었습니까?
Podfile에서 앱과 테스트 대상을 사용하여 분리했습니다.
target :App do
…
end
target :AppTests do
…
end
이로 인해 각각 2 개의 신제품 libPods-App.a 및 libPods-AppTests.a가 생성 되었으며 이전 제품인 libPods.a는 더 이상 사용되지 않습니다. 두 대상 의 빌드 단계 구성에서 라이브러리와 바이너리 링크 섹션 에서이 제품을 제거해야했습니다 .
나는 오늘 비슷한 문제에 부딪쳤다.
- 새 프로젝트를 설정했습니다
- 코코아 포드를 설치했습니다
- 나는 새로운 구성을 만들어
Preview
기존과 함께Debug
하고Release
이제이 새로운
Preview
구성을 컴파일 할 때 컴파일러는 포드와 연결할 수없고 다음 메시지를 표시 할 수 없습니다.ld: library not found for -lPods
해결책:
내가해야했던 것은 달렸다
pod install
새로운 Preview
구성을 위해 cocoapod를 구성합니다. 내 프로젝트, 작업 공간 및 포드의 프로젝트 파일을 업데이트했는데 문제가 사라졌습니다.
열지 .xcworkspace
말고 확인하십시오.xcodeproj
해결책이 저에게 효과적이지 않았습니다. 이것은 정말로 견딜 수 없으며, 파일을 libpods.a
제거했습니다 (빨간색이었습니다). 제거하고 모든 것이 잘 작동합니다! 나에게 건배;)
포드 목록을 다음 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 Phases
의 Link Binary With Libraries
.
오래된 libPod.a 파일을 지정했습니다 (대상 변경으로 인한 것 같습니다).
프로젝트 설정 -> 빌드 단계 -> 바이너리를 라이브러리와 연결
일반적으로 cocoapod에는 libPods-target.a
or 와 같은 하나의 라이브러리 만 포함됩니다 libPods.a
. 중복을 제거하여 해결했습니다.
cocoapods v25 / Xcode 5 에서이 문제가 발생하는 경우
Pods Xcode 프로젝트는 이제 디버그 구성에서 ONLY_ACTIVE_ARCH 빌드 설정을 YES로 설정합니다. 프로젝트 / 타겟에서 동일하게 설정해야합니다. 그렇지 않으면 빌드가 실패합니다.
최신 보석 / 코코아 포드가 있는지 확인하십시오
- 보석 업데이트 시스템
- 보석 업데이트 cocoapods
Pod Install을 사용하여 프로젝트를 다시 빌드하여 프로젝트를 다시 작성하려고합니다.
링크 할 때 Xcode가 불평 할 경우 (예 : -lPods에 대한 라이브러리를 찾을 수 없음) 암시 적 종속성을 감지하지 않습니다.
제품> 구성표 편집으로 이동 빌드를 클릭하십시오. 포드 정적 라이브러리 추가를 클릭하고 목록 상단에 있는지 확인하십시오. 정리하고 다시 빌드하십시오. 그래도 작동하지 않으면 포함시키려는 스펙의 소스가 올바른지 확인하십시오. github에서 가져 왔습니다. / Pods /를보고이를 수행하십시오. 비어있는 경우 (그렇지 않아야 함) ~ / .cocoapods / master //. podspec에 올바른 자식 허브 URL이 있는지 확인하십시오. 여전히 작동하지 않으면 XCode 빌드 위치 설정을 확인하십시오. 환경 설정-> 위치-> 파생 데이터-> 고급으로 이동하여 빌드 위치를“작업 공간에 상대적”으로 설정하십시오.
http://docs.cocoapods.org/guides/getting_started.html
이전에 대상없이 사용중인 대상을 추가하여 Podfile을 편집 할 때 동일한 문제가 발생했습니다.
포드 파일
target 'xxxx' do
pod 'xyz'
pod 'abc'
end
궁금해 한 후 대상 속성 >> 일반 탭 >> 연결된 프레임 워크 및 라이브러리 섹션에 새로운 libPods-xxxx.a와 이전 libPods.a가 있음을 발견했습니다.
방금 libPods.a를 제거하고 모든 것이 잘 작동했습니다.
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
빌드 위치로 이동하여 "작업 영역에 상대적"으로 설정하십시오.
"Partners"에서 "NBSelector"로 프로젝트 이름을 바꾸고있었습니다.
프로젝트 이름을 바꾼 후 "libPods-Partners에 대한 라이브러리를 찾을 수 없습니다"오류가 발생했습니다. Xcode가 기존 Partners.a 파일에 연결하려고했습니다. 이름을 바꾼 후에 podInstalled가 있으면 제거하십시오.
모든 포드에서 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
그리고 당신은 끝났습니다.
Ad-Hoc 및 App Store 아카이브를 작성하기 위해 '배포'또는 유사한 구성을 작성 했습니까? 다른 많은 사람들과 마찬가지로 나는 Apple의 권장 사항을 따르고 '배포'라는 별명을 '배포'라고 부르고 다른 서명 규칙을 설정했습니다. 어쨌든, 그들은 Organizer에서 스키마와 "배포"옵션을 도입하기 전에 권장 사항 일 수 있습니다. 어쨌든 나는 방금 전에 그랬습니다.
그런 다음 포드와 동일한 문제가있었습니다. 디버깅 할 때 모두 잘 작동했지만 링크 오류로 인해 아카이브에 실패했습니다. 이것을 시도한 후에 원래 프로젝트의 아카이브 구성을 '배포'에서 '릴리스'로 변경했는데 링크 오류가 사라졌습니다.
그러나 아카이브는 파일 시스템에서 찾을 수는 있지만 Organizer에는 표시되지 않았지만 크기는 0이었습니다.
이 모든 문제를 해결하기위한 마지막 단계는 '릴리스'구성의 "설치 건너 뛰기"설정을 "아니오"로 변경하는 것이 었습니다. 이 작업은 기본 프로젝트에서만 수행해야하지만 포드 프로젝트에서는 수행하지 않아야합니다. Pods 프로젝트는 'pod install'을 실행할 때마다 생성되므로 그대로 두는 것이 좋습니다.
업데이트 방금 CocoaPods devs로부터 답변을 받았습니다 . 포드 구성이 올바르게 설정되어 있기 때문에 저에게는 효과가없는 것 같습니다. 그러나 그것은 다른 누군가를 도울 수 있습니다.
제 경우에는 Xcode의 파생 데이터 위치가 "레거시"옵션으로 설정되어 있다는 것이 문제였습니다. CocoaPods 대상 (libPods.a)이 올바르게 작성되었지만 Xcode가 잘못된 위치를 찾고있었습니다.
"Unique"(기본값)로 전환하면 문제가 해결되었습니다. 환경 설정> 위치로 이동하여 고급 ... 버튼을 클릭하면됩니다.
"나의 라이브러리 검색 경로"( 'MyProject'의 빌드 설정에서)를 "Pods / build / Debug-iphonesimulator"에 추가하는 것만으로도 (시뮬레이터를 사용할 때) 효과가있었습니다.
여기에서 얻었습니다 : https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
iOS7 및 Xcode5에 보관 중이며 이러한 오류가 발생하면이 링크를 참조하십시오. 애플이 코코아 포드가 필요한 아키텍처를 포기하고있는 것 같습니다 https://github.com/CocoaPods/CocoaPods/pull/1352
제품 / 편집 체계에서 "암시 적 종속성 찾기"를 선택하면 포드를 대상으로 추가하지 않고이 문제를 해결할 수 있습니다.
나는 여기에 대한 모든 대답을 거쳤지만 나에게는 매우 간단했습니다 ... 대상-> 빌드 단계로 이동 한 다음 libPods-YourProject.a를 제거한 다음 "+"를 사용하여 다시 추가하십시오. 라이브러리가 빨간색임을 걱정하지 마십시오. 괜찮습니다.
나는 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"
작동했습니다.
나는 이것 뒤에 완벽한 이유를 모르지만 이것이 도움이 될 수 있습니다.
아래 단계를 수행하여 해결했습니다.
- cocoapods 설치를 업데이트하십시오. ($ [sudo] gem install cocoapods)
- 프로젝트에서 종속성을 다시 설치하십시오. (포드 설치)
- 정리하고 다시 빌드 / 보관하십시오.
필자의 경우 pod install
배포 및 릴리스 구성표를 만든 후 문제를 해결했습니다.
제출을 위해 보관할 때도 같은 문제가 발생했습니다. 이 문제에 대한 토론은 여기에서 찾을 수 있습니다 : https://github.com/CocoaPods/CocoaPods/issues/155
요약하면 두 가지 방법이 효과적입니다.
- "환경 설정-> 위치-> 고급"을 "사용자 정의 (작업 영역에 상대적)"으로 설정 또는
- Podfile을
- platform :ios, :deployment_target => "5.0"
iOS 7에서 Xcode 5 사용
이것은 내가 한 시간 동안 붙어있는 일입니다. 빌드 설정> 유효한 아키텍처에서 ARM64를 제거하십시오.
추가 : 또한 제 경우에는 데이터 위치가 파생되지 않았습니다. 빌드 위치에 대해 고유 한 것을 선택했습니다.
iOS7 및 Xcode 5를 사용하는 경우 다음을 수행하십시오.
- 포드 프로젝트를 선택하십시오.
- 대상 포드로 이동하여 빌드 설정에서 아키텍처-> 표준 아키텍처 (armv7, armv7s)를 선택하십시오.
- 포드 프로젝트의 모든 대상에 대해 동일한 작업을 수행하십시오.
나는이 스레드에서 모든 대답을 시도했지만 아무 소용이 없었다. 마지막으로 대상 프로젝트의 "사전 구성 빌드 제품 경로"를 포드 프로젝트의 값과 일치시켜 문제를 해결했습니다. 그들이 두 개의 다른 출력 위치에 구축하고 있음이 밝혀졌습니다. 이 글의 다른 제안들 중 어느 것도 나와 관련이 없습니다. XCode가 유용한 오류 설명을 제공하면 좋을 것입니다 (예를 들어 lib-파일을 찾을 수 없음, 일치하는 아키텍처가 없습니다 등).
이 문제에서 시스템에 포드를 이미 설치 및 업데이트 한 경우 Xcode에서 포드 라이브러리를 찾을 수 없습니다.이 문제를 해결하려면 다음과 같은 원인이 있는지 확인하십시오.
- 작업 공간을 사용하고 있습니다.
- 포드 라이브러리가 빌드됩니다.
- 포드 라이브러리는 프로젝트의 제품 그룹에서 참조됩니다.
- 대상은 프레임 워크 빌드 단계와 링크 된 포드 라이브러리를 포함합니다.
시험
link_with 'YouTarget1', 'YouTarget2'...
내 프로젝트가 효과가 있었고 대상이 갑자기 컴파일을 중단했습니다. 그런 다음 "link_with"를 추가하고 정상으로 돌아 왔습니다.
분명히, 이제는 첫 번째 대상에 연결됩니다.
http://guides.cocoapods.org/syntax/podfile.html#link_with
여전히이 문제가 발생하면 다음을 시도하십시오.
pod update
저에게 도움이 되었기를 바랍니다.
작업 공간을 열었지만 같은 오류가 발생했습니다.
활성 아키텍처 만 YES로 설정
내 문제를 해결하십시오.
참고 URL : https://stackoverflow.com/questions/9863836/library-not-found-for-lpods
'Programming' 카테고리의 다른 글
CSS의 반응 형 글꼴 크기 (0) | 2020.03.06 |
---|---|
sqlite3 / iPhone에서 열 이름 목록을 얻는 방법은 무엇입니까? (0) | 2020.03.06 |
Windows의 자산 index.android.bundle에서 스크립트를로드 할 수 없습니다 (0) | 2020.03.06 |
무결성 및 crossorigin 속성은 무엇입니까? (0) | 2020.03.06 |
PreparedStatement IN 절 대안? (0) | 2020.03.06 |