[RN-iOS] 기존 RN 프로젝트를 m1으로 바꾼다고?? 새로 세팅도 해보고 조심해야할 점을 알아보자 (ruby 버전, pod install)

도디·2022년 10월 18일
3

React Native

목록 보기
24/28

도하!
오늘도 돌아온 도디입니다. 오늘은 조금 타이밍 지난 블로그 글일수도 있는데,
React Native 프로젝트를 m1 환경에서 xcode로 돌리면 오류가 나는건 다들 아시죠. 잘 해결하기 위해서 중요하게 알아둬야할점을 가지고 왔습니다. 이 게시물도 저희 회사의 큐브의 도움을 받았습니다. 감사합니다. 큐브!!!

iOS 개발을 하면서 저희가 걱정해야되는 부분 중 하나는 바로 ruby 버전입니다. 루비는 맥북 자체의 루비 버전과 cocoapods의 루비 버전이 충돌이 있을수 있고, 그런 경우 m1에서 pod install이 잘 작동하지 않을 수 있기 때문에 잘 설치해야 합니다.
그 과정이 이 글에 담겨있습니다!!!!

제발 도움이 되길ㅠ

brew 설치

brew를 설치해 오셔야 합니다.

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

위의 코드로 brew를 설치해주시구요. 설치해주시고 터미널을 재시작을 해주시구요. (설치가 안된다면 댓글로 알려주세요)

ruby 3.1.2 설치

여기서 제가 두서에 말씀드린 루비 버전의 중요함이 돋보이는데요,
아래 코드를 터미널에 넣어서 rbenv를 설치해주세요.

brew install rbenv ruby-build
rbenv init
vi ~/.zshrc

로 .zshrc에 들어가 제일 하단에 아래 코드를 넣어줍니다.
넣는 방법을 모르신다면 vim 명령어를 구글링해서 해보시길!

eval "$(rbenv init - zsh)"

설치하는 이유를 다시한번 설명한다면, 맥에는 이미 ruby가 설치가 되어 있는데요, 그리고 ios 라이브러리 매니저인 cocoapods는 ruby를 사용합니다. 일반적으로 cocoapods를 설치하면 맥에 내장 되어있는 system ruby를 사용해서 설치를 하게 되는데, 문제는 m1 chip은 기존의 intel chip과 다르게 작동한다는 점입니다.

m1에서 cocoapods으로 라이브러리를 관리하기가 까다로워 졌기 때문에, rbenv를 사용해 ruby 환경을 관리해서 cocoapods를 설치관리하게 되는겁니다.

만약 rbenv 전에 cocoapods을 먼저 설치했다면 지우고 다시해야 해요~~

우선 ruby 버전 3.1.2 버전을 설치할거구요.

rbenv install 3.1.2

루비의 버전을 확인해보려면 아래 명령어를 쳐줘야 합니다. (꼭 저렇게 생긴 명령어를 적어야 해요, rbenv -v라고 치면 rbenv 라이브러리의 버전을 아는 것 밖에 아니랍니다.)

rbenv versions

아래같은 모습의 결과물이 나오는데요.

왼쪽에 * 이 붙어있는건 지금 사용하고 있는 상태라는걸 나타냅니다. 잘 3.1.2 버전이 사용되고 있네요.


문제 헤쳐나가기

(1)만약 내가 ruby 3.1.2 버전을 사용하지 않는다면
(2) system 쪽에 향해 있다면

각 상황들의 cocoapods를 삭제하고 3.1.2 버전에만 cocoapods를 설치해 주어야 합니다.

아래 코드를 한번에 실행시켜주면 현재 당신의 오류가 나는 환경의 cocoapods가 삭제가 됩니다.

sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try

rbenv global system 라는건, 아까 * 이 향했던 방향을 system 으로 향하게 한다는 뜻입니다. 여기서 또 혹시 설치되어있는 cocoapods를 삭제해줍시다.

rbenv global system
sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try

그러고 다시 ruby 환경을 3.1.2 버전으로 바꿔주고 혹시모르니 cocoapods를 다시 삭제해주고

rbenv global 3.1.2
sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try

아래 코드를 작성해주면 끝입니다.

sudo gem install cocoapods

프로젝트로 이동해서 pod install을 하면 잘 작동할겁니다.
제발 이해가 다들 되셨으면 좋겠어요.
저는 좋은 선생님을 만나 쉽게 작업했지만 분명 어렵게 접근 하는 사람도 있을 테니깐요.

부디 행복한 코딩 하시길~!
도바~~🍊

profile
충전중..🤔

1개의 댓글

comment-user-thumbnail
2022년 12월 21일

sudo gem ... 부분 뒤에 \n 은 삭제 해야 되더라고요 ㅎㅎ
글 잘봤습니다 감사합니다

답글 달기