🍏/Tuist

[Tuist] 프로젝트 만들기 (4.7.0 버전)

eungding 2024. 3. 26. 00:31
728x90
반응형

Tuist 튜토리얼 이 major version 3 기준이라서

초기 만들어지는 파일이나 폴더가 major version 4 랑 많이 다르다.

 

동료분과 Tuist 팀의 도움으로 겨우 4.7.0 기반 프로젝트 만들기 성공함 🥹

3과 달리 4는 한땀한땀 직접 추가해야하는 경우가 많아서 기록해둠 

 

 

[1] Tuist 4 버전대 설치

Installation 가이드 보고 mise 설치 후, tuist 설치 해주면 된다. 

 

나는 옛날에 mise 말고 다른 툴로 tuist 3 버전대를 설치했어서 

이 이슈로 시간 많이 잡아먹음 ;; 

(tuist install 명령어를 통해 외부 의존성을 설치하겠다는 건데 명령어가 충돌나서 tuist 자체를 설치하려고 했던 기억)

 

답변에 있는 것 처럼 uninstall 하고 mise 로 다시 설치하면 된다. 

어케 저케 꼬여가지고 mise 도 uninstall 한번 했는데 

mise 문서 보면 uninstall 이 아니라 implode 를 지우는 명령어로 사용하고 있다는 점 유의! 

 

 

[2]  빈 폴더 만들고 Tuist 버전 지정하기 

빈 폴더를 만들고 진입한다. 

tuist 버전이 여러개인 경우 ( ~/.local/share/mise 들어가서 확인 가능) 

 

 

tuist 버전을 반드시 지정해준다. 

 

 

나는 맨 위 명령어를 사용해줬다. 

mise use tuist@4.7.0

 

 

 

 

 

[3] 프로젝트 만들기 

 

아래 명령어로 프로젝트를 만들어준다. 

tuist init --platform ios

 

 

그럼 이렇게 SwiftUI 기반의 앱이 만들어진다. 

 

 

 

 

 

UIKit 기반의 앱을 만드는 옵션이 없는 것 같아서 여쭤보니까

UIKit 기반으로 앱을 만들고 그 다음에 tuist 를 설치하라고 하셨다. 

 

Project.swift 는 이렇게 구성되어있다.

 

 

3 버전대와 다르게  Project+Templates.swift 는 만들어지지 않는다! 

 

[4] 프로젝트 구조 잡기  

아래 명령어를 실행해서 프로젝트 구조를 세팅해주자

tuist edit

 

 

 

tuist generate 명령어를 실행시키면 (아래 단계) 

여기 manifests 를 기반으로 workspace 를 만들어주게 될 것이다. 

 

 

Manifests 폴더 하위에 Project structures 가이드랑 동일하게 구성해주자

ㄴ 각 폴더와 파일에 대한 설명은 문서 참고 

 

 

우선 Projects 폴더를 만들어주자

 

 

일단 App 하나만 구성해보자 

Projects 에 TuistApp 을 통째로 옮겨오고 Project.swift 도 여기 넣어주자 

(프로젝트 별로 Project.swift 파일이 있어야한다)

 

 

 

그리고 경로가 바뀌었으니 TuistApp/ 되어있는 부분도 지워준다.

(sources, resources 부분) 

 

 

 

그다음 Tuist 폴더를 만들어주고 필요한 파일들을 추가해준다

Config.swift이니셜라이저에 디폴트값이 다 되어있으니 이렇게만 일단 추가해줬다. 

 

 

 

Pacakge.swift 도 일단 최소한으로만 작업해준다. 

(참고로 3번 라인 까지만 쓰면 tuist install 시 에러가 난다)

 

 

 

그다음 Workspace.swift  를 루트에 추가해준다. (저 여기 왜 소문자로 했는지 모르겠는데 @_@, Workspace 파일 네이밍 하셔요!!) 

 

 

ProjectDescriptionHelpers 는 초기 단계에서 불필요해서 스킵. 

 

 

[4] 워크스페이스 만들기

 

tuist install 을 먼저 해준다. (아무 의존성이 없어도 tuist install 을 하라고 에러가 뜨기 때문) 

tuist install

 

 

아래 명령어로 워크스페이스를 만들어준다. 

tuist generate

 

 

참고로 이런 에러가 뜬다면 Projects 밑에 폴더가 잘 옮겨졌는 지를 확인해봐야한다.

 

 

빨간 에러에 포커싱해서 debug config 를 추가해주려고 하면 안된다. (이 문제가 아니다) 

 

 

 

[5]  내부 의존성 추가해보기 

 

아래 명령어 실행

tuist edit

 

Projects > TuistUI 폴더 만들고

Project.swift 파일 추가

 

 

 

이 명령어 돌리면 

tuist generate

 

 

Derived 랑 proj 생김 

 

 

workspace 에도 생겨있음 

 

 

 

Sources > CommonView 만들어줌 

 

 

 

다시 아래 명령어 

tuist edit

 

 

TuistUI 에는 sources 명시 

 

 

 

TuistApp 은 디펜던시 명시 

 

 

 

아래 명령어 실행 

tuist generate

 

 

확인 

 

 

확인 

 

 

 

[6] 외부 의존성 추가해보기 

-- 

tuist 에서는 외부의존성을 SPM으로 받아와서 Xcode projects and targets 로 컨버팅하고 

framework 로 embed 하는 방식을 사용한다. 

 

이 방식을 Tuist Workshop 문서에서는 이렇게 설명하고 있음.  

 

Tuist proposes a different integration method, which takes the best of SPM and CocoaPods worlds. 

It uses SPM to resolve the packages, and CocoaPods' idea of integrating dependencies using XcodeProj primitives such as targets and build settings.

 

문서 > External dependencies  에 해당 메커니즘에 대한 설명이 더 자세히 나와있다 

-- 

 

 

Adding external Dependencies 코드 복사  (import ProjectDescriptionHelpers 빼고)

 

 

 

 

tuist install

 

Package.resolved 가 Tuist 폴더에 추가되는 것을 볼 수 있음 

 

 

 

외부 의존성 넣고

 

 

tuist generate

 

확인 

 

 

 

tuist generate 를 3,4번 하니까 그제야 Dependencies 가 생기고 import 성공했음;; 

아무튼 확인 

 

 

 

 

 

반응형