web-dev-qa-db-ja.com

位置情報へのアクセス-アプリは位置情報にアクセスするためのユーザー権限を要求していません-iOS11

説明

アプリは場所にアクセスするためのユーザー権限を要求しておらず、状態を取得していません

iOS-10まで完全に動作します

var locationManager : CLLocationManager!

func getLocationDetails()
    {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestAlwaysAuthorization()
        locationManager.allowsBackgroundLocationUpdates = true
        locationManager.startUpdatingLocation()

    }

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
    {
        if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
        {
            locationManager.startUpdatingLocation()
        }
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    {


    }

Plistスクリーンショット enter image description here

バックグラウンドモード

enter image description here

7
Alok

Appleのドキュメントを読み、この質問の解決策を見つけました。

Appleは、ユーザーの場所を取得するためにいくつかのガイドラインを変更しました。

ビデオリンクは次のとおりです。 Apple-ロケーションテクノロジーの新機能

Swift&Objective-C両方 でのロケーションアクセスの完全なコード

解決策:

次に、3つの認証キーをPlistに追加する必要があります。

  1. NSLocationAlwaysAndWhenInUseUsageDescription
  2. NSLocationWhenInUseUsageDescription
  3. NSLocationAlwaysUsageDescription

Plistは次のようになります: enter image description here そして認証メッセージ画面は次のようになります:

enter image description here

ロケーションアクセスの完全なコード

16
Alok

他の許可も「使用中はいつでも許可」を求め、両方の許可をplistに追加してください。

1

権限を要求するためにinfo.plistファイルに両方Keysを追加しましたが、アプリを削除して再度開いた後、シミュレーターはユーザーが選択できるようにアラートを表示しませんでした1つのオプション。

アプリを削除し、settingsapplicationを開いて、最後にアプリを再インストールした後、アラートを再度表示することができます。

それが誰かを助けることができることを願っています。