【问题标题】:Symbolic breakpoint to catch OS alerts用于捕获操作系统警报的符号断点
【发布时间】:2016-02-05 02:59:03
【问题描述】:

考虑到用户禁用了定位服务,当应用请求定位时,iOS 会显示警报

“打开定位服务以允许”确定您的位置”

有什么方法可以设置符号断点来知道哪一行代码实际触发了这个 iOS 警报。

我试过了

-[UIAlertView 显示]

但还是有用的

【问题讨论】:

  • 听起来你有一个 CLLocationManager 调用一些调用。仅当您使用 CL API 时操作系统才会弹出。必须找到你在哪里调用这些方法
  • 我发现在哪里,但我的想法是可以通过符号断点来完成..
  • 一旦您从 startUpdateLocation 允许定位服务,那么只有用户有权停止定位服务的设置。正如您所说,当应用程序处于后台模式时,用户会停止位置服务。那么就没有办法检测了。但是当用户再次在 fpreground 模式下运行应用程序时,它会再次要求启用服务

标签: ios xcode breakpoints lldb symbolic-breakpoint


【解决方案1】:

所有 iOS 系统警报都由应用顶部的不同窗口中的不同进程显示。因此不可能为所有系统警报设置断点。

但是,您可以设置一个符号断点来查找导致显示此警报的代码; -[CLLocationManager requestWhenInUseAuthorization]-[CLLocationManager requestAlwaysAuthorization]-[CLLocationManager startUpdatingLocation]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    相关资源
    最近更新 更多