╔══════════════════════════════════════════════════════════════════════════════╗ ║ 📦 ШПАРГАЛКА: ДОБАВЛЕНИЕ ОБНОВЛЕНИЙ ║ ╚══════════════════════════════════════════════════════════════════════════════╝ ┌─ 1️⃣ СОБЕРИТЕ ПРИЛОЖЕНИЕ ──────────────────────────────────────────────────┐ │ │ │ 🤖 Android: │ │ flutter build apk --release │ │ → build/app/outputs/flutter-apk/app-release.apk │ │ │ │ 🪟 Windows: │ │ flutter build windows --release │ │ → Создайте инсталлятор (Inno Setup, MSIX) │ │ │ │ 🍎 iOS: │ │ flutter build ipa --release │ │ → build/ios/ipa/*.ipa (требуется Apple Developer) │ │ │ │ 🐧 Linux: │ │ flutter build linux --release │ │ → Упакуйте в AppImage │ │ │ │ 🖥️ macOS: │ │ flutter build macos --release │ │ → Создайте DMG образ │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 2️⃣ СКОПИРУЙТЕ ФАЙЛЫ В ПАПКИ ────────────────────────────────────────────┐ │ │ │ update-server/downloads/ │ │ ├── android/umbrix-2.5.8.apk ← APK файл │ │ ├── windows/umbrix-2.5.8-setup.exe ← EXE инсталлятор │ │ ├── ios/umbrix-2.5.8.ipa ← IPA файл │ │ ├── linux/umbrix-2.5.8.AppImage ← AppImage │ │ └── macos/umbrix-2.5.8.dmg ← DMG образ │ │ │ │ 💡 Совет: Используйте номер версии в имени файла! │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 3️⃣ ЗАГРУЗИТЕ НА СЕРВЕР ─────────────────────────────────────────────────┐ │ │ │ 🔸 Локальная разработка (копирование): │ │ cp build/app/outputs/flutter-apk/app-release.apk \ │ │ update-server/downloads/android/umbrix-2.5.8.apk │ │ │ │ 🔸 Продакшен сервер (SCP): │ │ scp -r downloads/ user@server.com:/path/to/update-server/ │ │ │ │ 🔸 Через FTP/SFTP: │ │ FileZilla, WinSCP, Cyberduck │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 4️⃣ УКАЖИТЕ URL В ВЕБ-ПАНЕЛИ ────────────────────────────────────────────┐ │ │ │ 🌐 Откройте: http://localhost:8000/admin/ │ │ │ │ 📝 Заполните форму: │ │ • Версия: 2.5.8 │ │ • Build Number: 258 │ │ • URL: https://your-server.com/downloads/android/umbrix-2.5.8.apk │ │ • Описание: Что нового в версии │ │ │ │ 💾 Нажмите "Сохранить обновление" │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 📋 ПРИМЕРЫ URL ДЛЯ РАЗНЫХ ПЛАТФОРМ ──────────────────────────────────────┐ │ │ │ 🤖 Android: │ │ https://api.umbrix.net/downloads/android/umbrix-2.5.8.apk │ │ │ │ 🪟 Windows: │ │ https://api.umbrix.net/downloads/windows/umbrix-2.5.8-setup.exe │ │ │ │ 🍎 iOS: │ │ https://api.umbrix.net/downloads/ios/umbrix-2.5.8.ipa │ │ │ │ 🐧 Linux: │ │ https://api.umbrix.net/downloads/linux/umbrix-2.5.8.AppImage │ │ │ │ 🖥️ macOS: │ │ https://api.umbrix.net/downloads/macos/umbrix-2.5.8.dmg │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ ⚡ БЫСТРЫЙ СТАРТ ──────────────────────────────────────────────────────────┐ │ │ │ # 1. Соберите APK │ │ flutter build apk --release │ │ │ │ # 2. Скопируйте файл │ │ cp build/app/outputs/flutter-apk/app-release.apk \ │ │ update-server/downloads/android/umbrix-2.5.8.apk │ │ │ │ # 3. Откройте веб-панель │ │ xdg-open http://localhost:8000/admin/ │ │ │ │ # 4. Заполните форму и сохраните! │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 🔒 ВАЖНО ДЛЯ ПРОДАКШЕНА ──────────────────────────────────────────────────┐ │ │ │ ✓ Используйте HTTPS (обязательно!) │ │ ✓ Настройте CORS правильно │ │ ✓ Ограничьте доступ к /admin/ │ │ ✓ Делайте бэкапы (автоматические) │ │ ✓ Храните 2-3 последние версии │ │ ✓ Тестируйте перед публикацией │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌─ 📊 ТИПИЧНЫЕ РАЗМЕРЫ ФАЙЛОВ ───────────────────────────────────────────────┐ │ │ │ Android APK: 30-70 MB (обычно 40-60 MB с Flutter) │ │ Windows EXE: 50-100 MB │ │ iOS IPA: 50-80 MB │ │ Linux AppImage: 70-120 MB │ │ macOS DMG: 60-100 MB │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ ╔══════════════════════════════════════════════════════════════════════════════╗ ║ 💡 Подробнее: update-server/downloads/README.md ║ ╚══════════════════════════════════════════════════════════════════════════════╝