Flutter plugin yandex_mapkit не отображает все маркеры/кластеры в Release сборке

Используется Flutter плагин https://pub.dev/packages/yandex_mapkit
Когда запускаешь приложение в режиме разработки (через эмулятор андроида) показываются все маркеры заданные через List<PlacemarkMapObject> помещенные в ClusterizedPlacemarkCollection для отображения в кластерах.
Но когда сборку приложения заливаешь в PlayMarket то на такой сборке показывается только один маркер и всё - все остальные маркеры и кластера исчезают и как я понимаю именно кластера не отображаются.

Это в режиме разработки Это в режиме разработки

Это в релизном режиме введите сюда описание изображения

import 'package:common_flutter/common_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:shop_selection/presentation/helpers/get_clusterized_collection.dart';
import 'package:shop_selection/presentation/helpers/get_placemark_objects.dart';
import 'package:shop_selection/presentation/helpers/map_listener.dart';
import 'package:shop_selection/presentation/pages/shop_selection/cubit/shop_selection_cubit.dart';
import 'package:shop_selection/presentation/widgets/app_bar_widget.dart';
import 'package:shop_selection/presentation/widgets/shops_list_bottom_sheet.dart';
import 'package:ui_kit_flutter/theme.dart';
import 'package:yandex_mapkit/yandex_mapkit.dart';

class ShopSelectionView extends StatefulWidget {
  const ShopSelectionView({super.key});

  @override
  State<ShopSelectionView> createState() => _ShopSelectionViewState();
}

class _ShopSelectionViewState extends StateWithCubit<ShopSelectionCubit, ShopSelectionView> {
  final _scaffoldKey = GlobalKey<ScaffoldState>();

  /// Контроллер для управления картами
  late final YandexMapController _mapController;

  /// Значение текущего масштаба карты
  double _mapZoom = 10.0;

  List<MapObject<dynamic>> mapObjects = [];

  @override
  void dispose() {
    _mapController.dispose();
    super.dispose();
  }

  @override
  void onNewsReceived(BlocNews news) {
    if (news is ProcessShopsData) {
      moveCamera(news.shop.latitude ?? 0.0, news.shop.longitude ?? 0.0, 10);
      setMapObjects();
      setState(() => _mapZoom = 10);
    }
  }

  void showShopsListBottomSheet(BuildContext context) {
    showBottomSheet(
      backgroundColor: Colors.white,
      context: context,
      builder: (context) =>
          BlocProvider<ShopSelectionCubit>.value(value: bloc, child: const ShopsListBottomSheet()),
    );
  }

  void moveCamera(double latitude, double longitude, double zoom) async {
    await _mapController.moveCamera(
      animation: const MapAnimation(type: MapAnimationType.smooth, duration: 1),
      CameraUpdate.newCameraPosition(
        CameraPosition(
          target: Point(latitude: latitude, longitude: longitude),
          zoom: zoom,
        ),
      ),
    );

    setState(() => _mapZoom = zoom);
  }

  void setMapObjects() => setState(() => mapObjects = [
        getClusterizedCollection(
          placeMarks: getPlacemarkObjects(context),
          moveCamera: moveCamera,
          mapZoom: _mapZoom,
        )
      ]);

  @override
  Widget build(BuildContext context) {
    final colors = context.theme.extension<RbtColors>();

    return BlocConsumer<ShopSelectionCubit, ShopSelectionState>(
      listener: (BuildContext context, ShopSelectionState state) {
        mapListener(context, state, moveCamera, setMapObjects, _scaffoldKey);
      },
      builder: (context, state) {
        return Scaffold(
          key: _scaffoldKey,
          backgroundColor: colors?.backgroundDefault,
          appBar: AppBarWidget(selectedRegion: state.selectedRegion),
          body: YandexMap(
            rotateGesturesEnabled: false,
            onMapCreated: (controller) async => setState(() => _mapController = controller),
            onCameraPositionChanged: (cameraPosition, _, __) =>
                setState(() => _mapZoom = cameraPosition.zoom),
            mapObjects: mapObjects,
          ),
        );
      },
    );
  }
}

файл get_clusterized_collection.dart

import 'package:shop_selection/resources/assets.dart';
import 'package:ui_kit_flutter/ui_kit_flutter.dart';
import 'package:yandex_mapkit/yandex_mapkit.dart';

/// Метод для получения коллекции кластеризованных маркеров
ClusterizedPlacemarkCollection getClusterizedCollection({
  required List<PlacemarkMapObject> placeMarks,
  required Function(double latitude, double longitude, double zoom) moveCamera,
  required double mapZoom,
}) {
  return ClusterizedPlacemarkCollection(
      mapId: const MapObjectId(ShopSelectionAssets.clusterized),
      placemarks: placeMarks,
      radius: 50,
      minZoom: 18,
      onClusterAdded: (self, cluster) async {
        return cluster.copyWith(
          appearance: cluster.appearance.copyWith(
            opacity: 1.0,
            icon: PlacemarkIcon.single(
              PlacemarkIconStyle(
                image: BitmapDescriptor.fromBytes(
                  await ClusterIconPainter(cluster.size).getClusterIconBytes(),
                ),
              ),
            ),
          ),
        );
      },
      onClusterTap: (self, cluster) async {
        moveCamera(
          cluster.placemarks.first.point.latitude,
          cluster.placemarks.first.point.longitude,
          mapZoom + 1,
        );
      });
}

файл get_placemark_objects.dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:shop_selection/domain/entities/map_point.dart';
import 'package:shop_selection/presentation/pages/shop_selection/cubit/shop_selection_cubit.dart';
import 'package:shop_selection/resources/assets.dart';
import 'package:yandex_mapkit/yandex_mapkit.dart';

// код из shop_selection_state.dart
List<MapPoint> get points => shopsFiltered
      .map((shop) => MapPoint(
          name: shop.shopId.toString(),
          latitude: shop.latitude ?? 0.0,
          longitude: shop.longitude ?? 0.0))
      .toList();

/// Метод для генерации объектов маркеров для отображения на карте
List<PlacemarkMapObject> getPlacemarkObjects(BuildContext context) {
  // код для points написан выше
  List<MapPoint> listMapPoints = context.read<ShopSelectionCubit>().state.points;
  List<PlacemarkMapObject> listPlaceMarkObjects = [];

  final shopSelected = context.read<ShopSelectionCubit>().state.shopSelected;

  for (int i = 0; i < listMapPoints.length; i++) {
    listPlaceMarkObjects.add(
      PlacemarkMapObject(
        mapId: MapObjectId('${ShopSelectionAssets.mapObject} ${listMapPoints[i]}'),
        point: Point(latitude: listMapPoints[i].latitude, longitude: listMapPoints[i].longitude),
        opacity: 1,
        icon: PlacemarkIcon.single(
          PlacemarkIconStyle(
            image: BitmapDescriptor.fromAssetImage(
                shopSelected?.shopId.toString() == listMapPoints[i].name
                    ? ShopSelectionAssets.markerActive
                    : ShopSelectionAssets.markerIdle),
            scale: 1,
          ),
        ),
        onTap: (_, __) =>
            context.read<ShopSelectionCubit>().getShop(int.tryParse(listMapPoints[i].name) ?? 0),
      ),
    );
  }
  return listPlaceMarkObjects;
}

Ответы (0 шт):