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



所以我正在努力让我的应用程序在iOS和MacOS上运行。也就是说,它确实在两者上运行。然而,当我把它提交给苹果公司时,他们似乎让它崩溃了。由于以下

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

现在我可以判断这是由于CoreLocation,但我想知道为什么当我测试它(同一版本(13.15.6时,它没有在我的mac上崩溃。

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

也遇到过这种情况。在我的案例中,macOS 10.15运行良好,但在提交申请审查时收到了崩溃报告,在Big Sur(macOS 11.3(上出现了此错误。

解决方案(对我来说(是在Mac版本中将密钥NSLocationUsageDescription添加到plist中。

请参阅https://developer.apple.com/forums/thread/652193和苹果文档

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

添加:对于macOS 11(Big Sur(,访问位置的授权发生了比上述更多的变化。根据您的需要,您需要请求访问位置,如中所述https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services?language=objc.

因此,这是4个可能的键;目的字符串";对于plist,通过系统警报引导授权,用户的选择通过代表locationManagerDidChangeAuthorization:交给您。

另请参阅https://developer.apple.com/documentation/corelocation/choosing_the_location_services_authorization_to_request?language=objc

请注意,如果没有这些字符串,位置将正常工作,但当您提交申请以供审查时,您将遇到AppStore的拒绝。

还要注意,如果你的Mac在中根本没有启用定位服务

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

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

最新更新