2014-05-21 3 views
0

OSX 응용 프로그램은 다른 플랫폼에서도 실행되는 일부 모듈을 가지고 있습니다. 즉, 대부분의 플랫폼이 다른 플랫폼으로 이식되고 일부는 모든 플랫폼에서 공통으로 사용됩니다.Info.plist | 수정 버전 문자열

다른 플랫폼 포트와 일관성을 유지하려면 버전 문자열이있는 AppVersion.h라는 공통된 버전을 유지해야합니다. 즉, 어떤 해결 방법은 동일 거기에 있습니까

을의 Info.plist에 AppVersion.h 파일에서 동일한 버전의 문자열을 복사 몇 가지 사전 빌드 스크립트를 실행하려면 지금

내가 필요는 UI에 표시 할 버전 문자열을 읽고 info.plist를 업데이트합니다.

미리 감사드립니다.

답변

1

물론입니다! 이것이 내가 자원 단계 후에 빌드 단계로 사용하는 것입니다. 이 스크립트가 훨씬 더 큰 스크립트의 일부이기 때문에 문제를 조금 해결합니다.

#!/bin/sh 
export PlistBuddy="/usr/libexec/PlistBuddy" 
# TODO: Get OUR_VERSION here. 
export appPlist="${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/Info.plist" 
$PlistBuddy $appPlist -c "set :CFBundleShortVersionString '$OUR_VERSION'" 
$PlistBuddy $appPlist -c "set :CFBundleVersion '$OUR_VERSION'" 

OUR_VERSION을 얻는 방법은? 나는 너에게 그 것을 열어 둔다. 필자의 경우에는 스크립트에서 파일을 단순히 그렸다. 나를 위해, 이것은 xcconfig했지만 당신을 위해 그것은 헤더가 될거야. 커맨드 라인 경험이 있다면 .h 파일에서 기호 의미를 추출하는 더 좋은 방법이있을 수 있습니다.

이 값은 CFBundleShortVersionString (사용자가 볼 수있는 버전)과 CFBundleVersion (내부 버전)을 같은 값으로 설정합니다. 아마 그게 네가 원하는거야. 그렇지 않다면 수정하십시오. :)

+0

감사합니다. steven .... – Amitg2k12