# Установка и настройка
## 📋 Системные требования
### Общие требования
- **.NET 9.0 SDK** - [Скачать](https://dotnet.microsoft.com/download/dotnet/9.0)
- **Visual Studio 2022 17.8+** или **JetBrains Rider 2023.3+**
- **Git** - для клонирования репозитория
### Требования по платформам
#### Android
- **Android SDK** - API Level 21 (Android 5.0) минимум, API 34 (Android 14) рекомендуется
- **Java Development Kit (JDK) 17** или выше
- **Android Emulator** или физическое устройство для тестирования
#### iOS
- **macOS** - требуется для сборки
- **Xcode 15.0+** - [Скачать из Mac App Store](https://apps.apple.com/app/xcode/id497799835)
- **iOS Simulator** или физическое устройство
#### Windows
- **Windows 10.0.19041.0** или выше
- **Windows SDK** - устанавливается с Visual Studio
#### MacCatalyst
- **macOS 10.15** или выше
- **Xcode 15.0+**
## 🚀 Установка
### 1. Клонирование репозитория
```powershell
git clone https://github.com/your-company/corp-maui.git
cd corp-maui
```
### 2. Установка .NET MAUI workload
```powershell
dotnet workload install maui
```
### 3. Восстановление NuGet пакетов
```powershell
dotnet restore
```
## ⚙️ Настройка Android SDK
### Автоматическое определение
.NET MAUI автоматически ищет Android SDK в стандартных путях:
- Windows: `%LOCALAPPDATA%\Android\Sdk`
- macOS/Linux: `~/Library/Android/sdk` или `~/Android/Sdk`
### Нестандартный путь
Если Android SDK установлен в другом месте, создайте файл `Directory.Build.props` в корне решения:
```xml
D:\Applications\Android\SDK
```
> **Важно:** Измените путь на ваш актуальный путь к Android SDK
### Переменные окружения (альтернатива)
```powershell
# PowerShell
$env:ANDROID_HOME = "D:\Applications\Android\SDK"
# Постоянная установка (System Properties)
[Environment]::SetEnvironmentVariable("ANDROID_HOME", "D:\Applications\Android\SDK", "User")
```
### Проверка установки
```powershell
# Список установленных SDK
dotnet build -t:GetAndroidSdkPaths
```
## 🔨 Сборка проекта
### Сборка для всех платформ
```powershell
dotnet build CORP-MAUI.sln
```
### Сборка для конкретной платформы
```powershell
# Android
dotnet build CORP-MAUI/CORP-MAUI.csproj -f net9.0-android
# iOS
dotnet build CORP-MAUI/CORP-MAUI.csproj -f net9.0-ios
# Windows
dotnet build CORP-MAUI/CORP-MAUI.csproj -f net9.0-windows10.0.19041.0
# MacCatalyst
dotnet build CORP-MAUI/CORP-MAUI.csproj -f net9.0-maccatalyst
```
### Использование скриптов (Android)
Для удобной сборки Android созданы готовые скрипты:
```powershell
# PowerShell (рекомендуется)
.\build-android.ps1
# Batch
.\build-android.bat
```
Скрипты автоматически:
- Устанавливают переменную `ANDROID_HOME`
- Выполняют сборку проекта
- Выводят результат сборки
## 🏃 Запуск приложения
### Запуск в режиме разработки
```powershell
# Android
dotnet run -f net9.0-android --project CORP-MAUI/CORP-MAUI.csproj
# iOS (требуется macOS)
dotnet run -f net9.0-ios --project CORP-MAUI/CORP-MAUI.csproj
# Windows
dotnet run -f net9.0-windows10.0.19041.0 --project CORP-MAUI/CORP-MAUI.csproj
```
### Запуск через IDE
#### Visual Studio 2022
1. Откройте `CORP-MAUI.sln`
2. Выберите целевую платформу в выпадающем списке
3. Выберите устройство/эмулятор
4. Нажмите F5 или кнопку "Start Debugging"
#### JetBrains Rider
1. Откройте `CORP-MAUI.sln`
2. В конфигурации запуска выберите Target Framework
3. Выберите устройство
4. Нажмите Shift+F10 или кнопку запуска
## 📦 Создание релизной сборки
### Android APK
```powershell
dotnet publish CORP-MAUI/CORP-MAUI.csproj -f net9.0-android -c Release
```
APK файл будет создан в:
```
CORP-MAUI/bin/Release/net9.0-android/publish/
```
### Android AAB (для Google Play)
```powershell
dotnet publish CORP-MAUI/CORP-MAUI.csproj -f net9.0-android -c Release -p:AndroidPackageFormat=aab
```
### iOS IPA
```powershell
dotnet publish CORP-MAUI/CORP-MAUI.csproj -f net9.0-ios -c Release
```
### Windows MSIX
```powershell
dotnet publish CORP-MAUI/CORP-MAUI.csproj -f net9.0-windows10.0.19041.0 -c Release
```
## 🔧 Конфигурация приложения
### Изменение API URL
Откройте `Services/ApiService.cs` и измените константу:
```csharp
private const string BaseUrl = "https://your-api-server.com/api/v1/";
```
### Изменение WebSocket URL
Откройте `Services/WebSocketService.cs` и измените массив URLs:
```csharp
private readonly string[] _possibleWebSocketUrls = new[]
{
"wss://your-api-server.com/ws",
"ws://your-api-server.com/ws",
// ... другие варианты
};
```
### Настройка AndroidManifest.xml
Откройте `Platforms/Android/AndroidManifest.xml` для изменения:
- Имени пакета
- Разрешений
- Минимальной версии Android
```xml
```
### Настройка Info.plist (iOS)
Откройте `Platforms/iOS/Info.plist` для изменения:
- Bundle Identifier
- Версии приложения
- Разрешений
## 🐛 Решение проблем
### Android SDK не найден
**Проблема:** Ошибка "Android SDK not found"
**Решение:**
1. Установите переменную окружения `ANDROID_HOME`
2. Создайте `Directory.Build.props` с путем к SDK
3. Перезапустите IDE
### Ошибки при сборке Android
**Проблема:** Ошибки Java или Android build tools
**Решение:**
1. Проверьте установку JDK 17+
2. Убедитесь, что установлены Android Build Tools
3. Очистите проект: `dotnet clean`
4. Удалите папки `bin` и `obj`
### Проблемы с подключением к API
**Проблема:** Не удается подключиться к серверу
**Решение:**
1. Проверьте URL в `ApiService.cs` и `WebSocketService.cs`
2. На Android эмуляторе используйте `10.0.2.2` для localhost
3. Убедитесь, что добавлено разрешение INTERNET
### Ошибки сертификатов SSL
**Проблема:** SSL certificate validation failed
**Решение для разработки:**
Добавьте в `Platforms/Android/MainApplication.cs`:
```csharp
#if DEBUG
var handler = new HttpClientHandler
{
ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true
};
#endif
```
> **Внимание:** Только для разработки! Не используйте в продакшене!
## 📚 Дополнительные ресурсы
### Документация
- [.NET MAUI Documentation](https://docs.microsoft.com/dotnet/maui/)
- [Android Developer Guide](https://developer.android.com/)
- [iOS Developer Documentation](https://developer.apple.com/documentation/)
### Настройка Android
Подробная инструкция по настройке Android SDK: [ANDROID_SETUP.md](../ANDROID_SETUP.md)
### API Документация
Описание API endpoints: [API.md](API.md)
## 🔄 Обновление зависимостей
### Обновление .NET MAUI
```powershell
dotnet workload update
```
### Обновление NuGet пакетов
```powershell
dotnet restore --force
dotnet build
```
### Проверка устаревших пакетов
```powershell
dotnet list package --outdated
```
## ✅ Проверка окружения
Используйте команду для проверки установки всех необходимых компонентов:
```powershell
dotnet workload list
```
Должны быть установлены:
- `maui`
- `maui-android`
- `maui-ios` (только на macOS)
- `maui-maccatalyst` (только на macOS)
- `maui-windows`
---
**Последнее обновление:** 2026-01-12