Mac 应用程序崩溃队列:com.apple.CoreLocation.0x7fc93e530920

Mac App crashed queue: com.apple.CoreLocation.0x7fc93e530920

所以我正在尝试让我的应用程序在 iOS 和 MacOS 上运行。也就是说,它对两者都有 运行。然而,当我将它提交给 Apple 时,他们似乎让它崩溃了。由于以下

Crashed Thread:        3  Dispatch queue: com.apple.CoreLocation.0x7fc93e530920

现在我知道这是由于 CoreLocation,但我想知道为什么当我测试它(相同版本)13.15.6.

时它没有在我的 mac 上崩溃

接下来是如果我不能让错误再次发生,我该如何解决这个问题?

我也遇到过。在我的情况下,在 macOS 10.15 上一切正常 运行,但是当应用程序提交审查时收到了崩溃报告,它在 Big Sur (macOS 11.3) 上崩溃并出现此错误。

解决方案(对我而言)是将密钥 NSLocationUsageDescription 添加到 Mac 版本的 plist 中。

https://developer.apple.com/forums/thread/652193 and Apple doc

我只能间歇性地重现这个错误,当它发生时,它发生在我在系统偏好设置中启用定位服务的那一刻。我想那是 CoreLocation 检查 plist 的那一刻,有时会崩溃,即不是 always.

加法: 对于 macOS 11 (Big Sur),位置访问权限的更改比上述更多。根据您的需要,您需要请求访问位置,如 https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services?language=objc.

中所述

因此,这是 plist 的 4 个可能的键和“目的字符串”,它们通过系统警报引导授权,用户的选择通过委托 locationManagerDidChangeAuthorization:.

另见 https://developer.apple.com/documentation/corelocation/choosing_the_location_services_authorization_to_request?language=objc

请注意,如果没有这些字符串,location 也可以正常工作,但是当您提交申请以供审核时,您将 运行 被 AppStore 拒绝。

另请注意,如果您的 Mac 在

中根本未启用定位服务

System Preferences -> Security&Privacy -> Privacy -> Location services

根本不会显示任何系统警报。假设如果不启用,用户不想被打扰。