RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/開発ツール
開発ツール/2026-09-01中級

expo-paste-input で画像を貼り付けられる入力欄を作り、消える file:// を documents へ逃がす

チャット入力に画像やGIFを貼り付けられるようにする expo-paste-input の実装手順です。onPaste が返す file:// は一時ファイルで、送信までの間に消えることがあります。保存先を移す実装と、実機で確かめる順番をまとめました。

Expo193React Native234expo-file-system画像アップロード3個人開発205

プレミアム記事

スクリーンショットを貼り付けて送れるようにしてほしい、という要望は、チャット画面を持つアプリならほぼ必ず届きます。長らく React Native の TextInput はテキストしか受け取らず、自前でネイティブを書くか諦めるかの二択でした。

8月末に公開された expo-paste-input は、その二択の外側に道を作ったモジュールです。手元で組み込んでみたところ、貼り付け自体は驚くほど素直に動きました。詰まったのはその先です。貼り付けた直後は表示できるのに、少し時間を置いてから送信すると画像が届かないことがある。原因は、モジュールが返す file:// が何であるかを私が読み違えていたことでした。

この記事は、その読み違えを塞ぐところまでを含めた実装の記録です。

expo- で始まりますが、Expo SDK のモジュールではありません

最初に押さえておきたいのは、このモジュールの出どころです。

expo-paste-inputarunabhverma/expo-paste-input で公開されている MIT ライセンスのコミュニティ製モジュールで、Expo チームが提供する SDK の一部ではありません。Expo Modules API で書かれているため npx expo install expo-paste-input で入りますし、名前も expo- で始まります。この2つが揃うと、公式パッケージだと思い込みやすい構造になっています。

これは品質の話ではありません。サポートの主体が誰かという話です。SDK のバージョンが上がったときに追随してくれるのは Expo チームではなく、個人のメンテナです。個人開発でこの手のモジュールを本番に入れるかどうかを決めるとき、私は「壊れたときに自分で直せる範囲か」を判断の軸にしています。このモジュールは iOS と Android のネイティブ実装が数百行の規模で、貼り付けイベントを横取りして一時ファイルに書き出すという単一の責務しか持っていません。読める大きさです。だから採用しました。

逆に言えば、読まずに入れると、SDK 更新のたびに原因の分からないビルド失敗を抱えることになります。

入れた時点で、プレビュー中心の開発からは降りることになります

READMEに一行だけ、しかし決定的な注意が書かれています。ネイティブコードを含むため再ビルドが必要で、Expo Go では動きません。

# インストール
npx expo install expo-paste-input
 
# ネイティブを含むため、ここまで通して初めて動く
npx expo run:ios
npx expo run:android

Rork で生成したアプリを、プレビューで確認しながら育ててきた場合、この一行の意味は小さくありません。貼り付け機能を足した瞬間から、確認の手段が「プレビューで見る」から「開発ビルドを焼いて実機に入れる」に変わります。1回の確認にかかる時間が数秒から数分に伸びるということです。

私はこの切り替えを、機能単位ではなく時期単位で決めることを好みます。ネイティブモジュールを1つでも入れる予定があるなら、入れる直前ではなく、その週の頭に開発ビルドへ移してしまう。中途半端に両方の環境を行き来する期間が一番事故を生みます。実機確認の入口についてはRork Companion で iPhone 実機テストを始める手順にまとめてありますが、そこから先へ進む判断がここです。

判断の材料を並べておきます。

状況推奨理由
まだ画面構成を試行錯誤している貼り付けは後回し反復速度を落とす投資は、形が決まってから
チャットが主機能で、要望が届いている今すぐ開発ビルドへ移行主機能の欠落は反復速度より重い
ネイティブモジュールがこれ1つだけ移行して問題ない依存が少ないほど再ビルドは安定する
審査提出が今週ある提出後に着手ネイティブ層の変更は提出直前に触らない

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
貼り付け機能を足す前に、プレビュー中心の開発から開発ビルドへ切り替える判断を、自分の状況で下せるようになります
onPaste が返す一時ファイルを送信前に安全な場所へ移す実装を書けるようになり、あとから再現しにくい「画像が消えた」という報告を先回りして防げるようになります
iOS のステッカーと Android のクリップボードで分かれる挙動を、実機で確かめる順番として持てるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-08-17
Expo UI の drop-in 置き換えで、依存が本当に1本減る条件
Expo UI が SDK 56 で安定版になり、コミュニティ製パッケージ8件に drop-in の置き換えが用意されました。import を1行入れ替えても依存が減らない場合があります。減る条件を依存グラフから機械的に判定する手順をまとめました。
開発ツール2026-07-04
「続きを読む」を出すべきか、テキストの実測で決める — Rork(Expo)の折りたたみ表示設計
商品説明やレビュー本文を3行で畳み「続きを読む」を出す実装で、短い文にまでトグルが付いてしまう問題を解決します。onTextLayout で実際の行数を測り、はみ出す時だけトグルを出す設計を、iOS と Android の差、展開アニメーション、文字サイズ拡大への配慮まで動くコードでまとめます。
開発ツール2026-06-27
無料プレビューがスクショで丸ごと持ち出される前に — Rork/Expo でスクリーンショットと画面収録を検知して目隠しする設計
Rork/Expo アプリで有料プレビュー画像をスクリーンショットと画面収録から守る実装。expo-screen-capture の限界、isCaptured のネイティブ監視、iOS/Android の差を踏まえた目隠し設計を解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →