Skip to content

iOS TestFlight CI/CD#106

Open
gru2007 wants to merge 18 commits into
KometTeam:mainfrom
gru2007:main
Open

iOS TestFlight CI/CD#106
gru2007 wants to merge 18 commits into
KometTeam:mainfrom
gru2007:main

Conversation

@gru2007

@gru2007 gru2007 commented Jan 13, 2026

Copy link
Copy Markdown

Пересобран процесс сборки и деплоя iOS-приложения для TestFlight. Основная цель — упростить и автоматизировать процесс публикации в TestFlight с использованием современных инструментов.

Основные изменения

🔄 GitHub Actions Workflow

  • Удален старый workflow ios_deploy.yml (210 строк)
  • Создан новый упрощенный workflow deploy-ios.yml (75 строк)
  • Использован кастомный GitHub Action gru2007/flutter-fastlane-action-testflight@main для автоматизации процесса
  • Workflow теперь запускается вручную (workflow_dispatch) с параметрами:
    • BUILD_NUMBER — номер сборки (обязательный)
    • RELEASE_NOTE — заметки к релизу для автоматической отправки на ревью (опциональный)

🏗️ Xcode Project Configuration

  • Обновлен ios/Runner.xcodeproj/project.pbxproj:
    • Добавлен DEVELOPMENT_TEAM = C4L8Q37YC4 для корректной подписи приложения
    • Изменен PRODUCT_BUNDLE_IDENTIFIER с com.gwid.app.gwid на tech.artemev.banilife
    • Исправлены настройки для корректной работы с CocoaPods (добавлены пустые inputPaths и outputPaths)
    • Упорядочены настройки сборки для лучшей совместимости

📱 App Icons ( С текущими ошибка валидации альфа слоя )

  • Обновлены иконки приложения в ios/Runner/Assets.xcassets/AppIcon.appiconset/:
    • Добавлены все необходимые размеры для iOS, iPad и macOS
    • Удалены старые иконки и добавлены новые в правильном формате
    • Обновлен Contents.json с корректной конфигурацией всех размеров

📄 Info.plist

  • Обновлен ios/Runner/Info.plist для корректной работы с новой конфигурацией сборки
  • Используются переменные Flutter ($(FLUTTER_BUILD_NAME) и $(FLUTTER_BUILD_NUMBER)) для версионирования

🗑️ Удаленные файлы

  • ios/ExportOptions.plist — больше не требуется, используется конфигурация из GitHub Action
  • .github/workflows/ios_deploy.yml — заменен на новый упрощенный workflow

Требуемые Secrets в GitHub

Для работы нового workflow необходимо настроить следующие secrets:

  • APP_STORE_CONNECT_ISSUER_ID — ID издателя App Store Connect
  • APP_STORE_CONNECT_KEY_ID — ID ключа API App Store Connect
  • APP_STORE_CONNECT_KEY — содержимое ключа API App Store Connect
  • APP_STORE_TEAM_ID — ID команды Apple Developer
  • MATCH_PASSWORD — пароль для репозитория Fastlane match
  • SSH_PRIVATE_KEY — приватный SSH ключ для доступа к репозиторию сертификатов

Преимущества новой реализации

  1. Упрощение: Сокращение кода workflow с 210 до 75 строк
  2. Автоматизация: Полная автоматизация процесса сборки, подписи и загрузки в TestFlight
  3. Надежность: Использование проверенного решения на базе Fastlane
  4. Гибкость: Ручной запуск с возможностью указания номера сборки и заметок к релизу
  5. Поддержка: Использование кастомного action, который можно поддерживать и улучшать отдельно

Тестирование

Workflow протестирован и готов к использованию. Для запуска деплоя:

  1. Перейти в раздел Actions
  2. Выбрать workflow "Deploy iOS TestFlight"
  3. Нажать "Run workflow"
  4. Указать номер сборки (например, 43)
  5. Опционально добавить заметки к релизу

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants