Ios uploadTaskWithRequest后台会话fromFile崩溃

Ios uploadTaskWithRequest后台会话fromFile崩溃,ios,swift,Ios,Swift,我正在使用swift 2编写一个应用程序,我需要在后台会话中将照片和视频上传到我的服务器上。因此,我编写了以下代码: let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(SessionProperties.identifier) //let configuration = NSURLSessionConfiguration.defaul

我正在使用swift 2编写一个应用程序,我需要在后台会话中将照片和视频上传到我的服务器上。因此,我编写了以下代码:

        let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(SessionProperties.identifier)
        //let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();

        let queue = NSOperationQueue.mainQueue()

        // To limit to 1 upload at a time

        queue.maxConcurrentOperationCount = 1

        let backgroundSession = NSURLSession(configuration: configuration, delegate: self, delegateQueue: queue)

        for postingFile in postingFileList {

            let request = NSMutableURLRequest(URL: NSURL(string: NetworkUtil().serverUrl+"/upload/upload/v1.0/events/\(postingFile.event.id)/files/\(postingFile.file.id)?frag-start=0&frag-size=\(postingFile.fileSize)")!)

            request.HTTPMethod = "POST"

            request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")

            let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)

            //let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url, completionHandler: { (NSData, NSURLResponse, NSError) in
            //    print("completion handler")
            //})

            uploadTask.resume()
        }
此代码在第行崩溃:

            let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)
它说:

由于未捕获的异常“NSInvalidArgumentException”,正在终止应用程序,原因:“无法读取位于的文件。”file:///var/mobile/Media/DCIM/100APPLE/IMG_0361.JPG"

如果我不使用后台会话,而是使用此配置:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();
没有崩溃,上传完成


您知道使用from file的后台会话会发生什么吗?

这可能是权限问题。您正试图从后台进程访问非沙盒文件URL。尝试将文件本地移动到沙盒目录,然后在后台上载

虽然我的错误不同,但这正是我的错误。尝试使用这两种方法之一移动到沙箱中的文档目录。这两种方法中的任何一种都可能有帮助: