Flutter
Начните с doctor
Перенесите на Mac проект, файл блокировки зависимостей и необходимые ресурсы. Используйте ту же версию Flutter, что и в проекте: сначала устраните проблемы среды, а уже потом меняйте код приложения.
Установите необходимые инструменты
Подготовьте Flutter SDK, полную версию Xcode и CocoaPods. Если в проекте зафиксированы версии Flutter или Ruby, сначала установите их в соответствии с настройками репозитория. Так локальная среда и машина для сборки будут использовать одинаковые версии.
Запустите диагностику и по очереди устраните замечания по инструментам iOS. Предупреждение о подключении устройства не всегда мешает созданию архива, а вот отсутствие Xcode, SDK или настроек подписи нужно исправить заранее.
Различайте два вида проверки
Чтобы проверить, проходит ли компиляция, сначала можно выполнить release-сборку без подписи. Она не заменяет подписанный установочный пакет и не подходит для распространения приложения.
Перед экспортом .ipa проверьте в Xcode раздел Signing & Capabilities: Team, Bundle Identifier, сертификат и профиль подготовки. Затем выполните сборку для выпуска.
Выполняйте команды по порядку
flutter --version
flutter doctor -v
flutter pub get
flutter build ios --release --no-codesign
flutter build ipa --release
Для последней команды должны быть настроены все параметры подписи. Расположение результата и способ экспорта зависят от версии Flutter и вывода команды. После сборки скачайте файл и проверьте его локально.
| Признак ошибки | Что сделать сначала | Чего не делать в первую очередь |
|---|---|---|
| CocoaPods не установлен | Проверьте, установлен ли CocoaPods и находит ли текущий терминал команду pod. | Не удаляйте сразу весь проект iOS. |
| Нет профилей / ошибка подписи | Проверьте, соответствуют ли друг другу Bundle Identifier, Team и тип экспорта, а также не истёк ли срок действия профиля подготовки. | Не смешивайте ошибки зависимостей с ошибками подписи. |
| Целевая версия iOS | Сверьтесь с требованиями плагинов, задайте одинаковую минимальную версию iOS в проекте и Podfile, затем установите зависимости. | Не меняйте только один target, а затем сразу не запускайте архивацию повторно. |