티스토리 뷰

Tuist 3.6.0 버전을 기준으로 작성하였습니다.

1. Install

curl -Ls https://install.tuist.io | bash

인스톨 성공

2. Tuist Init

설정하고 싶은 경로로 이동해 아래 명령어를 사용해 Tuist를 설정해준다. Install과 init은 한번만 실행시켜주면 된다.

tuist init --platform ios


만약 SwiftUI를 사용하고 있다면 위의 명령어가 아닌

tuist init --platform ios --template swiftui

를 입력해 초기화해주자.

이런 파일들이 생성된다.

3. Edit

Project.swift를 생성해 프로젝트를 수정해보자. 아래 명령어를 실행시키면 Project.swift가 생성(없을 때)되고, XCode가 실행된다.

tuist edit

 

4. Project.swift 설정

아래와 같은 프로젝트가 열린다.

Project 설정을 해주자. 

설정을 완료하면 XCode를 닫고 CTRL + C를 입력하여 종료한다.

Project.swift설정 둘러보기

a) Project설정

init(name: String, organizationName: String? = nil, options: ProjectDescription.Project.Options = .options(), packages: [ProjectDescription.Package] = [], settings: ProjectDescription.Settings? = nil, targets: [ProjectDescription.Target] = [], schemes: [ProjectDescription.Scheme] = [], fileHeaderTemplate: ProjectDescription.FileHeaderTemplate? = nil, additionalFiles: [ProjectDescription.FileElement] = [], resourceSynthesizers: [ProjectDescription.ResourceSynthesizer] = .default)

프로젝트의 생성자.
필요한 정보를 채워서 리턴해주면 된다.

XCConfig를 이용해 깔끔하게 XCode의 설정을 넣어주자.

b) Target 설정

a의 파라미터 중 하나인 Target을 설정해주는 부분

여러가지 기능을 제공한다.

5. Dependency

외부 오픈소스 라이브러리나, 내부 라이브러리 의존성을 관리해 줄 수 있다.
공식적으로 지원하는것은 1. SPM 2. Carthage 두개뿐이다.

방법은 여러가지가 있는 것 같은데
Dependencies.swift를 이용해서 하는 방법을 기입해 놓겠음..

위의 사진처럼 Tuist하위 경로에 Dependencies.swift파일을 생성해주자.

import ProjectDescription

let dependencies = Dependencies(carthage: [], swiftPackageManager: [], platforms: [])

위와 같이 dependencies를 지정해주면 된다.
예를들면..

이런식...

프로젝트에 의존성들이 추가된다.

해당 내용들을 타겟 의존성에 넣어주면 된다.
예를들면..

let target = Target(
            name: name,
            platform: platform,
            product: .app,
            bundleId: "com.sample.sample",
            infoPlist: .file(path: "InfoPlist/Info.plist"),
            sources: ["Targets/\(name)/Sources/**"],
            resources: ["Targets/\(name)/Resources/**"],
            scripts: targetScripts,
            dependencies: [.external(name: "Moya")]
        )

 

++

개인적으로 Pod은 추천을 하지 않음.. tuist clean을 실행한 후 다시 generate를 하게 될 경우 bundle id를 못찾는 버그(?)가 있는것 같다..


6. Profile 관련

tuist로 xcworkspace와 xcodeproj를 생성해주면 Profile을 자동으로 import해주고 싶어진다.(CI/CD때문이라도)

https://docs.tuist.io/commands/signing

 

tuist signing | Tuist Documentation

Tuist offers a deterministic, pain-free solution to signing. Read on if you would like to learn more about how it works and how you can set it up.

docs.tuist.io

를 참조해주면 되는데,
요약하자면 다음과 같은 작업을 해주면된다.

a-1)

Project/Tuist 경로에 master.key 파일을 생성해준다.

a-2)

openssl rand -base64 32

명령어로 base64포맷으로 인코딩된 랜덤한 값을 생성해준다.

a-3)

해당 값을 master.key에 기입해준다.

b-1)

키체인에서 privateKey를 내보내기

.p12 파일로 내보내자. 여기서 주의할점은 비밀번호를 입력하지 않은채로 내보내기를 해야한다는 점이다.

b-2)

profile을 다운로드 받고, 이름을 변경해준다.
양식이 중요한데, {Target}.{Configuration}.mobileprovision 형식으로 변경한다.
예를들면.. MySampleApp.Debug.mobileprovision 이런식으로 변경해주면 된다.

b-3)

.p12파일과 .cer(developer.apple.com에서 받아오던지 하자)파일, profile파일을 Project/Tuist/Signing 디렉토리에 넣어준다.

generate를 해주면 해당 파일들이 master.key파일을 이용해 암호화되고, 프로젝트에 프로파일이 import되는것을 확인할 수 있다.

※ master.key 파일은 암호화의 키에 해당하는 파일인듯 하다. 공개되어있는 장소에 올리지 않는게 맞는듯.

7. Generate

설정을 저장하였으면 아래 명령어를 실행시켜 프로젝트를 생성하자.

tuist generate

이에 앞서 우리는 Dependencies.swift를 사용했기 때문에 의존성이 걸린 외부 라이브러리들을 한번 fetch 해와야한다.

tuist fetch

fetch 명령어로 받아와주자.

8. 빌드해보기

generate를 한 후
프로젝트를 빌드해주면 정상적으로 실행되는것을 확인할 수 있다.







공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
글 보관함