【发布时间】: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 上看到的对话:
我对@987654323@ 的理解是我只需要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