다른 사람이 만든 플러터 프로젝트를 보며 클린 아키텍처에 대해 배울 겸 깃허브에서 프로젝트를 찾다가 괜찮은 걸 발견했어요. 그런데 git clone
명령으로 내려받고 iOS 시뮬레이터로 프로젝트를 구동시켜 보니 바로 되질 않았어요. 이 문제를 해결해서 프로젝트를 구동하는 방법을 적어보려고 해요.
먼저 저는 clean_architecture_todo_app 라는 프로젝트를 내려받을 거예요. 터미널을 열고 원하는 위치에 아래 명령을 실행해 주세요.
git clone https://github.com/rodydavis/clean_architecture_todo_app.git
그리고 해당 프로젝트를 VS Code로 열고 main.dart를 열어주세요. 그런 다음 F5키를 눌러 디버그 동작을 실행할 거예요. 그러면 아래와 비슷한 오류 메시지가 나올 거예요.
저는 rbenv를 사용하고 있어요. 루트 프로젝트에서 rbenv local 3.2.2
명령문을 입력했어요. 그러면 루트 프로젝트에 .ruby-version
파일이 만들어져요. 이 부분은 필수는 아닌 것 같지만 저는 macOS라 내장된 루비 버전이 2이기 때문에 버전 3 이상이 필요해서 적용했어요.
루트 프로젝트에서 ios 폴더를 들어가세요. pod install
명령을 실행할 거예요. 그럼, 아래처럼 진행돼요.
pod install
을 했으니 잘 됐겠지 싶지만, 디버그 모드로 실행하면 아래처럼 .pub-cache
폴더 아래에서 많은 버전 문제가 발생해요.
바로 이 문제를 해결하기 위해 이번 글을 쓴다고 봐도 무방해요. 방법은 쉽지만 되는 방법을 찾는 게 은근 어려웠어요.
먼저 루트 프로젝트로 이동해서 flutter pub upgrade
명령을 실행해 주세요. 그러면 프로젝트 환경에서 제 로컬 환경에서 사용 가능한 버전으로 pubspec.lock
파일이 변경될 거예요.
그런데도 다시 디버그 모드로 실행해 보면 이번에 ruby쪽에서 에러가 나요. 제 생각이지만 의존하고 있는 cocoapod쪽 버전들도 올려줘야 할 것 같았어요.
ios 폴더로 다시 들어간 뒤, pod repo update
명령을 실행한 뒤 다시 디버그 모드로 실행해 보면 똑같은 에러가 나요. 대신 pod update
명령을 실행해 주세요. 그런 아래처럼 패키지들이 설치될 거예요.
그리고 다시 디버그 모드를 실행하면 정상적으로 될 거예요!
방법을 알면 이렇게 쉬운데 적절한 명령어를 수행해야 하는 걸 판단하기까지 시행착오를 오래 걸렸네요..
그래도 잘 되어서 다행이에요!
Change happens when the pain of holding on becomes greater than the fear of letting go.
— Spencer Johnson