iPhoneのアイコンが更新されない理由|Safariが保持する“影キャッシュ”の正体を徹底解説

iPhoneでホーム画面アイコンが更新されない原因は、通常のキャッシュとは別にSafariが保持する“影キャッシュ”にあります。表示が変わらない理由と正しい更新方法をわかりやすく解説します。

目次

「アイコン画像を変えたのに、ホーム画面では昔のまま…」 「何回追加しても同じアイコンが出てくる…」 iPhoneでホーム画面アイコンが“更新されない”問題は、多くのユーザーがつまずくポイントです。

その原因は、通常のキャッシュとは別に存在する Safari の “影キャッシュ(Shadow Cache)” にあります。

この記事では、開発者視点で 影キャッシュの仕組み・更新されない理由・回避策・OJappが採用している対処 まで、わかりやすく解説します。

結論:iOSは「古いアイコンを別枠で保存」している

iOSのホーム追加(Web Clip)は、Safariの通常キャッシュとは別に アイコン専用のキャッシュ領域を持っています。

これが “影キャッシュ” の正体で、特徴は以下の通りです。

つまり “一度でもホーム画面に追加されたアイコンは、別保存される” のです。

影キャッシュはどこで発動する?

Safariは、ホーム画面追加用に apple-touch-icon または manifest.json の icons を探索します。

この時、以下のデータが “影キャッシュ” に保存されます。

そのため、URLがまったく同じアイコン画像を置き続けていると、 iOS は「これは昔と同じ画像だな」と判断し、 キャッシュされた古いアイコンを出し続けます。

なぜ通常キャッシュと別枠なのか?

理由は Apple の思想にあります。

ホーム画面に置くアイコンは アプリと同じ扱い のため、 ブラウザのキャッシュと同じように扱うと、

このような問題を避けるために、 「一度保存したら固定する」 という方針が採用されています。

影キャッシュが発動すると起きる現象

実際、OJapp の開発中にもかなりの頻度で発生しました…。

影キャッシュを“強制更新”させる方法

1. 画像URLを変える(最強)

iOS は URL で画像の同一性を判断しているため、 URLが変われば影キャッシュは無効化されます。

例:

Text
/icon.png  
/icon.png?v=2  
/icon-2026.png  

このようにファイル名またはパラメータを変えるのがもっとも確実。

2. Web Clip(ホーム追加アイコン)を削除 → 再追加する

これも有効ですが、ユーザー操作が必要なのが弱点。

3. 数日〜数時間待つ(非推奨)

iOSが自動で影キャッシュを破棄することがありますが、 タイミングは完全にランダムなので現実的ではありません。

OJappはどう対策している?

OJapp はアイコン更新問題を避けるために、 “毎回ユニークな画像パスを生成する仕組み” を採用しています。

例:

Text
https://cdn.ojapp.app/icon/abc123.png
https://cdn.ojapp.app/icon/xyz987.png

これにより iOS が同じ画像だと誤認するのを防ぎ、 ユーザーが作ったアイコンが必ず最新の状態で保存されるようになっています。

開発者向け:影キャッシュが発生しやすいパターン

特に CDNキャッシュ × 影キャッシュ のコンボは地獄… OJapp も初期はここで苦しみました。

まとめ:アイコン問題の犯人は “影キャッシュ”

iPhoneのホーム画面アイコンが更新されない理由は、 「Safariがアイコンを特別扱いしているから」 です。

仕組みさえ理解すれば、挙動は完全にコントロールできます。

JavaScriptは意外と自由じゃない?初心者が誤解しがちな「1つの動作に1つのJS」の本質

「JavaScriptはなんでもできる」と思われがちですが、実際は“1つの機能に対して1つの処理を書く”必要があります。自由に見えて自由ではないJSの特徴を初心者向けにわかりやすく解説します。

おじゃち

OJapp代表 WPプラグインPWAマーケティング・OnePage.OneApp.(1P1A)・ホーム画面名刺&SNSのPetal・その他OJappToolsなどを開発。PWA・ホーム画面・Safari挙動・軽量Web体験を中心に、実験しながらWebアプリを開発しています。

← 記事一覧へ戻る