【React Native × Expo】「Expo pasted from Expo」、「Expo pasted from CoreSimulator」という通知メッセージを削除したい


エラー内容と原因

エミュレータをiOS14にバージョンアップしたら、
Expo pasted from ExpoExpo pasted from CoreSimulatorという通知メッセージが表示されるようになりました。

調べてみると、どうやらiOS14からClipboardの仕様に変更があったことが原因のようです。

iOS14の新機能としてアプリでコピペした際、
プライバシー機能として「どのアプリからコピーされ、どのアプリに貼り付けたのか」をバナーで通知する機能がが追加されています。

このバグはExpoのbugレポートには上がっており、今後のアップデートで解消されるかもしれません。

対策

今回は応急処置として、通知メッセージを削除する方法について共有します。

Clipboardimportしているファイルを開きます。
import文の下に以下の記述を追加
import {Clipboard} from 'react-native';
// 以下を追加
if (__DEV__) {
Clipboard.setString('');
}
Automatically Sync Pasteboardのチェックを外す

④アプリを再ビルドする

これで、通知メッセージは表示されなくなったと思います。

お疲れ様でした〜☕️☕️☕️

余談

エラー原因を調べる過程で面白いニュースを発見しました。

TikTokがClipboardから無断でテキストを読み取っていることが判明されたそうです。(SmartNewsも?)
真相はわかりませんが、TikTok側は指摘を受けて、機能を廃止したとのこと。

Engadgetのニュース記事