¿XTubeManager se cuelga en el fondo?
Estoy experimentando una gran cantidad de bloqueos en el XTubeManager (parece ser interno de CFNetwork). Lamentablemente, los registros de la consola no están disponibles, solo la pila de llamadas (ver más abajo).
Preguntas:Me imagino que mi aplicación se bloquea en segundo plano, por lo tanto, no se escriben registros de consola, ¿crees que es una posibilidad?¿Tengo que manejar la expiración de BackgroundTask de manera diferente, p. cancelando todos misNSURLRequests
? (ver código abajo)AntecedentesRegularmente me estoy despertando en segundo plano (o mediante la inserción de fondo) y ejecuto una tarea en segundo plano como esta:
NSString *myTaskName = @"some.random.task.name";
__block UIBackgroundTaskIdentifier taskID = [UIApplication.sharedApplication beginBackgroundTaskWithName:myTaskName expirationHandler:^{
[UIApplication.sharedApplication endBackgroundTask:taskID];
taskID = UIBackgroundTaskInvalid;
}];
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(q,
// doing some NSURLRequests stuff here
[UIApplication.sharedApplication endBackgroundTask:taskID];
taskID = UIBackgroundTaskInvalid;
});
Esto generalmente se llama enapplicationDidEnterBackground
Thread : Crashed: com.apple.NSURLConnectionLoader
0 libobjc.A.dylib 0x183599b90 objc_msgSend + 16
1 CFNetwork 0x184513300 XTubeManager::withTubeManager(CoreSchedulingSet const*, void (GlueTubeManager*) block_pointer) + 96
2 CFNetwork 0x18451149c -[__NSURLSessionLocal _withConnectionCache_enqueueRequest:forProtocol:scheduling:options:] + 128
3 CFNetwork 0x1845c3798 HTTPProtocol::asynchronouslyCreateAndOpenStream_WithMessage_AfterCookiesAndAuthenticatorHeaders(__CFHTTPMessage*) + 2000
4 CFNetwork 0x1845c2ef8 HTTPProtocol::asynchronouslyAddAuthenticatorHeadersAndContinue(__CFHTTPMessage*) + 144
5 CFNetwork 0x1845c4ba4 ___ZN12HTTPProtocol35asynchronouslyAddCookiesAndContinueEP15__CFHTTPMessage_block_invoke_2 + 28
6 libdispatch.dylib 0x18396d47c _dispatch_client_callout + 16