
-
Conocer el marco ManagedApp
Descubre cómo el marco ManagedApp ayuda a tu app a adaptarse a los entornos gestionados. Te mostraremos cómo recibir datos de configuración, gestionar los secretos de las apps de forma segura y adaptar el comportamiento de las apps en función de los ajustes proporcionados por la organización. También veremos ejemplos del mundo real para mostrar cómo puedes crear apps más flexibles y fáciles de gestionar para entornos empresariales y educativos.
Capítulos
- 0:07 - Te damos la bienvenida
- 2:51 - Presentamos el marco ManagedApp
- 5:14 - Flujo de trabajo
- 7:26 - Escenarios de ejemplo
- 12:17 - Implementación
- 21:27 - Prácticas recomendadas
Recursos
- Apple Business Manager User Guide
- Apple School and Business Manager API
- Apple School Manager User Guide
- ManagedApp
- Support - Apple Platform Deployment
Videos relacionados
WWDC25
-
Buscar este video…
Hola, soy Bob Whiteman, ingeniero sénior de administración de dispositivos iOS. Es un gusto compartir contigo una nueva estructura para hacer que las apps de implementaciones administradas sean más fáciles de usar y más seguras. Organizaciones de todo el mundo usan dispositivos Apple en oficinas, tiendas y escuelas. La gente los usa para aprender, enseñar, trabajar y crear. Las apps que se usan en estos dispositivos hacen que sea posible. Los administradores de organizaciones usan servicios para que las personas tengan las apps necesarias para tener éxito. Las personas se vuelven expertas en el uso de las apps de su organización. Pero, por lo general, configuran esas apps solo una vez, y esto puede resultar abrumador. Es posible que tengan que introducir un servidor, nombre de usuario, contraseña y código de dos factores. Luego, deben acceder a la configuración de la app y personalizarla para que se adapten a los requisitos de t u organización. Hay varios pasos y, si se produce algún problema o error, rara vez termina bien. Es posible que se frustren y dejen de usar la app. Si se comunican con el soporte, es una pérdida de tiempo y un aumento de los costos de soporte. Es posible que esa organización decida dejar de ofrecer soporte para la app. Como desarrollador de apps, puedes mejorar esta experiencia, pero eso requiere un gran esfuerzo que no es parte de la funcionalidad principal de la app. Ten en cuenta todo lo que necesitarías crear para que esta sea una experiencia fluida. Deberías implementar la federación con el proveedor de identidades, crear y operar un sitio web de configuración para que el administrador especifique la configuración de las apps que se ejecutan en sus dispositivos, establecer la integración con la autoridad de certificación y la infraestructura de autenticación de la organización para que la app se comunique con sus servidores, y publicar variantes personalizadas de tu app con los elementos de marca y funcionalidades personalizadas que requieren algunas organizaciones. ¿Qué pasaría si no necesitaras hacer nada de eso? Eliminemos esta compleja experiencia de configuración. Ahora la app puede estar preconfigurada para esa organización, ese dispositivo y esa persona. No es necesario ningún proceso de configuración. Desde el primer momento, la app está lista para usarse. Las primeras impresiones son mucho mejores, por lo que se usa más. Los administradores están más dispuestos a implementarla porque a sus equipos les gusta y se minimizan los costos de soporte. Entonces, ¿cómo hacemos para que sea posible? Me complace presentar la estructura ManagedApp. La estructura ManagedApp puede configurar automáticamente las apps administradas y sus extensiones. Las apps pueden usarlo para autenticar dispositivos y optimizar la autenticación de usuarios. Además, el uso de esta estructura ayuda a las apps a cumplir estrictos requisitos de seguridad de los datos y el control de acceso.
Para lograr esto, la estructura ManagedApp permite al administrador ofrecer una configuración personalizada de la app y proporcionar contraseñas, certificados e identidades. Puede funcionar con otras tecnologías, como el inicio de sesión único extensible, la certificación de dispositivos y el inicio de sesión único de inscripción. La estructura ManagedApp puede proporcionar cuatro tipos de datos. La configuración específica de una app son datos arbitrarios que admite una app en particular. Esto incluye la configuración, las opciones y los pequeños activos importantes para esa app. Los otros tres tipos son secretos: contraseñas, certificados e identidades. Las identidades pueden ser archivos PKCS #12, identidades SCEP o identidades ACME. Además, las identidades ACME admiten claves vinculadas a hardware y certificaciones. Todos estos datos se almacenan de forma segura y solo se proporcionan a las apps administradas o extensiones que especifique el administrador. La estructura ManagedApp está disponible en iOS 18.4, iPadOS 18.4 y visionOS 2.4. Requiere que el servidor MDM administre la app mediante la administración declarativa de dispositivo. Funciona desde el momento en que se instala la app o cuando se hace cargo de la administración de una app ya instalada. Funciona con todos los tipos de inscripción en MDM. Es compatible con la mayoría de las extensiones de apps, aunque no funciona con las que se ejecutan en un entorno muy restringido. Por ejemplo, una extensión de teclado no puede usar ManagedApp a menos que se le conceda acceso completo. En esta sesión, describiré el flujo de trabajo de desarrollo e implementación, exploraré algunas de las situaciones en las que esta estructura es útil, profundizaré en el código y ofreceré algunas recomendaciones. Primero, ¿cómo funciona? Empezamos con un dispositivo administrado. El administrador usa un servidor MDM para enviar comandos de administración y consultas al dispositivo mediante el protocolo MDM.
El administrador administra la app y, por lo general, la instala. Como parte de la administración de la app, el administrador especifica la configuración y los secretos que el dispositivo debe poner a disposición de esa app y sus extensiones.
Cuando la app se inicia, solicita a la estructura ManagedApp su configuración y sus secretos, y la estructura entrega una copia a la app. La app aplica inmediatamente la configuración y usa los secretos según corresponda. En cualquier momento, el administrador puede actualizar la configuración o los secretos. Si la app se estaba ejecutando en ese momento, la estructura lo notifica a la app, que aplica las actualizaciones de inmediato. Pero antes de que ocurra algo de eso, tú, como desarrollador de la app, debes escribir la app. Escribes un descodificador para la configuración y escribes el código para aplicar la configuración y usar los secretos. Luego, escribes y publicas una especificación que indica a los administradores cómo configurar tu app. Esta especificación detalla qué claves y valores admite la app en su configuración, qué controlan, qué secretos espera la app y cómo se usarán. Esto es lo que me entusiasma tanto de esta estructura. Esta configuración no está especificada por Apple, un protocolo o un servidor MDM. Eso la haría genérica en todas las apps y no muy útil. En su lugar, tú, como desarrollador de la app, debes especificar cómo se puede configurar. Esto abre un amplio horizonte de nuevas oportunidades. Conoces tu app mejor que nadie. Puedes proporcionar las formas más potentes, útiles e innovadoras de configurar tu app y potenciarla para las organizaciones. La estructura ManagedApp no es una solución. Es una plataforma donde puedes crear tu solución con facilidad. Teniendo esto en cuenta, veamos algunos de los casos en los que creemos que la estructura ManagedApp es especialmente útil. Hay muchas situaciones en las que podemos ponerla en práctica. Proporciona credenciales de forma segura a un navegador externo. Personaliza una app interna según la función de la persona. Configura una extensión de Safari. Comunicaciones seguras entre el servicio de administración de dispositivos y su app de administración. Voy a hablar más en detalle sobre tres de estos casos y empezaré con las licencias. A menudo, un desarrollador necesita una forma para que su servidor de apps atribuya las solicitudes al cliente correcto. Una solución común para esto es un token de licencias. Cuando la organización licencia el uso del servidor, el desarrollador emite a esa organización un token de licencia único. El administrador usa MDM para distribuir ese token de licencia a todas las instancias de la app que usa su organización. Luego, cuando la app hace una solicitud al servidor, incluye el token de licencia en la solicitud. Ahora el servidor sabe que debe atribuir esa solicitud a la organización correcta. Esto crea un problema de seguridad. La organización debe proteger este token mientras se almacena y se distribuye. Si alguien ajeno a la organización obtiene el token de licencia, podría usar el servidor, y la organización pagaría por él. Los desarrolladores y administradores pueden usar la funcionalidad de ManagedApp para distribuir este token a los dispositivos administrados. Sin embargo, la estructura ManagedApp está diseñada para proteger la configuración de la extracción o la manipulación. Más importante aún, la estructura ManagedApp proporciona una mejor opción que un token de licencia, y esa es una clave de licencia. La estructura ManagedApp puede proporcionar una identidad criptográfica con fines de licencia, que es más segura que un token. El administrador proporciona una identidad criptográfica en el dispositivo, con su certificado emitido por la organización o el desarrollador de la app. La clave privada se genera en el dispositivo y nunca se mueve de allí, lo que es más seguro que transmitir tokens por toda la arquitectura. La antigua funcionalidad de configuración de ManagedApp no admite claves de licencia. La estructura ManagedApp es más segura y admite identidades y extensiones de apps. Si tu app usa la configuración de ManagedApp, debes pasar a la estructura ManagedApp. Ahora investiguemos las extensiones de VPN. La estructura ManagedApp es especialmente útil para las extensiones de VPN. Un servidor de VPN requiere una autenticación sólida, que garantice que el dispositivo forme parte de la organización y esté autorizado para conectarse a la red. La arquitectura es muy similar a la de la situación anterior, pero la identidad se proporciona a una extensión de VPN en lugar de a una app. La estructura ManagedApp puede proporcionar el tipo de autenticación más sólido que admite Apple. Con Managed Device Attestation, el administrador proporciona una clave vinculada al hardware certificada para ese dispositivo específico. La estructura ManagedApp lo pone a disposición directamente para la extensión de VPN y solo para esa extensión. Usa esa identidad para autenticarse en el servidor de VPN. Esto evita muchas de las posibles amenazas que preocupan a los administradores de VPN. Nuestra última situación es un proveedor de identidades. Un proveedor de identidades usa el inicio de sesión único extensible para facilitar el inicio de sesión en cuentas federadas en apps y sitios web. También puede funcionar con cuentas de Apple federadas para tipos de inscripción basados en cuentas. Cada proveedor de identidad diseña su propio protocolo de autenticación, que suele usar credenciales introducidas manualmente. Ahora, con la estructura ManagedApp, un proveedor de identidades también puede incorporar muchos otros tipos de autenticación. Puede tratarse de una identidad vinculada al hardware para autenticar el dispositivo y garantizar que el inicio de sesión se hace en un dispositivo autorizado. Si la cuenta es nueva, podría tratarse de una contraseña temporal inicial para la primera autenticación. Puede ser un identificador o una identidad que enlace el inicio de sesión con la organización. O puede ser cualquier tipo de secreto que el proveedor de identidades necesite. La estructura ManagedApp es compatible con todos ellos. Si el proveedor admite el inicio de sesión único de inscripción, la configuración y los secretos también estarán disponibles durante la inscripción. Espero que sepas todas las formas en que la estructura ManagedApp puede potenciar las apps administradas. Es hora de ver cómo implementarla en tu app. La API de la estructura ManagedApp se centra en entregar la configuración y los secretos a la app de la forma más sencilla y segura posible. La estructura tiene cuatro clases independientes, una para cada tipo de datos. Estos tres primeros proporcionan el tipo de datos integrados exactos que necesita tu app: una cadena que contiene la contraseña, un SecCertificate o un SecIdentity. El cuarto es un poco diferente. El proveedor de configuración de ManagedApp brinda una específica para la app. No hay un tipo integrado para esto. Este es el tipo de datos que necesita la app. Como desarrollador de la app, tú defines la estructura de estos datos. Daré un ejemplo del uso de la configuración y luego otro del uso de una identidad. Por último, hablaré sobre la publicación de la especificación de tu app.
Empezaremos con la app Landmarks. Lo haremos configurable para que sea fácil de usar en el aula. El primer paso es decidir qué puede configurar el administrador. Esta es la vista de colecciones en la app Landmarks. Permitamos que el administrador configure una nueva colección. Esto permite al docente recopilar los puntos de referencia que los estudiantes usarán en una clase de geografía.
En el código, comenzamos escribiendo una estructura que representa todo lo que el administrador configuró para una instancia de la app. Tiene una propiedad de solo lectura para la colección administrada. El tipo de propiedades es opcional. Esto se debe a que es posible que la app no esté administrada, o bien a que el administrador no haya aplicado una configuración o que sí la haya aplicado, pero que esta no incluya una colección administrada. La mayoría de las propiedades de la configuración serán opcionales o proporcionarán un valor predeterminado.
Cuando la estructura ManagedApp recibe una configuración del servidor MDM, debe descodificar el formato inalámbrico, por lo que hacemos que esta estructura se ajuste a Decodable. Especificamos un CodingKey para la colección. Una vez que la colección de puntos de referencia se ajuste a Decodable, podríamos detenernos y dejar que el compilador sintetice un inicializador para nuestra clase de configuración. La mayoría de las apps necesitarán reglas de validación personalizadas. Así que escribiremos un inicializador explícito aquí. Eso es todo para la clase de configuración. Entonces, ¿cómo recibe tu app esta configuración? La API usa la simultaneidad de Swift, así que empezamos creando una tarea. Dentro de esa tarea, usamos la clase ManagedAppConfigurationProvider en la estructura ManagedApp. El método de configuraciones proporciona configuraciones mediante una secuencia asincrónica. El parámetro que pasas al método de configuraciones es el tipo de estructura de configuración. Para empezar a recibir configuraciones, usa un bucle for-await. La secuencia asincrónica produce un tipo de configuración opcional. En este código, el tipo de configuración es un LandmarksManagedConfig opcional. Veamos cómo estas piezas funcionan juntas analizando los eventos que suceden en el dispositivo. En primer lugar, el administrador crea una configuración codificada y la envía al dispositivo, que la almacena. Cuando la app comienza a iterar la secuencia asincrónica mediante un bucle for-await, el dispositivo pasa una copia de la configuración al método del descodificador. Eso crea una instancia de la estructura de configuración que contiene las propiedades que necesita la app. Por último, la estructura cede esa instancia a la secuencia asincrónica. En cualquier momento, si el administrador envía una configuración actualizada, el proceso se repite automáticamente. Si la app no se administra, o si el administrador no especificó una configuración, o si la descodificación falla, la secuencia da nulo como resultado. En resumen, tu app no tiene que preocuparse por ninguna de estas condiciones. Siempre que esta secuencia produzca un valor específico o nulo, esa será la configuración administrada actual. Así que en el cuerpo del bucle for-await debemos copiar el valor de la configuración en una propiedad de colección administrada en los datos del modelo. Como la configuración puede actualizarse en cualquier momento, el bucle for-await no tiene ninguna condición de terminación. No te preocupes, hacer un bucle infinito no es una pérdida de recursos. El cuerpo de un bucle for-await solo se ejecuta cuando proporciona un valor. ¿Por dónde deberíamos empezar esta tarea? Potencialmente, puede residir en cualquier parte de la app. Por lo general, se encuentra en un método al principio de la ruta de inicio de la app. Para la app Landmarks, la incorporaremos al método Load Collections method de Model Data. Las colecciones se cargan poco después de iniciar la app. Agregamos Managed Collection a la vista y listo. Así es como se ve. La vista Collections ahora tiene una sección Managed Collection que muestra el título y los puntos de referencia configurados por el administrador. Y aquí tienes un beneficio adicional. El código que ya escribimos es todo lo que necesitamos para admitir las actualizaciones. Cuando el administrador cambia la configuración, la vista se actualiza automáticamente para mostrar los nuevos puntos de referencia. Pasemos a un ejemplo que utiliza identidades. Supongamos que queremos permitir que el administrador agregue más puntos de referencia. Haremos que la app descargue los puntos de referencia de un servidor de activos. Dejaremos que el administrador especifique la URL donde se alojan los activos. Esto le da al administrador la flexibilidad de alojar los activos donde lo necesite. Podemos agregar fácilmente la URL de un activo a la configuración que desarrollamos. Además, permitiremos que el administrador proporcione una identidad que la app use para autenticarse con TLS mutuo cuando se conecte al servidor de activos. Los tres proveedores secretos de la estructura usan este mismo patrón. Cada secreto tiene un identificador de cadena. Existe un método para buscar el secreto por su identificador. Tú eliges los identificadores que admite tu app. La mayoría de las veces, los identificadores se pueden codificar. Si quieres que se notifique a tu app cuando cambien los secretos disponibles, puedes usar una AsyncSequence. Proporciona una matriz con todos los identificadores de los secretos de ese tipo que están aprovisionados actualmente. AsyncSequence también es útil si tu app admite una lista dinámica de identificadores. Cuando la app Landmarks descarga activos, no necesita esa complejidad adicional, por lo que solo usaremos un identificador codificado. La app envía una solicitud mediante una sesión de URL. Cuando implementas TLS mutuo, la mayor parte del código involucrado es repetitivo. Solo nos preocupa obtener la identidad, que son estas líneas en el medio. Usamos el proveedor de identidades ManagedApp y un identificador codificado para buscar un SecIdentity. Si el administrador no proporcionó una identidad, cancelamos el reto. Eso es todo. Con tan solo esas pocas líneas de código, nuestra app obtuvo la identidad que necesitaba. No fue necesario administrar propiedades de la clave, solicitudes de firma de certificado ni nada más relacionado con aprovisionar la identidad. Acabamos de usar lo que nos proporcionó el administrador. Nuestra tarea final es publicar una especificación que explique cómo un administrador puede configurar la app Landmarks. Documentamos el formato de la configuración. Una forma sencilla de hacerlo es proporcionar un ejemplo. Este es un ejemplo del formato codificado para la configuración. El formato inalámbrico para configuraciones es una lista de propiedades. La especificación debe documentar los detalles, como la lista de valores válidos para los ID de puntos de referencia. Si nuestro descodificador tiene validación personalizada, documentamos los códigos de error para que los administradores diagnostiquen problemas con las configuraciones que crean. Documentamos cualquier identificador secreto que admita nuestra app. En la app Landmarks, este es el identificador codificado que usamos anteriormente. Documentamos que se usa para descargar activos, y este es un buen lugar para documentar el formato esperado de los activos de Landmarks. Publicamos esta información, por lo general en forma de documento o sitio web al que los administradores pueden acceder. Y terminamos. Hay algunas recomendaciones que debes tener en cuenta cuando desarrollas tu app. La configuración no está pensada para grandes movimientos de datos. Piensa en kilobytes, no en megabytes. En su lugar, haz que la app descargue los datos de un servidor y especifique la URL en la configuración, como hicimos anteriormente con la app Landmarks. No guardes ningún secreto más de lo necesario. Solo tienes que buscar el secreto cada vez que lo necesites. No solo se trata de una recomendación de seguridad, sino que también garantiza que la app use siempre el último secreto en caso de que el administrador lo haya actualizado. Al diseñar la configuración, no tengas un solo botón para decidir si tu app está administrada, ya que esto cambia varios comportamientos en ella. Proporciona opciones de configuración individuales para que cada una controle una parte del comportamiento de la app. Esto ofrece a los administradores la mayor flexibilidad. Considera la compatibilidad con versiones anteriores y posteriores. Cuando publiques nuevas versiones de tu app, podrás agregar, cambiar o eliminar opciones en la configuración. Sería difícil para un administrador proporcionar diferentes configuraciones para diferentes versiones de la app. Para evitarlo, asegúrate de que el descodificador pueda administrar configuraciones antiguas e ignore las claves nuevas que no reconozca. Esto permite al administrador proporcionar una configuración para toda su flota de dispositivos. Si tu app usa la antigua funcionalidad de configuración de apps administradas, es hora de dejar de usarla. Durante esa transición, tu app puede admitir ambas funcionalidades, con prioridad en la configuración de la estructura ManagedApp. Esto permite que un administrador haga la transición a la estructura ManagedApp sin interrupciones. Cuando envías tu app para su revisión, el revisor prueba sus funcionalidades. Si solo se puede acceder a algunas de estas funcionalidades cuando se administra la app y se aplican configuraciones o secretos, es posible que al revisor le resulte imposible revisarla. Hay varias formas de solucionar este problema. Considera la posibilidad de agregar un modo de demostración, que muestre su funcionalidad como si tuviese una configuración. Esto también puede ser útil para hacer una demostración a los clientes. Otra opción es grabar un video de tu app mostrando estas funcionalidades. Puedes enviarlo a App Store Connect en Notas para revisión de apps. Prepárate para brindar instrucciones y credenciales que permitan al revisor inscribir su dispositivo en un servicio de administración que configure la app adecuadamente. Sobre todo, usa tu creatividad. Piensa en cómo la estructura ManagedApp puede hacer que todo el mundo se maraville con lo fácil que es usar tu app. Habla con los clientes sobre lo que quieren. Adopta la estructura y migra fuera de la configuración de ManagedApp. Puedes enviarnos cualquier comentario sobre la estructura. Para más información sobre la administración de dispositivos, consulta la sesión “What’s new in managing Apple devices”. Gracias y que tengas una gran WWDC.
-
-
- 0:07 - Te damos la bienvenida
La estructura ManagedApp optimiza la configuración de apps para implementaciones administradas en todas las organizaciones. Esta estructura elimina el proceso complejo y de múltiples pasos que enfrentan las personas al configurar apps, lo que puede generar frustración, menor uso de la app y mayores costos de soporte. Al utilizar la estructura ManagedApp, puedes preconfigurar apps para cada organización, dispositivo y usuario, lo que permite su uso inmediato al iniciarse. Este enfoque mejora la experiencia del usuario, impulsa la adopción de apps y reduce las cargas de soporte para los administradores, lo que hace que la implementación de apps sea más eficiente y rentable.
- 2:51 - Presentamos el marco ManagedApp
La estructura ManagedApp permite a los administradores configurar de forma segura las apps administradas y sus extensiones. La estructura facilita la autenticación de dispositivos y usuarios, cumple con altos requisitos de seguridad y proporciona contraseñas, certificados, identidades y datos de configuración específicos de la app. El sistema almacena estos datos de forma segura y solo los hace accesibles a apps o extensiones administradas autorizadas. La estructura se integra con otras tecnologías de administración de dispositivos y admite la mayoría de los tipos de extensiones de apps, lo que mejora la seguridad de los datos y el control de acceso para los dispositivos administrados.
- 5:14 - Flujo de trabajo
Los administradores pueden usar esta estructura para administrar de forma remota dispositivos y apps mediante un servidor de MDM. La estructura facilita la transmisión segura de configuraciones y secretos del administrador a la app. Desempeñas un papel crucial escribiendo decodificadores y especificaciones que detallan cómo otros pueden configurar tus apps. Los administradores utilizan esta información para adaptar el comportamiento de la app a las necesidades específicas de su organización, mejorando la seguridad y la funcionalidad. La estructura sirve como plataforma y te permite crear soluciones innovadoras para uso organizacional.
- 7:26 - Escenarios de ejemplo
La estructura ManagedApp mejora la seguridad y la funcionalidad de las apps administradas en diversos escenarios. Permite la distribución segura de claves de licencia, reemplazando tokens de licencia menos seguros y proporciona identidades criptográficas para fines de licencia. Por ejemplo, la estructura es particularmente útil para extensiones VPN, ofreciendo una autenticación sólida a través de una clave vinculada al hardware certificada. Además, para los proveedores de identidad, la estructura ManagedApp facilita un inicio de sesión único extensible con diversos materiales de autenticación, como identidades limitadas por hardware, contraseñas temporales y tokens. En general, la estructura ManagedApp mejora la seguridad de las apps, simplifica la administración y admite extensiones de apps, lo que lo convierte en una solución superior para las organizaciones que implementan apps administradas.
- 12:17 - Implementación
En iOS, esta estructura simplifica el proceso de entrega segura de configuración y secretos a las apps. La estructura consta de cuatro clases independientes, cada una diseñada para manejar un tipo de datos específico: cadenas, SecCertificates, SecIdentities y configuraciones específicas de la app. Para configuraciones específicas de la app, puedes definir la estructura de los datos utilizando estructuras Swift. Esta flexibilidad permite a los administradores personalizar el comportamiento de la app según sus necesidades. Un ejemplo es la app Landmarks, que los administradores pueden configurar para mostrar colecciones de puntos de referencia específicos para uso en el aula. Para lograr esto, se crea una estructura que representa los ajustes configurables, como la colección administrada. Esta estructura se ajusta al protocolo Decodable, por lo que la estructura puede decodificar los datos de configuración recibidos del servidor de administración de dispositivos móviles (MDM). Luego, la app utiliza la concurrencia Swift para recuperar la configuración de forma asincrónica, lo que garantiza que el proceso no bloquee el hilo principal. Cuando el administrador actualiza la configuración, la app recibe y aplica automáticamente los cambios, lo que la hace dinámica y adaptable. La estructura también permite el manejo de información confidencial, como identidades. Puedes utilizar el proveedor de identidades de ManagedApp para buscar y recuperar identidades aprovisionadas de forma segura. Esta capacidad simplifica la implementación de la autenticación TLS mutua, por lo que la app puede conectarse a los servidores de activos de forma segura. Por último, para permitir que los administradores configuren la app de manera efectiva, debes publicar una especificación que documente el formato de configuración, los valores válidos, los códigos de error y cualquier identificador secreto admitido. Esta especificación sirve como guía para los administradores, ya que los ayuda a crear y aplicar configuraciones correctamente.
- 21:27 - Prácticas recomendadas
Sigue las mejores prácticas para la administración de la configuración al desarrollar una app. Descarga datos de un servidor en lugar de almacenarlos en la configuración, que solo maneja kilobytes de datos. Busca secretos según sea necesario por motivos de seguridad y para garantizar que se utilice la última versión. Las opciones de configuración deben ser individuales y granulares para brindar a los administradores la máxima flexibilidad. Es necesario tener en cuenta la compatibilidad hacia adelante y hacia atrás; los decodificadores deben manejar configuraciones anteriores e ignorar claves nuevas. Diseña apps para que los revisores puedan probar todas las funcionalidades, incluso aquellas que requieren administración o configuración. Puedes lograr esto a través de modos de demostración o videos, o proporcionando credenciales de revisión. Usa la creatividad, ten en cuenta los comentarios de los clientes y adopta la estructura ManagedApp para una mayor facilidad de uso.