Xcode의 Scheme이란

2023. 4. 11. 21:37iOS/Xcode

 

Xcode의 scheme 에 대하여

프로젝트의 이름을 변경하는 과정에서 Scheme에 대한 궁금증이 생겨서, 최신 애플 공식 문서를 보고 targetscheme에 대한 가닥.. 정도만 잡는 것을 목표로 한번 알아보았다.

 

Target

사실 처음에 알아보고 싶었던 건 Scheme이었었는데, Target을 먼저 알아야 온전히 이해할 수 있겠다는 생각이 들었다.

여기 애플에서 제공하는 target에 대한 설명을 보면,

A target specifies a product to build, such as an iOS, watchOS, or macOS app. When you create a project from a template, targets are added automatically. If you choose Unit and UI tests when creating a project, the project includes targets for the main app and the test apps. A watchOS app, that is dependent on an iOS app, has targets for the iOS app, WatchKit extension, and WatchKit app. macOS apps can have multiple targets too. Choose a target in the project editor to view and modify the target’s settings. Click the Add button (+) in the project editor to add a new Application, Framework & Library, Test, or Application Extension target to your project.

 

이렇게 나와 있는데 요약하자면,

  • target은 iOS/watchOS/macOS 앱과 같은, 빌드될 프로덕트를 정의한다
  • 타겟은 템플릿 프로젝트를 생성할 때 자동으로 추가된다
  • 프로젝트 생성 시 UnitUIUITest를 체크했다면 메인 앱과 함께 테스트 앱들의 target들도 프로젝트에 추가된다
  • iOS 앱에 의존적인 watchOS 앱은 iOS 앱, watchKit extension, WatchKit 앱을 위한 타겟들을 가진다
  • macOS 앱도 마찬가지로 여러 타겟들을 가질 수 있다
  • 프로젝트 에디터에서 타겟을 선택하고 타겟의 설정을 변경할 수 있다
  • 프로젝트 에디터에서 + 버튼을 누르면 새로운 어플리케이션, 프레임워크와 라이브러리, 테스트 또는 어플리케이션 익스텐션 타겟을 프로젝트에 새로 추가할 수 있다

이러한 내용이 나온다!

 

아래 사진처럼 Xcode 프로젝트 에디터 내의 메뉴들을 통해 타겟 설정을 변경할 수 있다.

 

 

 

💡 결론적으로 나는 target을 일반적으로 우리가 생각하는 하나의 앱, 프로덕트 단위라고 이해했다.

 

Scheme

마찬가지로 애플 help 사이트를 보면

A scheme is a collection of settings that specify the targets to build for a project, the build configuration to use, and the executable environment to use when the product is launched. When you open an existing project (or create a new one), Xcode automatically creates a scheme for each target. The default scheme is named after your project.

이렇게 나와 있고 요약하자면,

  • scheme은 설정의 집합이다

그 설정에는,

  • 프로젝트에서 빌드될 타겟들을 정의하는 설정
  • 사용할 빌드 configuration을 정의하는 설정
  • 프로덕트가 실행될 때 사용할 실행 가능한 환경을 정의하는 설정

등이 있다.

 

그리고

  • 프로젝트를 새로 만들거나 오픈할 때, Xcode는 자동으로 각 타겟에 대한 scheme을 생성한다
  • 디폴트 scheme은 프로젝트의 이름을 따른다

라고 되어 있는데 사실 이렇게만 봐서는 쉽게 이해가 되지 않았다.

 

그래서 실제 Xcode 프로젝트의 Edit Schemes 메뉴를 들어가 보았다.

 

 

들어가 보니 App 언어나 지역 같은 테스트를 할 때 필요한 정보들을 설정할 수 있는 화면이 보인다!

 

💡 앱을 빌드해서 실행할 때 필요한, 미리 정의해 놓은 설정들의 집합을 Scheme이라 하고 그 설정들을 여러 개 만들어서 테스트할 수 있는 것 같았다.

 

실제로 Duplicate Scheme을 클릭해 보면 아래와 같이 나온다.

 

 

💡프로젝트를 빌드하고 테스트 할 때, 여러 환경에서 다양한 설정으로 scheme을 만들어서 실행할 수 있을 것 같다..!!

 

Simulator를 고르기 전에 늘 선택되어 있었던 Scheme을 아무 생각 없이 지나쳤던 과거가 생각나는데, 이렇게 이해하고 나니 Scheme을 선택하고 Simulator를 선택하는 과정이 정말 자연스럽게 느껴지는 것 같다!

뭔가.. 간단하기도 어렵기도 한 내용이었는데, 완벽히 이해하지는 못했을 수도 있지만 그래도 알아봤다는 데에 의의를..ㅎㅎ

 

 

'iOS > Xcode' 카테고리의 다른 글

[iOS & Github] Xcode - 빈 폴더를 깃에 올릴 수 없을 때  (0) 2022.07.18