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

Xcode Mac应用程序崩溃队列:com.apple.CoreLocation.0x7fc93e530920,xcode,macos,location,Xcode,Macos,Location,所以我尝试让我的应用程序在iOS和MacOS上运行。也就是说它在这两种情况下都运行。然而,当我把它提交给苹果时,他们似乎让它崩溃了。由于以下原因 Crashed Thread: 3 Dispatch queue: com.apple.CoreLocation.0x7fc93e530920 现在我可以说这是由于CoreLocation,但我想知道为什么在我测试它(同一版本)13.15.6时它没有在我的mac上崩溃 下一个问题是,如果我不能使错误再次发生,如何修复此问题?也遇到了此

所以我尝试让我的应用程序在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版本的plist中添加key
NSLocationUsageDescription

看到和

我只能断断续续地重现这个错误,当它发生时,它发生在我在系统首选项中启用位置服务的那一刻。我猜这是CoreLocation检查plist的时刻,有时会崩溃,也就是说,不总是这样

添加: 对于macOS 11(大苏尔),访问位置的授权发生了比上述更多的变化。根据您的需要,您需要请求访问位置,如中所述

因此,这是plist的4个可能的键和“目的字符串”,它们通过系统警报引导授权,用户的选择通过代理
LocationManagerDicChangeAuthorization:
交给您

也看到

请注意,如果没有这些字符串,location可以正常工作,但在提交应用程序以供审阅时,AppStore会拒绝您的申请

另外请注意,如果您的Mac电脑中根本没有启用位置服务

系统首选项->安全和隐私->隐私->定位服务

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