如果设备锁定,iOS NSURLSession后台上载完成,但出现错误

如果设备锁定,iOS NSURLSession后台上载完成,但出现错误,ios,nsurlsession,Ios,Nsurlsession,我正在尝试尽可能可靠地上传大文件。我使用NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier配置选择了NSURLSession,然后创建并继续上载任务。除了用户在上传文件时锁定屏幕外,一切都很好 最初,上传将在10秒钟后停止,出现NSPOSIXErrorDomain错误代码1:“不允许操作”。但是,在研究了这里的问题之后,我将文件的NSFileProtectionKey设置为nsfileprotectionc

我正在尝试尽可能可靠地上传大文件。我使用
NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier
配置选择了
NSURLSession
,然后创建并继续上载任务。除了用户在上传文件时锁定屏幕外,一切都很好

最初,上传将在10秒钟后停止,出现
NSPOSIXErrorDomain
错误代码1:“不允许操作”。但是,在研究了这里的问题之后,我将文件的
NSFileProtectionKey
设置为
nsfileprotectioncompleteenlessopen

修复后,将上载整个文件。我通过查看服务器上的文件确认了这一点。然而,我仍然在完成时得到相同的错误

我已经确认,如果设备没有密码集,则不会发生这种情况,因此我认为它仍然与文件加密/数据保护有关。我还尝试将文件的
NSFileProtectionKey
设置为
NSFileProtectionNone
,但上传完成后仍然会出现相同的错误


我不知道系统试图做什么来触发这个错误。上传完成后,系统是否需要写入应用程序文件?是否有人知道在后台上传完成后,但在我的任何应用程序代码在
didCompleteWithError
中执行之前,什么可能会触发“不允许操作”错误

今天,我尝试通过开发人员站点上的应用程序ID/配置文件和使用新配置文件更新XCode禁用数据保护,在XCode的应用程序功能中关闭数据保护,并将上载文件的
NSFileProtectionKey
设置为
NSFileProtectionNone
。当在
didCompleteWithError
中完成上载时,我仍然收到
NSPOSIXErrorDomain
错误代码1。