libsystem_kernel.dylib __abort_with_payload崩溃问题分析

1.原因

在bugly上查看崩溃日志,有一个频繁发生的崩溃:libsystem_kernel.dylib __abort_with_payload

崩溃栈

从第4行可以看出,这是一个隐私违规。那么很容易猜测:定位、图片库、相机等等。此时我们去info.plst中查看是否忘记了添加哪个权限即可。

然而还是崩溃!!!

发现我们所有用到的权限都已经添加:定位、录音、图片库、相机,就这四个。

继续查找其他原因,先看看其他的栈信息,我们找到了如下关键点:


屏幕快照 2019-12-26 下午4.12.28.png

注意第3行,方法为_isPhotosAccessAllowedWithScope:accessAllowedHandler:。看名字应该就是图片库的某一个权限。

然后查看bugly中记录的跟踪记录,发现大体为两种崩溃:
1.崩溃在WKActionSheet:

屏幕快照 2019-12-26 下午4.16.22.png

2.崩溃在WKImagePreviewController
屏幕快照 2019-12-26 下午4.17.04.png

这显然是WebKit内部的,然后就是复现了。找到webView中有图片的地方,各种点击,双击,长按手势都试了一遍,最后发现长按某些图片的时候,会弹出actionSheet,其中会有保存图片的功能:

iOS13中长按img标签

点击后果然发生了崩溃!这是因为没有添加往相册加入图片的权限。

总结:

在iOS13中,长按图片会弹出上图所示的菜单栏,此时查看视图层级,发现就是WKImagePreviewController。在iOS13以下,长按会弹出系统ActionSheet,此时就是WKActionSheet

解决

添加Privacy - Photo Library Additions Usage Description即可解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 刚开始看到分组的时候,心里咯噔了一下。小我在萎缩,心里有点不舒服。 看到,放下。还是习惯于觉得自己很重要。这个重要...
    简蓝心阅读 134评论 0 0
  • Support Library 25.0.0 更新讲解 字数564阅读4704评论29喜欢41 Support L...
    奈何心善阅读 480评论 0 0
  • 2018年1月8日,三个同龄人分别从南北(广州、大连)前往中国凉都——贵州六盘水。 他们是赢房中国人力资源咨询事业...
    蜕变的痛阅读 374评论 1 4
  • 下午跟儿子打羽毛球,有点累。不想动手做饭,于是和儿子到外面吃,在附近的一家面点王。晚上八点多,店里客人稀少,安静舒...
    愚姐阅读 199评论 3 1
  • 1、亲人只有一次的缘分,无论这辈子我和你会相处多久,也请好好珍惜共聚的时光,下辈子,无论爱与不爱,都不会再见。 2...
    01ac9493dd9e阅读 200评论 0 0