IOS

[IOS] CocoaPod의 pod install 오류에 대하여

코코아팟을 사용해 네이버 지도 SDK를 설치하던 중 터미널에서 에러 메시지를 받았다.

 

pod파일 내에 라이브러리의 버전 또는 깃허브 주소를 명시하지 않아서 생긴 문제는 있었지만

 

이번에 겪은 오류는 아예 다른 문제였기에 포스팅을 한다.


1. 문제

LoadError - dlsym(0x7f8926035eb0, Init_ffi_c): symbol not found - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi.rb:6:in `rescue in <top (required)>'
... 중략

구글 검색을 통해 찾아낸 결론은 CocoaPod과 실리콘 맥(M1) 사이의 호환성(?) 문제이다.

 

인텔 맥에서 실리콘 맥으로 넘어오면서 기존 앱에서 실리콘 맥에 호환이 안되는 부분이 생겼고

 

애플은 이럴 때 "Rosetta를 사용해서 열기" 옵션을 사용하라고 권장한다.

 

발견한 해결방법은 아래와 같다.

 

2. 해결방법

1) CocoaPod 삭제 후 Homebrew를 통해 재설치

터미널에 순서대로 아래 명령어를 실행한다.

# 1. 설치된 코코아팟 삭제
sudo gem uninstall cocoapods

# 2. Homebrew로 재설치
brew install cocoapods

2) ffi 설치 후 pod install

터미널에 아래 명령어를 순서대로 실행. 이때 arch -x86_64 를 사용해 반드시 아키텍처를 지정해준다.

i386 : 인텔 32비트
x86_64 : 인텔 64비트
arm64 : 애플 실리콘 64비트
# 1. ffi 설치
sudo arch -x86_64 gem install ffi

# 2. pod install
arch -x86_64 pod install

3) Rosetta로 터미널 실행 후 ffi 설치

터미널을 Rosetta로 실행하고 아래 명령어 실행

sudo gem install ffi

 

나는 2번 방법으로 해결할 수 있었다!


참고한 링크

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

 

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

https://github.com/CocoaPods/CocoaPods/issues/10220

 

Got error while trying pod install · Issue #10220 · CocoaPods/CocoaPods

Command /usr/local/bin/pod install Report What did you do? pod install What did you expect to happen? Installing my pod's What happened instead? Error. This is on my MacBook Pro with the new M1...

github.com