我正在尝试使用单元测试(xctest)测试CoreLocation,但未能通过权限阶段。我特意得到一个假定的错误信息, 见下文(*)。
我正在调试authorizationStatus方法,但这对我不起作用。
[MySwizzler swizzleClass:[CLLocationManager class]
method:@"authorizationStatus"
instanceMethod:NO];
+ (CLAuthorizationStatus)override_authorizationStatus {
return myAuthorizationStatus;
}
我一请求授权:
[[self locationManager] requestWhenInUseAuthorization];
我得到回调:
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
状态为:
kCLAuthorizationStatusRestricted
我的调速方法永远不会被调用,我在日志中收到此消息:
(*) "此应用尝试在没有使用说明的情况下访问隐私敏感数据。该应用程序的Info.plist必须包含一个NSLocationWhenInUseUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据"。
我的Plist确实包含这个:
<plist version="1.0">
<dict>
<key>NSLocationUsageDescription</key>
<string>Required</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required</string>
</dict>
</plist>
我假设我在这里调试错误的方法,也许还有其他方法 问题。
请协助。
答案 0 :(得分:0)
也许您将密钥添加到了Test目标的Info.plist中?