1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/CarGuo-GSYFlutterBook

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Flutter-19.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:06 5767d61

Как статья серии, это 19-я часть, которая объясняет процесс сборки и отправки приложений для платформ Android и iOS.

Многие разработчики Flutter могут иметь опыт разработки только для одной платформы и не знать процессов сборки и отправки для другой платформы. Также некоторые фронтенд-разработчики могут не иметь опыта в отправке приложений на проверку, поэтому данная статья поможет им понять этот процесс и избежать лишних трудностей.

Ссылка на полную серию статей:

Полный гайд по Flutter

Специальные темы Flutter

1. Процесс сборки и проверки для Android

1.1. Сборка

На самом деле процесс сборки и проверки для Android довольно прост. Для создания APK можно использовать следующую команду:

flutter build apk --target-platform android-arm64

flutter build apk --target-platform android-arm64 -t lib/main_prod.dart
  • Опция --target-platform указывает на целевые архитектурные модули (ABI) для сборки. В настоящее время как Google Play, так и китайские платформы требуют, чтобы приложения поддерживали arm64-v8a. Поэтому обычно выбирают эту архитектуру для уменьшения размера APK.

  • Опция -t позволяет указывать конкретный файл main.dart, который будет использоваться для сборки. Это может быть не указано.

  • Кроме того, важно настроить конфигурацию подписи APK в файле android/app/src/build.gradle. Конфигурация подписи должна быть указана в разделе signingConfigs.```groovy android { ... signingConfigs { release { keyAlias "xxxx" keyPassword "xxxx" storeFile file("../keystores/xxxxx.jks") storePassword "xxxx" } } }


Наконец, если ваш APK содержит другие типы архитектурных модулей, такие как `armeabi-v7a`, вам следует добавить фильтры ABI в файл `android/app/src/build.gradle` в разделе `android { buildTypes { } }`.

```groovy
android {
    ...
    defaultConfig {
        ndk {
            // Указываем необходимые ABI
            abiFilters 'arm64-v8a', 'armeabi-v7a'
        }
    }
}

Это гарантирует, что каждый ABI имеет полный набор модулей, что предотвращает возможные ошибки при запуске приложения.

buildTypes {
    release {
        signingConfig signingConfigs.release
        ndk {
            // Установка поддерживаемых SO-библиотек архитектур
            abiFilters 'arm64-v8a'
        }
    }
    debug {
        signingConfig signingConfigs.release
        ndk {
            // Установка поддерживаемых SO-библиотек архитектур
            abiFilters 'arm64-v8a', 'x86', 'x86_64'
        }
    }
}

После завершения сборки APK он по умолчанию будет находиться в следующей директории:

2. Подача на проверкуНа самом деле подача на проверку в Android довольно проста, так как достаточно предоставить ссылку на скачивание APK, чтобы его можно было установить непосредственно с устройства. Многие производители просто хранят свои APK-файлы на своих серверах, но для лучшего опыта и распространения большинство разработчиков предпочитает загружать приложения на различные платформы, такие как на платформу Huawei. В противном случае могут возникнуть проблемы, аналогичные тем, что показаны ниже.

Иногда APK может быть распознан как потенциально опасное приложение из-за отсутствия регистрации или имени приложения (app_name).

Фактическая проверка приложений на китайских рынках не является сложной задачей, хотя она может выглядеть запутанной из-за множества различных платформ и условий. Основные требования обычно включают:

  • targetSdkVersion 28 (Android 9.0);
  • ABI должно поддерживать arm64-v8a;
  • Приложение должно быть адаптировано для Android Q (10.0), например, изменения в правах доступа к файлам;
  • Образовательные приложения должны быть зарегистрированы (подробнее здесь);
  • Нужно предоставить пользователю соглашение о конфиденциальности данных и описание используемых прав.

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

Конечно, некоторые платформы можно игнорировать, однако если ваше приложение не будет загружено на QQ Store, то вы не сможете использовать функционал "скачивание и открытие приложения после сканирования QR-кода".Кроме того, на платформе Huawei требуется наличие возможности удаления аккаунта пользователя согласно постановлению Министерства промышленности и информационных технологий КНР о проведении работы по борьбе с нарушением прав потребителей приложениями.

Как видно, процесс проверки и требования для Android не являются слишком сложными, хотя некоторые условия могут быть затрудняющими. Конкретные требования для публикации зависят от ваших нужд.

II. Процесс сборки и проверки для iOS

1. Сборка

Процесс сборки и проверки для iOS несколько более сложен. Для сборки iOS вам необходимы учетная запись разработчика, уникальный идентификатор приложения (Bundle Identifier), профили конфигураций, сертификаты и другая информация. Уверены ли вы, что все эти данные у вас есть?

1.1 Создание аккаунта в App Store Connect

При входе на сайт https://developer.apple.com, в разделе Account -> Certificates, IDs & Profiles, вы можете найти информацию о вашем приложении. В разделе App Store Connect можно перейти по адресу https://appstoreconnect.apple.com.

Иллюстрация

Затем в разделе Мои приложения следует следовать инструкциям для создания приложения и заполнения информации согласно требованиям вашего бизнеса. Здесь стоит обратить внимание на несколько ключевых моментов.- 1. В информации о приложении в App Store есть поле для ввода сайта с политикой конфиденциальности, которое является обязательным. Обычно это просто HTML-страница. Подробнее см. пример: https://guoshuyu.cn/home/index/privacy.html

Иллюстрация

  • 2. Вам потребуется загрузить скриншоты приложения. Обычно требуется подготовить от 3 до 5 изображений, но здесь нужны скриншоты для экранов размером 6.5" и 5.5". Если также требуется поддержка версий для iPad, то вам понадобятся скриншоты для экрана размером 12.9". Если у вас нет дизайнера, который сделает эти скриншоты, рекомендуется использовать эмулятор для получения скриншотов (не забудьте не включать метки отладки). Для 6.5" используйте эмулятор iPhone 11 Pro Max, а для 5.5" — эмулятор iPhone 8 Plus. Откройте нужную страницу, затем нажмите Command+S для сохранения скриншота на рабочий стол.

Иллюстрация

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

Иллюстрация

  • 3. В информации о версии приложения обязательно указывается сайт технической поддержки. Подробнее см.: https://guoshuyu.cn/home/index/tech.html. Если этот пункт не будет выполнен, это может привести к отказу в одобрении.Иллюстрация

  • 4. Если ваше приложение требует авторизации пользователя, вам также потребуются тестовые учетные записи и пароли для пользователей.

Иллюстрация

1.2 Упаковка и загрузка

Для упаковки Flutter iOS сначала выполните команду flutter build ios. Эта команда создаст файлы framework для режима выпуска. После этого можно продолжить процесс в Xcode.

Как показано на следующем рисунке, убедитесь, что выбран правильный эмулятор (не выбирать эмулятор), затем перейдите в меню Product -> Archive для начала процесса упаковки.

Иллюстрация

После успешной сборки можно будет увидеть следующий интерфейс. Найдите последнюю сборку и выберите Distribute App, чтобы продолжить; также проекты, которые были собраны ранее, можно найти в меню Window > Organizer.

Интерфейс после сборки

Затем выберите загрузку App Store Connect для подготовки к публикации.

Шаг загрузки

Если вы хотите экспортировать тестовый IPA, выберите Development. В этом случае UDID и другие данные должны быть указаны в конфигурационном файле сборки.

Далее вам предлагается выбрать загрузку (Upload) или экспорт (Export). Экспорт позволяет сначала экспортировать IPA, а затем загружать его локально с помощью инструмента Transporter; загрузка выполняется сразу после сборки.Выбор между загрузкой и экспортом

На следующем экране рекомендуется не отмечать галочки (не спрашивайте, спросите — это Bing), нажмите Next, затем выберите автоматическую проверку подписи, и после успешной проверки нажмите кнопку загрузки.

Экран проверки подписи

Экран завершения загрузки

2. Обзор

После успешной загрузки через некоторое время вы сможете увидеть вашу версию в разделах Activity и TestFlight. Вы можете получить электронное письмо со следующим содержанием:

Уведомление об ошибке

Например, сообщение ITMS-90683 указывает на отсутствие ключа NSContactsUsageDescription в файле plist, что требует объяснения пользователям необходимости доступа к контактам.

Подобные сообщения могут возникнуть при использовании других типов разрешений. Если в вашем приложении используются определённые разрешения, они должны быть указаны в соответствующих ключах файла plist.Также может появиться предупреждение относительно Push Notification Entitlement. Это говорит о том, что ваше приложение не настроено для отправки уведомлений. Если данная функциональность не используется, проверьте её наличие в настройках разработчика. Если она активна, потребуется настройка службы уведомлений внутри вашего приложения. Для iOS также требуется настройка сертификата уведомлений, который обычно бывает двух видов: для разработки и для производства. Если уведомления не используются, предупреждение можно игнорировать.Настройка уведомлений

Не забудьте правильно настроить размеры страницы запуска и логотипа приложения, так как неправильно настроенные параметры могут вызвать предупреждения, влияющие на процесс обзора. После выбора нужной версии сборки в информации о версии можно отправить на проверку. Обычно проверка проходит через статусы Ожидание проверки > В процессе проверки > Результат проверки, этот процесс обычно занимает от 24 до 48 часов. Однако если проверка происходит во время праздников, таких как Рождество, Apple может замедлить проверку из-за выходных. Кроме того, слишком много отказов также может замедлить скорость проверки.

Как показано на следующем рисунке, ниже приведены некоторые рекомендации по проверке:

  • Как уже упоминалось, скриншоты приложения должны максимально точно отражать основные функции;
  • Нельзя злоупотреблять уведомлениями о новых версиях внутри приложения, например, запрещено автоматически переходить к скачиванию обновлений; допустимо лишь простое уведомление с переходом в App Store. Если вы не уверены в своих действиях, лучше всего просто не добавлять такие уведомления в iOS;
  • Не следует использовать ссылки на сайты типа fir.im, GongYing и другие ресурсы, тексты, ссылки и SDK внутри приложения, так как это может вызвать отказ при проверке.Все вышеупомянутые проблемы являются типичными ошибками. Для получения более подробной информации обратитесь к руководству проверки App Store: https://developer.apple.com/cn/app-store/review/guidelines/

Изображение

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

Рекомендации по ресурсам

Изображение

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/CarGuo-GSYFlutterBook.git
git@api.gitlife.ru:oschina-mirror/CarGuo-GSYFlutterBook.git
oschina-mirror
CarGuo-GSYFlutterBook
CarGuo-GSYFlutterBook
master