只有在调用requestAlwaysAuthorization时才会调用DidEnterRegion。信标

时间:2015-08-05 19:22:37

标签: ios swift core-location ibeacon clbeaconregion

didEnterRegiondidExitRegion仅在我请求后调用并允许CoreLocation的始终授权

即使我请求WhenInUseAuthorization didExit并且不会调用didEnter

如果我不能调用它,我该如何触发信标范围?

任何解决方案?

更新

Apple拒绝了我的应用程序调用requestAlwaysAuthorization()

以下是我今天早上提交给审核小组的问题:

为了监控信标区域(许多应用程序中使用的信标的核心功能,包括一些Apple应用程序),您需要让用户允许应用程序访问位置,即使不使用该应用程序也是如此。我正在使用.requestAlwaysAuthorization来启用信标在后台进行监控。为什么不允许这样做?

苹果今天下午在iTunes Connect上的回应:

感谢您的反馈。但是,iBeacon功能不需要后台位置。因此,有必要在重新提交之前删除背景位置功能。

因此,如果信标应该自动监视后台的区域,但我不能要求许可进行后台监控,并且信标不会在后台进行监控,除非我获得许可,那么我应该如何监控背景??

3 个答案:

答案 0 :(得分:1)

你的意思是应用程序在后台吗?如果是这样,那么didEnterRegiondidExitRegion不会仅使用WhenInUseAuthorization进行调用。只有当您的应用程序位于前台并且您进入/退出某个区域时,它们才会被调用

答案 1 :(得分:0)

  

iBeacon功能不需要后台位置。因此,有必要在重新提交之前删除背景位置功能。<​​/ p>

由于背景模式(特别是&#34;位置更新&#34;模式),您的应用似乎被拒绝了,没有&#34;始终&#34;授权。您不需要任何启用背景模式的信标监控才能在后台工作,&#34;始终&#34;授权就足够了。

只需在项目设置中禁用“背景模式”功能,就可以了!

答案 2 :(得分:0)

不幸的是,您必须请求Always Allow位置访问才能使用信标进行区域监控。

来自文档:

  

重要

     

应用必须始终拥有使用区域监控的权限,并且必须使用位置更新后台模式对其进行配置才能启动。

https://developer.apple.com/documentation/corelocation/determining_the_proximity_to_an_ibeacon