Seguridad de WidgetKit
WidgetKit es la estructura que usan los desarrolladores para ofrecer widgets y complicaciones para el reloj. Ambos pueden mostrar información sensible que puede ser muy visible, sobre todo en dispositivos con una pantalla siempre activa.
En iOS, los usuarios pueden configurar si se muestra la información sensible en la pantalla de bloqueo y mientras la pantalla está siempre activa. En Ajustes, pueden desactivar el acceso a los datos para los widgets de la pantalla de bloqueo en la sección “Permitir acceso al estar bloqueado” de Ajustes > Face ID y código.
En el Apple Watch, los usuarios pueden configurar si se muestra la información sensible mientras la pantalla está siempre activa seleccionando Ajustes > Pantalla y brillo> Pantalla siempre activa > Ocultar complicaciones sensibles. Esas personas también pueden decidir si quieren mostrar el contenido ocultado para todas las complicaciones o para algunas de ellas.
Si un usuario decide ocultar contenido que consideran privado, WidgetKit genera un marcador de posición u ocultamientos. Para configurar los ocultamientos, un desarrollador debe hacer lo siguiente:
1. Implementar el callback redacted(reason:)
.
2. Leer la propiedad privacy
.
3. Proporcionar vistas de marcador de posición personalizadas.
Los desarrolladores también pueden generar una vista no ocultada con el modificador de vista unredacted()
.
Como alternativa a marcar las vistas individuales como sensibles a la privacidad (por ejemplo, si todo el contenido del widget es sensible a la privacidad), el desarrollador puede añadir la función “Protección de datos” a la extensión de un widget. Hasta que un usuario desbloquee el dispositivo para cumplir con el nivel de privacidad seleccionado, WidgetKit muestra marcadores de posición en lugar del contenido del widget. El desarrollador debe activar la función “Protección de datos” para la extensión del widget en Xcode y, a continuación, establecer la autorización de Data Protection
en el valor que se ajuste al nivel de privacidad que quieren ofrecer:
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
WidgetKit oculta el contenido de estos widgets cuando el dispositivo está bloqueado con código y muestra un marcador de posición hasta que el usuario se autentica después de reiniciar el dispositivo. Además, estos widgets para iOS no están disponibles como widgets para iPhone en el Mac.