2014-09-24 2 views
0

여러 대상이 하나의 Info.plist 파일을 공유하는 프로젝트가 있습니다. 간단한 대상 지정 문자열은 빌드시에 ${ENVIRONMENT_VARIABLES}의 방법으로 파일에 삽입되며 괜찮습니다.빌드 할 때 대상 당 UIAppFonts를 공유 Info.plist 파일에 추가하는 방법

그러나 UIAppFonts 배열에 대해 대상 당 값을 지정하고 동일한 전략이 작동하지 않습니다. 빌드시이 배열에 값을 삽입하는 가장 좋은 방법은 무엇입니까?

답변

1

여기 내 해결책은 특정 대상에 대한 글꼴 파일 배열을 포함하는 fonts-target.plist 대상을 만드는 것입니다. 그런 다음 실행 스크립트 빌드 단계에서 PListBuddy을 사용하여 빌드 할 때 해당 plist를 Info.plist 파일에 삽입합니다. 것은 하지 않는 경우가 Merge이 존재할 수 없습니다

  • : 때문에

    /usr/libexec/PlistBuddy -c "Delete :UIAppFonts" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" 
    /usr/libexec/PlistBuddy -c "Add :UIAppFonts array" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" 
    /usr/libexec/PlistBuddy -c "Merge ${SRCROOT}/Resources/Target-Specific/fonts-${TARGET}.plist :UIAppFonts" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" 
    

    세 가지 명령 : PListBuddy 아주 특별한 있기 때문에 그것은 당신이 컨테이너에 해당 옵션을 사용할 수있는 방법에 대해 조금 몹시 신경을 쓰는입니다 .

  • 인 경우 Add을 입력 할 수 없습니다.
  • 위의 두 가지를 모두 준수하는 유일한 방법은 먼저 DeleteUIAppFonts 키입니다.