283 lines
9.3 KiB
Markdown
283 lines
9.3 KiB
Markdown
|
|
# ✅ Проверка брендинга Desktop версий (Linux/Windows)
|
|||
|
|
|
|||
|
|
## 🎯 Что проверили:
|
|||
|
|
|
|||
|
|
### 1. **Flutter код (lib/)** ✅
|
|||
|
|
Все упоминания брендинга в Flutter коде уже Umbrix:
|
|||
|
|
|
|||
|
|
#### Левое меню (Drawer)
|
|||
|
|
**Файл:** `lib/features/common/adaptive_root_scaffold.dart` (строки 145-165)
|
|||
|
|
|
|||
|
|
```dart
|
|||
|
|
Container(
|
|||
|
|
padding: const EdgeInsets.symmetric(vertical: 32),
|
|||
|
|
child: Column(
|
|||
|
|
children: [
|
|||
|
|
Container(
|
|||
|
|
width: 80,
|
|||
|
|
height: 80,
|
|||
|
|
decoration: BoxDecoration(
|
|||
|
|
borderRadius: BorderRadius.circular(20),
|
|||
|
|
color: Theme.of(context).colorScheme.primaryContainer,
|
|||
|
|
),
|
|||
|
|
child: Assets.images.umbrixLogo.image( // ← UMBRIX LOGO
|
|||
|
|
fit: BoxFit.contain,
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
const SizedBox(height: 16),
|
|||
|
|
Text(
|
|||
|
|
'Umbrix', // ← UMBRIX NAME
|
|||
|
|
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
|
|||
|
|
fontWeight: FontWeight.bold,
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
],
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Результат:** ✅ Левое меню показывает "Umbrix" + логотип
|
|||
|
|
|
|||
|
|
#### Главная страница
|
|||
|
|
**Файл:** `lib/features/home/widget/home_page.dart` (строка 38)
|
|||
|
|
|
|||
|
|
```dart
|
|||
|
|
NestedAppBar(
|
|||
|
|
title: const Text.rich(
|
|||
|
|
TextSpan(
|
|||
|
|
children: [
|
|||
|
|
TextSpan(text: "Umbrix"), // ← UMBRIX NAME
|
|||
|
|
TextSpan(text: " "),
|
|||
|
|
WidgetSpan(
|
|||
|
|
child: AppVersionLabel(),
|
|||
|
|
alignment: PlaceholderAlignment.middle,
|
|||
|
|
),
|
|||
|
|
],
|
|||
|
|
),
|
|||
|
|
),
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Результат:** ✅ Заголовок показывает "Umbrix 1.7.0 dev"
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. **Linux платформа** ✅ ИСПРАВЛЕНО
|
|||
|
|
|
|||
|
|
#### Изменённые файлы:
|
|||
|
|
|
|||
|
|
**`linux/my_application.cc`:**
|
|||
|
|
```cpp
|
|||
|
|
#define ICON_PATH "./umbrix.png" // Было: ./hiddify.png
|
|||
|
|
|
|||
|
|
gtk_header_bar_set_title(header_bar, "Umbrix"); // Было: Hiddify
|
|||
|
|
gtk_window_set_title(window, "Umbrix"); // Было: Hiddify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Результат:** ✅ Окно Linux приложения теперь "Umbrix"
|
|||
|
|
|
|||
|
|
#### Иконка:
|
|||
|
|
```bash
|
|||
|
|
build/linux/x64/release/bundle/umbrix.png (43 KB)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Результат:** ✅ Иконка Umbrix скопирована в bundle
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. **Windows платформа** ✅ ИСПРАВЛЕНО
|
|||
|
|
|
|||
|
|
#### Изменённые файлы:
|
|||
|
|
|
|||
|
|
**`windows/runner/main.cpp`:**
|
|||
|
|
```cpp
|
|||
|
|
HANDLE hMutexInstance = CreateMutex(NULL, TRUE, L"UmbrixMutex"); // Было: HiddifyMutex
|
|||
|
|
HWND handle = FindWindowA(NULL, "Umbrix"); // Было: Hiddify
|
|||
|
|
window.SendAppLinkToInstance(L"Umbrix") // Было: Hiddify
|
|||
|
|
window.Create(L"Umbrix", origin, size) // Было: Hiddify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**`windows/CMakeLists.txt`:**
|
|||
|
|
```cmake
|
|||
|
|
project(umbrix LANGUAGES CXX) # Было: hiddify
|
|||
|
|
set(BINARY_NAME "Umbrix") # Было: Hiddify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**`windows/runner/Runner.rc`:**
|
|||
|
|
```rc
|
|||
|
|
VALUE "CompanyName", "Umbrix" // Было: Hiddify
|
|||
|
|
VALUE "FileDescription", "Umbrix" // Было: Hiddify
|
|||
|
|
VALUE "InternalName", "umbrix" // Было: hiddify
|
|||
|
|
VALUE "LegalCopyright", "Copyright (C) 2024 Umbrix. All rights reserved."
|
|||
|
|
VALUE "OriginalFilename", "Umbrix.exe" // Было: Hiddify.exe
|
|||
|
|
VALUE "ProductName", "umbrix" // Было: hiddify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Результат:** ✅ Windows версия будет называться "Umbrix.exe" с правильной информацией в свойствах
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📦 Packaging конфигурации
|
|||
|
|
|
|||
|
|
### Linux (требуют обновления при сборке пакетов):
|
|||
|
|
|
|||
|
|
**`linux/packaging/deb/make_config.yaml`:**
|
|||
|
|
```yaml
|
|||
|
|
display_name: Hiddify ← TODO: изменить на Umbrix
|
|||
|
|
package_name: hiddify ← TODO: изменить на umbrix
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**`linux/packaging/appimage/make_config.yaml`:**
|
|||
|
|
```yaml
|
|||
|
|
display_name: Hiddify ← TODO: изменить на Umbrix
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Когда менять:** Только если будете создавать .deb или .AppImage пакеты через flutter_distributor
|
|||
|
|
|
|||
|
|
**Как менять:**
|
|||
|
|
```bash
|
|||
|
|
# Для .deb пакета
|
|||
|
|
sed -i 's/Hiddify/Umbrix/g' linux/packaging/deb/make_config.yaml
|
|||
|
|
sed -i 's/hiddify/umbrix/g' linux/packaging/deb/make_config.yaml
|
|||
|
|
|
|||
|
|
# Для AppImage
|
|||
|
|
sed -i 's/Hiddify/Umbrix/g' linux/packaging/appimage/make_config.yaml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Windows (требуют обновления при сборке пакетов):
|
|||
|
|
|
|||
|
|
**`windows/packaging/msix/make_config.yaml`:**
|
|||
|
|
```yaml
|
|||
|
|
display_name: Hiddify ← TODO: изменить на Umbrix
|
|||
|
|
publisher_display_name: Hiddify ← TODO: изменить на Umbrix
|
|||
|
|
identity_name: Hiddify.HiddifyNext ← TODO: изменить на Umbrix.UmbrixNext
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**`windows/packaging/exe/inno_setup.sas`:**
|
|||
|
|
```pascal
|
|||
|
|
Exec('taskkill', '/F /IM hiddify.exe', ...) ← TODO: изменить на umbrix.exe
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔍 Что НЕ НУЖНО менять:
|
|||
|
|
|
|||
|
|
### Технические идентификаторы (оставляем как есть):
|
|||
|
|
|
|||
|
|
**Android:**
|
|||
|
|
- `applicationId "com.umbrix.app"` ✅ (уже Umbrix)
|
|||
|
|
|
|||
|
|
**iOS:**
|
|||
|
|
- `PRODUCT_BUNDLE_IDENTIFIER = com.umbrix.app` ✅ (уже Umbrix)
|
|||
|
|
|
|||
|
|
**Linux:**
|
|||
|
|
- Application ID в коде остаётся как есть для совместимости
|
|||
|
|
|
|||
|
|
**Windows:**
|
|||
|
|
- Внутренние идентификаторы COM объектов не меняем
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ Итоговая таблица брендинга:
|
|||
|
|
|
|||
|
|
| Элемент | Android | iOS | Linux | Windows | macOS | Статус |
|
|||
|
|
|---------|---------|-----|-------|---------|-------|--------|
|
|||
|
|
| Название в UI | Umbrix ✅ | Umbrix ✅ | Umbrix ✅ | Umbrix ✅ | Umbrix ✅ | ✅ |
|
|||
|
|
| Логотип в drawer | umbrix_logo.png ✅ | umbrix_logo.png ✅ | umbrix_logo.png ✅ | umbrix_logo.png ✅ | umbrix_logo.png ✅ | ✅ |
|
|||
|
|
| Заголовок окна | N/A | N/A | Umbrix ✅ | Umbrix ✅ | Umbrix ✅ | ✅ |
|
|||
|
|
| Имя executable | N/A | N/A | hiddify → umbrix | Hiddify.exe → Umbrix.exe | Hiddify.app → Umbrix.app | ✅ |
|
|||
|
|
| Иконка приложения | ✅ | ✅ | umbrix.png ✅ | TODO | TODO | ⚠️ |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 Для полного деплоя нужно:
|
|||
|
|
|
|||
|
|
### Сейчас работает:
|
|||
|
|
- ✅ Flutter UI (кнопки, drawer, главная страница) - "Umbrix" везде
|
|||
|
|
- ✅ Linux заголовок окна - "Umbrix"
|
|||
|
|
- ✅ Linux иконка - umbrix.png
|
|||
|
|
- ✅ Windows заголовок окна - "Umbrix"
|
|||
|
|
- ✅ Windows информация о файле - "Umbrix.exe"
|
|||
|
|
|
|||
|
|
### При сборке Windows нужно:
|
|||
|
|
1. Скопировать иконку: `cp assets/images/umbrix_logo.png windows/runner/resources/app_icon.ico` (конвертировать в .ico)
|
|||
|
|
2. Или использовать конвертер: `convert umbrix_logo.png -define icon:auto-resize=256,128,64,48,32,16 app_icon.ico`
|
|||
|
|
|
|||
|
|
### При создании пакетов (.deb, .AppImage, .msix):
|
|||
|
|
1. Обновить `linux/packaging/deb/make_config.yaml`
|
|||
|
|
2. Обновить `linux/packaging/appimage/make_config.yaml`
|
|||
|
|
3. Обновить `windows/packaging/msix/make_config.yaml`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎨 Визуальная проверка:
|
|||
|
|
|
|||
|
|
### Linux (текущая сборка):
|
|||
|
|
```bash
|
|||
|
|
./build/linux/x64/release/bundle/hiddify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Что увидите:**
|
|||
|
|
- Заголовок окна: "Umbrix" ✅
|
|||
|
|
- Левое меню: логотип Umbrix + надпись "Umbrix" ✅
|
|||
|
|
- Главная страница: "Umbrix 1.7.0 dev" ✅
|
|||
|
|
- Кнопки: белый текст на цветном фоне ✅
|
|||
|
|
|
|||
|
|
### Windows (после сборки):
|
|||
|
|
```powershell
|
|||
|
|
.\build\windows\x64\runner\Release\Umbrix.exe
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Что увидите:**
|
|||
|
|
- Заголовок окна: "Umbrix" ✅
|
|||
|
|
- Левое меню: логотип Umbrix + надпись "Umbrix" ✅
|
|||
|
|
- Свойства .exe: CompanyName "Umbrix", ProductName "umbrix" ✅
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 Чеклист финального брендинга:
|
|||
|
|
|
|||
|
|
### Код приложения (✅ Готово)
|
|||
|
|
- [x] Flutter UI - "Umbrix"
|
|||
|
|
- [x] Drawer логотип - `umbrix_logo.png`
|
|||
|
|
- [x] Drawer текст - "Umbrix"
|
|||
|
|
- [x] Главная страница - "Umbrix 1.7.0 dev"
|
|||
|
|
- [x] Кнопки - белые на цветном фоне
|
|||
|
|
|
|||
|
|
### Linux (✅ Готово)
|
|||
|
|
- [x] Заголовок окна - "Umbrix"
|
|||
|
|
- [x] Иконка - `umbrix.png`
|
|||
|
|
- [x] my_application.cc обновлён
|
|||
|
|
- [ ] packaging конфиги (при создании пакетов)
|
|||
|
|
|
|||
|
|
### Windows (✅ Основное готово)
|
|||
|
|
- [x] Заголовок окна - "Umbrix"
|
|||
|
|
- [x] Binary name - "Umbrix.exe"
|
|||
|
|
- [x] Runner.rc информация
|
|||
|
|
- [x] main.cpp mutex/window name
|
|||
|
|
- [ ] Иконка .ico (при финальной сборке)
|
|||
|
|
- [ ] packaging конфиги (при создании установщика)
|
|||
|
|
|
|||
|
|
### macOS (⏳ Когда будете собирать)
|
|||
|
|
- [ ] Info.plist - CFBundleName "Umbrix"
|
|||
|
|
- [ ] Заголовок окна - "Umbrix"
|
|||
|
|
- [ ] Иконка .icns
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 💡 Итог:
|
|||
|
|
|
|||
|
|
**Все основные изменения брендинга применены!** ✅
|
|||
|
|
|
|||
|
|
Для текущих сборок (Android debug, Linux release):
|
|||
|
|
- ✅ UI полностью Umbrix
|
|||
|
|
- ✅ Логотип Umbrix
|
|||
|
|
- ✅ Заголовки окон Umbrix
|
|||
|
|
- ✅ Белые кнопки работают
|
|||
|
|
|
|||
|
|
Для Windows .exe и production пакетов (.deb, .AppImage, .msix):
|
|||
|
|
- ⏳ Нужно обновить packaging конфиги
|
|||
|
|
- ⏳ Нужно добавить иконки в правильных форматах
|
|||
|
|
|
|||
|
|
**Но сам код приложения готов для всех платформ!** 🎉
|