【发布时间】:2018-06-18 13:48:48
【问题描述】:
我最近正在更新应用程序以在后台添加位置服务。
应用目前支持“使用应用时”定位服务,我想支持“始终允许”。
我谨记此功能应涵盖两种情况。
尚未下载应用的新用户。
当前用户,已授予该应用在使用该应用时接收设备位置的权限。
场景 1 运行良好,但场景 2 发生了一些奇怪的事情。
当我启动应用程序时,在初始屏幕之后,iOS 会提示用户通过两个选项提升应用程序的授权级别,“仅在使用应用程序时”和“始终允许”。
我想稍后再升级,而不是在启动画面之后。
有人知道为什么会这样吗?
【问题讨论】:
-
什么时候初始化位置管理器/请求授权?您似乎无法真正控制何时显示此更新的授权警报,但它可能是在您重新启动应用后首次尝试使用位置服务时触发的。
-
在特定的 View Controller 中处理所有位置。我可以在其中处理升级身份验证级别。但是这个警报出现了,这个 VC 甚至没有被实例化。
-
The documentation 似乎并没有说应该立即显示此警报(似乎它只会在您请求新授权时显示)。因此,我首先要绝对确保您在发布时/比您预期的时间更早地请求授权或任何东西。
-
这是我过去 3 天的做法。我没有选择了。 =/
-
嗨@shim,经过深度调试,我发现了发生了什么。我的依赖项之一是检查可用的背景模式和应用 plist 文件中的位置键。真的很难找到,因为 Xcode 搜索在项目的框架内找不到任何东西。即使它存在框架代码。我发现在整个 CoreLocation 库上有一个符号断点。
标签: ios swift location cllocationmanager