• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 从锁定屏幕处理本地操作时无法从 iOS 应用沙箱读取

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:43:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

为了处理本地操作,我的应用需要读取一个文件来决定要做什么。当本地操作来自与横幅或警报交互的用户时,这可以正常工作。当本地操作来自与锁定屏幕上的通知交互的用户时,它也可以工作,只要应用当前处于后台(而不是完全关闭)。

但是,如果应用完全关闭,并且用户尝试与锁定屏幕上的通知进行交互,我会收到一条错误提示

"The file ... couldn’t be opened because you don’t have permission to view it."

有谁知道可能出了什么问题,以及在这种情况下我如何才能访问以前保存的文件?

例如,下面的代码可以正常工作,除非由于锁定屏幕上的通知而调用了 handleActionWithIdentifier,并且应用程序已关闭。



发生错误时上述代码的完整输出如下:

Aug 11 14:39:42 iPhone Tandem[614] <Warning>: *********************
Aug 11 14:39:42 iPhone Tandem[614] <Warning>: trying to read test from handle action
Aug 11 14:39:42 iPhone Tandem[614] <Warning>: trying to read test from this location: /var/mobile/Containers/Data/Application/2C31417E-EF8E-4E0A-AC37-F4CB5BE9A4A5/Documents/test
Aug 11 14:39:42 iPhone Tandem[614] <Warning>: Failed to read storage file: Error Domain=NSCocoaErrorDomain Code=257 "The file “test” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/var/mobile/Containers/Data/Application/2C31417E-EF8E-4E0A-AC37-F4CB5BE9A4A5/Documents/test, NSUnderlyingError=0x145577d30 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
Aug 11 14:39:42 iPhone Tandem[614] <Warning>: *********************

如果我尝试从 application: didFinishLaunching: 读取文件也会出现同样的问题。



Best Answer-推荐答案


您应该检查文件保护属性。我的猜测是它设置为 NSFileProtectionCompleteNSFileProtectionCompleteUnlessOpen 这意味着在设备锁定时无法读取文件。您可以将属性设置为 NSFileProtectionNone 以在设备锁定时读取文件,但请注意它不会以加密状态存储。

见:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/#//apple_ref/doc/constant_group/File_Protection_Values

关于ios - 从锁定屏幕处理本地操作时无法从 iOS 应用沙箱读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38906776/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap