2013-07-28 3 views
2

"무료"및 "유료"버전의 내 앱이 있고 빌드 번호를 동시에 자동으로 증가시키려는 경우가 있습니다. "버전과 때로는 내가하고있는 일에 따라"유료 "버전으로 테스트합니다. 이것들은 본질적으로 동일한 코드베이스입니다. 나는 "유료"버전으로 정의 된 전처리 지시어로 두 가지 목표를 가지고 있습니다. 나는이 문제의 코드를 사용하고Xcode의 여러 타겟에 대한 자동 증가 빌드 번호

:

"Print CFBundleVersion" "NEW_PATH/$INFOPLIST_FILE" 
: Version vs build in XCode

#!/bin/bash  
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 

는 난 그냥의 라인을 따라 다른 $INFOPLIST_FILE의 경로를 지정하는 두 개 더 라인을 추가 할 필요가 있다고 생각

그리고 그것을 증가시키지 만, 다른 건물을 만들 때 한 대상의 Plist에 대한 경로를 얻으려면 어떻게해야합니까?

+0

경로를 통해 실제로 무엇을 의미하는지 자세히 설명해 주실 수 있습니까? –

+0

파일 경로 (예 : "~/Projects/iOSApp/App")를 말했습니다. 나는 질문을 이해하고 아래에 대답했다. 관심이 있다면 –

답변

3

알아 냈습니다. SRCROOT 변수를 사용해야합니다. 그러면 프로젝트의 기본 디렉토리가 생깁니다. 거기에서 사용하려는 info.plist 파일의 위치를 ​​수동으로 지정하고 해당 경로와 함께 PlistBuddy -c 명령을 실행해야합니다. 여기

먼저 "무료"버전을 증가 예입니다 다음 "유료"버전 증가 : 당신은 그것이 $INFOPLIST_FILE를 사용 있도록, 각 대상에 대한 스크립트를 반전 확인해야

#!/bin/bash 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$SRCROOT/Pro-Info.plist") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$SRCROOT/Pro-Info.plist" 

을 변수를 현재 대상에 지정하고 다른 위치의 위치를 ​​지정합니다. 이 변수들을 사용자 정의 변수에 저장하거나 $INFOPLIST_FILE 변수를 사용하지 않고 각각을 지정할 수도 있습니다. 그러나 모두 기본적으로 동일한 작업을 수행합니다.