iOS

CocoaPods 설치, 오류 해결 법

bereben 2022. 11. 11. 21:27

CocoaPods를 사용하다보면 여러 오류를 만날텐데 밑에 적은 오류방법들은 많은 블로그들과 자료를 보며 찾은 해결방법이다.
만약 m1맥북을 사용한다면 꼭 brew를 이용하여 라이브러리를 설치하는것을 추천한다.

brew 설치법

공식홈페이지를 보면서 설치하면 된다.
차례대로 설치해보자.

터미널에 들어가서 밑에 명령어를 입력하자.

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

추가적으로 패스워드나 키를 입력하라는 창을 모두 지나가면 설치가 완료된다.
만약 본인이 Intel macOS이라면 더이상 설정할필요는 없다. 하지만 m1이라면 추가적으로 path를 설정해줘야 한다.
처음에 설치하게 되면 HOMEBREW_PREFIX위치가 기본으로 Intel macOS위치로 되어 있어 Apple Silicon위치로 바꾸는 과정이 필요하다.
best prefix (/usr/local for macOS Intel, /opt/homebrew for Apple Silicon)

$ echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/cpuu/.zprofile
$ eval $(/opt/homebrew/bin/brew shellenv)

명령어를 입력 후 터미널을 종료하고 다시들어가 brew config를 입력하면 HOMEBREW_PREFIX: /opt/homebrew로 되어있는 것을 볼 수 있다.
이 후 brew install cocoapods를 해주자.

brew install cocoapods했을 때 link오류가 나는 경우

brew link cocoapods가 뜰 때
brew link cocoapods나 brew link --overwrite cocoapods를 입력하면 쓸 수 없다는 오류가 나는 경우가 있다.
그럴 경우 /usr/local/lib의 접근 권한을 바꿔주고 링크한 후 reinstall 후 권한을 다시 바꿔놓는다.

$ sudo chmod 776 /usr/local/lib
$ brew link --overwrite cocoapods
$ brew link cocoapods
$ brew reinstall cocoapods
$ sudo chmod 755 /usr/local/lib

cocoapods 오류

undefined method 'map' for nil:NilClass

이전

$ sudo arch -x86_64 gem install ffi
$ arch -x86_64 pod install

현재는 위에 방법대로 brew를 m1버전으로 설치 후 오류가 뜨지 않음

Xcode에서 라이브러리가 빌드 안될 때

  1. pod update
  2. pod install
  3. rm -rf ~/Library/Developer/Xcode/DerivedData (빌드캐시 날림)
    pod install
  4. 현재 프로젝트에 있는 cocoapods파일 삭제(xcworkspace, Podfile.lock, Pods)
    pod install
  5. cocoapods 삭제 후 brew로 재설치

cocoapods 삭제 방법

프로젝트를 다른사람과 진행하다보면 라이브러리가 수정될 수도 있는데
이 과정에서 코코아팟이 꼬여서 빌드가 안 될 수도 있다.
위에 방법대로 해결해보고도 안된다면 최후의 방법으로 cocoapods을 삭제 후 brew로 재설치하는 것을 적극 추천한다.

$ sudo gem uninstall cocoapods
$ sudo gem uninstall cocoapods-core
$ sudo gem uninstall cocoapods-downloader
$ brew uninstall cocoapods

참고:

  1. https://brunch.co.kr/@tilltue/58
  2. https://unnnyong.com/2020/05/18/ios-%EC%98%A4%ED%94%88-%EC%86%8C%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-carthage-cocoapods-swift-package-manager/
  3. https://coding-sojin2.tistory.com/165
  4. https://tech.kakao.com/2022/06/02/swift-package-manager/
  5. https://cpuu.postype.com/post/9183991
  6. https://velog.io/@think2wice/homebrew%EB%A1%9C-node%EC%84%A4%EC%B9%98%ED%95%A0%EB%95%8C-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0
  7. https://stackoverflow.com/questions/66644365/cocoapods-on-m1-apple-silicon-fails-with-ffi-wrong-architecture

'iOS' 카테고리의 다른 글

SnapKit  (0) 2022.11.11
CocoaPods vs SPM vs Carthage  (0) 2022.11.11