[iOS] Tuist란? 설치해보자

목차


  1. ✅ Tuist란? 설치해보자
  2. Static/Dynamic Framework란?
  3. Tuist를 정복해보자!!

Tuist

Tuist는 Xcode 프로젝트 생성과 관리를 자동화하여 개발 과정을 더욱 효율적으로 만들어주는 강력한 도구입니다.

설치하기

Tuistmise를 통해 쉽게 설치할 수 있습니다.

  1. mise가 설치되어 있지 않다면, 먼저 mise를 설치합니다.

  2. 터미널에서 다음 명령어를 실행하여 Tuist를 설치합니다.

    $ mise install tuist
    
  3. 설치 후, Tuist를 활성화합니다.

    $ mise use tuist@latest
    
  • 특정 버전의 Tuist가 필요하다면 다음과 같이 설치할 수 있습니다.
    $ mise install tuist@x.y.z
    $ mise use tuist@x.y.z
    

주요 명령어

Tuist를 효과적으로 사용하기 위해 알아야 할 주요 명령어들입니다.

  • tuist init : 새 Tuist 프로젝트 시작하기
  • tuist generate : Xcode 프로젝트 파일 생성하기
  • tuist edit : Tuist 설정 파일 편집하기
  • tuist build : 프로젝트 빌드하기
  • tuist test : 테스트 실행하기
  • tuist run : 앱 실행하기
  • tuist graph : 프로젝트 의존성 시각화하기
  • tuist cache --external-only : 외부 의존성 캐싱

Package.swift로 의존성 관리하기

Swift Package Manager를 활용하여 외부 라이브러리를 관리할 수 있습니다.
다음은 Package.swift 파일의 예시입니다.

import PackageDescription

let package = Package(
   name: "ONEstore Global",
   dependencies: [
      .package(url: "https://github.com/google/GoogleSignIn-iOS.git", from: "8.0.0"),
      .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "11.1.0"),
      .package(url: "https://github.com/hmlongco/Factory.git", from: "2.3.2"),
      .package(url: "https://github.com/Kitura/Swift-JWT.git", from: "4.0.0"),
      .package(url: "https://github.com/google/GoogleUtilities.git", from: "8.0.2"),
   ]
)

이 설정으로 "ONEstore Global"을 만들고 여러가지 라이브러리를 의존성으로 추가했습니다.

Tuist의 Project.swift 파일에서 이 패키지를 사용하려면 다음과 같이 설정합니다.

import ProjectDescription

let project = Project(
   name: "ONEstore Global Project",
   targets: [
      Target(
         name: "ONEstore Global App",
         platform: .iOS,
         product: .app,
         bundleId: "com.onestore.global.app",
         infoPlist: .default,
         sources: ["Sources/**"],
         resources: ["Resources/**"],
         dependencies: [
            .external(name: "GoogleSignIn", condition: .none),
            .external(name: "Factory", condition: .none),
         ]
      )
   ]
)

이렇게 하면 Tuist가 Package.swift에 정의된 의존성을 자동으로 관리하고 프로젝트에 포함시킵니다.

마치며

Tuist는 iOS 개발 워크플로우를 크게 개선할 수 있는 강력한 도구입니다.
프로젝트 설정 자동화, 의존성 관리 간소화, 그리고 일관된 프로젝트 구조 유지 등 다양한 이점을 제공합니다.
Tuist를 활용하여 더 효율적이고 체계적인 iOS 개발을 경험했습니다.