WidgetKit 安全性
WidgetKit 是開發人員用來提供小工具和手錶複雜功能的架構。兩者都可能顯示敏感資訊,尤其在「永遠顯示」的裝置上可能會非常顯眼。
在 iOS 中,使用者可以設定是否要在鎖定畫面和「永遠顯示」下顯示敏感資料。在「設定」中,他們可以在「設定」>「Face ID 與密碼」的「鎖定時允許取用」部分中停用鎖定畫面小工具的資料取用。
在 Apple Watch 上,使用者可以選擇「設定」>「螢幕顯示與亮度」>「永遠顯示」>「隱藏敏感性複雜功能」來設定是否要在「永遠顯示」下顯示敏感資料。他們也可以選擇對所有或個別的複雜功能顯示已遮蔽的內容。
如果使用者選擇隱藏他們認為是私人的內容,WidgetKit 會呈現暫存區或遮蔽。若要設定遮蔽,開發者必須:
1. 建置 redacted(reason:)
回呼。
2. 朗讀 privacy
屬性。
3. 提供自訂暫存區顯示方式。
開發者也可以使用 unredacted()
顯示方式修改器將顯示區呈現為未遮蔽的狀態。
作為將個別顯示方式標記為隱私敏感的替代方案,例如,如果整個小工具內容都是隱私敏感的,開發者可以將「資料保護」功能加入小工具延伸功能中。WidgetKit 將顯示暫存區而非小工具內容,直到使用者解鎖其裝置以符合所選的隱私權等級。開發者必須在 Xcode 中為小工具延伸功能啟用「資料保護」功能,然後設定 Data Protection
授權數值,以符合他們希望提供的隱私權等級:
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
WidgetKit 會在裝置受密碼鎖定時隱藏這些小工具內容,並在使用者重新啟動裝置後顯示暫存區,直到使用者進行認證。另外,這些 iOS 小工具在 Mac 上能夠以 iPhone 小工具的形式提供。