Старая версия двоичного файла Unity WebPlayer загружается из кеша с использованием интеграции Facebook Unity.

Мы находимся в процессе переключения нашей игры с собственной страницы холста на использование интеграции Unity с Facebook. Однако во время наших тестов разработки мы иногда сталкивались с проблемой, когда двоичный файл веб-плеера загружался из кеша браузера, даже если на сервер была загружена более новая версия.

Ручная очистка кеша браузера решает проблему, но это не совсем то решение, которое мы хотим постоянно предлагать нашим пользователям. Раньше, когда мы сами встраивали объект единства, мы также передавали флаг ?version с URL-адресом, который поддерживал бы его в актуальном состоянии, но мы больше не можем этого делать с включенной интеграцией, если только мы вручную не обновим двоичный файл. ссылка на местоположение в настройках нашего приложения каждый раз, когда мы делаем сборку (своего рода боль в заднице, так как остальная часть нашего процесса сборки автоматизирована)

Есть ли способ обойти это? Спасибо.


person timmypowergamer    schedule 07.05.2014    source источник
comment
На данный момент нет другого способа обойти это, кроме как вручную обновить двоичное местоположение.   -  person Brian Jew    schedule 08.05.2014
comment
Справедливо. Спасибо за быстрый ответ. Любая идея, если это то, что может быть решено в будущем?   -  person timmypowergamer    schedule 08.05.2014


Ответы (2)


У нас точно такая же проблема, и я могу сказать, что единственным решением является изменение имени двоичного файла каждый раз, когда вы делаете сборку, но только для вашей производственной среды. Вот наше решение:

  • У нас есть среда разработки (режим песочницы) и производственная среда и по одному приложению для каждого из них.

  • Для разработки мы запускали все локально, у нас есть buildpipeline, который создает и копирует двоичный файл в соответствующее место с тем же именем, всегда таким как MyGame.unity3d, и мы настроили наши браузеры не кэшировать ничего, что решает проблему тестирования.

  • Для производства наш buildpipeline создает двоичное имя с: YourGameNameMainVersion.SubVersion.TimeStamp, например: MyGame0.3.1006-1004.unity3d, и это имя устанавливается вручную на странице настроек приложения facebook в каждой сборке. Но это не большая проблема, так как вы не захотите делать новую сборку более одного/двух раз в день для производства.

person chaosmaker    schedule 11.06.2014
comment
Мы обнаружили, что все, что нужно сделать, это добавить ?version=xxxx (где xxxx — номер нашей последней версии) в конец бинарного URL-адреса, который мы предоставляем Facebook. На самом деле мы вообще не переименовываем двоичный файл. Кажется, этого достаточно, чтобы браузер знал, что это новый файл, и не загружал его из кеша. Как и вам, нам приходится каждый раз обновлять его вручную, но, как вы сказали, обычно вы не слишком часто выполняете производственные сборки, так что это не конец света. - person timmypowergamer; 12.06.2014

Мы обнаружили, что все, что нужно сделать, это добавить "?version=xxxx"

Это работает, и прекрасно. Я делаю сейчас, только изменить версию (?version=1.52) в основной ссылке:

<a href="http://cometoplaynow.com/Labyrinth3D/Labyrinth3D.html?version=1.52">

Имейте преимущества, используя его:

  1. Меняется только 1 номер - ссылка остается прежней (если люди открывают игру с вашего сайта)

  2. Экономия останется прежней (если вы измените .unity3d, вы потеряете PlayerPrefs).

person Marat Zahidylin    schedule 18.11.2014
comment
Проблема с этим методом, как я понял, заключается в том, что он никогда не кэшируется. Он всегда будет получать полный двоичный файл .unity3d из Интернета. Я ошибся ? - person Eyal.K; 02.08.2015