用途:面向 iOS 开发者的文件加密与数据保护参考,用于选择 FileProtectionType、理解文件何时可读写、调试设备锁定后的“文件不可访问”问题,以及实现静态加密存储。
主要能力:介绍 iOS Data Protection 基于硬件与用户密码的加密机制;对比 complete、completeUnlessOpen、completeUntilFirstUserAuthentication、none 四种级别的加密时机、可访问条件和后台访问能力;给出在文件写入时设置保护、对已有文件或目录用 FileManager 设置保护、读取当前保护级别的方法;并提供文件保护与 Keychain 的选型对比、后台访问注意事项、iCloud 与本地保护的差异、错误处理、数据库文件保护等常见模式,以及调试与 Entitlements 说明。
使用方式:写入文件时用 data.write(to:options:),传入 .completeFileProtection 等选项;对已有文件或目录使用 FileManager.default.setAttributes([.protectionKey: FileProtectionType.complete], ofItemAtPath:),通过 attributesOfItem 读取 .protectionKey 检查当前级别。资料建议大多数应用数据使用 .completeUntilFirstUserAuthentication,敏感数据使用 .complete,公共缓存与临时文件用 .none。
适用场景:健康、金融等高敏感数据;下载与视频等需在打开状态下后台访问的文件;数据库文件;需要后台读取的应用数据。
限制:.complete 文件在设备锁定时无法后台访问;重启后未首次解锁前文件不可用;iCloud 存储版本不受本地文件保护设置影响。资料未提供收费、价格及可用平台以外的信息。