NSURLSession:无法与后台传输服务通信

Posted

技术标签:

【中文标题】NSURLSession:无法与后台传输服务通信【英文标题】:NSURLSession: Could not communicate with background transfer service 【发布时间】:2015-10-01 14:23:41 【问题描述】:

当尝试在共享扩展中使用 AFNetworkings AFURLSessionManager 创建 NSURLSessionUploadTask 时,我不断收到错误消息。会议的代表不断被要求

- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error

出现错误

Error Domain=NSURLErrorDomain Code=-996 "Could not communicate with background transfer service" UserInfo=0x60800007a6c0 NSLocalizedDescription=Could not communicate with background transfer service

如果应用有会话,然后共享扩展程序尝试建立会话,就会发生这种情况。要启动会话,我在应用程序和共享扩展程序中都执行以下操作。

NSURLSessionConfiguration* config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:kSHARE_UPLOAD_SESSION];
config.sharedContainerIdentifier = kAPP_GROUP;
self.sessionManager = [[AFURLSessionManager alloc] initWithSessionConfiguration:config];
self.sessionManager.attemptsToRecreateUploadTasksForBackgroundSessions = YES;

【问题讨论】:

你找到答案了吗? 并非如此。它在生产中的发生似乎比在测试中发生的要少。 【参考方案1】:

您必须为主应用程序和扩展程序使用不同的“标识符”(kSHARE_UPLOAD_SESSION)。您显然不能同时运行 2 个具有相同标识符的 NSURLSession。不过你应该保持同一个组(kAPP_GROUP)

【讨论】:

以上是关于NSURLSession:无法与后台传输服务通信的主要内容,如果未能解决你的问题,请参考以下文章

NSURLSession 后台传输不起作用

NSURLSession,数据任务转换为下载任务后,后台无法下载

在 iOS8 中使用 NSUrlSession 使用流请求进行后台上传

iOS:如何增加 NSURLSession 上传任务的块大小?

NSURLSession,上传任务 - 获取传输的实际字节

iOS 编程:NSURLSession