iOS 13 和 14 上的 NSKeyValuePopPendingNotificationLocal 崩溃
Posted
技术标签:
【中文标题】iOS 13 和 14 上的 NSKeyValuePopPendingNotificationLocal 崩溃【英文标题】:NSKeyValuePopPendingNotificationLocal Crash on iOS 13 and 14 【发布时间】:2020-10-16 12:42:25 【问题描述】:我正在开发的实时应用程序崩溃,我似乎无法重新创建或找到问题。这是崩溃输出:
`Crashed: NSOperationQueue 0x123e7d5c0 (QOS: UNSPECIFIED)
0 libobjc.A.dylib 0x184a52198 objc_release + 104
1 Foundation 0x1850bd930 NSKeyValuePopPendingNotificationLocal + 60
2 Foundation 0x1850bd8ac NSKeyValueDidChange.llvm.947807775919258276 + 364
3 Foundation 0x1850bd2e0 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 624
4 Foundation 0x18500cb1c -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 68
5 Foundation 0x1850b8eb8 _NSSetLongLongValueAndNotify + 284
6 CFNetwork 0x1880f4470 _CFNetworkHTTPConnectionCacheSetLimit + 205660
7 Foundation 0x1850d5410 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
8 Foundation 0x184fdf138 -[NSBlockOperation main] + 100
9 Foundation 0x1850d7698 __NSOPERATION_IS_INVOKING_MAIN__ + 20
10 Foundation 0x184fdedd0 -[NSOperation start] + 732
11 Foundation 0x1850d8090 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 20
12 Foundation 0x1850d7b5c __NSOQSchedule_f + 180
13 libdispatch.dylib 0x18498f7dc _dispatch_block_async_invoke2 + 104
14 libdispatch.dylib 0x1849dd184 _dispatch_client_callout + 16
15 libdispatch.dylib 0x184985a3c _dispatch_continuation_pop$VARIANT$mp + 412
16 libdispatch.dylib 0x184985190 _dispatch_async_redirect_invoke + 600
17 libdispatch.dylib 0x184991fa4 _dispatch_root_queue_drain + 376
18 libdispatch.dylib 0x184992770 _dispatch_worker_thread2 + 128
19 libsystem_pthread.dylib 0x184a2cb48 _pthread_wqthread + 212
20 libsystem_pthread.dylib 0x184a2f760 start_wqthread + 8`
请帮我弄清楚这件事。谢谢
【问题讨论】:
尝试在 Xcode 中添加异常断点,也许这会指向导致崩溃的实际行。 使用 ios14 SDK 构建应用后,同样的问题和许多相似之处 @iOS_Xavier 你在使用 Kotlin Multiplatform? iOS 14 的应用更新存在相同问题,使用 Xcode 12.0.1 (12A7300) 构建。应用随机崩溃,大部分时间在后台。 @InViZz 不使用 Kotlin。使用迅速 【参考方案1】:这是由 FirebasePerformance v3.3.1 和 XCode 12 引起的。使用“FirebasePerformance”,“3.3.0”应该可以解决问题。
将 FirebasePerformance 设置为 v3.3.0 后,我们没有看到任何 NSKeyValuePopPendingNotificationLocal
、AFURLSessionManager
、NSKVODeallocate
、CFDictionaryGetValue
、NSKeyValueWillChange
、[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:]
... 崩溃了。
无崩溃率从 95% 恢复到 99.9%。
【讨论】:
【参考方案2】:我们移除了 Firebase 性能,从那时起我们不再检测到崩溃。我认为这个问题是由于 Firebase Performance 3.3.1 with Xcode 12.
【讨论】:
【参考方案3】:我也有同样的问题。我的解决方案是降低 Firebase 的版本。这个问题应该是 Firebase Performance 造成的
【讨论】:
以上是关于iOS 13 和 14 上的 NSKeyValuePopPendingNotificationLocal 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
iOS 14 上的 NSNumberFormatter 错误
苹果iOS14粉墨登场,3大升级值得一提,界面比iOS13更整洁
如何使用 iOS 14+ 的 ScrollViewReader 和 iOS 13 的部署目标