💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

发现iOS系统接口xpc_connection_send_message_with_reply_sync在低性能设备上频繁调用可能导致超时卡死。线上问题中发现少量Crash,堆栈显示是因为CLGetStatusBarIconState和CLClientIsLocationServicesEnabled调用导致。问题集中在iPhone 6s和iPhone 7等低端设备上,大部分是iOS 15.7系统。修复建议是减少调用xpc_connection_send_message_with_reply_sync的频次,避免调用能触发该接口的方法。推荐在CLLocationManager的delegate中监听定位权限变化,避免在主线程调用locationServicesEnabled方法。以上修改后,Crash问题解决。

🎯

关键要点

  • iOS系统接口xpc_connection_send_message_with_reply_sync在低性能设备上频繁调用可能导致超时卡死。
  • 线上问题中发现少量Crash,堆栈显示是由于CLGetStatusBarIconState和CLClientIsLocationServicesEnabled调用导致。
  • 问题主要集中在iPhone 6s和iPhone 7等低端设备上,大部分是iOS 15.7系统。
  • 修复建议是减少调用xpc_connection_send_message_with_reply_sync的频次,避免调用能触发该接口的方法。
  • 推荐在CLLocationManager的delegate中监听定位权限变化,避免在主线程调用locationServicesEnabled方法。
  • 以上修改后,Crash问题得到解决。
➡️

继续阅读