Compatibilidad con extensiones en iOS, iPadOS y macOS
iOS, iPadOS y macOS permiten a las apps proporcionar funcionalidad a otras apps mediante la distribución de extensiones. Las extensiones son binarios ejecutables firmados para fines específicos y empaquetados en una app. Durante la instalación, el sistema detecta automáticamente las extensiones y las pone disponibles para otras apps usando un sistema de concordancia.
Puntos de extensión
Las áreas del sistema que admiten extensiones se conocen como puntos de extensión. Cada punto de extensión proporciona API y aplica políticas para el área correspondiente. El sistema determina qué extensiones están disponibles en función de las reglas de coincidencia específicas de cada punto de extensión. El sistema inicia los procesos de extensión automáticamente cuando es necesario y administra su duración. Las autorizaciones se pueden utilizar para restringir la disponibilidad de las extensiones a apps específicas del sistema. Por ejemplo, un widget de la vista Hoy sólo aparece en el centro de notificaciones, y la extensión para compartir sólo está disponible en el panel Compartir. Algunos ejemplos de puntos de extensión son los widgets Hoy, Compartir, Acciones, Edición de fotos, Proveedor de archivos y Teclado personalizado.
Cómo se comunican las extensiones
Las extensiones se ejecutan en su propio espacio de direcciones. La comunicación entre la extensión y la app desde la que se ha activado dicha extensión usa una comunicación entre procesadores mediada por la infraestructura del sistema. Las extensiones no tienen acceso a los archivos o espacios de memoria de las otras extensiones. Se han diseñado de forma que estén aisladas entre sí, al igual que de las apps contenedoras y de las apps que las utilizan. Se aíslan igual que cualquier otra app de terceros y tienen un contenedor diferente al de la app que las contiene. Sin embargo, comparten el mismo acceso a los controles de privacidad que la app contenedora. De este modo, si un usuario autoriza el acceso de una app a Contactos, las extensiones incorporadas en la app también gozarán del acceso, pero no así las extensiones activadas por ella.
Cómo se utilizan los teclados personalizados
Los teclados personalizados son un tipo de extensión especial que el usuario activa para todo el sistema. Una vez que se activa una extensión de teclado, se utiliza para cualquier campo de texto, excepto para los de ingreso de código y cualquier vista de texto seguro. Para restringir la transferencia de datos del usuario, los teclados personalizados se ejecutan de forma predeterminada en una zona protegida muy restrictiva que bloquea el acceso a la red, los servicios que realizan operaciones de red en nombre de un proceso y las API que permiten que la extensión sustraiga los datos ingresados. Los desarrolladores de teclados personalizados pueden solicitar que su extensión tenga acceso abierto, lo cual permitiría que el sistema ejecutase la extensión en la zona protegida normal después de obtener el consentimiento del usuario.
MDM y las extensiones
En el caso de los dispositivos inscritos en una solución de administración de dispositivos móviles (MDM), las extensiones de teclado y documentos obedecen las reglas “Managed Open In”. Por ejemplo, la solución MDM puede ayudar a impedir que un usuario exporte un documento de una app administrada a un proveedor de documentos sin administrar, o que utilice un teclado sin administrar con una app administrada. Además, los desarrolladores de apps pueden impedir el uso de extensiones de teclado de terceros en su app.