2.2 KiB
2.2 KiB
Вопросы для Соннета — почему телефон получает старый APK
Дата: 2026-06-28
Ситуация
Сервер obdai.ru (Ubuntu 24, nginx, 5.172.178.213).
APK собран через ./gradlew :raw:clean :raw:assembleDebug, 36/36 tasks fresh.
Проверено:
aapt dump badging→ versionCode=6, versionName=0.2.2-dev ✅curl -sI https://obdai.ru/static/elm-raw-v022.apk→ 200 OK, 3726961 bytes ✅- Файл переименован: elm-raw-v022.apk (абсолютно новое имя, не могло быть в кеше)
- Приложение переименовано: app_name = "ELM Relay v2" (strings.xml)
- Страница обновлена: ссылка на /static/elm-raw-v022.apk, текст "Скачать ELM Relay v2"
- nginx reload делался, gunicorn рестартовал
НО: пользователь с Android-телефона скачивает и получает v0.1.1-dev. Приложение на рабочем столе называется "ELM Relay v2", но внутри показывает v0.1.1-dev.
Вопросы
- Может ли Android (Google Play Protect / Verify Apps) подменять APK при установке на старую версию из кеша?
- Может ли nginx кешировать файлы, несмотря на
alias? Нужен лиexpires -1илиadd_header Cache-Control "no-cache"? - Может ли
curlи браузер телефона видеть РАЗНЫЕ файлы из-за Cloudflare/CDN/прокси провайдера? Как проверить? - Может ли
wgetилиcurlс сервера через внешний IP показать, что отдаётся НЕ тот файл? - Может ли Android Download Manager кешировать по имени пакета (ru.elmer.raw), а не по URL?
- Какие ещё механизмы кеширования APK существуют на стороне Android, которые мы не учли?
- Как ПРОВЕРИТЬ на сервере, что по HTTP реально отдаётся правильный файл, а не старый — поMD5 или размеру?