프레임 워크를 찾을 수 없음 GoogleToolboxForMac


82

"pod update"를 통해 Firebase를 업데이트 한 후 다음과 같은 오류가 발생했습니다.

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: framework not found GoogleToolboxForMac
clang: error: linker command failed with exit code 1 (use -v to see invocation)

여기 내 Podfile :

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'BB' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BB

  target 'BBTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BBUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

아무도이 오류에 대해 알고 있습니까?

GoogleToolboxForMac과 Firebase의 관계를 찾고 있지만 약간의 정보 만 얻습니다.

참고로 Swift 2.3과 Firebase 3.8.0을 사용합니다.

도움을 주시면 감사하겠습니다. 감사!


2
나도 똑같아 .. 누구든지 도와 줄 수 있니? 나는 하루 종일이 작업을 해왔습니다 : / 동일한 라이브러리의 이전 버전을 사용하는 것은 GoogleToolboxForMac을 사용하지 않고 완벽하게 작동합니다. :(
Santi Iglesias

다른 stackoverflow 답변에서 다음을 모두 내 pod 파일에 추가하려고 시도했지만 여전히 작동하지 않습니다. pod 'Google / Analytics'pod 'Firebase / Core'pod 'Firebase / AdMob'# GoogleToolboxForMac 누락 오류 pod 'Firebase / Messaging 수정 시도 중 'pod'GoogleToolboxForMac / Logger 'pod'GoogleToolboxForMac ','~> 2.1 '
Charlie Seligman

우선, Podfile의 형식이 오래되었습니다 (2016 년 4 분기). 그것을 제거하고 'pod init'를 사용하여 새로 만듭니다. 아래 제안 된대로 xcodeproj가 아닌 작업 공간을 사용하십시오.
igraczech

답변:


168

나는 같은 오류가 있었다. 포드를 설치하면 다음 메시지가 표시됩니다.

[!] 현재 Xcode 세션을 닫고 지금부터이 프로젝트에 MyApp.xcworkspace를 사용하십시오.

나는 이것을 처음으로 알아 차리지 못했고 일반 xcodeproj 파일을 사용하여 프로젝트를 빌드하려고했습니다. 이 메시지를 본 후 올바른 프로젝트를 열었고 제대로 작동했습니다.

이 프로젝트를 열면 두 개의 하위 프로젝트가 있음을 알 수 있습니다. 하나는 프로젝트이고 다른 하나는 Pods 프로젝트입니다.


40

프레임 워크를 찾을 수 없음

포드를 사용할 때 일반적으로이 문제가 발생합니다.

여기에는 두 가지 주요 이유가 있습니다.

  1. 우리가 열 때 .xcodeproj의 대신 파일 .xcworkspace을 이에 izaaz - 유누스에 의해 언급 한 바와 같이 대답

  2. 빌드 액티브 아키텍처 전용 으로 설정되어 있음빌드 설정

    이는 프로젝트 대상 및 포드 프로젝트의 모든 대상에 적용됩니다.

주요 프로젝트 스크린 샷 Build Active Architecture Only를 No로 설정

포드 프로젝트 스크린 샷 여기에 이미지 설명 입력

  1. 빌드 설정을 선택 합니다 (메인 프로젝트, pod 프로젝트 모두)
  2. 대상을 하나씩 선택하십시오.
  3. 각 대상에 대해 Build Active ArchitecturesNo 로 설정 하십시오.

마지막으로 프로젝트를 정리하고 다시 빌드하십시오.


오타 # 2에서 당신이 @Vinay 쿠마을 "예"라고 없지만 "NO"이미지 쇼에서, 덕분에, 거기입니다
greenridinghood

# 2는 문제의 원인을 알려주고 이미지는 문제를 해결하기위한 설정의 모습입니다.
비나이 쿠마르

다른 모든 솔루션은 나를 위해 작동하지 않습니다.
예외 :

18

제 경우에는 모든 통합이 잘 수행되었으며 pod를 제거하고 다시 설치하는 데 너무 많은 시간을 시도했지만 성공하지 못했습니다.

마지막으로 아래 단계로 시도하십시오.

Projetc-> 구성표 관리-> "Pods-MyProjectName"확인란 선택

그리고 성공하십시오.


시뮬레이터에서 실행할 때이 오류가 발생했지만 실제 장치에서는 발생하지 않았습니다.
mpwhitt

이것은 나를 위해 일했지만 프로젝트를 빌드하기 전에 명시 적으로 pods 프로젝트를 빌드해야했습니다. 이유를 모르겠습니다.
pieSquared

1
이 작업을 수행했지만 시뮬레이터에서 앱을 실행할 수 없습니까?
Drailan John Terrible

2
"Pods-ProjectName"을 빌드 한 후 내 장치에서 실제 프로젝트를 실행할 수있었습니다.
Tim Baas

14

GoogleToolboxForMac은 Firebase / Messaging의 종속성입니다. podspec의 세부 사항 . "pod 업데이트"를 수행 할 때 Cocoapods는 GoogleToolboxForMac을 빌드하고 연결하도록 작업 공간을 설정해야합니다.

작업 공간이 잘못된 상태 인 것 같습니다. Product-> Clean이 도움이됩니까? 파생 데이터와 ModuleCache (Xcode-> 환경 설정-> 위치-> 파생 데이터)를 삭제하는 것은 어떻습니까?

꼭 필요하지는 않지만 'GoogleToolboxForMac / Logger'포드를 Podfile에 명시 적으로 추가해 볼 수도 있습니다.


아니요, 작업 공간에서 프로젝트를 열면 효과가 없었습니다!
Jayprakash Dubey

2
@JayprakashDubey이 답변은 작업 공간에서 시작한다고 가정합니다. 첫 번째 단락을 참조하십시오. 대답은 동일한 증상을 일으키는 또 다른 시나리오를 해결합니다.
폴 Beusterien

1
@PaulBeusterien 여기에서 말한 모든 것을 시도했지만 여전히 구축 할 수 없습니다.
Drailan John Terrible

6
그 작품
1. 디렉토리에서 프로젝트 선택
2. 일반 선택
3. 링크 된 "프레임 워크 및 라이브러리"에 "GoogleToolboxForMac.framework"를 추가합니다.

라이브러리를 연결하면 명시 적으로 해결되었습니다. 고맙습니다!
Liquinaut 2011

5

이 문제는 빌드 설정-> LIBRARY_SEARCH_PATHS 검색에 $ (상 속됨) 을 추가하여 해결 되었습니다.

프로젝트가 의존하는 최신 버전의 라이브러리에 대한 포드 파일을 업데이트 할 때 디버그 출력이 모든 $ (상속 된) 플래그를 추가해야하는 위치를 알려주기 때문에 이해할 수 있습니다. LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS


$ (상 속됨)을 어디에 넣을까요? +를 누른 다음 $ (상 속됨)을 입력해야합니까?
Drailan John Terrible

예, +를 누르고 $ (상 속됨)을 입력하거나 편집 가능한 상자를 두 번 클릭 한 다음 $ (상 속됨)을 입력 할 수 있습니다.
TomV

이것은 내 문제를 해결했습니다! 당신에게 @TomV 감사
Spettacolo83

2

:로 이동 target -> Build Settings -> Other Linker Flags -> remove framework "GoogleToolboxforMAC"하여 프로젝트를 빌드하십시오.


1

내 장치에서 실행하려고 할 때 동일한 문제가 발생했습니다. 시뮬레이터에서는 잘 작동했습니다. 나는 위의 일부를 시도했지만 작동하지 않았습니다. 파일 .xcworkspace대신 작업 중인지 확인 .xcodeproj하여이 작업을 시도했습니다. 다음 단계를 따르십시오.

  1. .xc ... 파일을 사용하여 Xcode 프로젝트 (cocoapods 프로젝트)를 엽니 다.
  2. 프로젝트 탐색기에서 Pods 프로젝트를 선택합니다 (왼쪽의 파란색 아이콘).
  3. 대상에서 Pods-ProjectName (파란색 아이콘)이 선택되어 있는지 확인합니다.
  4. 빌드 설정으로 이동하여 프로젝트를 실행할 iOS 버전의 iOS 배포 대상을 설정합니다.

참고 :에서 설정 한 것과 동일 Project->Targets->Deployment info->Deployment Target합니다.

누군가 이로부터 혜택을받을 수도 있습니다.


1

동일한 오류가 발생하면 XCode에서 다음으로 이동하십시오.

프로젝트 > 대상 > 링크 된 프레임 워크 및 라이브러리 까지 아래로 스크롤 하고 라이브러리 항목이 흐리게 표시되는지 확인합니다.

XCode Linked Framework 및 라이브러리 스크린 샷

그렇다면 제거하고 다시 추가하십시오. 제 경우에는 중복 항목이 있었고 그중 하나가 흐리게 표시되었습니다 (XCode가 디스크에서 항목을 찾을 수없는 경우).


0

pod 설치를 한 후 빌드하려는 프로젝트를 닫은 다음 .workspace를 열면 모든 것이 완벽하게 빌드됩니다.


0

프로젝트 대상에서 your-project.xcworkspace를 엽니 다.

1) 터미널 열기-> 2) $ cd / project_destination-> 3) $ open your-project.xcworkspace

또는 파인더에서 파일 열기


0

프로젝트 대상과 포드 모두에 대한 "Build Active Architecture 설정"이 동일한 지 확인하십시오. 이 두 경우 모두 NO를 설정하면 내 문제가 해결되었습니다.


0

내 문제는 존재하지 않는 특정 포드를 복사 한 / bin / sh 스크립트가 있다는 것입니다. 이것은 그들 중 하나였습니다. 스크립트를 제거하면 빌드 문제가 해결되었습니다.


0

-하드 드라이브에서 GoogleToolboxForMac 파일을 검색합니다. / Users / Marco / Documents / iosapps / BomRetiro / Bom Retiro / Pods / Target Support Files

  • 그런 다음 파일을 다음 폴더에 복사했습니다. / Users / YourHomeFolder / Library / Developer / Xcode / DerivedData / Bom_Retiro-bsfjbazzzuwmuidqurdmjvdtnnsb / Build / Products

그리고 나를 위해 usinf .xcworkspace 파일을 여는 것이 해결되었습니다.


0

이 모든 후에도 여전히 문제가있는 사람들을 위해. Cordova 프로젝트를 진행 중이며 XCode 11.5로 업그레이드 한 후 갑자기 문제가 발생했습니다.

마지막으로 프로젝트 루트에서 pods.json 파일을 열고 "FirebaseMessaging"에 속한 "라이브러리"의 항목을 제거하여 문제를 해결할 수있었습니다. 우리는 그것을 사용하지 않았고 그것이 어떻게 거기에 도달했는지 모릅니다. 또한 모든 곳에서 "Build Setting"-> "Build Active Architecture Only"를 "No"로 변경했습니다.

그 후 .xcworkspace 파일을 다시 열었고 빌드가 실행되었습니다.


-1

Swift 5 간단한 답변

Shift+Alt+Cmd+K  //Clean the project and Run again! 
//if not work restart Xcode and again clean it 
//Its will work happy coding

-6
    Friends, you must be confused with the exact result, as i was. So, i feel to share the 
screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error.

    See the attached screenshot.
    Screen Shot 1, Screen Shot 2, Screen Shot 3
    [Select Pods][1]
    [Select Targets in the pod][2]
    [Change flag to No][3]


  [1]: https://i.stack.imgur.com/E7mjX.png
  [2]: https://i.stack.imgur.com/wCwET.png
  [3]: https://i.stack.imgur.com/KVGKM.png

전체 스크린 샷을 게시하지 마십시오. 인라인 부분 만 제공하십시오, 친구.
igraczech

스크린 샷을 게시하는 대신 솔루션을 설명하는 것이 더 나을 수 있지만 이것은 작동했습니다. 해결책은 프로젝트 및 Pod 대상에서 Valid Arch Only를 "No"로 변경하는 것입니다.
Ignacio Barrea 2017 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.