에서 CDVLocation.m
if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"]){
[self.locationManager requestWhenInUseAuthorization];
} else if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"]) {
[self.locationManager requestAlwaysAuthorization];
} else {
NSLog(@"[Warning] No NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key is defined in the Info.plist file.");
}
, 그것은이 있어야한다 :
if ([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"]){
[self.locationManager requestAlwaysAuthorization];
} else if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"]) {
[self.locationManager requestWhenInUseAuthorization];
} else {
NSLog(@"[Warning] No NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key is defined in the Info.plist file.");
}
공지 사항 나는이 두 줄을 전환 :
[self.locationManager requestAlwaysAuthorization];
[self.locationManager requestWhenInUseAuthorization];
마스터 source code을 참조 할 수 있습니다.
또한 iOS 11의 경우 requesting always permission 일 때 NSLocationAlwaysAndWhenInUseUsageDescription
및 NSLocationWhenInUseUsageDescription
키를 정보 plist에 포함해야합니다.
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>When always is requested in iOS 11</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>When "when in use" is requested in iOS 11</string>
당신은 앱의 Info.plist 파일에 NSLocationWhenInUseUsageDescription 및 NSLocationAlwaysAndWhenInUseUsageDescription 키를 포함해야합니다. 앱이 iOS 10 및 이전 버전을 지원하는 경우 NSLocationAlwaysUsageDescription 키도 필요합니다. 이러한 키가 없으면 승인 요청이 즉시 실패합니다.
이 업데이트로 - 여전히 불행히도 작동하지 않습니다. – userlkjsflkdsvm
@userlkjsflkdsvm 내 답변을 업데이트했습니다. 자세한 내용은 [here] (https://stackoverflow.com/a/46847825/5099014)에 링크 된 비디오를 참조하십시오. –
Perfect! 고맙습니다! – userlkjsflkdsvm