Skip to content

Краш при запуске на iOS при использовании UISceneDelegate #190

@Overman775

Description

@Overman775

Описание проблемы

Приложение падает с ошибкой SIGABRT на самом раннем этапе инициализации, если в Info.plist включена поддержка UISceneDelegate (через UIApplicationSceneManifest).

Проблема была обнаружена при проверке приложения в Apple App Review (тестировалось на iPad).

Шаги для воспроизведения

  1. Интегрировать пакет mindbox: 2.15.0 в Flutter-проект.
  2. В AppDelegate.swift наследоваться от MindboxFlutterAppDelegate.
  3. В Info.plist добавить манифест сцен (UIApplicationSceneManifest) и указать FlutterSceneDelegate (стандартная процедура миграции Flutter на поддержку Сцен).
  4. Запустить приложение на симуляторе iPad или iPhone с iOS 15+.

Ожидаемое поведение

Приложение должно запускаться без ошибок. SDK должен корректно обрабатывать ситуацию, когда управление окном (window) передано Сцене, и поле window в AppDelegate остается nil.

Фактическое поведение

Приложение мгновенно завершается с ошибкой (краш)

Технические подробности

По результатам анализа:

  • Данная проблема возникла после выполнения официальной миграции Flutter на UISceneDelegate (подробности: https://docs.flutter.dev/release/breaking-changes/uiscenedelegate).
  • При использовании SceneDelegate поле window в AppDelegate не инициализируется системой.
  • MindboxFlutterAppDelegate.swift (или нативный SDK под капотом), вероятно, пытается обратиться к self.window! в методе didFinishLaunchingWithOptions.
  • Поскольку window равно nil, происходит force unwrap crash.
  • В составе пода Mindbox присутствует MindboxSceneDelegate.swift, но нет документации о том, как его использовать совместно с FlutterSceneDelegate в Flutter-приложении.

Окружение

  • Mindbox Flutter SDK: 2.15.0
  • Mindbox iOS SDK (native): 2.15.0
  • Flutter: 3.41.6
  • ОС: iOS 13+

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions