iOS 13 - 崩溃:com.apple.main-thread EXC_BREAKPOINT (CoreFoundation)

Saz*_*han 6 crash core-foundation ios ios13

我已经开始收到大量来自Fabric已在 App Store 上发布的 iOS 应用程序的崩溃报告。崩溃仅从18 Sep以后开始报告iOS 13。这是崩溃的主线程的崩溃日志。

Crashed: com.apple.main-thread
0  CoreFoundation                 0x185180408 OUTLINED_FUNCTION_0 + 4
1  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
2  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
3  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
4  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
5  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
6  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
7  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
8  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
9  CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
10 CoreFoundation                 0x18525bd68 __CFStringCollectionCopy.cold.1 + 14
Run Code Online (Sandbox Code Playgroud)

有人遇到过类似的崩溃吗?我怎样才能摆脱这个问题?

Saz*_*han 0

作为亚历克斯的解决方案

dyld3 似乎将生成的 clojure 文件保存在 app tmp 目录中,如果您使用 NSFileProtectionComplete,则闭包文件也具有此属性。

要生成崩溃,请关闭应用程序,锁定手机,发送唤醒应用程序的推送,然后生成崩溃。

解决方案似乎很简单,只需将应用程序 tmp direcptry 的权限更改为 NSFileProtectionCompleteUntilFirstUserAuthentication,应用程序就不会崩溃。我实在不明白苹果为什么要这样做。

这对我有用。

复制与测试

雷恩斯评论

您不一定需要使用推送通知来重现问题。如果您的应用程序配置为在权利中使用完整的文件保护,则在受保护的数据不可用时运行的任何代码都将导致应用程序崩溃。例如,我公司的应用程序有一个后台任务,执行时间超过 10 秒。由于受保护的数据在锁定设备后大约 10 秒变得不可用,因此应用程序将在后台任务完成执行之前崩溃(尽管断言有更多可用时间)。