代码之家  ›  专栏  ›  技术社区  ›  Leonardo Saragiotto

iOS 11将位置服务从“使用时”更新为“始终”

  •  1
  • Leonardo Saragiotto  · 技术社区  · 8 年前

    我最近正在更新一个应用程序,以便在后台添加位置服务。

    应用程序当前支持“使用应用程序时”定位服务,我想使支持“始终允许”。

    我记得这个功能应该包括两个场景。

    1. 新用户,尚未下载应用程序。

    2. 当前用户,已授予应用程序在使用应用程序时接收设备位置的权限。

    场景1运行得很好,但对于场景2,发生了一些奇怪的事情。

    当我启动应用程序时,在启动屏幕之后,ios会提示用户使用两个选项“仅在使用应用程序时”和“始终允许”来提升应用程序的授权级别。

    我想在稍后升级,而不是在启动屏幕之后。

    有人知道为什么会这样吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   shim    8 年前

    这个问题是通过在所有corelocation库上设置一个符号断点来解决的。

    怎么用?

    1-在didFinishLaunchingWithOptions的第一行设置断点

    2-启动应用程序

    3-在控制台面板上,插入此命令以打断corelocation lib的每个方法

    lldb: break set -r CoreLocation
    

    4-继续应用程序

    现在,调试将在从corelocation lib调用的每个函数处停止

    问题是依赖项在我没有意识到的情况下检查后台模式,所以触发了警报。