iOS文件应用可见NativeScript Documents目录的原因及私有目录实现
iOS 16.3.1下NativeScript应用Documents目录可见问题及解决
问题原因:与iOS版本行为变化直接相关
从iOS 16.3开始,苹果调整了文件应用的显示逻辑:即便应用未开启文件共享功能,只要用户在文件应用中开启“显示iPhone存储”,就能看到所有应用的Documents目录名称。但外部应用依然无法访问该目录内的内容,仅目录可见性发生了变化。而iOS 16.1及更早版本中,未开启文件共享的应用Documents目录不会在文件应用中暴露。
实现完全私有不可见目录的方案
以下几种方式可确保目录完全不被外部应用或文件应用可见:
- 使用
KnownFolders.appData()目录:这是NativeScript推荐的应用私有数据存储目录,无论iOS版本如何,都不会在文件应用中显示,且外部应用无任何访问权限,适合存储敏感或无需用户接触的应用数据。 - 存储至
KnownFolders.temp()目录:用于存放临时文件,系统会在存储空间不足时自动清理,同样属于完全私有范畴,不会被外部应用或文件应用察觉。 - 若必须使用Documents目录:在应用的
Info.plist中添加LSSupportsOpeningDocumentsInPlace并设置为NO,同时确保未开启UIFileSharingEnabled(即不设置该键或设为NO)。不过需注意,iOS 16.3+仍可能显示目录名称,但内容绝对私有不可访问。
内容的提问来源于stack exchange,提问作者Ori Idan
相关产品推荐
相关产品推荐

