2009-12-02 22 views
22

Es simple establecer una propiedad en un archivo Info.plist desde una configuración definida por el usuario, solo usa $ {YOUR_SETTING_NAME} como valor. Sin embargo, ¿es posible hacer esto por una propiedad bolean? La estructura en el archivo plist para un booleano es:Establecimiento de una propiedad booleana en Info.plist desde una configuración definida por el usuario

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

No está claro cómo utilizar un usuario definido sentado aquí.

Respuesta

10

No estoy seguro de cómo hacer lo que pregunta, pero estoy bastante seguro de que para esta clave en particular (NSAppleScriptEnabled) también puede usar cadenas "SÍ" y "NO" y funcionará.

+2

Funciona si configura la variable (configuración) escribe en Info.plist en Cadena (no booleana) y luego usa 'SÍ' y 'NO'. Gracias. – edoloughlin

+7

Xcode no le permite cambiar el tipo de variable para las teclas incorporadas. Por ejemplo, estoy intentando desactivar la seguridad del transporte de aplicaciones para compilaciones de desarrollo para poder usar el proxy SSL con el proxy de Charles. La clave "Permitir cargas arbitrarias" no se puede cambiar desde booleano. ¿Qué hace uno en ese caso? – josephap

+1

Tengo el mismo problema con la clave UIFileSharingEnabled. Mientras que Xcode me permite cambiar el tipo de clave a String y se compila y funciona bien en Xcode, aparece un error al enviar la aplicación a AppStore. – ejel

-4

¿Qué quiere decir con "definido por el usuario Ajuste" ...

Si el usuario está hablando acerca de usted (en otras palabras, el desarrollador de la aplicación) es, a continuación, puedes poner lo que hay teclas que desea , como cualquier otro plist en tu proyecto de Xcode.

Si el usuario del que está hablando es el usuario final de su aplicación, no intente guardar su configuración en Info.plist. Es parte de la aplicación. Si bien a veces es posible que una aplicación cambie su propia información en un Mac, a menudo no lo es, dependiendo de cómo se haya instalado la aplicación. En el iPhone, nunca es posible, ya que la aplicación es de solo lectura. En cualquier caso, cambiar su Info.plist invalidaría cualquier firma de aplicación que haya realizado.

Si desea cambiar la configuración del usuario final, use algo NSUserDefaults.

+0

Hola Louis. Creo que está hablando de una configuración XCode Build definida por el usuario en la Mac. –

+2

Ver la respuesta aceptada arriba. Tengo varios objetivos en el proyecto que comparten un único Info.plist. Estoy usando las configuraciones definidas por el usuario en cada objetivo para configurar los valores en Info.plist. Uno de ellos es booleano y no está (o no estaba) claro cómo sustituirlos. – edoloughlin

1

Los archivos plist que contienen booleanos dentro de las etiquetas ya no son válidos.

Esta solución funciona:

Añadir un nuevo guión Ejecutar fase de construcción a su objetivo. Poner en esto:

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

Así que en mi configuración, Soy la creación de la UIFileSharingEnabled a SÍ en mi plist como un defecto y cuando estoy construyendo para la liberación, entonces el paso anterior ocurre y lo establece como falsa.

Cuestiones relacionadas