xctest此应用程序试图在没有使用说明的情况下访问隐私敏感数据

时间:2017-05-15 14:21:57

标签: ios objective-c core-location xctest

我正在尝试使用单元测试(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>
  • 我的TestTarget Info.plist属性设置为Plist的路径 文件。
  • 方案运行配置设置为&#34;允许位置 仿真&#34;

我假设我在这里调试错误的方法,也许还有其他方法 问题。

请协助。

1 个答案:

答案 0 :(得分:0)

也许您将密钥添加到了Test目标的Info.plist中?