22
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOS14でのコピペ内容(UIPasteboard)取得警告について ※Firebase DynamicLinksを導入している場合は要注意!

Last updated at Posted at 2020-07-19

おことわり

この記事は、iOS 14 Beta2 での情報を元に書いています。
バージョンアップなどにより最新の情報と異なっている可能性がありますので、ご注意ください。

前置き

iOS 14 Betaにアプリがコピペ内容を読み取るとOSによって通知される機能が追加されました。
従前にTikTokなど多くのアプリがコピペの内容を読み取っているという指摘がWebニュースで流れていたので、それがトリガーとなって仕様追加されたようですね。

実装ベースで言うと、↓こんな感じのコードを書いている場合。。。

let foo = UIPasteboard.general.string

コードが実行されたタイミングで、OSから警告が表示されます。
Androidのトーストのような感じのバナー表示です。
※betaバージョンのスクリーンショットはAppleのNDA条項によって掲載できません。

文言は、
{値を取得したアプリ名}{値をコピーしたアプリ名})からペースト』
です。
(ベータ時点なので今後変わる可能性が大ですが)

ユーザーに対してペーストボードへアクセスすることを明示しているアプリの場合は問題ないかと思いますが、
そうでないアプリの場合は、
「ペーストボードにアクセスすることをユーザーに明示する」
あるいは
「そもそもペーストボードにアクセスしないようにする」
など、セキュリティ上の懸念を抱かせないようにする対応が必要かと思います。

導入ライブラリに要注意!

ここからがこの記事の本題です。

**「アプリ本体としてはUIPasteboardにアクセスしていなくても、導入ライブラリ内でアクセスしている」**というケースがありそうです。

一例ですが、Firebase DynamicLinksにおいては、
ディープリンクの制御のために従来からUIPasteboardを使っていたらしく、Ver6.28.0以降では修正済みだそうです。
https://firebase.google.com/support/release-notes/ios#dynamic-links
上の警告を出させないためには、Ver6.28.0以降にアップデートして、かつ、info.plistに設定が必要らしいです。
(上のrelease-notes内の記述を参照)

※なお、ペーストボードの取得を無効に設定した場合はディープリンクの制御に制約がある模様です。
【参考】https://github.com/firebase/firebase-ios-sdk/issues/5893#issuecomment-657724741

他にも同じようなライブラリはあると思われ、対応タイミングや方法はまちまちかと思います。
早めにアプリの動作確認、導入ライブラリの調査、ライブラリのバージョンアップの検討などを行っておいた方が無難そうです。

22
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?