# Вопросы для Соннета — почему телефон получает старый 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. ## Вопросы 1. Может ли Android (Google Play Protect / Verify Apps) подменять APK при установке на старую версию из кеша? 2. Может ли nginx кешировать файлы, несмотря на `alias`? Нужен ли `expires -1` или `add_header Cache-Control "no-cache"`? 3. Может ли `curl` и браузер телефона видеть РАЗНЫЕ файлы из-за Cloudflare/CDN/прокси провайдера? Как проверить? 4. Может ли `wget` или `curl` с сервера через внешний IP показать, что отдаётся НЕ тот файл? 5. Может ли Android Download Manager кешировать по имени пакета (ru.elmer.raw), а не по URL? 6. Какие ещё механизмы кеширования APK существуют на стороне Android, которые мы не учли? 7. Как ПРОВЕРИТЬ на сервере, что по HTTP реально отдаётся правильный файл, а не старый — поMD5 или размеру?