Objective-C 빌드에 관한 기본 개념 정리

Objective-C 프로젝트를 빌드하기 위해서 기본적으로 알아 둬야할 개념들이 있다. 많은 초보 개발자들이 놓치고 있는 부분이기도 한다. 프로젝트를 생성하고 기본으로 설정되어 있는 세팅을 가지고 빌드를 하게 되면 무난하게 잘 작동을 하기 때문에 아마 큰 관심이 없었을 것이다. 하지만 프래임워크를 만들려고 한다던지, 혹은 서드 파티의 라이브러리를 빌드한 다음 자신의 코드를 빌드하는 등 세팅을 많이 건드려야 한다면 반드시 알고 지나가야하는 개념들이다.

이번 블로그에서 설명할 개념들은 아래와 같다.

  • Workspace
  • Project
  • Scheme
  • Target
  • Archive

 

#Workspace

Workspace는 하나 이상의 Project를 포함 할 수 있는 컨테이너의 개념이다. 서로 dependency가 있는 프로젝트 끼리 한 작업 환경에 모아 놓으면 개발이 용이하고, 편리하다. 프로젝트 서로 간에 자신이 가지고 있는 Target들을 연관시켜 작업할 수도 있기 때문에 실개발에서 꽤 많이 사용되는 매커니즘이다.

#Project

프로젝트는 소스 파일를 참조하여 개발하는 Workspace 다음으로 높은 레이어이다. 프로젝트는 Scheme과 Target 그리고 Build 설정을 포함하고 있다. 뿐만 아니라 UI를 제작할 수 있는 스토리 보드와 같은 파일도 프로젝트에서 생성 관리가 가능하다.

#Scheme

scheme은 특정한 Target을 빌드하기 위한 스팩이라 할 수있다. 다섯 가지의 scheme 액션을 행할 수 있는데, 실행, 테스트, profile을 통한 성능 실험, 코드 분석, 아카이브와 배포이다. (단 빌드는 이 모든 액션을 실행하기 위해서 먼저 실행되어야 한다.)  Scheme을 통해 Target에 액션을 실행 할 수 있다.

#Target

Target은 한 마디로 설명하자면, 다음과 같다. ‘제품을 빌드한다.’ 엄밀히 말하자면 특정한 product을 만들 기 위한 지시서이다. 소스 코드의 부분 혹은 전체를 참조 할 수 있으며, Build Phase라는 상위 레벨의 빌드하는 순서를 세팅할 수 있다. 또한 각 Target 마다 Build Setting을 통해 어떻게 빌드 할 것인지를 결정 할 수 있다. 뿐만 아니라 다른 Target와도 의존 관계를 맺고 빌드 할 수도 있다.

#Archive

아카이브는 단 하나의 앱만 담고 있다. 그렇기 때문에 해당 앱에서는 라이브러리와 프래임워크를 포함하고 있다. 뿐만 아니라 타임 스템프가 찍혀 있는 번들로써 다음과 같은 정보를 포함하고 있다.

  • 당신의 앱 빌드를 설치할 스타일
  • 디버그 Symbols DSYM 파일로 부터 분리
  • 앱 스토어에 올리기 위한 확인 작업에 대한 메타 데이터와 서브 미션에 관한 데이터
  • 아카이브에 달린 comments

 

Leave a Comment.