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

标签 ios objective-c afnetworking nsurlsession ios8-share-extension

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

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

有错误

Error Domain=NSURLErrorDomain Code=-996“无法与后台传输服务通信”UserInfo=0x60800007a6c0 {NSLocalizedDescription=无法与后台传输服务通信}

如果应用程序有一个 session ,然后共享扩展试图建立一个 session ,就会发生这种情况。为了启动 session ,我在应用程序和共享扩展程序中执行了以下操作。

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

最佳答案

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

关于ios - NSURLSession:无法与后台传输服务通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890018/

相关文章:

objective-c - Objective-C 中的 For 循环优化

ios - 保存特定 Index 的 tableView 数据,该 Index 是使用点击手势点击的,但不使用 didSelectItemAt

ios - NSData 转换时堆缓冲区溢出

ios - 需要帮助将数据从 tableView 传递到另一个 viewController Swift。查看其他示例后仍然出现错误

ios - AFNetworking响应错误仅适用于特定URL

objective-c - AFNetworking:为更高优先级的请求中断后台请求

ios - cocoapods - 链接器命令失败,退出代码为 1

ios - CLLocationManager 一直不工作(iOS 8,Xcode 6)

ios - PerformSelector 可能会导致泄漏 - 更好的解决方案

ios - 无法识别完成 block 返回类型