Согласие на определение местоположения в Apple App Services - PullRequest
0 голосов
/ 20 марта 2020

Рецензенты App Store Connection сообщили мне, что моя сборка нарушает следующее правило:

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

We noticed that your app requests the user’s consent to access their location but does not clarify the use of the location in the applicable purpose string.

... даже при том, что я включил следующую пару ключ-значение в Info.plist моего приложения:

Конфиденциальность - местоположение при использовании Описание использования: требуется доступ к местоположению во время использования приложения для инициализации канала вашей карты.

... и поэтому я не могу чтобы повторить проблему на скриншоте, который они поделились со мной ниже:

enter image description here

Вот диалог, который я всегда видел на одном устройстве (iPad) iOS 13.3:

enter image description here

Насколько я понимаю Документы Apple , мне нужно только NSLocationWhenInUseUsageDescription, так как моему приложению требуется только доступ на переднем плане.

Кто-нибудь сталкивался с подобной проблемой раньше или есть идея, каков ее источник? Большое спасибо!

Редактировать: Ниже приведен код, управляющий этим опытом.

func requestLocationAuthorization(completion: (() -> Void)?) {
        let locationManagerAuthorizationStatus: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
        let appName = Bundle.main.infoDictionary![kCFBundleNameKey as String] as! String

        switch locationManagerAuthorizationStatus {
        case .notDetermined:
            LNTLocationManager.sharedInstance.requestAuthorization()
        case .denied:
            let alertString = "To initialize your map feed to your location, enable " + appName + " to use your location while using the app."
            presentSettingsAlert(with: alertString, completion: nil)
        default:
            break
        }

        completion?()
        return
    }

В случае, если я не включаю доступ к местоположению, я всегда вижу подсказку ниже, а не Рецензенты испытывают:

enter image description here

1 Ответ

1 голос
/ 21 марта 2020

Отображаемый диалог - это то, что появляется из системы в первый раз, когда вы говорите startUpdatingLocation в то время, когда locationServicesEnabled равно false. Это не имеет ничего общего с denied предупреждением, которое вы ставите.

Обратите внимание, что это не имеет никакого отношения к авторизации пользователя! Это связано с отключением сервисов определения местоположения в целом . Apple во время тестирования проверяет это обстоятельство. Похоже, что ваше приложение этого не делает.

Чтобы предотвратить появление системного диалога, всегда проверяйте, является ли locationServicesEnabled значением true, а если нет, go не далее .

(Однако, сказав, что сообщение, приходящее к вам от Apple, неверно, если они думают, что в отображаемом диалоге должно быть описание вашего использования. Это не так. как они это показывают. Возможно, вы захотите написать им об этом и сказать им. Возможно, сейчас на них работают люди, которые не знают, что делают.)

...