2009-09-09 5 views
15

xcconfig 파일과 함께 Xcode 3.2를 사용하고 있습니다. 파일은 대상별로 구성됩니다. 예를 들어 debug.xcconfig 개의 파일과 release.xcconfig 개의 파일이 있습니다. 두 가지 모두 공통 설정을 사용하므로 두 파일에 모두 포함 된 shared.xcconfig 파일을 추가했습니다.Xcode : 여러 xcconfig 파일로 디버그 환경을 설정하는 방법은 무엇입니까?

shared.xcconfig 파일은 다음과 같습니다 :

GCC_C_LANGUAGE_STANDARD = c99 
GCC_WARN_ABOUT_RETURN_TYPE = YES 
GCC_WARN_UNUSED_VARIABLE = YES 
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS 

debug.xcconfig 파일은 다음과 같습니다

#include "Shared.xcconfig" 
GCC_OPTIMIZATION_LEVEL = 0 

을 지금, 나는이 debug.xcconfig 파일에 DEBUG 처리기 정의를 추가하고 싶습니다.

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG" 

이 엑스 코드 3.2에서 작동하지 않습니다 this question에 나타낸 바와 같이, 다음과 같은 방법을 작동하도록되어있다. Xcode 문서에서는 변수 수정이 불가능하다는 것을 명시 적으로 언급합니다. 변수를 덮어 쓸 수만 있습니다.

당신은 어떻게이 문제를 해결합니까?

답변

17

우리가 과거에이 문제를 해결 한 방법은 각 레이어가 정의의 하위 집합을 작성한 다음 리프 수준 xcconfig에서 모두 함께 가져 오는 것입니다.

shared.xcconfig 물 :

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz 

debug.xcconfig 물 :

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug 
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG) 

(상세 서브셋 변수를 결정하는 장점들은, 그들이 작성하는 데 사용되는 값 전적으로 유사한들을 만들고 있다는 것이다 구성 파일에서 더 쉽게 찾을 수 있습니다.)

+0

다른 해결책은 xcconfig에서 포함하는 변수 이름을 쉽게 편집 할 수없는 경우 프로젝트에 포함 할 xcconfig와 대상에 대해 더 구체적으로 설정하는 것입니다. 이것은 상속 작용을 할 것입니다. 자세한 내용은 Github 발행 코멘트를 참조하십시오. https://github.com/CocoaPods/CocoaPods/issues/1212#issuecomment-52272400 –

-1

$ (상속) 사용은 어떻습니까?

GCC_PREPROCESSOR_DEFINITIONS = $ 다음과 같은 작업을해야 DEBUG

+2

작동하면 좋겠지 만 불행히도 .xcconfig 파일에는 없습니다. –

1

을 (상속) :

xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) BAR=1' 
5

당신은 또한 .xcconfig 파일에 다음과 같은 형식을 사용할 수 있습니다. (xcode 4에서 작동하며 xcode 3에서는 테스트되지 않음). 그 유일한 예는 모든 설정에서 작동하는 것 같습니다.

ARCHS=i386 x86_64 
ARCHS[config=Debug]=i386 
ARCHS[config=Release]=i386 x86_64 
관련 문제