Пошаговое руководство по развертыванию проекта на различных платформах
📋 Предварительные требования • 🔑 Настройка API • 📱 Android • 🍎 iOS • 🌐 Web
- Android Studio (последняя версия)
- JDK 17+ (Java Development Kit)
- Android SDK (API 26+)
- Git для управления версиями
- Gradle (встроен в Android Studio)
- ОС: Windows 10+, macOS 10.15+, Ubuntu 18.04+
- RAM: минимум 8 GB (рекомендуется 16 GB)
- Хранилище: минимум 10 GB свободного места
- Интернет: стабильное соединение для загрузки зависимостей
- Зарегистрируйтесь на cloud.yandex.ru
- Создайте новый проект или выберите существующий
- Получите
folderIdиз настроек проекта
- В Yandex Cloud перейдите в раздел "ИИ-сервисы"
- Активируйте YaGPT
- Создайте API ключ в разделе "Сервисные аккаунты"
- Перейдите на yandex.ru/dev/maps
- Зарегистрируйтесь как разработчик
- Получите MapKit токен
# Yandex Cloud
folderId=your_folder_id_here
# YaGPT API
gptToken=your_yagpt_token_here
# Yandex MapKit
mapkitToken=your_mapkit_token_here# Android SDK путь (Windows)
sdk.dir=C\:\\Users\\YourUsername\\AppData\\Local\\Android\\Sdk
# Android SDK путь (macOS/Linux)
sdk.dir=/Users/YourUsername/Library/Android/sdkgit clone https://github.com/kramlex/MapsWorkShop.git
cd MapsWorkShop# Windows
.\gradlew.bat --refresh-dependencies
# macOS/Linux
./gradlew --refresh-dependencies# Windows
.\gradlew.bat :composeApp:assembleDebug
# macOS/Linux
./gradlew :composeApp:assembleDebug# Windows
.\gradlew.bat :composeApp:assembleRelease
# macOS/Linux
./gradlew :composeApp:assembleRelease- Включите режим разработчика на Android устройстве
- Активируйте USB отладку
- Подключите устройство к компьютеру
# Windows
.\gradlew.bat :composeApp:installDebug
# macOS/Linux
./gradlew :composeApp:installDebug# Windows
.\gradlew.bat :composeApp:installDebug
# macOS/Linux
./gradlew :composeApp:installDebugadb logcat | grep "MapsWorkShop"# Windows
.\gradlew.bat clean
# macOS/Linux
./gradlew cleaniOS поддержка находится в разработке. Текущая версия включает базовую структуру для iOS.
- macOS (обязательно для iOS разработки)
- Xcode (последняя версия)
- CocoaPods или Swift Package Manager
# Синхронизация iOS зависимостей
./gradlew :composeApp:iosSimulatorArm64Test# Генерация Xcode проекта
./gradlew :composeApp:generateXcodeProjectWeb версия планируется в будущих релизах.
- Адаптивный веб-интерфейс
- Поддержка всех основных функций
- Оптимизация для мобильных браузеров
// В build.gradle.kts
android {
defaultConfig {
versionCode = 1
versionName = "1.0.0"
}
}android {
signingConfigs {
create("release") {
storeFile = file("keystore/release.keystore")
storePassword = "your_store_password"
keyAlias = "your_key_alias"
keyPassword = "your_key_password"
}
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig = signingConfigs.getByName("release")
}
}
}# Windows
.\gradlew.bat :composeApp:bundleRelease
# macOS/Linux
./gradlew :composeApp:bundleRelease- Зарегистрируйтесь на play.google.com/console
- Оплатите регистрационный взнос ($25)
- Иконка приложения (512x512 px)
- Скриншоты (минимум 2)
- Описание на русском и английском языках
- Политика конфиденциальности
- Войдите в Google Play Console
- Создайте новое приложение
- Загрузите собранный AAB файл
- Заполните всю необходимую информацию
name: Android CI/CD
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: app-debug
path: composeApp/build/outputs/apk/debug/composeApp-debug.apk- Каждый push в main ветку автоматически собирает проект
- Результаты доступны в GitHub Actions
- Запуск unit тестов при каждом PR
- Проверка качества кода
Решение:
# Создайте local.properties в корне проекта
echo "sdk.dir=$ANDROID_HOME" > local.propertiesРешение:
# Очистите кэш Gradle
./gradlew clean
./gradlew --refresh-dependenciesРешение:
- Проверьте версию JDK (должна быть 17+)
- Обновите Android Studio
- Синхронизируйте Gradle файлы
Решение:
- Проверьте правильность API ключей в
gradle.properties - Убедитесь, что ключи активны в Yandex Cloud
- Проверьте права доступа для API ключей
# Подробные логи сборки
./gradlew :composeApp:assembleDebug --info
# Логи с ошибками
./gradlew :composeApp:assembleDebug --stacktrace# Список всех зависимостей
./gradlew :composeApp:dependencies# В .bashrc или .zshrc
export YANDEX_FOLDER_ID="your_folder_id"
export YANDEX_GPT_TOKEN="your_gpt_token"
export YANDEX_MAPKIT_TOKEN="your_mapkit_token"// В build.gradle.kts
buildkonfig {
val folderId: String = providers.environmentVariable("YANDEX_FOLDER_ID").get()
val gptToken: String = providers.environmentVariable("YANDEX_GPT_TOKEN").get()
val mapkitToken: String = providers.environmentVariable("YANDEX_MAPKIT_TOKEN").get()
defaultConfigs {
buildConfigField(FieldSpec.Type.STRING, "folderId", folderId)
buildConfigField(FieldSpec.Type.STRING, "gptToken", gptToken)
buildConfigField(FieldSpec.Type.STRING, "mapkitToken", mapkitToken)
}
}# Проверка уязвимостей
./gradlew dependencyCheckAnalyze# Проверка подписи APK
jarsigner -verify -verbose -certs app-release.apk// В gradle.properties
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true// В build.gradle.kts
android {
buildCache {
local {
directory = File(rootDir, "build-cache")
removeUnusedEntriesAfterDays = 30
}
}
}- Разделение на отдельные модули
- Независимая сборка модулей
- Переиспользование кода
- Автоматизация CI/CD для всех платформ
- Docker контейнеризация для сборки
- Автоматическое тестирование на реальных устройствах
- Multi-platform сборка (Android + iOS + Web)
- Cloud сборка в Yandex Cloud
- Автоматическое обновление зависимостей
- Kubernetes развертывание для web версии
- Глобальное CDN для статических ресурсов
- A/B тестирование новых функций
- README.md - основная документация
- TECHNICAL_DOCUMENTATION.md - технические детали
- USER_GUIDE.md - руководство пользователя
- GitHub Issues: Создайте issue
- Discord: Присоединитесь к серверу разработчиков
- Telegram: Группа для обсуждений
- Email: support@mapsworkshop.dev
- Slack: Рабочее пространство для команды
Руководство по развертыванию поможет вам:
✅ Быстро настроить проект для разработки
✅ Собрать и установить приложение на устройство
✅ Настроить CI/CD для автоматизации
✅ Безопасно развернуть в production
✅ Масштабировать проект по мере роста
- Настройте окружение согласно предварительным требованиям
- Получите API ключи от Yandex Cloud
- Соберите проект для Android
- Протестируйте на реальном устройстве
- Настройте CI/CD для автоматизации
⭐ Если руководство было полезным, поставьте звездочку проекту! ⭐
🚀 Успешного развертывания! 🚀
💬 Делитесь опытом и предложениями! 💬
Руководство обновлено: Декабрь 2024