今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

iOS14適配一查找哪些SDK使用剪切板

尋找哪些 SDK 在 iOS14 上使用剪貼簿的適配#

背景#

在 iOS14 公測版發布後,我們的應用程式在從背景喚醒時彈出了讀取剪貼簿的提示,為了滿足安全要求,我們迫切需要查找原因。我們在應用程式中進行全局搜索,發現並沒有使用剪貼簿的程式碼,這讓我們感到非常困惑,只能怪罪於第三方 SDK 了。但是,我們的項目集成了十幾個第三方 SDK,逐一排查和刪除的話,如果兩個 SDK 都有這個問題,組合的可能性就太多了。

我頭痛了好幾天,向萬能的 V 友和群友求助,最終找到了一個好方法

  • 步驟 1:使用 Xcode 的 Symbolic breakpoint,對 [UIPasteboard generalPasteboard] 進行調試,按照重現步驟,例如,我們的應用程式是從背景喚醒時彈出這個提示,就設置斷點,然後執行這個流程。

Screen Shot 2020-07-12 at 11.30.17 AM.png

Screen Shot 2020-07-12 at 11.30.42 AM.png

  • 步驟 2:斷點會停在調用該方法的地方,然後向上下查看,如果還不能確定是哪個 SDK 的話,就逐步執行幾步,然後就會出現調用方

0317730D3162C939A663AE043F366D05.png

Screen Shot 2020-07-12 at 10.49.52 AM.png

  • 步驟 3:當具體的調用類暴露出來後,如何確定這是哪個 SDK 呢?
    在項目目錄中使用以下命令(來自群友的幫助):
find . -type f | grep -e ".framework" | xargs grep -s UIPasteboard
find . -type f | grep -e ".a" | xargs grep -s AUPasteboard

然後會出現
WeChatcd3553691c3162a7f264d943c75906c6.png

可以看到這個類是支付寶支付的 SDK,然後刪除 SDK 後,先檢查是否能夠重現問題,如果不能,則重複這個流程,確認是否還有其他 SDK 也有這樣的調用。

參考#

請教一下大家,關於 iOS14 讀取剪貼簿的問題

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。