AdMob에 애플리케이션을 넣은 후 오류 '라이브러리를 찾을 수 없습니다'


150

애플리케이션을 AdMob에 넣은 후 오류가 발생합니다. 앱은 오늘까지 작동했습니다. 오류는 다음과 같습니다.

ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)

이 문제를 어떻게 해결할 수 있습니까? 감사합니다.




때때로 : 장치를 분리하고 먼저 프로젝트를 빌드하십시오. 라이브러리를 생성 한 다음 장치에서 실행할 수 있습니다.
TheTiger

답변:


114

때로는 라이브러리의 참조를 제거하고 참조를 다시 추가하기 만합니다.

Google 모바일 광고 SDK 및 기타 라이브러리를 처음부터 다시 추가하는 것 외에도 라이브러리 검색 경로 를 확인하는 것이 좋습니다 . 대상을 복사하거나 복제 할 때 Xcode는 "\"로 큰 따옴표를 이스케이프 처리해야한다고 결정합니다. 모든 \를 제거해야합니다.

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

경로에 여러 개의 '\'를 접두어로 붙여서 오류를 복제 할 수있었습니다.


좋은 것은 포드 설치 후 라이브러리 중 하나가 거기에 나열되지 않은 것입니다. 왜 그런지 모르겠지만 해당 라이브러리 경로를 추가하면 작동합니다.
Warewolf

글쎄, 이것은 내 문제 "-lART에 대한 라이브러리를 찾을 수 없음"을 수정했으며 정말 믿을 수 없습니다! 감사합니다 !
ZedTuX

"헤더 검색 경로"도 고려하십시오.
Luat Vu Dinh

@raurora 라이브러리 검색 경로에 어떻게 액세스합니까?
Massimo Frittelli

1
@MassimoFrittelli 프로젝트> 빌드 설정 탭> 검색 경로. 검색 옵션도 입력 할 수 있습니다.
로로 라

315

비슷한 "라이브러리를 찾을 수 없음"문제가있었습니다. 그러나 실수로 .xcodeproj파일 대신 파일 을 사용했기 때문 .xcworkspace입니다.


4
누군가 .xcodeproj 및 .xcworkspace의 목적을 설명해 주시겠습니까?
EFreak

11
이와 같은 것들로 자바 스크립트 생태계를 좋아하게됩니다
Mark

어떻게 바꿀 수 있습니까?
Brayan Loayza

8
xcworkspace는 Cocoapod를 사용할 때입니다. Xcode 문제는 아니지만 사용자입니다.
Azam

1
.xcworkspace는 솔루션 내에 "프로젝트"가 둘 이상있을 때입니다. 예를 들어 외부 라이브러리 (cocoapod) 또는 많은 프로젝트에서 사용하는 자체 라이브러리를 가질 수 있습니다.
Daniel Benedykt

86

당신의 목표를 선택, 이동 "Build Phases"에서 "Link Binary With Libraries"제거 ".a"해당 라이브러리의 파일. 청소하고 건설하십시오.


3
그렇습니다. Xcode가 빨간색으로 색칠하여 누락 된 것으로 표시하지 않을 정도로 이상합니다.
brainray

정말 좋은 !! 내 문제는 이전 프로젝트에 사용자 프레임 워크를 추가했을 때였습니다. coreplot.a를 제거하고 잘 작동합니다 !!!!
호세 포즈 S

66

Cocoapod와 관련된 오류가 다음과 같은 경우 :

library not found for -lPod-...

기타 링커 플래그 를 확인 하여 제거해야합니다.

추가 정보 : Cocoapod를 사용하는 오래된 프로젝트가있는 경우. 그리고 최근에 use_frameworks 를 추가해야 했습니다! 당신의 podfile에. cocoapods는 다른 링커 플래그에 라이브러리를 더 이상 상속하지 않습니다. 따라서 use_frameworks를 사용하기 전에 추가 한 다른 링커 플래그에서 수동으로 제거해야 할 수도 있습니다.


1
여기에 많은 플래그가 있습니다. 포드의 전부 또는 하나만 제거해야합니까?
Mayur Deshmukh

이러한 플래그가 문제를 일으키는 경우 라이브러리를 계속 사용하려면 제거하거나 보관하고 라이브러리를 추가해야합니다.
hasan

1
코코아 포드가 수동으로 추가 한 라이브러리를 제거하려고 할 때 발생합니다. 올바른 방법은 podfile에서 라이브러리를 제거하는 것입니다. 그런 다음 pod install을 다시 실행하십시오.
hasan

1
감사!! 이것은 나를위한 단서였습니다 :). 필자의 경우, 중복 대상은 "-l"과 "framework"의 두 줄로 모든 -l "framework"를 나누었습니다!
Eva Madrazo

1
@IanSteffy 그냥 결합
Eva Madrazo

57

제 경우에는 Xcode 7 에서 Xcode 9.1 에서도 작동했습니다.

ld: library not found for -ldAfnetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

설정 Build Active architecture OnlyYes

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


2
App Store 용 프로덕션 빌드를 만들어야하는 경우는 어떻습니까? 프로덕션 빌드에는 NO 여야합니다.
Jabbar

프로덕션 환경에서는 NO 여야
Ted

2
프로덕션 빌드 설치에 영향을 미치지 않습니까?
Jabbar

1
엑스 코드 9.2 및 iOS (11)에 클립 서비스 SDK를 통합하면서 나를 위해 일한
Aakash 가르 왈

21

cocoapods를 사용하는 .xcworkspace경우 기본 .xcodeproj파일 대신 파일을 사용 하십시오.


15

오류가 다음과 같은 경우

ld : -lpods 용 라이브러리를 찾을 수 없습니다

프로젝트의 프레임 워크 그룹에서 빨간색 파일 (예 : 누락 된 파일) 인 "libPods.a"파일이 생성되었습니다. 방금 해당 파일을 제거하고 모든 것이 잘되었습니다.

편집 : 다른 솔루션

비슷한 질문에 이미 답변 한 다른 솔루션은 이 링크에 있습니다.


12

고토 빌드 단계가 -> 링크 바이너리와 라이브러리 이 라이브러리는 프로젝트 폴더에서 사용할 수 없습니다 때문에 제거 라이브러리는 오류를 표시하는


이것은 내 특정 문제를 해결했습니다. 비슷한 이름의 라이브러리 두 개가 있는데 하나는 libPods-Foo BarTests.a다른 하나는 다른 하나 libPods-FooBarTests.a입니다.
edenwaith

9

작업 공간 대신 ​​프로젝트 파일을 열 경우에도 발생할 수 있습니다. 나는 이런 식으로 하루를 낭비했다.


1
우수, 나는 또한 작업 공간을 닫는 동안 포드 업데이트를 한 다음 포드 업데이트가 완료된 후 그것을 열었습니다
Badr

5

답을 늦었지만 여기에 내가 시도한 것들의 목록이 있습니다. 따라서 누군가가 문제를 해결하려고하면 한곳에있을 것입니다.

  1. 유효한 아키텍처 = armv7 armv7s
  2. 활성 아키텍처 만 빌드 = 아니오
  3. 대상-> 빌드 설정-> 기타 링커 플래그 = $ (상 속됨)
  4. 대상-> 빌드 설정-> 라이브러리 검색 경로 = $ (상 속됨)
  5. 제품 청소
  6. 터미널의 포드 업데이트

2

제 경우에는 명명 문제가있었습니다. 내 라이브러리가 호출 ios-admob-mm-adapter.a되었지만 Xcode는 이름이 접두사 lib로 시작해야합니다 . 방금 라이브러리 이름을libios-admob-mm-adapter.a 문제를 해결했습니다.

Cocoapods를 사용하며 대상의 빌드 설정에서 기타 링커 플래그 옵션 과 라이브러리를 연결 합니다. 깃발 모양-l"ios-admob-mm-adapter"

그것이 다른 누군가를 돕기를 바랍니다.


2

간단히 말해서 GoogleAdMobAds.a프로젝트 대상에서 누락되었습니다. 나를 위해 그것은 libAdIdAccessLibrary.a첨부 된 스크린 샷을 확인하십시오

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


2

나에 관해서는이 문제는 IOS 용 재료 라이브러리를 설치했기 때문에 발생합니다. 이 문제를 해결하기 위해

1 : 대상 앱의 빌드 설정 으로 이동 하십시오 .

2 : 다른 링커 플래그 검색

3 : 다른 링커 플래그를 열고 오류에 언급 된 라이브러리를 확인하십시오.

4 : 해당 플래그를 제거하십시오.

5 : 청소 및 빌드.

문제가 해결되기를 바랍니다.


2

ld: library not found for -{LIBRARY_NAME}라이브러리 파일이 없기 때문에 발생 하는 경우

응용 프로그램 대상의 "빌드 단계"라이브러리 검색 경로 탭에서 라이브러리 경로를 확인하십시오.

라이브러리 파일 경로는 실제 경로를 따라야합니다. 예를 들어 프로젝트 루트에있는 파일이 경로를 다음과 같이 설정해야하는 경우 $(PROJECT_DIR)


1

나는 이것이 조금 오래되었다는 것을 알고 있지만 비슷한 문제가 발생하여 'pod update'를 실행하면이 문제가 해결되었습니다. 내 라이브러리 오류는 AFNetworking과 관련이 있습니다 ...

포드 파일에서 명시 적 버전을 사용하지 않는 경우 포드 업데이트를 수행 할 때주의하십시오.


1

이 오류는 매우 이상합니다.

-ldAfnetworking 에서이 오류가 발생했으며 다른 경로에서만 프로젝트를 복사하고 작동합니다.


1

내 빌드 구성 이름을 변경 시도 ReleaseProduction,하지만 분명히 코코아 포드는 좋아하지 않는다. 나는 다시 이름을 바꿨고 Release모든 것이 잘되었습니다.


podfile에서 대상 이름을 바꿀 수도 있습니다.
Romain TAILLANDIER

1

@raurora의 대답은 올바른 방향으로 나를 가리 켰습니다. "watchkitapp Extension / lib"경로에 라이브러리를 포함 시켰습니다. 이 경우 라이브러리 검색 경로를 '\'로 이스케이프해야했지만 링커가이를 이해하지 못하는 것 같습니다. 문제를 해결 / 해결하기 위해 lib 경로를 한 수준 위로 이동하여 더 이상 이름에 공백이 포함 된 디렉토리에 없었습니다.


1

포드 파일 'pod update'를 업데이트하면 정상적으로 작동하기 시작합니다.


1

내 프로젝트에서 'pod update'를 실행하면 '-lSTPopup에 대한 라이브러리를 찾을 수 없음'오류로 인한 문제가 해결되었습니다.

Trevor Panhorst의 답변에 주목하기 :

"포드 파일에서 명시적인 버전을 사용하지 않으면 팟 업데이트에주의해야합니다."


1

쉬운 솔루션. 문제를 해결하는 방법은 다음과 같습니다.

  1. 디렉토리로 이동 platforms/ios
  2. 그런 다음 명령을 실행하십시오. pod install

그게 다야. 누락 된 라이브러리를 설치해야합니다.


1
  1. 정리 된 빌드 폴더
  2. XCode 재시작

갔다 ...


1

Static Library에 의해 발생 하는 컴파일 시간 오류입니다Static Linker

ld: library not found for -l<Library_name>
  1. Library not found for라이브러리 경로를 포함하지 않으면 오류가 발생할 수 있습니다 .Library Search Paths

    ldStatic Linker라이브러리의 위치를 ​​찾을 수 없음을 의미 합니다. 개발자는 링커를 돕고Library Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. .xcodeprojCocoapods를 지원 하는 새 프로젝트 ( ) 를 처음 열면이 오류가 발생할 수 있습니다 pod update. 문제를 해결하려면이 프로젝트를 닫고 대신 작업 공간을 만드십시오 ( .xcworkspace)


0

라이브러리에서 비슷한 버그를 발견하지 못했습니다. 궁극적으로 이것이 내가 해결할 수있는 방법입니다.

  1. Xcode Archive로 시작하기 전에 flutter build iOS 사용
  2. iOS 배포 대상을 상위 대상 iOS 11.2로 변경했습니다. 이전에는 8.0과 같은 위의 모든 오류가 발생했습니다.
  3. Xcode의 IOS 배포 대상이 프로젝트, 대상 및 포드에서 동일해야합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.