今是昨非

今是昨非

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

iOS14対応でクリップボードを使用しているSDKを検索する

iOS14 适配:どの SDK がクリップボードを使用しているかを検索する方法#

背景#

iOS14 のパブリックベータ版がリリースされた後、私たちのアプリでバックグラウンドから起動するとクリップボードの読み取りのプロンプトが表示されるようになりました。セキュリティ要件を確認するために、アプリをグローバルに検索しましたが、クリップボードを読み取るコードは見つかりませんでした。第三者の SDK の問題である可能性が高いですが、プロジェクトには 10 以上のサードパーティの SDK が統合されており、それぞれを個別に確認して削除するのは非常に手間がかかります。

数日間頭を悩ませた後、頼りになる V 友とグループのメンバーに助けを求め、良い方法を見つけました。

  • ステップ 1:Xcode のシンボリックブレークポイントを使用して、[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

このクラスは Alipay の SDK であることがわかります。その後、SDK を削除した後、再現手順が正常に動作するかどうかを確認し、他の SDK でも同様の呼び出しがあるかどうかを確認します。

参考#

请教一下大家,关于 iOS14 读取剪切板的问题

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。