Перейти к основному содержимому

Развертывание в Apple App Store

FlutterFlow позволяет развертывать приложения напрямую в App Store из платформы. В этом руководстве описаны все необходимые предварительные требования, пошаговый процесс развертывания и советы по устранению распространенных проблем.

Предварительные требования
  • Создайте учетную запись Apple.
  • Приобретите членство в Apple Developer. Подробнее о программе и процессе регистрации читайте здесь.
  • Установите иконку лаунчера приложения в разделе Settings & Integrations > General > App Assets. Примечание: Иконка лаунчера не может быть прозрачной или содержать альфа-канал.
  • Рекомендуется протестировать приложение на реальном устройстве перед развертыванием. Следуйте этим инструкциям, чтобы протестировать приложение локально.

Развертывание в App Store

Развертывание в App Store включает следующие шаги:

1. Создание Bundle Identifier

Bundle Identifier (ID) — это уникальная строка, которая идентифицирует ваше приложение в экосистеме Apple, обычно в формате обратной записи доменного имени, например com.example.myapp.

Чтобы создать Bundle ID, перейдите на страницу Certificates, IDs & Profiles, добавьте новый App ID и укажите следующие данные:

  1. Bundle ID: Скопируйте Package Name из FlutterFlow.
  2. Description: Добавьте краткое описание вашего приложения.
  3. Capabilities: Выберите необходимые возможности приложения. Убедитесь, что вы выбрали Push Notifications, если ваше приложение их использует, и Sign In with Apple, если в приложении есть эта функция.

2. Добавление нового приложения

App Store Connect — это платформа для отправки приложений, управления метаданными приложений и многого другого. Чтобы добавить новое приложение, откройте App Store Connect и следуйте официальным шагам, описанным здесь.

3. Добавление Apple App ID в FlutterFlow

App ID используется Apple для идентификации вашего приложения и связи его с вашей командой разработчиков.

Чтобы добавить App ID в FlutterFlow, перейдите в App Store Connect > My Apps, скопируйте ваш Apple ID из раздела App Information и вставьте его в поле App ID в FlutterFlow > Settings & Integrations > Mobile Deployment > App Store.

4. Генерация API-ключа и добавление в FlutterFlow

Чтобы сгенерировать API-ключ, перейдите в App Store Connect > Users and Access > Integrations > Team Keys. Если вы ранее не добавляли ключ, вы увидите кнопку Request Access. Подробности смотрите в демо.

Сгенерируйте новый API-ключ, выбрав Add (+), введя имя и назначив роль App Manager. После генерации ключа скачайте его и загрузите в FlutterFlow в разделе Settings & Integrations > App Settings > Mobile Deployment > App Store > Private Key.

5. Добавление Issuer ID в FlutterFlow

Скопируйте Issuer ID из App Store Connect, перейдя в Users and Access > Integrations > Team Keys, и вставьте его в поле Issuer ID в настройках App Store в FlutterFlow.

6. Добавление Key ID в FlutterFlow

Вернитесь в App Store Connect > Users and Access > Integrations > Team Keys. Найдите строку для API-ключа, который вы сгенерировали здесь, выберите Copy Key ID и вставьте его в поле Key ID в настройках App Store в FlutterFlow.

7. Развертывание

Чтобы развернуть приложение из FlutterFlow, перейдите в Settings & Integrations > App Settings > Mobile Deployment > App Store и нажмите Deploy To App Store. После развертывания вы получите email от App Store Connect о том, что новая сборка добавлена в ваше приложение.

deploy-to-appstore.avif

к сведению
  • При каждом развертывании мы автоматически увеличиваем Build Number (т.е. version code в Android), чтобы каждая сборка была идентифицируема. При необходимости вы можете обновить App Version и Build Number самостоятельно.
  • Если другое развертывание уже выполняется, запуск новой сборки отменит предыдущую.
  • Обработка запроса может занять несколько минут. После завершения статус обновится до Submitted.
подсказка

Если вы предпочитаете управлять процессом развертывания вне FlutterFlow, например, интегрируя с собственной CI/CD-пайплайн, или хотите больше контроля над версионированием и управлением пользовательским кодом напрямую на GitHub, у вас есть возможность развертывать приложения из репозитория GitHub.

8. Отправка приложения на утверждение в App Store

Из App Store Connect выберите My Apps и ваше приложение. Выберите Prepare for Submission, добавьте ресурсы приложения и метаданные, затем нажмите Add for Review.

add-for-review.avif

Теперь ваше приложение будет рассмотрено Apple. Дополнительную информацию о руководящих принципах ревью Apple смотрите по этой ссылке.


Видео-руководство

Посмотрите это видео, если предпочитаете видеоурок.


Часто задаваемые вопросы

Недопустимая иконка App Store. Иконка App Store в каталоге ресурсов в 'Runner.app' не может быть прозрачной или содержать альфа-канал.

Вам нужно обновить иконку лаунчера приложения (в разделе Settings & Integrations --> General) на изображение, которое не является прозрачным и/или не содержит альфа-канал.

После отправки iOS-приложения в App Store я получаю ошибку 'ITMS-91053: Missing API declaration'. Что делать?

Apple требует, чтобы приложения, использующие определенные API, имели файл Privacy Manifest, который объявляет причину использования API. Apple начнет требовать этот файл для утверждения в App Store с 1 мая 2024 года.

Большинство пакетов, используемых в FlutterFlow, уже имеют Privacy Manifest, созданный автором пакета или командой FlutterFlow. Однако в некоторых случаях пакеты могут не иметь необходимого манифеста конфиденциальности.

Аналогично, если вы написали пользовательский код, который напрямую вызывает эти API или использует пакет, вызывающий API, вы должны убедиться, что ваше приложение имеет требуемый файл манифеста.

Вот шаги, которые вы можете предпринять для решения этой проблемы:

  1. Проверьте, указан ли используемый вами пользовательский пакет здесь; убедитесь, что вы используете последнюю версию, если используете любой из них.
  2. Если не уверены, какой пакет использует защищенные API, вы можете использовать инструмент вроде этого, чтобы их идентифицировать. После идентификации обновите до последних версий, поскольку автор пакета мог устранить проблемы соответствия.
    1. Для проверки посмотрите в changelog пакета или исходный код на наличие файла PrivacyInfo.privacy, который указывает на соответствие (примеры здесь и здесь).
    2. Если текущий пакет не решил проблему, рассмотрите использование альтернативного пакета, соответствующего требованиям, или свяжитесь с maintainer'ом пакета для исправления.
  3. Если вы написали пользовательский iOS-код, который обращается к API:
    1. В FlutterFlow перейдите в Settings & Integrations > App Settings > Privacy Manifest Configuration.
    2. Активируйте необходимые причины API и выберите подходящие причины из выпадающего списка. Подробное объяснение каждой причины API можно найти здесь.

privacy-manifest-configuration