💡
原文中文,约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问题得到解决。
➡️