Tuist Project와 Target의 개념 정리

Jenny·2023년 11월 24일

📁 Project 란 무엇인가?

  • Project는 모든 파일(sources),Resource를 빌드하는데 필요한 정보의 저장소를 의미합니다.
  • Project는 빌드하는 방법을 명시하는 end Product인 Target을 하나 이상 포함해야 합니다.
  • 별도 Project 멤버와이즈 이니셜라이저에서 organizationName을 초기화로 지정할 수 있습니다.

Project 가 가지고 있는 정보는

  • Sources 파일에 대한 참조
  • structure navigator에서 소스파일을 그룹화
  • Debug, Release와 같은 build configuration을 설정 가능

📦 Target 이란 무엇인가?

  • Target이란 하나의 Product와 워크스페이스(또는 파일 들)에서 Product를 빌드하기 위한 지침(instruction)들을 포함한다고 합니다.
  • 하나의 Xcode Project 에서는 여러개의 Target을 가질 수 있습니다.
  • 하나의 Target은 하나의 Product를 만들어 냅니다.

    아래와 같이 하나의 Target과 하나의 Project가 있는 것을 확인할 수 있습니다.

🧑‍💻 Project에 대해 구체적으로 알아보기!!

Project는 Struct 타입으로 지원되고 있으며 다양한 instance property를 통해 프로젝트를 세팅 할 수 있습니다.

  • name: 프로젝트 이름 설정 instance Property
  • organizationName : organization 이름 설정 instance Property
  • options : Tuist가 .xcodproj 파일을 만들때의 옵션을 설정 해 줄 수 있습니다. 대표적으로 imageAssets에 대해서 자동으로 파일과 이름을 만들어 주는데 이기능을 disable 할 수 있습니다. 기본 값은 false 입니다.
  • packages : 저희가 주로 많이 사용하는 Swift Package Manager Pacakge를 의미합니다.
  • targets : ProjectTarget을 의미합니다.
  • schemes : Project Schemes 정의하는 부분 입니다.
  • settings : Project File 있는 build settings의 정보들을 설정해줍니다.
  • fileHeaderTemplate : 내장 Xcode 템플릿에 Custom으로 파일 헤더를 만들 수 있습니다.
  • additionalFiles : Tuist에서 프로젝트를 만들 때 Xcode에 자동으로 연결해주지 않는 파일을 넣으면 프로젝트에 연결시켜줍니다. 예를 들어 .md, .graphql 등을 만들때 Xcode에는 자동으로 보여지지 않는데, 여기에 추가해준다면 Xcode에서도 볼 수 있습니다.
  • resourceSynthesizers : Tuist는 프로젝트를 생성할 때 Resources/ 안에 파일 확장자에 따라 enum을 제공해줍니다. 즉 Color,Font 등을 enum 타입으로 자동으로 생성해줍니다
profile
"Jenny 있게 iOS 개발을 하며 대체 불가능한 인재가 되자"

0개의 댓글