Документация
ОС Аврора 3.35.7

Миграция с версии 3.27.3 на 3.29.2

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

Requires exclude

При разработке плагинов список нативных зависимостей, которые должны игнорироваться rpm-валидатором, можно указать в pubspec.yaml плагина через ключ requiresExclude:

flutter:
  plugin:
    implements: camera
    platforms:
      aurora:
        pluginClass: CameraAuroraPlugin
        dartPluginClass: CameraAurora
        requiresExclude: ['native_dep_1', 'native_dep_2', 'native_dep_3']

Для использования этой функции необходимо передать в переменную __requires_exclude .spec-файла значение _flutter_excludes. .spec-файл имеет путь aurora/rpm/{app_id}.spec:

%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$
-%global __requires_exclude ^lib(dconf|flutter-embedder|maliit-glib|.+_platform_plugin)\\.so.*$
+%global __requires_exclude %{_flutter_excludes}

Новые проекты, созданные с помощью Flutter 3.29.2, автоматически будут подставлять нужное значение.

Если в проекте используются плагины, которые не содержат исключаемых зависимостей в файле pubspec.yaml (секция requiresExclude), то необходимо самостоятельно добавить зависимости в .spec-файл:

%global _flutter_excludes_plugins ^lib(lib1|lib2)\.so.*$  // зависимости плагинов
%global __requires_exclude (%{_flutter_excludes}|%{_flutter_excludes_plugins})

Множественное назначение переменной может привести к ошибке валидации Dependency is not allowed.

Flavors

Для использования параметра --flavor команд flutter run и flutter build необходимо внести изменения в следующих файлах.

  1. aurora/CMakeList.txt:
-project("projectname" LANGUAGES CXX)
+project(${FLUTTER_PROJECT_NAME} LANGUAGES CXX)
  • Вместо projectname нужно подставить строку с названием проекта.
  1. aurora/rpm/{app_id}.spec:
+%include %{_sourcedir}/defines.inc
+
%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$
%global __requires_exclude %{_flutter_excludes}
-Name: ru.organization.myapp
-Summary: My app description.
+Name: %{orgName}.%{appName}%{?flavor}
+Summary: {{description}}
...

%build
-%cmake -GNinja -DCMAKE_BUILD_TYPE=%{_flutter_build_type} -DPSDK_VERSION=%{_flutter_psdk_version} -DPSDK_MAJOR=%{_flutter_psdk_major}
+%cmake -GNinja -DCMAKE_BUILD_TYPE=%{_flutter_build_type} -DPSDK_VERSION=%{_flutter_psdk_version} -DPSDK_MAJOR=%{_flutter_psdk_major} -DFLUTTER_PROJECT_NAME=%{name}
%ninja_build
  1. pubspec.yaml:
name: "App name"
description: "Description"
+organization: "Organization"
  • Строку Organization следует заменить на название организации.
  • name и description добавлены в демонстрационных целях.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.