Help us understand the problem. What is going on with this article?

[Unity開発] ダウンロードデータ、AssetBundle、などのキャッシュ問題切り分けまとめ

More than 1 year has passed since last update.

概要

最新のサーバーを使用するスマホアプリを開発していてデータが落ちてこねえ、ということありませんか?
僕は最近ありました、アセットバンドルを暗号化していたためキャッシュされたアセットバンドルをダウンロードしたときに壊れている扱いになって何が何だかな状態に。
作成時の不具合なのかまず検討したため原因究明に時間がかかったものの結局キャッシュかよという切ない状況になりました。
ということでデータをダウンロードする場合はデータが悪い場合もありますがキャッシュが原因の場合もあるので開発者は知識として知っておいたほうがいいと思いまとめました。
WWWクラスなどでアセットバンドルや画像データをダウンロードした時に最新のデータではなく古いデータになっていることがあります。
この問題はアプリ側(OS)側のキャッシュとサーバー側のキャッシュの可能性があります。

アプリ側のキャッシュ

アプリ側のキャッシュはWWWクラス(新しい方のAPIはちょっとわからないです)がOSのAPIしているためにダウンロードデータをキャッシュしているために起こります、Unityのキャッシュとは別なので注意が必要です。
回避策としては以下の公式リンクを参考にしてください。

https://helpdesk.unity3d.co.jp/hc/ja/articles/204488864-WWW-がキャッシュされるのを防ぐ
https://qiita.com/tempura/items/75a429507c6d32bf8f46

サーバ側のキャッシュ

サーバー側のキャッシュはサーバークライアント型のアプリを開発している場合は注意してください。
Webの開発でもよく起きているらしく、ファイルの更新が検出できないような構成だと起こるらしいです。
回避策としてはwebサーバの設定ファイルでキャッシュしないような設定にして
webサーバーを立ち上げ直す必要があるみたいです。

https://qiita.com/sugiii8/items/233e88aa26f00b290f38
https://qiita.com/itsumoonazicode/items/ad5c8017e9285868547e

まとめ

意外とアプリ開発をしていてサーバのキャッシュの問題であった場合は検索してもうまくヒットせず調べることが難しかったです。
データダウンロードを行うようなアプリを開発するときはキャッシュが問題になる場合があるの知っていれば問題が起きた時に原因特定の時間が短縮できるはずです。
同じ問題当たってしまった人の役に立てればと嬉しいです。
何か間違いがあればコメントください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした