cocoapods을 세팅해 보려고 합니다.
Objective-C 또는 Swift에서 라이브러리를 사용할 수 있게 도와주는 모듈입니다.
Ruby언어로 제작되었으며 Terminal(터미널)에서 바로 설치 및 사용이 가능합니다.
Ruby언어 버전 관리 툴. 여러 루비 버전들을 설치하고 선택할 수 있습니다.
m1의 cpu는 기존과 구동방식이 달라서 추가적인 명령어가 필요할 수 있습니다.
arch -x86_64
m1의 터미널은 로제타 모드가 가능합니다. 로제타 모드란 위의 arch -x86_64 라는 명령어를 자동으로 입력해주는 방식이라고 보면 됩니다.
로제타 모드에서는 반대로 기본 모드로 작동시키기 위해서 아래와 같은 코드를 추가적으로 입력해야 합니다.
arch -arm64
로제타 모드인지 아닌지 확인하기 위해서 터미널에서 아래와 같은 명령어로 체크할 수 있습니다.
# 로제타 모드면 1, 기본 모드면 0
sysctl -n sysctl.proc_translated
아래 과정들은 모두 기본 모드에서 작동한다는 것을 가정하고 진행하겠습니다.
# 인서트 모드 (입력 모드)
i
# 명령 모드
esc
# 저장하지 않고 나가기 (명령 모드 상태에서 입력)
:q!
# 저장하고 나가기 (명령 모드 상태에서 입력)
:wq
시작하기 전에 이것저것 다 해보고 들어온 사람들을 위해 초기화를 하고 시작하겠습니다.
# brew로 설치한 ruby 삭제
brew uninstall ruby --force
# cocoapods 관련 라이브러리 삭제
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-downloader
루비 관리 툴을 설치하겠습니다.
brew update
brew install rbenv
brew install ruby-build
설치를 다 하고 터미널에 아래 코드를 입력하여 체크합니다.
rbenv versions
rbenv를 설치해도 맥에 기본적으로 설치되어 있는 ruby가 작동할 수 있습니다. rbenv가 대신할 수 있도록 작업합니다.
먼저 유저 루트 경로로 이동합니다.
cd ~
유저 루트 경로의 모든 파일이 다 보이도록 리스팅 합니다.
ls -a
세팅해야할 파일은 2가지 입니다. 하나라도 빠지면 유틸리티의 터미널과 IDE의 터미널이 다르게 동작할 수 있습니다.
vim 또는 vscode등으로 파일을 엽니다.
vim ~/.zshrc
아래 화면이 뜨면 e를 입력해주세요.
아래 내용을 추가해 주세요.
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
vim 또는 vscode등으로 파일을 엽니다.
vim ~/.bash_profile
아래의 내용을 추가해 주세요.
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
아래 코드를 입력해서 설치할 수 있는 버전을 확인합니다.
rbenv install -l
최신 버전인 3.2.2 버전을 설치합니다. (여러분은 원하시는 버전을 선택하시면 됩니다.)
rbenv install 3.2.2
설치가 완료되면 확인해 봅니다.
아래처럼 system과 설치한 버전이 나옵니다.
rbenv versions
현재 시스템 버전으로 설정되어 있는데, 확인해봅니다.
ruby --version
버전을 시스템 전역적으로 변경하기 위해 아래와 같이입력합니다.
rbenv global 3.2.2
rbenv rehash
버전이 변경되었는지 다시한번 확인해봅니다.
ruby --version
버전이 변경되었습니다.
기본 모드에서 아래와 같이 입력합니다.
로제타 모드라면 arch -x86_64를 생략해도 됩니다.
sudo arch -x86_64 gem install ffi
sudo arch -x86_64 gem install cocoapods
원하는 위치에 연습 프로젝트를 생성합니다.
flutter create --org com.example temp
xcode로 먼저 잘 작동되는지 확인합니다.
프로젝트의 ios 폴더로 이동하여 설치합니다.
pod init
pod install
cocoapods을 해제하려면 아래와 같이 입력합니다.
pod deintegrate