我的應用在第一個ViewController中有一個地圖。在iOS 7上,它會在第一次運行時自動顯示位置權限彈出窗口。但是,在iOS 8上,需要進行一些更改。我已經包含了關鍵NSLocationWhenInUseUsageDescription
我Info.plist文件,並在AppDelegate中,我說:iOS 8不請求位置權限
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestWhenInUseAuthorization];
}
// ...
}
然而,在彈出從未顯示。
用戶界面有一個按鈕可以將地圖帶回用戶的位置。在按鈕的方法中,我已經包含了與上面相同的一段代碼,以查看它是否有幫助。
這次彈出確實會出現,但它只是閃爍在屏幕上,用戶無法與之交互。
在設置>隱私>定位服務> MyApp有我期望的兩個選項:永遠不會和當使用應用程序。它們中沒有一個是默認標記的。此外,我在Info.plist中設置的「應用程序說明」在第二個選項中正確顯示。
如果我強制標記第二個選項,該應用可以正常工作,但我不希望用戶手動瀏覽選項以啓用它。