2015-01-06 1 views
4

빌드 이름에 따라 문자열을 추가 할 수 있지만 앱의 이름을 현지화하려고합니다. 설정은 다음과 같이 정의되어추가 문자열이있는 Info.plist 변수 지역화

<key>CFBundleDisplayName</key> 
<string>${PRODUCT_NAME}${BUNDLE_DISPLAY_NAME_SUFFIX}</string> 

: 그래서 현재으로 설정

Build Setting

이 방법으로 우리는 우리의 다른 베타 빌드에 대한 응용 프로그램에 접미사를 추가 할 수 있습니다. 문제는 우리가

CFBundleDisplayName = "Localized App Name"; 

같은 지역화 InfoPlist.strings에서 응용 프로그램의 표시 이름을 지역화 할 때 우리는 Info.plist에 저장된 값을 덮어 및 접미사 문자를 잃을 것입니다. 이 주변에 좋은 방법이 있습니까? Info.plist 개의 파일을 여러 개 사용하지 않으려합니다.

+0

처럼 번들 이름에 접두사를 추가입니까? 수동으로 하시겠습니까? – Brain89

답변

3

이렇게하려면 사용자 지정 스크립트가 필요합니다. 여기에 나를 위해 노력하고 있습니다 하나는 InfoPlist.strings에서 다음

PREFIX_IDENTIFIER="=com.mycompany.bundlenameprefix=" 
PREFIX="" 

if [ $CONFIGURATION == "Debug" ] 
then 
    PREFIX="α " 
fi 

if [ $CONFIGURATION == "Enterprise" ] 
then 
    PREFIX="β " 
fi 

for i in `dirname "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"`/*.lproj/InfoPlist.strings 
do 
    plutil -convert json "$i" 
    sed -i -e "s/${PREFIX_IDENTIFIER}/${PREFIX}/g" "$i" 
    plutil -convert binary1 "$i" 
done 

당신이의 Info.plist에 저장된 값을 덮어 어떻게 그렇게

CFBundleDisplayName = "=com.mycompany.bundlenameprefix=My App"; 
+0

Dustin에게 감사드립니다. 테스트를 마쳤습니다. – Romain