Публикация в App Store
FlutterFlow отправляет сборки в App Store прямо из редактора. Ниже — что подготовить, как пройти настройку по шагам и что делать с типовыми отказами.
- Аккаунт Apple.
- Оплаченное участие в Apple Developer Program — подробности о программе.
- Иконка приложения в Settings & Integrations → General → App Assets. Прозрачности и альфа-канала в ней быть не должно.
- Приложение, проверенное на настоящем устройстве, — см. локальный запуск.
Порядок выкатки
1. Создать Bundle ID
Bundle Identifier — уникальная строка, по которой Apple опознаёт приложение. Записывается как перевёрнутое доменное имя: com.example.myapp.
Откройте Certificates, IDs & Profiles, добавьте новый App ID и заполните:
- Bundle ID — скопируйте Package Name из FlutterFlow.
- Description — короткое описание приложения.
- Capabilities — возможности, которые приложение использует. Обязательно отметьте Push Notifications, если есть уведомления, и Sign In with Apple, если есть вход через Apple.
2. Завести приложение в App Store Connect
App Store Connect — место, откуда приложения отправляются на проверку и где ведутся их метаданные. Откройте App Store Connect и создайте запись приложения по инструкции Apple.
3. Указать Apple App ID в FlutterFlow
По App ID Apple связывает приложение с вашей командой разработки.
Откройте App Store Connect → My Apps, скопируйте Apple ID из раздела App Information и вставьте в поле App ID в FlutterFlow → Settings & Integrations → Mobile Deployment → App Store.
4. Создать ключ API и загрузить в FlutterFlow
Откройте App Store Connect → Users and Access → Integrations → Team Keys. Если ключей ещё не было, там будет кнопка Request Access — как это выглядит.
Нажмите Add (+), задайте имя и роль App Manager. Скачайте созданный ключ и загрузите его в Settings & Integrations → App Settings → Mobile Deployment → App Store → Private Key.
5. Указать Issuer ID
Issuer ID лежит там же: App Store Connect → Users and Access → Integrations → Team Keys. Скопируйте его в поле Issuer ID в настройках App Store в FlutterFlow.
6. Указать Key ID
Вернитесь в App Store Connect → Users and Access → Integrations → Team Keys, найдите строку созданного ключа, выберите Copy Key ID и вставьте значение в поле Key ID в настройках App Store в FlutterFlow.
7. Выкатить
Откройте Settings & Integrations → App Settings → Mobile Deployment → App Store и нажмите Deploy To App Store. Когда сборка дойдёт, App Store Connect пришлёт письмо о новой сборке.

- При каждой выкатке Build Number увеличивается автоматически, чтобы релизы различались. Версию приложения и номер сборки можно задать вручную.
- Если выкатка уже идёт, запуск новой отменит предыдущую.
- Обработка занимает несколько минут; по её окончании статус меняется на Submitted.
Если выкатку удобнее вести своими средствами — через собственный конвейер CI/CD или с ручным контролем версий и собственного кода, — используйте выкатку из репозитория GitHub.
8. Отправить приложение на проверку
В App Store Connect выберите My Apps и своё приложение. Откройте Prepare for Submission, заполните метаданные и материалы карточки, затем нажмите Add for Review.

Дальше приложение уходит на проверку в Apple. Требования — в правилах App Store Review.
Видео
Частые вопросы
Invalid App Store Icon — иконка не должна быть прозрачной или содержать альфа-канал
Замените иконку приложения в Settings & Integrations → General на изображение без прозрачности и альфа-канала.
ITMS-91053: Missing API declaration
Apple требует, чтобы приложения, использующие некоторые системные API, объявляли причину обращения к ним в файле Privacy Manifest. Требование действует с 1 мая 2024 года: без манифеста приложение не пройдёт проверку.
У большинства пакетов, которые использует FlutterFlow, манифест уже есть — его добавили авторы пакетов или команда FlutterFlow. Но встречаются и такие, где его нет. То же касается собственного кода, который обращается к этим API напрямую или через пакет.
Что делать:
- Проверьте, есть ли ваш пакет в списке Apple, и обновитесь до последней версии.
- Если непонятно, какой именно пакет обращается к защищённым API, поищите его этим анализатором, а затем обновите найденное — авторы обычно уже исправили несоответствие.
- Убедиться можно по changelog или по наличию файла
PrivacyInfo.xcprivacyв исходниках пакета (примеры: share_plus, url_launcher). - Если пакет так и не привели в порядок, ищите замену или пишите его сопровождающему.
- Убедиться можно по changelog или по наличию файла
- Если к API обращается ваш собственный код для iOS:
- откройте Settings & Integrations → App Settings → Privacy Manifest Configuration;
- включите нужные API и выберите причины из списка. Что означает каждая причина, описано в документации Apple.
