嵌入式框架中的 CLLocationManager 实例不请求授权?
CLLocationManager instance in embedded framework not requesting authorization?
我正在开发一个嵌入式框架,该框架使用 CLLocationManager
执行一些 BeaconRegion
监控。框架中的 CLLocationManager
实例不会请求用户授权。我错过了什么?
NSLocationAlwaysUsageDescription 在应用程序和框架的 Info.plist 文件中设置为当然。
应用程序的后台功能位置更新和使用低功耗蓝牙配件已设置。
我正在尝试这样请求授权:
- (void)requestPermissionsIfNecessary {
if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[_locationManager requestAlwaysAuthorization];
} else {
NSLog(@"_locationManager does not respond to 'requestAlwaysAuthorization'!");
NSLog(@"CLAuthorizationStatus: %d", [CLLocationManager authorizationStatus]);
}
}
_locationManager
不响应选择器,CLAuthorizationStatus
为0(kCLAuthorizationStatusNotDetermined
)。
我正在 iOS 8.1.1 iPhone 6 Plus 上进行测试。
有什么帮助吗?提前致谢!
编辑:
现在至少我可以进行 _locationManager
请求授权。不知道为什么现在要求它。
然而,locationManager:didChangeAuthorizationStatus:
委托方法再次报告 kCLAuthorizationStatusNotDetermined
的状态。听起来像 Info.plist
问题?
延迟请求解决了我的问题。
当我的 rootViewController
的 viewDidLoad
方法在顶层触发时,它总是被拒绝。在单击按钮后一秒钟左右请求授权非常有效。当 CLLocationManager
在项目中而不是在嵌入式框架中经常使用时,从未经历过这种行为。事实上,我之前在一个项目中使用了完全相同的实现,一切都很顺利。
我正在开发一个嵌入式框架,该框架使用 CLLocationManager
执行一些 BeaconRegion
监控。框架中的 CLLocationManager
实例不会请求用户授权。我错过了什么?
NSLocationAlwaysUsageDescription 在应用程序和框架的 Info.plist 文件中设置为当然。
应用程序的后台功能位置更新和使用低功耗蓝牙配件已设置。
我正在尝试这样请求授权:
- (void)requestPermissionsIfNecessary {
if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[_locationManager requestAlwaysAuthorization];
} else {
NSLog(@"_locationManager does not respond to 'requestAlwaysAuthorization'!");
NSLog(@"CLAuthorizationStatus: %d", [CLLocationManager authorizationStatus]);
}
}
_locationManager
不响应选择器,CLAuthorizationStatus
为0(kCLAuthorizationStatusNotDetermined
)。
我正在 iOS 8.1.1 iPhone 6 Plus 上进行测试。
有什么帮助吗?提前致谢!
编辑:
现在至少我可以进行 _locationManager
请求授权。不知道为什么现在要求它。
然而,locationManager:didChangeAuthorizationStatus:
委托方法再次报告 kCLAuthorizationStatusNotDetermined
的状态。听起来像 Info.plist
问题?
延迟请求解决了我的问题。
当我的 rootViewController
的 viewDidLoad
方法在顶层触发时,它总是被拒绝。在单击按钮后一秒钟左右请求授权非常有效。当 CLLocationManager
在项目中而不是在嵌入式框架中经常使用时,从未经历过这种行为。事实上,我之前在一个项目中使用了完全相同的实现,一切都很顺利。