ios 10 以后在使用定位的时候我们会遇到这个问题,说明有两个地方可能没有设置好
1. info.plist 里面需要添加NSLocationWhenInUseUsageDescription权限描述
2.在第一个地方设置的情况下,设置CLLocationManager的allowsBackgroundLocationUpdates为YES
打开Xcode -> Targets -> Capabilities 中的Background Modes并勾选其中的Location updates选项
也可以右键info.plist -> Open as -> Source Code 添加下面的代码
[Objective-C] 纯文本查看 复制代码 <!--开启Background Modes中的Location updates-->
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
注意:如果使用了持续后台定位但没有开启Background Modes的Location updates选项将会导致以下错误的出现:
[Objective-C] 纯文本查看 复制代码 Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-1861.0.9/Framework/CoreLocation/CLLocationManager.m:604
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'
|