RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-06-21上級

Rork で作ったアプリの「写真に保存」が一部の端末だけ失敗する——expo-media-library の権限スコープと保存設計

Rork で生成したアプリの画像保存機能が、自分の端末では動くのに一部のユーザーだけ失敗する——その正体は expo-media-library の権限スコープです。writeOnly 権限・iOS の限定アクセス・Android 14 の部分許可を踏まえた、保存処理とアルバム設計の実装手順をまとめます。

expo-media-library3権限7React Native209Rork515画像保存

プレミアム記事

自分の iPhone では一度も失敗しないのに、レビューには「保存できません」と書かれる

個人開発で壁紙アプリをいくつか運用していると、ときどき不思議なレビューが届きます。「ボタンを押しても写真アプリに何も入りません」というものです。自分の手元の端末では、開発中も審査前も一度として失敗しません。にもかかわらず、星1つと一緒に「保存できない」という声だけが少しずつ積み上がっていきます。

原因を実機で追っていくと、たいていは画像ダウンロードの失敗でも、ストレージ不足でもありませんでした。expo-media-library権限スコープが、端末の OS バージョンや、ユーザーが過去に一度押した許可ダイアログの選択によって、自分の想定と違う状態になっていたのです。

このすれ違いが厄介なのは、開発者の端末で再現しにくいことです。多くの開発者は最初の起動で「すべての写真へのアクセスを許可」を選んでいて、その後ずっとフルアクセスのまま開発を続けます。一方で実ユーザーの中には「選択した写真のみ」を選んだ人、Android 14 で「一部のみ許可」を選んだ人、そもそも保存だけしたいのに読み取り権限まで要求されて不信感から拒否した人が混ざっています。ここでは、この保存だけのための権限を正しく設計し、端末差を吸収する保存フローを組む手順を共有します。

なぜ端末によって保存の成否が変わるのか

expo-media-library の許可は、単純な「許可/拒否」の二択ではありません。OS ごとに段階があり、しかもその段階は年々細かくなっています。

iOS は写真ライブラリへのアクセスを4つの状態で持っています。フルアクセス、限定アクセス(ユーザーが選んだ写真だけ見える)、拒否、そして「追加のみ(add-only)」です。最後の追加のみは、保存はできるが既存の写真は一切読めない、という保存専用の権限です。これが今回の鍵になります。

Android はさらにバージョンで分岐します。Android 12 以前は WRITE_EXTERNAL_STORAGE、Android 13 は READ_MEDIA_IMAGES、Android 14 では「選択した写真のみ」にあたる部分許可(READ_MEDIA_VISUAL_USER_SELECTED)が加わりました。やっかいなのは、MediaStore 経由で自分のアプリが作った画像を Pictures/ 配下に書き込むだけなら、Android 10 以降は読み取り権限が本来は不要だという点です。にもかかわらず、読み取り権限まで一括で要求する実装になっていると、保存しか使わないユーザーにまで重い許可を求めてしまい、拒否率が上がります。

整理すると、保存の成否を分けているのは次の3つの組み合わせです。

要因開発者の典型つまずくユーザー
iOS のアクセス状態フルアクセス限定アクセス / 追加のみ / 拒否
Android のバージョン最新の検証端末Android 13・14 で挙動が変わる
要求している権限の広さ読み書き一括保存だけしたいのに読み取りまで拒否

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

この記事の続きを読む

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

この記事で得られること
自分の端末では保存できるのにレビューで「保存できない」と言われていた人が、端末ごとの権限スコープの違いを切り分けて原因を特定できる
writeOnly 権限・iOS 限定アクセス・Android 14 部分許可に対応した保存処理とアルバム作成のコードを、そのまま自分のアプリに移植できる
権限拒否やアルバム作成失敗を握りつぶさず、ユーザーが自力で復帰できる導線まで含めた保存フローを設計できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-04-23
Rork アプリで画像・動画をカメラロールに保存できない問題の完全解決ガイド
Rork で生成したアプリで画像・動画を iOS のカメラロール/Android のギャラリーに保存できない問題を、権限設定・expo-media-library の仕様・SDK 51+の変更点まで掘り下げて解決していきます。
開発ツール2026-07-15
「、」が行頭に落ちた — Rork が組んだ名言カードと日本語の禁則処理
React Native の Text は日本語の行頭禁則を保証しません。実測した違反率、WORD JOINER による事前結合の実装、onTextLayout での自動監査、Rork Max(SwiftUI)との挙動差までまとめました。
開発ツール2026-07-15
Rorkの癒しアプリにスリープタイマーを付けたら、フェードアウトが実際の音とズレた話
Rorkが生成するスリープタイマーは、壁時計のsetIntervalで音量を下げます。数値上は30分でも、実際の音はもっと早く消えたり不自然に途切れたりします。フェードを再生位置で駆動し直す実装と、対数カーブ・停止処理・画面ロック時の限界までを実運用の視点でまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →