尋找哪些 SDK 在 iOS14 上使用剪貼簿的適配#
背景#
在 iOS14 公測版發布後,我們的應用程式在從背景喚醒時彈出了讀取剪貼簿的提示,為了滿足安全要求,我們迫切需要查找原因。我們在應用程式中進行全局搜索,發現並沒有使用剪貼簿的程式碼,這讓我們感到非常困惑,只能怪罪於第三方 SDK 了。但是,我們的項目集成了十幾個第三方 SDK,逐一排查和刪除的話,如果兩個 SDK 都有這個問題,組合的可能性就太多了。
我頭痛了好幾天,向萬能的 V 友和群友求助,最終找到了一個好方法
- 步驟 1:使用 Xcode 的 Symbolic breakpoint,對 [UIPasteboard generalPasteboard] 進行調試,按照重現步驟,例如,我們的應用程式是從背景喚醒時彈出這個提示,就設置斷點,然後執行這個流程。
- 步驟 2:斷點會停在調用該方法的地方,然後向上下查看,如果還不能確定是哪個 SDK 的話,就逐步執行幾步,然後就會出現調用方
- 步驟 3:當具體的調用類暴露出來後,如何確定這是哪個 SDK 呢?
在項目目錄中使用以下命令(來自群友的幫助):
find . -type f | grep -e ".framework" | xargs grep -s UIPasteboard
find . -type f | grep -e ".a" | xargs grep -s AUPasteboard
然後會出現
可以看到這個類是支付寶支付的 SDK,然後刪除 SDK 後,先檢查是否能夠重現問題,如果不能,則重複這個流程,確認是否還有其他 SDK 也有這樣的調用。