我在App Store中拥有使用SDK 7和部署目标7构建的应用程序.iOS 8已经到了同一时间,一些用户在新iOS上使用该应用程序。 使用iOS 7构建的内部应用程序我有这一行:
[self.locationManager startUpdatingLocation];
此类函数调用与系统集成,因为系统调用授权弹出窗口并要求用户允许使用位置服务。 该弹出窗口已在iOS 8中删除,应该通过调用函数手动显示:
[self.locationManager requestWhenInUseAuthorization];
在我的iOS 7应用程序中,此功能不可用,因此,在没有此请求的旧应用程序中,是否会提示用户是否允许位置使用?
使用旧的sdk构建的iOS应用程序如何在具有较新iOS的设备上运行,我的意思是,如果旧的iOS应用程序调用的函数不再被弃用,但在新的iOS上完全删除了会发生什么?
答案 0 :(得分:0)
您需要检查方法是否可用并调用它,等待是否给出身份验证。
您可以像这样轻松点对象:
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined && [self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[self.locationManager requestWhenInUseAuthorization];
}
else {
[self.locationManager startUpdatingLocation];
}
如果您使用的是较旧的SDK,那么您的应用程序之前的工作方式相同,但请注意,2015年2月开始Apple要求您的应用程序使用iOS 6 SDK和Xcode 6构建。