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

Размещение в Apple App Store

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

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

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

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

1. Создание идентификатора пакета

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

Чтобы создать идентификатор пакета, перейдите на страницу 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 Key, перейдите в 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. После развертывания вы получите электронное письмо от App Store Connect о добавлении нового билда в приложение.

deploy-to-appstore.avif

к сведению
  • Каждый раз при развертывании FlutterFlow автоматически увеличивает Build Number для идентификации каждого выпуска. При необходимости вы можете обновить 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. Дополнительную информацию о правилах рассмотрения можно найти здесь.


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

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


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

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

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

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

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

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

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

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

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

privacy-manifest-configuration