Search

Xcode error: Missing required module 'Firebase'

Firebase Analytics를 사용하면서 Tracking methods를 처리할 Singleton을 만들어 쓰고 있었다.
공통 기능에 대한 target을 분리시키는 작업을 진행중 이었기에 이 코드는 Foundation역할이라 보고 target을 분리 시켰다.
그랬더니 다른 Framework에서 Missing required module 'Firebase' 이 뜨기 시작,
각 Custom framework간 의존성을 가지고 있긴 하지만 다른 RxSwift나 R.swit 등은 아무 문제 없이 각 Framework 에서 동작하는데 Firebase를 쓰지도 않는 다른 Framework에서 왜 Firebase를 요구하는지....
각 Framework 에 pod 'Firebase/Core' 를 추가 해주니 일단 빌드는 성공했지만 전혀 이해되지 않았다.
더구나 이 후 LLDB에서의 디버깅 시 FirebaseAnalytics-blabla.pcm 에 대해 Duplicate가 되었다는 경고가 계속 뜨기 시작했다.
클린을 아무리 해봐도 수정되지 않았다.
pods.lock 파일과 pod, workspace 파일도 지우고 pod deintegrate → pod install 을 해도 어쩌다 잠시 동작할 뿐 이내 경고는 반복됐다.
검색 고고
내가 이해 한대로 요약하자면 일단 Cocoapods이 여러 타겟에 대한 Dependency 를 고려하지 못한다는 것이고,
"Its fairly complicated issue" 해결하기도 어렵단다;; (2017년 이슈가 아직도 Open 상태다.)
그래서 임시적인 해결책을 찾았다.
쓸데 없는 Dependency을 가지는 Target 마다 header search paths 에 강제?로 Firebase에 대한 파일들을 연결 시켜주는 방법이다.
각 Target의 Build Setting 에서 Header Search Paths 안에 ${PODS_ROOT}/Firebase/CoreOnly/Sources 를 추가 해준다.
그리곤 혹시 모르니 pod을 깔끔하게 재설치 해주시고 실행.
잘 된다.
이 외에도,
objc[1668]: Class FIRAnalyticsConnector is implemented in both /private/var/containers/Bundle/Application/C889EF7E-4362-4ED0-AC8F-950671FC6410/ Flitto.app/Frameworks/FLTFoundation.framework/FLTFoundation (0x10734fe58) and /var/containers/Bundle/Application/C889EF7E-4362-4ED0-AC8F-950671FC6410/ Flitto.app/Flitto (0x1041b8ee0). One of the two will be used. Which one is undefined.
HTML
복사
Firebase에 대한 문제가 남아 있는 상태다.
일단 Firebase Analytics 의 Event 가 잘 찍히는지 보고 수정방향을 정해야 할 듯.