Tuist를 4.55.6로 업데이트 한 김에 앞으로는 프로젝트마다 Tuist 버전별 환경으로 실행할 수 있도록 하려고 합니다.
버전 관리 도구로 Mise를 설치하려고 하는데, 전에 회사 프로젝트를 Tuist로 재구성 할 때에는 제대로 공부하지 못하고 바로 Mise 설치하고 Tuist를 실행했어서 이번에는 꼼꼼히 흐름을 추적하면서 기록하려고 합니다.
Tuist 버전 관리 도구에는 Mise, Homebrew 등등이 있는데, Tuist 공식 문서에서는 Homebrew의 대체 도구로 Mise를 추천하고 있는데 두 도구를 한번 비교해봅시다.
⚖️ Homebrew? Mise?
Homebrew는 한가지 버전의 바이너리에만 접근할 수 있는 반면, Mise는 버전별로 설치하고 접근할 수 있어 프로젝트마다 다른 Tuist 버전 환경을 사용할 수 있습니다. 물론 A 프로젝트와 B 프로젝트에서 필요한 Tuist 버전이 다른 경우 Homebrew로도 필요할 때마다 각각 다른 버전을 설치해서 각 프로젝에서 다른 Tuist 버전을 사용할 수 있지만 Mise와 달리 다른 버전의 바이너리 파일을 덮어서 설치해야 합니다.
이렇게 매번 변경하는 상황이 발생하면 번거로울 뿐더러, 혹시라도 잘못된 버전이 남아있어 빌드 및 실행 결과가 달라지는 비예측성 이슈를 마주하는 것 최대한 방지하는게 좋을 것 같다고 생각합니다!
그렇다면 Mise는 어떻게 각기 다른 Tuist 버전을 관리하고 프로젝트마다 스위칭 할 수 있는걸까요?
우선 Homebrew와 Mise 모두 심볼릭 링크 방식으로 Tuist 바이너리 파일에 접근하지만, Homebrew는 별도 디렉토리에서 한가지 버전의 바이너리 파일을 저장하고 Mise는 별도 디렉토리에서 버전별로 디렉토리를 생성하여 바이너리 파일을 저장하는 차이가 있습니다.
대충 알고만 가도 되지만 직접 해보고 디렉토리를 두눈으로 확인해보고 싶어서 Homebrew로 관리할 때와 Mise로 관리할 때를 모두 경헙해보고자 합니다!
1️⃣ Homebrew
우선 Homebrew로 Tuist를 설치하려면 기존에 설치했던 Tuist 바이너리 파일을 제거해야 할 것 같으니 확인해보려고 합니다.
$ ls -l /usr/local/bin/tuist
-rwxr-xr-x 1 kimhyeji staff 31744197 6 1 2023 /usr/local/bin/tuist
출력 결과를 보니 실제 파일이 아직 존재하네요. 일단 제거해보겠습니다.
$ rm /usr/local/bin/tuist
$ ls -l /usr/local/bin/tuist
ls: /usr/local/bin/tuist: No such file or directory // 제거 완료!
이제 공식문서대로 설치를 해보겠습니다.
Tuist 설치 경로 정보를 출력해보니 심볼릭 링크까지 연결된 것을 확인해볼 수 있습니다.
$ brew tap tuist/tuist
$ brew install --formula tuist
$ ls -l /usr/local/bin/tuist
lrwxr-xr-x 1 kimhyeji admin 39 8 6 07:32 /usr/local/bin/tuist -> ../Cellar/tuist@4.55.6/4.55.6/bin/tuist
Finder로 확인했을 때에도 가장 최신 버전인 4.55.6으로 디렉토리가 생성된 것을 확인할 수 있었습니다.

🤔 그렇다면 만약 다른 버전을 설치하려고 하면 어떻게 될까요?
$ brew install --formula tuist@4.50.0
...Installed...
Error: The brew link step did not complete successfully
4.50.0 버전의 Tuist 바이너리 파일은 잘 설치됐는데 링크하는 과정에서 에러가 발생했네용
이미 4.55.6 버전 디렉토리가 링크되어 있어서 발생한 문제같으니 언링크를 하고 다시 링크를 해보겠습니다.
$ tuist version
4.55.6
$ brew unlink tuist@4.55.6
$ brew link tuist@4.50.0
$ tuist version
4.50.0
언링크를 하고 원하는 버전으로 링크를 하면 되긴 하지만... 프로젝트마다 Tuist 버전이 다르다면 매번 링크와 언링크를 반복해야겠죠?
2️⃣ Mise
위와 같은 과정을 Mise로 대체해보려고 합니다. 우선 Mise를 설치해야겠죠?
$ brew install mise
$ echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
$ source ~/.zshrc
$ mise install tuist
가장 최신 버전의 Tuist 바이너리 파일이 설치되었습니다.
바이너리 파일 경로를 보면 Homebrew와의 차이가 명확한데, Homebrew는 usr/local/Cellar에 버전 파일들을 설치하는 반면 Mise는 {user_name}/.local/share/mise/installs/tuist에 버전 파일들을 설치합니다.
좀 더 간단하게 말하자면, Homebrew는 시스템 전역 디렉토리에 설치하고 Mise는 사용자 로컬 디렉토리에 설치합니다.
이제 프로젝트마다 Tuist 버전을 다르게 활성시켜야 하는 경우를 확인해보려고 합니다.
지금 현재 버전은 가장 최신 버전인 4.59.2 이고 해당 버전으로 전역 활성화가 되어있습니다. 그런데 제가 회사에서 진행했던 프로젝트를 보면 4.46.1 버전을 사용하고 있었기 때문에 터미널을 통해 해당 프로젝트 디렉토리에 접근하면 해당 버전이 설치되어 있지 않다는 경고를 출력합니다.

💡 특정 프로젝트에서 사용된 Tuist 버전을 확인하는 방법은 터미널과 프로젝트 내 Mise 설정 파일이 있습니다.
1. 터미널
$ mise current tuist프로젝트 디렉토리를 살펴보면, "mise.toml" 파일을 발견할 수 있을텐데 해당 파일을 열어보면 tuist 버전을 확인할 수 있습니다.
2. Mise 설정 파일
[tools] tuist = "4.46.1"
이땐 그냥 해당 버전을 설치해주면 됩니다. 설치를 완료하면 버전이 일치해서 그런지, 알아서 해당 디렉토리 활성화 버전이 변경되더라구용
$ mise install tuist@4.46.1
mise tuist@4.46.1
mise tuist@4.46.1 ✓ installed
$ tuist version
4.46.1
$ cd ..
$ tuist version
4.59.2
Tuist 공식 문서에서도 Mise를 통한 버전관리를 권장하고 있지만 Mise를 처음 접하다보니 왜 Mise일까하는 호기심에 직접 확인해보니 "더할나위없이 Mise."가 되더라구요😅
'Tuist' 카테고리의 다른 글
| Tuist 업데이트 할 때 경험한 트러블슈팅(aka 집요한 실험노트) (0) | 2025.08.01 |
|---|