尝试在共享扩展中使用 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/