Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발공부 정리 노트

Configuration Setting File (xcconfig) format 본문

iOS/Xcode

Configuration Setting File (xcconfig) format

Hyunwoo. 2024. 6. 24. 11:24

xcconfig에 대해 공부하기 위해 공식 문서를 번역한 글입니다.

원문: https://help.apple.com/xcode/mac/11.4/#/dev745c5c974

 

Configuration Settings File (.xcconfig 파일 확장자를 가진 파일)은 빌드 구성 파일 또는 xcconfig file로도 알려져 있으며, project 또는 target 각각의 빌드 구성을 정의하고 오버라이드한 plain text 파일입니다. 이 유형의 타입은 Xcode 밖에서 편집될 수 있고 소스 관리 시스템(ex. git)과 함께 잘 통합됩니다. Build configuration 파일은 지정된 포맷 규칙을 준수해야 합니다. 그렇지 않으면 빌드 경고를 생성합니다.

 

Note: 프로젝트에 Configuration Settings 파일을 추가하고 싶다면, https://help.apple.com/xcode/mac/11.4/#/deve97bde215 여기를 참고하세요.

 

Comments

빌드 시스템에서 무시되어야 하는 메모나 다른 정보를 포함하려면 한 줄 주석을 사용하세요. 각 코멘트는 두 개의 슬래시로 시작합니다. (//) 그리고 라인의 끝에 도달할 때까지 계속됩니다. (// 뒤부터 라인 끝까지 주석 처리 한다는 의미입니다.)

 

코멘트는 별도의 라인에 있을 수도 있고 빌드 설정 값 뒤에 올 수도 있습니다.

 

Specify a Build Setting Value

build configuration 파일은 가능한 모든 빌드 설정 리스트를 가질 필요가 없습니다. 커스터마이징하고 싶은 항목만 포함하면 됩니다.

각 빌드 설정 값은 다음 형식으로 한 줄에 정의됩니다.

BUILD_SETTING_DECLARATION_NAME = BUILD_SETTING_VALUE_DEFINITION

 

예를 들어:

ONLY_ACTIVE_ARCH = YES
 
다양한 값 형식이 있지만 가장 많이 쓰이는 건 다음과 같습니다:

 

https://help.apple.com/xcode/mac/11.4/#/dev745c5c974

 

빌드 설정 이름과 해당하는 값 모두 좌우 공백이 무시됩니다. 같은 조건을 가진 같은 빌드 설정은 여러 번 정의됐다면, 마지막 인스턴스가 사용되고 나머지 모두는 무시됩니다.

 

Note: Build Settings 창에 빌드 설정을 선택하면 빌드 설정 이름이 project editor의 Quick Help inspector에 표시됩니다. 또한 Build settings reference에서 빌드 설정 이름을 찾을 수 있습니다. Build Settings 창에서 빌드 설정 타이틀과 이름을 토글 할 수 있습니다.

 

Prevent a value from being overridden

기존 프로젝트 또는 target 빌드 설정 값을 새로 정의한 값의 일부로 유지하기 위해서는 다음 형식으로 $(inherited) 변수를 사용하면 됩니다.

BUILD_SETTING_DECLARATION_NAME = $(inherited)ADDITIONAL_VALUE

 

예를 들어:

OTHER_SWIFT_FLAGS = $(inherited) -v
 
Reference the value of another build setting

다른 빌드 설정 값을 참조하기 위해  다음 형식으로 다른 빌드 설정 이름을 참조하세요.

 

BUILD_SETTING_DECLARATION_NAME = $(OTHER_BUILD_SETTING_DECLARATION_NAME)

 

예를 들어:

OBJROOT = $(SYMROOT)

 

다른 빌드 설정 값은 다음과 같이 인라인에 참조될 수 있습니다:

DSTROOT = /tmp/$(PROJECT_NAME).dst

 

또는:

CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

 

Add a platform condition to a value

프로젝트는 하나의 플랫폼과 다른 플랫폼의 타겟팅할 때 다르게 빌드해야 할 수 있습니다. 이를 허용하기 위해 빌드 시스템은 다음과 같은 조건부 지원을 제공합니다.

https://help.apple.com/xcode/mac/11.4/#/dev745c5c974

조건들은 빌드 세팅 이름 뒤에 표시되며 대괄호로 묶입니다. 예를 들어:

BUILD_SETTING_DECLARATION_NAME[CONDITIONAL=CONDITION_VALUE] = VALUE_DEFINITION

 

예를 들어, 다음에 오는 줄은 macOS SDK로 빌드할 때 OTHER_LDFLAGS 빌드 설정 값을 -Incurses로 설정합니다.

OTHER_LDFLAGS[sdk=macosx*] = -lncurses

 

다음 형식을 사용하여 여러 조건을 설정할 수 있습니다.

 

BUILD_SETTING_DECLARATION_NAME[CONDITIONAL1=CONDITION_VALUE1][CONDITIONAL2=CONDITION_VALUE2] = VALUE_DEFINITION

 

예를 들어, 다음에 오는 줄은 SDK가 macosx* 값을 갖고 아키텍처가 x86_64 값을 가질 때마다 OTHER_LDFLAGS 빌드 설정값을 -lncurses로 설정합니다.

 

OTHER_LDFLAGS[sdk=macosx*][arch=x86_64] = -lncurses

 

Include Settings from Other Build Configuration Files

빌드 구성 파일은 다른 빌드 구성 파일에서 온 빌드 설정을 임포트할 수 있습니다. 다른 파일 설정을 임포트하기 위해, 접두사에 #include를 사용하고, 따옴표 안에 파일 참조를 입력하세요. 예를 들어:

#include "MyOtherConfigFile.xcconfig"

 

빌드 타임에 지정된 파일을 찾을 수 없다면, 빌드 경고가 생성됩니다. 누락된 빌드 구성 파일의 경고를 없애려면, #include 접두사 뒤에 ?를 붙이세요. 예를 들어:

#include? "MyOtherConfigFile.xcconfig"

 

다른 빌드 구성 파일을 파일 이름, 상대 경로, 절대 경로를 사용하여 참조할 수 있습니다.

https://help.apple.com/xcode/mac/11.4/#/dev745c5c974

 

Note: 다른 빌드 구성 파일에 대한 참조는 빌드 설정을 해석하기 전에 처리됩니다.

Comments