【问题标题】:Apple Binary Rejected (2.16)Apple 二进制文件被拒绝 (2.16)
【发布时间】:2015-06-07 00:46:47
【问题描述】:

我的应用需要用户当前位置,以便向他显示到谷歌地图中特定位置的方向

以下是在网页视图中显示位置的代码-

[self.getDirectionsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",currentLocation.coordinate.latitude,currentLocation.coordinate.longitude,self.projectLatitude,self.projectLongitude]]]];

应用通过使用 NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription

声明支持 .plist 中的位置
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        [locationManager requestAlwaysAuthorization];
    }
    [locationManager startUpdatingLocation];

Apple 拒绝了该应用程序,原因如下

2.16 详情

您的应用在 UIBackgroundModes 键中声明支持位置 您的 Info.plist 文件,但仍然没有声明任何功能 需要持久的位置。声明支持位置的应用程序 Info.plist 文件中的 UIBackgroundModes 键必须具有功能 需要永久位置。

具体来说,我们注意到路线功能不需要 持久的位置信息,因为它不包括 逐步导航。

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

  • 我会说他们在问你为什么在后台需要定位服务,因为你只在前台出现(对审核团队)使用它。
  • 使用 [locationManager requestWhenInUseAuthorization] 而不是 [locationManager requestAlwaysAuthorization] 可能会解决这个问题!

标签: ios objective-c iphone ios8


【解决方案1】:

基于:

  • 我的应用需要用户当前位置向他显示方向到谷歌地图中的特定位置。
  • NSLocation始终UsageDescription 和 NSLocationWhenInUseUsageDescription
  • 我们注意到路线功能不需要持久的位置信息,因为它不包括逐步导航

他们似乎在说您不应该需要位置信息除非该应用实际处于活动状态。由于位置信息用于向用户显示他们需要前往的方向,因此您当您的应用脱颖而出时,应该能够简单地进行调整(当然会有一点延迟)。

来自Apple's documentation

UIBackgroundModes (Array - iOS) 指定应用程序提供特定的后台服务,并且必须允许在后台继续运行。

应谨慎使用这些密钥,并且只能由提供指定服务的应用程序使用。如果存在在后台运行的替代方案,则应使用这些替代方案。

例如,应用可以使用显着位置更改接口来接收位置事件,而不是注册为后台位置应用。


这将是我的分析,尽管审稿人很可能那天早上刚与他们的另一半发生了争执,而且只是反复无常:-) 不,只是在开玩笑,但在外人看来,这些决定有时确实如此容我们说,他们制造的并不完全一致。

【讨论】:

    【解决方案2】:

    您只需从 info.plist 中的 UIBackgroundModes 键中删除位置支持

    当您的应用处于后台时,当您想要获取位置时,您只能使用UIBackgroundModes 作为位置。

    在您的应用声明中NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription 就足够了。

    【讨论】:

      【解决方案3】:

      请求用户当前位置不需要请求后台模式。

      如果您不需要在后台使用用户的位置,我建议您使用 NSLocationWhenInUseUsageDescription。用户在看到 NSLocationAlwaysUsageDescription 时更倾向于拒绝用户位置授权,因为他们认为这会降低设备的电池电量

      【讨论】:

        猜你喜欢
        • 2016-07-05
        • 1970-01-01
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 1970-01-01
        相关资源
        最近更新 更多