티스토리 뷰
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 성공했음;;
아무튼 확인
'🍏 > Tuist' 카테고리의 다른 글
[Tuist] tuist scaffold (Template 으로 모듈 자동생성) (0) | 2024.10.02 |
---|---|
[Tuist] StaticFramework 와 Preview (4) | 2024.04.09 |
[Tuist] Cache (10) | 2024.04.08 |
[Tuist] iOS 에서 Dynamic Library (dylib) 를 직접 만들 수 있는가 ? (2) | 2024.03.29 |
- Total
- Today
- Yesterday
- flutter 앱 출시
- Flutter Text Gradient
- ipad multitasking
- METAL
- drf custom error
- Flutter Clipboard
- 플러터 얼럿
- 장고 URL querystring
- PencilKit
- Sketch 누끼
- Flutter Spacer
- Flutter getter setter
- Watch App for iOS App vs Watch App
- 플러터 싱글톤
- Django FCM
- Django Firebase Cloud Messaging
- SerializerMethodField
- Flutter 로딩
- DRF APIException
- Python Type Hint
- flutter deep link
- 구글 Geocoding API
- 장고 Custom Management Command
- flutter dynamic link
- flutter build mode
- ribs
- Django Heroku Scheduler
- github actions
- cocoapod
- Dart Factory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |