2017-10-30 6 views
2

私のアプリが位置認可を要求したときに表示される文字列を設定しようとしています。私はすべてfour possible keys in Info.plistNSLocationUsageDescriptionNSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription、およびNSLocationAlwaysAndWhenInUseUsageDescriptionを設定しようとしました。私もlocationManager.purposeの文字列which is deprecated in iOS, but not macOSを設定しようとしました。これらのメソッドのいずれも、アプリケーションが承認を要求したときに警告に文字列を表示しません。私はアクセスを要求するために、このコードを使用していMacOSのCoreLocationの使用方法を設定するにはどうすればよいですか?

var locationManager = CLLocationManager() 

    func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 
     switch status { 
     case .notDetermined: 
      locationManager.startUpdatingLocation() 
      locationManager.stopUpdatingLocation() 
     default: break 
     } 
    } 

をここでは、アラートのスクリーンショットです: alert

+0

アラートが表示されますか?どのようなメッセージがありますか? locationManagerへの参照を紛失しましたか? – tagyro

+0

はい、アラートは期待どおりに表示されます。ちょうど使用の説明の文字列なし。 "" app "はあなたの場所にアクセスしたいと言います。" 'locationManager'はクラスレベルに設定されているので、私はそれが失われているとは思わない。 – Nate

答えて

0

MacOSで正しい場所の使用法の説明がNSLocationUsageDescription(プライバシーのように見える - ロケーション使い方説明)。私はそれを正しく設定していたことが判明しましたが、CoreLocationは文字列(またはその欠如)をキャッシュしていたに違いありません。再起動しても何も変わっていないように見えるので、最終的に新しい文字列を使用することになるのは1日かかるかもしれません。キャッシングを回避するために、アプリケーションのバンドル識別子を変更することによって、新しい文字列をテストできるはずです。

関連する問題