Files
umbrix/update-server/TESTING.md
Umbrix Developer 76a374950f feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
2026-01-17 13:09:20 +03:00

6.3 KiB
Raw Permalink Blame History

🎯 Тестирование обновлений в эмуляторе

Как проверить систему обновлений

Подготовка (разовая настройка)

  1. Запустите эмулятор:

    flutter emulators --launch UmbrixTest
    
  2. Установите текущую версию:

    flutter run
    
  3. Настройте тестовый сервер (выберите один из вариантов):

Вариант А: Локальный PHP сервер (проще)

# Перейдите в папку с сервером
cd update-server

# Запустите встроенный PHP сервер
php -S localhost:8000

# Сервер будет доступен по адресу: http://localhost:8000

Затем в constants.dart укажите:

static const customUpdateServerUrl = "http://10.0.2.2:8000/api.php";
// 10.0.2.2 - это localhost для Android эмулятора
static const useCustomUpdateServer = true;

Вариант Б: Ngrok (если нужен HTTPS)

# В одном терминале запустите PHP
cd update-server
php -S localhost:8000

# В другом терминале запустите ngrok
ngrok http 8000

# Скопируйте HTTPS URL (например: https://abc123.ngrok.io)

Затем в constants.dart:

static const customUpdateServerUrl = "https://abc123.ngrok.io/api.php";
static const useCustomUpdateServer = true;

Тестирование обновления

1. Установите старую версию

В pubspec.yaml установите версию 2.5.6:

version: 2.5.6+256

Пересоберите и установите:

flutter build apk --release
flutter install

2. Настройте сервер на новую версию

Отредактируйте update-server/latest.json:

{
  "version": "2.5.7",
  "build_number": "257",
  "download_url": "http://10.0.2.2:8000/downloads/umbrix-2.5.7.apk"
}

3. Создайте APK новой версии

Вернитесь к версии 2.5.7 в pubspec.yaml:

version: 2.5.7+257

Соберите APK:

flutter build apk --release

Скопируйте APK в папку downloads:

cp build/app/outputs/flutter-apk/app-release.apk \
   update-server/downloads/umbrix-2.5.7.apk

4. Проверьте обновление

  1. Откройте приложение (версия 2.5.6)
  2. Зайдите в Настройки → О программе
  3. Нажмите "Проверить обновления"
  4. Должно появиться окно с предложением обновиться до 2.5.7
  5. Нажмите "Обновить сейчас"
  6. Скачается и установится новая версия

Отладка

Проверить API в браузере:

# Если используете локальный сервер
curl http://localhost:8000/api.php

# Должны увидеть JSON:
{
  "version": "2.5.7",
  "build_number": "257",
  ...
}

Проверить из эмулятора:

# Подключитесь к эмулятору через adb
adb shell

# Проверьте доступность сервера
curl http://10.0.2.2:8000/api.php

Смотреть логи приложения:

adb logcat | grep -i "update\|umbrix"

Частые проблемы

Проблема: "Не удается подключиться к серверу"

Решение:

  • Используйте 10.0.2.2 вместо localhost для эмулятора
  • Проверьте, что PHP сервер запущен
  • Проверьте firewall

Проблема: "Обновление не отображается"

Решение:

  • Убедитесь, что версия в latest.json больше текущей
  • Проверьте useCustomUpdateServer = true в constants.dart
  • Пересоберите приложение после изменения констант

Проблема: "Ошибка при скачивании APK"

Решение:

  • Проверьте, что файл umbrix-2.5.7.apk существует в папке downloads/
  • Проверьте права доступа: chmod 644 umbrix-2.5.7.apk
  • Убедитесь, что URL правильный

Пример полного цикла тестирования

# 1. Запустить PHP сервер
cd update-server
php -S localhost:8000 &

# 2. Изменить версию на старую
sed -i 's/version: 2.5.7/version: 2.5.6/' pubspec.yaml

# 3. Установить старую версию
flutter build apk --release
flutter install

# 4. Вернуть новую версию
sed -i 's/version: 2.5.6/version: 2.5.7/' pubspec.yaml

# 5. Собрать новый APK
flutter build apk --release
cp build/app/outputs/flutter-apk/app-release.apk \
   update-server/downloads/umbrix-2.5.7.apk

# 6. Проверить API
curl http://localhost:8000/api.php

# 7. Открыть приложение и проверить обновления

Готовые команды

Сохраните в test_update.sh:

#!/bin/bash

echo "🚀 Тестирование системы обновлений"

# Запуск PHP сервера
cd update-server
php -S localhost:8000 > /dev/null 2>&1 &
PHP_PID=$!
echo "✅ PHP сервер запущен (PID: $PHP_PID)"

# Ждем запуска
sleep 2

# Проверка API
echo "🔍 Проверка API..."
curl -s http://localhost:8000/api.php | jq .

echo ""
echo "📱 Теперь:"
echo "1. Откройте приложение"
echo "2. Зайдите в Настройки → О программе"
echo "3. Нажмите 'Проверить обновления'"
echo ""
echo "Для остановки сервера: kill $PHP_PID"

Сделайте исполняемым и запустите:

chmod +x test_update.sh
./test_update.sh

Готово! Теперь вы можете полностью протестировать систему обновлений!