1.原因
在bugly上查看崩潰日志,有一個(gè)頻繁發(fā)生的崩潰:libsystem_kernel.dylib __abort_with_payload
從第4行可以看出乓序,這是一個(gè)隱私違規(guī)隔箍。那么很容易猜測:定位谓娃、圖片庫、相機(jī)等等蜒滩。此時(shí)我們?nèi)?code>info.plst中查看是否忘記了添加哪個(gè)權(quán)限即可滨达。
然而還是崩潰!8┘琛捡遍!
發(fā)現(xiàn)我們所有用到的權(quán)限都已經(jīng)添加:定位、錄音竹握、圖片庫画株、相機(jī),就這四個(gè)涩搓。
繼續(xù)查找其他原因污秆,先看看其他的棧信息,我們找到了如下關(guān)鍵點(diǎn):
注意第3行昧甘,方法為_isPhotosAccessAllowedWithScope:accessAllowedHandler:
≌降茫看名字應(yīng)該就是圖片庫的某一個(gè)權(quán)限充边。
然后查看bugly中記錄的跟蹤記錄,發(fā)現(xiàn)大體為兩種崩潰:
1.崩潰在WKActionSheet
:
2.崩潰在
WKImagePreviewController
:這顯然是WebKit內(nèi)部的常侦,然后就是復(fù)現(xiàn)了浇冰。找到webView中有圖片的地方,各種點(diǎn)擊聋亡,雙擊肘习,長按手勢都試了一遍,最后發(fā)現(xiàn)長按某些圖片的時(shí)候坡倔,會彈出actionSheet
,其中會有保存圖片的功能:
點(diǎn)擊后果然發(fā)生了崩潰漂佩!這是因?yàn)闆]有添加往相冊加入圖片的權(quán)限脖含。
總結(jié):
在iOS13中,長按圖片會彈出上圖所示的菜單欄投蝉,此時(shí)查看視圖層級养葵,發(fā)現(xiàn)就是WKImagePreviewController
。在iOS13以下瘩缆,長按會彈出系統(tǒng)ActionSheet
关拒,此時(shí)就是WKActionSheet
。
解決
添加Privacy - Photo Library Additions Usage Description
即可解決庸娱。