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-04-25中級

Rork でアプリアイコンを変更したのに反映されない時の対処法

Rork でアプリアイコンを差し替えたのに古いアイコンが残る — iOS のアイコンキャッシュ、EAS Build のビルドキャッシュ、Android のアダプティブアイコン未設定など、原因別に確実な対処法をまとめました。

Rork515App Icon2Expo149EAS Build14トラブルシューティング77iOS108Android43

Rork でアプリのブランドを刷新しようと新しいアイコンを差し替えたのに、ビルドして実機やシミュレータで開いても古いアイコンのままになっている — これは Rork で開発を続けていると、ほぼ全員が一度はぶつかる症状です。私自身、新しいアプリをリリースする度にこの落とし穴に何度も足を取られてきました。

厄介なのは、アイコンが更新されない原因が複数のレイヤーに分散していることです。Expo の設定、EAS Build のキャッシュ、iOS の SpringBoard キャッシュ、Android のアダプティブアイコン未対応など、どれか一つでも引っかかると古いアイコンが残り続けます。ここでは原因のレイヤーごとに「まず試すこと」と「それでもダメなときの最終手段」を整理してお届けします。

症状の切り分け — どのレイヤーで止まっているか確認する

闇雲に対処する前に、現象がどのレイヤーで起きているのかを切り分けると最短で解決できます。

  • シミュレータでは新アイコンが出るが、実機では古い → デバイス側のキャッシュ問題
  • EAS Build でビルドした成果物にも古いアイコンが入っている → ビルドキャッシュまたは app.json の設定ミス
  • iOS は新しくなったが Android が古いまま → アダプティブアイコンの未設定
  • EAS Update(OTA)した瞬間からアイコンが消えた → そもそも OTA ではアイコンは差し替えられません(後述)

最初の30秒でこの切り分けをするだけで、続く作業の方向性が大きく変わります。

まず試すべき基本対処(70% はこれで解決します)

経験上、アイコン更新トラブルの大半は次の3ステップで解消します。

# 1. アプリを完全削除して再インストール
# iOS シミュレータの場合
xcrun simctl uninstall booted com.example.yourapp
# Android エミュレータの場合
adb uninstall com.example.yourapp
 
# 2. EAS Build のキャッシュをクリアして再ビルド
eas build --platform ios --clear-cache --profile preview
eas build --platform android --clear-cache --profile preview
 
# 3. ローカルでプレビルドする場合は --clean を付ける
npx expo prebuild --clean

期待する結果は、--clear-cache を付けたビルドが完了したあとに新インストールしたアプリに新しいアイコンが反映されていることです。シミュレータの場合は「Device → Erase All Content and Settings」でクリーンな状態に戻すのも有効です。

特に iOS の SpringBoard はアイコンを驚くほど執拗にキャッシュするため、アプリをアンインストールしてもアイコン画像が残ることがあります。その場合はデバイスの再起動が一番確実です。

app.json / app.config.js の正しい書き方

Rork が生成するプロジェクトでも、アイコン関連の設定は標準的な Expo の流儀に従います。設定漏れはここで起きやすいので、現在の状態を必ず確認してください。

{
  "expo": {
    "name": "Your App",
    "icon": "./assets/icon.png",
    "ios": {
      "icon": "./assets/icon-ios.png",
      "bundleIdentifier": "com.example.yourapp"
    },
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon-foreground.png",
        "backgroundColor": "#FFFFFF"
      },
      "package": "com.example.yourapp"
    }
  }
}

ここで重要なのは、Android の adaptiveIcon省略しないことです。adaptiveIcon を設定していないと、Android 8.0 以降の端末では Expo のデフォルトアイコンが使われ続けることがあります。foregroundImage は 1024×1024 のうち中央 66% にロゴを配置するのが安全です(端末によっては円形・角丸・しずく型など様々な形状にマスクされるため、外周 17% は安全領域として空けておくのが鉄則です)。

iOS 固有の罠 — SpringBoard と TestFlight のキャッシュ

iOS には開発者を泣かせるアイコンキャッシュが2層あります。

  1. SpringBoard のキャッシュ: ホーム画面に表示されるアイコンは SpringBoard が独立してキャッシュしています。アプリを削除してもアイコン画像のキャッシュが残ることがあるため、デバイスの再起動が必要です。
  2. TestFlight のキャッシュ: TestFlight でビルドを配信したあと、アイコンが古いまま見えることがあります。これは TestFlight アプリ側のキャッシュで、TestFlight アプリ自体を一度削除して入れ直すと解消します。

App Store 提出版でもこの問題は起きます。新しいバージョンが公開されてもしばらく古いアイコンが見えることがありますが、これは Apple 側の CDN キャッシュなので時間が解決します(最長で24時間ほど)。リジェクト関連の対処はアプリストア審査リジェクト時の対処法にまとめていますので、合わせて確認してみてください。

Android 固有の罠 — アダプティブアイコンと密度バリアント

Android のアイコン更新で詰まる場合、原因のほぼすべてはアダプティブアイコンです。

  • foregroundImage だけ更新して backgroundColor を変えていない: Android 8.0+ では両方を組み合わせて表示されるため、片方だけだと違和感が残ります。
  • モノクロアイコン(monochromeImage)を未設定: Android 13+ のテーマアイコン機能に対応するには別画像が必要です。
  • 古い mipmap-* ディレクトリの画像が混在している: npx expo prebuild --cleanandroid/ ディレクトリを再生成するのが確実です。

参考までに、私はアダプティブアイコンの画像生成に Figma のテンプレートを使っています。「safe zone」と書かれた円形ガイドが描かれたフレームに合わせるだけで、どんな端末形状でも見切れない画像が一発で作れます。

EAS Update(OTA)ではアイコンは更新されません

これは見落としがちな仕様ですが、EAS Update(旧 expo-updates)では JavaScript バンドルとアセットの一部しか配信されず、アイコン・スプラッシュスクリーン・ネイティブモジュールは配信対象外です。アイコンを変更したら必ず新しいネイティブビルドが必要です。

「OTA を流したのに反映されない」と悩んでいる場合、まず eas build で新規ビルドしているかを確認してください。EAS Update の挙動についてはEAS Update(OTA)アップデートの実装ガイドで詳しく扱っていますので、合わせて読むと挙動が腑に落ちると思います。

それでも反映されない時の最終手段

ここまで試して反映されない場合は、ネイティブビルドの深いキャッシュを疑います。

# iOS: Xcode の DerivedData を削除
rm -rf ~/Library/Developer/Xcode/DerivedData
 
# Android: Gradle のキャッシュを削除
cd android && ./gradlew clean && cd ..
 
# 念のため node_modules も再構築
rm -rf node_modules ios android
npm install
npx expo prebuild --clean
 
# その上で再ビルド
eas build --platform all --clear-cache

ここまでやれば、ほぼ確実に新しいアイコンが反映されます。スプラッシュスクリーンが白く点滅して気になっている方は、スプラッシュスクリーンの白フラッシュ問題の対処法も参考になるかもしれません。


アイコン更新は地味なテーマですが、ここでつまずくと App Store Connect への提出が遅れてしまい、リリーススケジュールに直接響きます。今日この記事を読んだら、ご自身のプロジェクトの app.json を一度開いて、adaptiveIcon がきちんと設定されているか確認してみてください。それだけで、次回のアイコン差し替えがぐっとスムーズになるはずです。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-05-01
Rork で EAS Update を配信したのに反映されない — 原因を切り分ける5つの典型パターン
Rork で EAS Update を publish したのにアプリ側に反映されない、というのは慣れていてもうっかり詰まるトラブルです。よくある5つの原因と、ターミナルで5分以内に切り分ける手順を実例ベースで紹介します。
開発ツール2026-05-21
RorkでビルドしたiOSアプリがTestFlightで「ITMS-90683」拒否される — Info.plistの使用目的文字列の埋め方
Rork書き出しのiOSアプリをApp Store Connectに提出した直後、メールで「ITMS-90683: Missing Purpose String in Info.plist」を受け取る現象について、原因とapp.jsonからの恒久的な修正手順を、12年間の個人開発で繰り返しハマってきた立場から具体的に説明します。
開発ツール2026-05-03
Rork書き出しiOSプロジェクトの「pod install」が止まる — Apple Silicon時代の現実的な直し方
Rorkで生成したiOSプロジェクトのpod installが失敗する原因を、Apple Silicon Mac特有のRubyアーキテクチャ問題、CocoaPodsバージョン競合、Hermes/Folly関連の落とし穴まで具体的に解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →