【问题标题】:Apple App Review Location Services Consent IssueApple App Review 定位服务同意问题
【发布时间】:2020-03-20 15:12:12
【问题描述】:

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.

...即使我在我的 App 的 Info.plist 中包含以下键值对:

隐私 - 使用时的位置 使用说明:访问位置 需要在应用程序使用时初始化您的地图提要。

...因此,我无法在他们与我分享的屏幕截图中复制该问题:

这是我一直在同一设备 (iPad) iOS 13.3 上看到的对话:

我对@9​​87654323@ 的理解是我只需要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
    }

在我未启用位置访问的情况下,我总是看到以下提示,而不是审阅者遇到的提示:

【问题讨论】:

  • 在您的 iPad 上,转到 Settings -> Privacy -> Location Services,找到您的应用,然后将其更改为 从不。然后运行你的应用程序,看看你是否得到那个“默认”提示(我希望你会)。 Apple 想要的是让您的代码检查授权状态......如果用户最初说“不允许” - 或在设置中更改它 - 您应该显示您的 own 消息并提供足够的信息明确说明您需要位置信息访问权限的原因。
  • 在我看来,您的位置使用描述不是那么清楚,因此 1 可以清楚地理解为什么应该允许它。请更新此描述:Access to location while the app is in use is required initialize your map feed 更具体。我认为你应该用这种格式写你的描述:[App_Name] requires your location to [purpose_of_location]
  • @DonMag 感谢您的周到回复。不幸的是,我无法按照您的建议复制该问题。我已经编辑了我的问题,以便在用户未授权位置的情况下提供有关我的应用程序行为的更多上下文。如果可以的话,让我知道你的想法。再次感谢!

标签: ios app-store-connect location-services


【解决方案1】:

他们正在显示的对话框是从系统中出现的,当您第一次说startUpdatingLocationlocationServicesEnabledfalse 时。这与 发出的 denied 警报无关。

请注意,这与用户授权无关!这与位置服务被关闭作为一个整体有关。苹果在测试时会检查这种情况。您的应用似乎没有。

为防止出现系统对话框,请始终检查locationServicesEnabled 是否为true,如果不是,不要继续

(但是,话虽如此,如果他们认为他们显示的对话框应该包含您的使用说明,那么来自 Apple 的消息是不正确的。事实并非如此。它总是看起来像他们显示的方式。你可能想回信告诉他们。他们现在可能有一些不知道自己在做什么的人为他们工作。)

【讨论】:

  • 嗨@matt,感谢您在这里的洞察力。这是问题的根源 - 并且重要提醒要考虑设备级设置而不是应用级设置。我一定会通知审稿人他们似乎不知道自己在做什么。再次,非常感谢。
猜你喜欢
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多