が、私は問題を抱えていiOS11私のInfo.plistは場所のアクセス許可の問題iOSの11とiOS 10
<key>NSLocationWhenInUseUsageDescription</key>
<string>When in use permissions</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>always permissions</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Always and in usage permissions</string>
が含まれている私は2つのマップの従業員のための顧客のための1つ、別のを持っています。私はアプリが実行されていないか、バックグラウンドにされた(彼らが署名するときにそれをオフにすることができます)と顧客のために
locationManager.requestAlwaysAuthorization()
を使用して要求許可しても、その場所を知っている必要があり、従業員のために私がいる間だけの場所を必要としますアプリが使用中であり、使用量が、決して常に許可にiOSの11でこの要求のみ許可を
locationManager.requestWhenInUseAuthorization()
を使用して許可を要求します。
iOS 10では正しく動作しています。
私がしたい振る舞いは、次のとおりです。 顧客(サインインされていない)は、使用許可を得ているかどうかを尋ねます。彼らがサインイン(従業員)している場合、それは使用されていなくても場所を要求します。
誰かが私が行方不明/間違っていることに少しでも光を当てることができれば、それは非常に高く評価されます。
許可を削除した場合の注意点NSLocationAlwaysUsageDescription
iOS10とiOS11には、常にアクセス許可を要求しないという同じ問題があります。
もう少し説明します。 私はdidChangeAuthorizationデリゲート関数を実装しました。ユーザが呼び出しからの警告の許可を許可したときに呼び出されますrequestWhenInUseAuthorization()
requestWhenInUseAuthorization()
関数を位置マネージャに呼び出すと、デリゲートメソッドは呼び出されず、ユーザーに表示されます。どちらの場合も、顧客と従業員のために
実際のデバイスでテストしていますか?あなたはlocationupdate locationmanagerデリゲートメソッドにブレークポイントを設定しました –
2つの実際のデバイスのiPhone 5がiOS 10.3.3とiOS 11を実行しているiPhone 5をテストしています。私はロケーションマネージャのデリゲート関数didChangeAuthorizationとdidUpdateLocationsにログを記録しています。場所はフォアグラウンドで呼び出されていますが、使用権限ではいつでもアクセス許可ではないと要求したときに認可を変更しました。 –
このアンサーを見てください - https://stackoverflow.com/a/46339284/3024579 – Alok