WidgetKit-säkerhet
WidgetKit är det ramverk som utvecklare använder till att erbjuda widgetar och klockkomplikationer. Båda kan visa känslig information som är väldigt synlig, särskilt på enheter med en Alltid på-skärm.
I iOS kan användare ställa in om känsliga data ska visas på låsskärmen och när Alltid på-skärmen används. De kan avaktivera dataåtkomst för låsskärmswidgetar i avsnittet ”Tillåt åtkomst från låst skärm” i Inställningar > Face ID och lösenkod.
På Apple Watch kan användare ställa in om känsliga data ska visas på Alltid på-skärmen genom att välja Inställningar > Visning och ljusstyrka > Alltid på > Göm känsliga komplikationer. De kan också välja att visa censurerat innehåll för alla eller enskilda komplikationer.
Om användare väljer att gömma innehåll som de betraktar som privat visar WidgetKit en platshållare eller censureringar. För att konfigurera censureringar måste utvecklare:
1. Implementera callback-funktionen redacted(reason:)
.
2. Läsa ut egenskapen privacy
.
3. Tillhandahålla anpassade platshållarvyer.
Utvecklare kan också rendera en vy som ocensurerad med vymodifieraren unredacted()
.
Istället för att markera enskilda vyer som integritetskänsliga, till exempel om en hel widgets innehåll är integritetskänsligt, kan utvecklaren lägga till dataskyddsfunktionen i ett widgettillägg. WidgetKit visar platshållare istället för widgetens innehåll tills användaren låser upp sin enhet så att den matchar den valda integritetsnivån. Utvecklare måste aktivera dataskyddsfunktionen för widgettillägget i Xcode och sedan ställa in behörigheten Data Protection
på värdet som överensstämmer med den integritetsnivå de vill erbjuda:
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
WidgetKit gömmer innehållet i de här widgetarna när enheten är låst med lösenkod och visar en platshållare tills en användare autentiserar efter en omstart av enheten. De här iOS-widgetarna är dessutom inte tillgängliga som iPhone-widgetar på Mac.