IOS/iOS

[TIL] Workspace, Project, Target, Scheme, Build Settings, Configurations, Build Phases 의 의미

Workspace

워크스페이스는 Xcode Projects그룹으로 이루어진 문서입니다.

  1. 워크스페이스는 다수의 Xcode Projects를 포함할수 있습니다.
  2. 각 Workspace는 독립적인 ID를 보유하기 때문에 같은 Xcode Project라 하더라도 여러개의 Workspace에서 사용될 수 있습니다.
  3. 기본적으로 Workspace의 모든 Xcode프로젝트는 같은 빌드 디렉토리에서 빌드되기 때문에 한 Workspace에 여러개의 프로젝트를 볼수있습니다.

Xcode Project

Xcode Project는 모든 파일, 리소스, 빌드에 필요한 모든 정보를 담고있는 저장소입니다.

  1. 제품의 빌드정보를 가지고 있는 Target을 한개 또는 여러개 가지고있습니다.
  2. Project는 Target을 위한 기본적인 빌드 셋팅을 정의합니다. (Target은 기본 빌드셋팅을 Override하여 작동합니다)
  3. 한개 또는 여러개의 Build Configuration을 설정할수 있습니다.

Xcode Target

빌드 할 제품을 지정하고 Project 또는 Workspace에서 제품을 빌드하기 위해 설정한 정보를 가지고있습니다.

Target은 소스파일과 리소스 들을 이용해 무엇을 어떻게 빌드할지 지시하는 대상입니다.한개 또는 여러개를 가지고 있을수 있습니다.

  1. 각 각의 Target은 Project를 위한 Build Setting을 정의하고 있습니다.
  2. 각 각의 Target은 또한 빌딩 할때 클래스, 리소스, 커스텀 스크립트 등을 정의하고 있습니다.

Xcode Scheme

빌드 체계는 전체 빌드 프로세스에 대한 청사진으로서, 특정대상(app or Framework)에 대한 개발, 단위테스트 또는 프로덕션 빌드를 만드는데 사용할 Build Setting을 Xcode에 알려줍니다.

  1. 원하는 만큼 구성할수 있지만 한번에 하나만 활성화 할수 있습니다.
  2. Scheme는 빌드 할 때 사용할 구성과 실행할 테스트 모음을 정의합니다.
  3. 하나의 Target에는 하나 이상의 Scheme가 있어야합니다.

Build Setting

Build Setting은 빌드 단계에 대한 옵션이며 기본적으로 Target을 빌드할때 가질수 있는 옵션의 변수들 입니다.

Configurations

Build Settings의 모음으로써 하나의 Target은 여러개의 Configuration을 가질수 있습니다. 일반적으로 Target에는 debug, release 템플릿이 있는걸 알수있습니다.

  • 음 말이좀 어렵네요...ㅠㅠ

Build Phases

Build Phase란 다른 Target의 요소입니다. 각각의 Target은 build phases 설정을 가지고있습니다. 또한 유저의 컴파일 코드를 포함시킬수 있습니다.

유저는 bash script, perl script, rubyscript 등의 스크립트를 생성할수 있으며, 무엇이든 build process에 포함시킬수 있습니다. Xcode는 지원하는 도구모음이 없지만, 이렇게 swiftlint 같은 것을 포맷터나 빌드 프로세스에 추가하는 것이 익숙하다면 모든 build setting은 script와 함께 가능합니다.

 😅주의 : 발번역이라 죄송합니다 ㅜㅜ😅
출처
medium.com/flawless-app-stories/managing-different-environments-using-xcode-build-schemes-and-configurations-af7c43f5be19

 

Managing different Environments using XCode Build Schemes and Configurations

In this article we’ll talk about managing different Environments

medium.com