ios ios7 mdm osx-server

ios - Uso de MDM para configurar una aplicación empresarial a través de NSUserDefaults



ios7 osx-server (3)

He escrito una pequeña publicación en el blog sobre cómo harías para probar el ManagedAppConfig de Apple.

http://tomasmcguinness.com/2014/03/07/exploring-apples-managedappconfig-demo/

Divulgación: esta publicación describe el uso de www.testmdmapp.com, que he escrito.

Estoy usando Profile Manager en OS X Server 3.0.1 en 10.9 para enviar mi aplicación empresarial a un dispositivo administrado que ejecuta iOS7. Esto está funcionando bien, y también puedo presionar los ajustes de configuración del dispositivo.

Mi obstáculo es cómo tomar la información ofrecida en el proyecto de ejemplo de Apple, ManagedAppConfig , y aplicarla a una aplicación distribuida por Profile Manager.

ManagedAppConfig proporciona una lista simple que se supone que se debe utilizar para colocar datos en los NSUserDefaults de una aplicación, que luego se usa para la configuración de la aplicación; pero, no hay una dirección dada sobre cómo utilizar MDM para obtener este diccionario de datos en los NSUserDefaults.

Obviamente, me falta información acerca de cómo enviar una lista de datos a los NSUSerDefaults de una aplicación administrada, pero hasta ahora mi búsqueda ha sido infructuosa. ¿Es posible hacerlo con Profile Manager? ¿Hay alguna otra forma con OS X Server que todavía no haya encontrado?

Aquí hay una cita del documento de Apple en ManagedAppConfig:

"ManagedAppConfig" demuestra cómo implementar la configuración de la aplicación administrada y el soporte de comentarios en una aplicación de iOS. Esta funcionalidad permite que un servidor de gestión de dispositivos móviles (MDM) inserte un diccionario en los NSUserDefaults de la aplicación administrada con el fin de configurar de forma remota.

Este es el ejemplo de los dos datos que se colocan de alguna manera en los NSUserDefaults de la aplicación:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>serverURL</key> <string>http://developer.apple.com/</string> <key>disableCloudDocumentSync</key> <true/> </dict> </plist>

Los documentos para NSUserDefaults incluso mencionan la configuración a través de MDM, pero no se proporcionan detalles.

Si su aplicación es compatible con entornos administrados, puede usar un objeto NSUserDefaults para determinar qué preferencias son administradas por un administrador para el beneficio del usuario. Los entornos administrados corresponden a los laboratorios de computación o aulas donde un administrador o maestro tal vez desee configurar los sistemas de una manera particular. En estas situaciones, el profesor puede establecer un conjunto de preferencias predeterminadas y forzar esas preferencias en los usuarios. Si una preferencia se administra de esta manera, las aplicaciones deben evitar que los usuarios editen esa preferencia al deshabilitar los controles apropiados.

Mi tarde se ha dedicado a perseguir esta información difícil de alcanzar sin éxito, por lo que solicito la ayuda de la comunidad SO. ¿Alguien puede indicarme la información que necesito para usar MDM para pegar un diccionario de datos en NSUserDefaults?

Muchas gracias.


Los cambios de configuración de la aplicación administrada que son empujados hacia abajo desde un servidor MDM aparecen en NSUSerDefaults por lo que puede agregar un observador para recibir alertas de cualquier cambio en NSUserDefaults . El diccionario de configuración de la aplicación administrada que se empuja hacia abajo desde el servidor MDM se almacena en la clave llamada: com.apple.configuration.managed

Su aplicación también puede enviar un diccionario con los comentarios al servidor de MDM. El diccionario que se devuelve al servidor de MDM como retroalimentación debe almacenarse en esta clave com.apple.feedback.managed

Para probar todo esto, necesitaría un dispositivo administrado por un servidor MDM y la aplicación debe ser instalada por el servidor MDM que admita la configuración de configuración de la aplicación y los comandos ManagedApplicationFeedback.

El archivo readme.txt de la aplicación de muestra recomienda ver la sesión 301 de la WWDC 2013 "Ampliación de sus aplicaciones para empresas y uso educativo" para ver una demostración de esta aplicación.


para leer la config (swift 3):

if let managedConf = UserDefaults.standard.object(forKey: "com.apple.configuration.managed") as? [String:Any?] { if let serverURL = managedConf["serverURL"] as? String{ return serverURL } } if let serverURL = Bundle.main.object(forInfoDictionaryKey: "serverURL") as? String { return serverURL } return "https://apple.com/"

Como puede ver, la aplicación necesita habilitar manualmente la lectura desde la configuración del paquete MDM.

P, S: solo las aplicaciones administradas pueden obtener esas configuraciones.