2009-12-08 2 views
0

미리 컴파일 된 헤더 파일로 처리되는 plist가 있고 그 안에 "variable"VERSION_STRING이 다음과 같은 필드에 몇 번 사용됩니다. CFBundleGetInfoString, 즉 키 CFBundleGetInfoString의 값은 다음과 같습니다. MyProduct VERSION_STRING Copyright © 2009 MyCorpmajor/minor/patch/build에서 VERSION_STRING을 생성하면 plist에서 사용하도록 정의됩니다.

MyHeader.h (이는 Info.plist 접두사 헤더로 설정되어 있으며, VERSION_STRING을 MAJOR 형태로 만들 수 있기를 바랍니다. 내가 어떤 이유로

#define MAJOR 1 
#define MINOR 0 
#define PATCH 0 
#define BUILD 23 

이 .MINOR.PATCH.BUILD 나는이 일을 할 수없는 것 같다. 나는 그 순간 중 하나를 가지고있을 수도 있습니다

답변

0

plist 파일을 가져 와서 추가 확장자 (아마도 P?)로 바꿉니다. 파일의 처음에 #include "MyHeader.h"을 추가하고 C 전 처리기 (보통 cpp)로 빌드에서 전처리하십시오. 추가 # 행을 필터링해야 할 수도 있지만 작동하지 않는 이유는 알 수 없습니다. 기본적으로

, cpp는 표준 출력으로 출력, 그래서 다음과 같은 명령을 추가하는 것은 잘 작동 할 수 있어야합니다

cpp myplist.plist.P | grep -v '^#' > myplist.plist 
+0

Info.plist 파일을 사전 처리 할 때 Xcode에서 자동으로 헤더 파일을 포함하도록 Xcode에 지시 할 수 있습니다. 나는 일을 해요. 내가 겪고있는 문제는 구성 요소에서 VERSION_STRING을 적절히 조합하는 것입니다. –

+0

나는 XCode에 대한 경험이 거의 없다고 고백해야한다. 그 기능에 대한 나의 무지를 용서하십시오. 'VERSION_STRING' 빌드 방법을 보여줄 수 있습니까? – greyfade

+0

걱정할 필요가 없습니다. 현재 존재하는 문자열은 다음과 같습니다. #define VERSION_NUM 1.0.0.BUILD_NUM 여기서 BUILD_NUM은 숫자로 정의됩니다. 이 결과는 현재 1.0.0.BUILD_NUM이고 BUILD_NUM은 빌드 번호로 대체되지 않습니다. 또한 1.0.0 부분을 major/minor/patch 정의로 바꾸고 싶습니다. –

관련 문제