旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

破損した Application Cache が保存されると詰む

2014年2月23日

iPhoneにて、「アプリケーションキャッシュを更新中に、ホームボタンを押してアプリを強制終了」という操作を行ったところ、破損した画像が App Cache へ正常終了として保存されるという状態になりました。

JavaScript からキャッシュを強制削除する手段がないため、正しい画像に直すには

  • 次アップデートで manifest.appcache が更新されるのをユーザーに待ってもらう
  • ユーザーにアプリを再インストールしてもらう
  • ユーザーにブラウザや設定を手動操作して、キャッシュを消してもらう(iOSは不可)

と、上記のようなユーザー側での対応しか残されていません。
サービス提供側にできることは無いので、詰みです。

この状態になることを、先ほど初めて知りました。
その筋では有名な話だったようですね・・・。

現実的な対応

JSファイルが壊れたら起動すら出来なくなります。
なので、何か裏ワザ的にJSから更新する手段があってもダメです。

ブラウザや設定による手動削除は、残念ながら iOS の WebView がこれをすることが出来ないのでこれもNGです。

ということで、再インストールをお願いする以外に方法はなさそうです。
ゲームなら、データはサーバサイドにも保存するなど、それ前提の作りにしないとやばいです。
(そして、先にリリースしたゲームはその状態です・・・。)

「アップデートを待ってもらう」は論外ですわよね。

ちなみに update/swapCache は

アプリ側は、正しい状態として保存が終わっている認識なので、update しても updateready にはならず、swapCache してもキャッシュがないよエラーになるだけです。