2009-12-02 3 views
22

사용자 정의 설정에서 Info.plist 파일의 속성을 설정하는 것은 간단합니다. $ {YOUR_SETTING_NAME}을 값으로 사용하기 만하면됩니다. 그러나 부울 속성에 대해이 작업을 수행 할 수 있습니까? 부울 값에 대한 plist 파일의 구조는 다음과 같습니다.Info.plist에서 사용자 정의 설정의 부울 속성 설정

<key>NSAppleScriptEnabled</key> 
<false/> 

여기서 사용자 정의 설정을 사용하는 방법이 명확하지 않습니다. 당신은 "사용자 정의 설정"에 의해 무슨 뜻 이죠

답변

10

당신이 원하는 것을 어떻게할지는 모르겠지만이 특정 키 (NSAppleScriptEnabled)에 대해서도 "YES"와 "NO"라는 문자열을 사용할 수 있다고 확신합니다.

+2

Info.plist에서 변수 (설정) 유형을 String (부울이 아님)으로 설정 한 다음 'YES'와 'NO'를 사용하면 작동합니다. 감사. – edoloughlin

+7

Xcode에서는 내장 키의 변수 유형을 변경할 수 없습니다. 예를 들어, 개발 빌드를 위해 App Transport Security를 ​​사용하지 않으려 고 Charles 프록시와 함께 SSL 프록시를 사용할 수 있습니다. "Allows Arbitrary Loads"키는 부울에서 변경할 수 없습니다. 이 경우에 무엇을합니까? – josephap

+1

UIFileSharingEnabled 키와 동일한 문제가 있습니다. Xcode는 키 유형을 String으로 변경하고 Xcode에서 제대로 빌드되고 실행되도록 허용하지만 AppStore에 앱을 제출할 때 오류가 발생합니다. – ejel

-4

...

얘기하는 사용자는 (즉, 앱 개발자) 인 경우에, 당신은 당신이 원하는 키를 넣을 수 있습니다 Xcode 프로젝트의 다른 plist와 같습니다.

귀하가 말하는 사용자가 앱의 최종 사용자 인 경우 Info.plist에 설정을 저장하지 마십시오. 이것은 응용 프로그램의 일부입니다. 응용 프로그램이 Mac에서 자체 정보 plist를 변경하는 것이 가능할 수도 있지만, 응용 프로그램 설치 방법에 따라 종종 불가능합니다. iPhone에서는 앱이 읽기 전용이므로 절대 불가능합니다. 어느 경우에도 Info.plist를 변경하면 완료 한 모든 앱 서명이 무효화됩니다.

최종 사용자 설정을 변경하려면 NSUserDefaults를 사용하십시오.

+0

하이 루이 Mac에서 사용자 정의 XCode Build 설정에 대해 이야기하고 있다고 생각합니다. –

+2

위의 대답을 참조하십시오. 나는 하나의 Info.plist를 공유하는 프로젝트에 여러 타겟을 가지고있다. Info.plist에서 값을 구성하기 위해 각 대상에서 사용자 정의 설정을 사용하고 있습니다. 그 중 하나는 부울이며이를 대체하는 방법은 분명하지 않습니다. – edoloughlin

1

태그 내에 부울을 포함하는 plist 파일은 더 이상 유효하지 않습니다.

이 솔루션은 작동합니다

새로운 스크립트 실행이 당신의 목표에 단계를 빌드에 추가합니다. 이에 넣어 :

if [ ${CONFIGURATION} = "Release" ]; then 
/usr/libexec/PlistBuddy -c "Set :UIFileSharingEnabled NO" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" 
fi 

을 그래서 내 구성에서 다음 단계는 위의 발생 및 false로 설정하고, 나는 기본적으로 내 PLIST에 YES로 UIFileSharingEnabled를 설정 그리고 난 릴리스에 대한 짓고 있어요 때.