[iOS] App Development

[iOS 오류] M1에서 Firebase빌드시 나타나는 오류 / Apple M1 Cocoapod 사용시 주의점 / FIRAnalyticsConnector' for architecture arm64

ddgoori 2022. 5. 28. 19:05

ld: in ......./Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_8094107d82c527bf23f93e98c9db96d1.o), building for iOS Simulator, but linking in object file built for iOS, file '...../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64

 

https://github.com/firebase/firebase-ios-sdk/issues/6520

 

ARM64 Simulator support · Issue #6520 · firebase/firebase-ios-sdk

Step 0: Are you in the right place? For issues or feature requests related to the code in this repository file a Github issue. If this is a feature request please use the Feature Request template. ...

github.com

 

해결 방법

-------> 아래에 길게 과정이 있지만 결론을 보면 cocoapod을 SPM으로 마이그레이션 하는것 추천

 

1) 커맨드+쉬프트+K -> Clean Build하고 리 빌드시 -> 해결 X

 

2) Excluded Architectures에 arm64를 넣어 빌드시 제외한다. -> 해결 O

이때 해줘야할 일

a. 빌드 클린 -> 리빌드

 

이유추측: 시뮬레이터는 모바일창처럼 나타나지만 사실은 노트북의 CPU로 돌아간다. 그렇기에 새로운 CPU인 M1에서 시뮬레이터를 돌릴 때는 인텔 기반의 cpu에서 빌드되는 arm64로 컴파일할 수 없다. 그래서 오류가 나는게 아닐까?

 

-> 이후 FirebaseAuth가 없다는 에러가 추가 발생했다.

/Users/dahaekim/Documents/GitHub/cocobaby_2022/cocoBaby_2021/Controller/LoginViewController.swift:11:8: No such module 'FirebaseAuth'

 

cocoapod문제인데

 

Are you using Apple M1? I had this issue as well and after some research, I find that it might be something to do with Rosetta. You can refer to Running CocoaPods on Apple Silicon (M1).

I managed to solve this issue on my MacBook Air M1 by typing this in the terminal:

 

apple silicon M1을 사용해서 그런 것이다. 

 

아래 커맨드 입력

 

sudo arch -x86_64 gem install ffi

위 커맨드 입력 후 아래로 다시 pod installd이 필요하다

arch -x86_64 pod install
그제서야  pod install 성공
 
하지만 여전히 no such module Firebase가 발생했다.
이왕 이렇게 된거 cocoapod 말고 SPM 사용하는 것으로 마음을 바꿈! ㅠ 
 
 
 cocoapod에서 swift package manager로 전환
 
 
 
1) 터미널에서 pod deintegrate 실행
2)xcworkspace 삭제
3)podfile / podfile.lock 삭제
4)SPM 설치
  1. Xcode에서 File(파일) > Swift Packages(Swift 패키지) > Add Package Dependency(패키지 종속 항목 추가)…로 이동하여 Firebase 라이브러리를 설치합니다.
  2. 표시되는 메시지에서 Firebase GitHub 저장소를 선택합니다.
     
  3. https://github.com/firebase/firebase-ios-sdk.git

 

위 문제 모두 해결 심지어  Excluded Architectures에 arm64에 추가하는 것도 제외시킴

 

 
 
결론
 
Apple Silicon M1 CPU 사용자라면 그냥 cocoapod -> SPM으로 이전하는 것 추천..!!!!!!
 
 
문제 해결!!!!
 
 

CPU가 달라지니까 빌드할 때 여기저기 문제가 많이 생긴다. 킹받는다!

 

https://stackoverflow.com/questions/64901180/how-to-run-cocoapods-on-apple-silicon-m1

 

How to run CocoaPods on Apple Silicon (M1)

I have a Flutter project that I'm trying to run on iOS. It runs normally on my Intel-based Mac, but on my new Apple Silicon-based M1 Mac it fails to install pods. LoadError - dlsym(0x7f8926035eb0,

stackoverflow.com