gpt4 book ai didi

ios - XTubeManager 在后台崩溃?

转载 作者:可可西里 更新时间:2023-11-01 03:18:25 25 4
gpt4 key购买 nike

我在 XTubeManager 中遇到大量崩溃(似乎是 CFNetwork 内部的)。不幸的是,控制台日志不可用,只有调用堆栈(见下文)。

问题:

  • 我可以想象我的应用程序在后台崩溃,因此没有console log都写好了,你觉得有这个可能吗?
  • 我是否必须以不同方式处理 backgroundTask 过期,例如经过取消我所有的 NSURLRequests? (见下面的代码)

背景

我经常在后台醒来(或通过后台推送)并运行这样的后台任务:

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;
});

这通常在 applicationDidEnterBackground 中调用

调用栈

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

最佳答案

NSURLConnection 堆栈中的某些对象正在消失。要检查的一些事项:

  • 确保您没有开始连接两次。 (如果您不使用 ...startImmediately:NO,则确保您永远不会调用 start。)
  • 确保您没有启动连接,然后在连接完成之前释放您的最后一个引用。
  • 确保您没有使用同步 NSURLConnection 调用(永远)。

除此之外,我以前也见过类似的崩溃,而且在很多情况下并没有明显的原因。除非您看到崩溃频率很高,否则除了提交错误并希望 Apple 想出一种方法来为所有人修复它之外,可能没有任何方法可以修复它。

关于ios - XTubeManager 在后台崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com