iOS14適配一查找那些SDK使用剪切板
背景活翩,iOS14公測版發(fā)出之后,我們app出現(xiàn)了從后臺喚起會彈出 讀取剪切板的 提示万栅,安全要求要趕緊查匪补,全局搜索了我們APP伞辛,發(fā)現(xiàn)并沒有讀取剪切板的代碼,比竇娥還冤夯缺,只能是第三方SDK的問題了始锚,但是項目里集成了十幾個第三方SDK,一個個排查刪除喳逛,萬一兩個SDK都有,這個排列組合可能性就太多了棵里。
腦殼疼了好幾天润文,求助萬能的V友和群友姐呐,然后找到了好的辦法
- 步驟1: 用Xcode的Symbolic breakpoint,調(diào)試[UIPasteboard generalPasteboard]典蝌,按照重現(xiàn)步驟曙砂,例如,我們APP是從后臺喚起來會有這個提示骏掀,就打斷點鸠澈,然后走這個流程。
Screen Shot 2020-07-12 at 11.30.17 AM.png
Screen Shot 2020-07-12 at 11.30.42 AM.png
- 步驟2: 斷點會停在調(diào)用到這個方法的地方截驮,然后上下查看笑陈,如果還不能確認是哪個SDK的話,就單步向下走幾步葵袭,然后就會出現(xiàn)調(diào)用方
0317730D3162C939A663AE043F366D05.png
Screen Shot 2020-07-12 at 10.49.52 AM.png
- 步驟3:具體調(diào)用的類已經(jīng)暴露了之后涵妥,怎么確定這是哪個SDK的呢?
在工程目錄中使用命令(來自群友的幫助):
find . -type f | grep -e ".framework" | xargs grep -s UIPasteboard
find . -type f | grep -e ".a" | xargs grep -s AUPasteboard
然后會出現(xiàn)
WeChatcd3553691c3162a7f264d943c75906c6.png
可以看到這個類是支付寶支付的SDK坡锡,然后刪除SDK后蓬网,先看復(fù)現(xiàn)步驟好了沒,如果沒有好鹉勒,再重復(fù)這個流程帆锋,確認還有沒有別的SDK也有這么調(diào)用的就可以了。