Code Monkey home page Code Monkey logo

mapkit-ios-demo's Introduction

Yandex MapKit and NaviKit Demo Apps

Yandex MapKit and NaviKit are cross-platform libraries that let you use the capabilities of Yandex Maps in mobile applications for iOS and Android. Learn more about the MapKit and NaviKit SDKs on the documentation page.

For a quick start development with the MapKit and NaviKit SDKs visit the following pages:

The current repository contains sample code for how to use the MapKit and NaviKit SDKs for iOS applications.

Project structures

There are three iOS projects in the repository:

  1. MapkitSamples: Contains several iOS applications with sample code in Swift, all of which are demonstrated in the MapKit SDK Tutorials documentation.

  2. MapKitDemo: A demo application that contains the basic functionality of the lite and full MapKit SDK versions. It is not supported with Tutorials documentation, unlike the MapkitSamples project.

  3. NaviKitDemo: A demo application showcasing the basic navigation features you can implement with NaviKit SDK.

Build locally

  1. Clone the repository:

    git clone https://github.com/yandex/mapkit-ios-demo.git
  2. Execute the following command in your project's directory to install dependencies:

    pod install
  3. MapKit SDK demo application and samples require API key. You can get a free MapKit API key in the Get the MapKit API Key documentation. The instruction on how to obtain NaviKit API key is described in the documentation.

  4. Depending on the project you want to build, follow the steps in the following sections.

MapkitSamples

  1. Open the project's build settings. Add the following user-defined setting with your API key value in place of the YOUR_API_KEY placeholder:

    MAPKIT_API_KEY = "YOUR_API_KEY";
    
  2. Choose the desired target in Xcode, build and run.

MapKitDemo

  1. Open the AppDelegate.swift and edit the MAPKIT_API_KEY constant declaration, setting its value with your API key in place of the YOUR_API_KEY placeholder:

    let MAPKIT_API_KEY = "YOUR_API_KEY"

    You can as well store this API key in your project's build settings and Info.plist file.

  2. Build and run the MapKitDemo target in Xcode.

NaviKitDemo

  1. Open the project's build settings and edit the MAPKIT_API_KEY parameter, setting its value with your API key in place of the YOUR_MAPKIT_API_KEY placeholder:

    MAPKIT_API_KEY = YOUR_MAPKIT_API_KEY;

    You can as well store this API key in your Info.plist file.

  2. Build and run the NaviKitDemo target in Xcode.

Support

If you have problems or suggestions while using MapKit or NaviKit SDK, visit the contact page.

Sample overview

MapWithPlacemark
Demonstrates how to create a MapKit map, move
it, and display custom tappable placemarks.
MapObjects
How to display different objects on the map, including:
images, geometries, and clusterized collections.
MapInteraction
About interacting with the MapKit map using
camera movements, tap actions, focus rect
and focus point, and interactions with POIs.
MapSearch
Shows how to use Search and Geosuggest
functionality in the full MapKit SDK.
MapRouting
Building routes using requested map points.

mapkit-ios-demo's People

Contributors

cbbbrother avatar eaniconer avatar eberkovich avatar haseko avatar imseleznev-yandex avatar iudalov avatar lisyarus avatar tarmolov avatar trivias avatar vbazhenov avatar yandexmapkit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mapkit-ios-demo's Issues

Как правильно использовать YMKTilesUrlProvider

В данный момент мы пытаемся в приложении реализовать загрузку тайлов, но нигде нет никакой информации, как пользоваться этим c API.
У нас есть ручка, возвращающая для конкретных TileId.x/y/z изображение точки в формате svg.

    internal class CustomTilesUrlProvider: NSObject, YMKTilesUrlProvider {
        func formatUrl(with tileId: YMKTileId, version: YMKVersion) -> String {
            return "https://api-address/tile/\(tileId.z)/\(tileId.x)/\(tileId.y)/"
        }
    }

И далее я пытаюсь создать пользовательский слой с этим провайдером, как в примере:

layer = mapView.mapWindow.map.addLayer(
            withLayerId: "clusters",
            contentType: "image/svg+xml",
            layerOptions: layerOptions,
            urlProvider: tilesUrlProvider,
            imageUrlProvider: DummyUrlProvider(),
            projection: projection!)

В результате приложение крэшится:

2018-11-08 17:26:24.118022+0300 MapKitDemo[76995:20654112] *** Assertion failure in -[YMKMap addLayerWithLayerId:contentType:layerOptions:urlProvider:imageUrlProvider:projection:], ../../../../../../../../idl/ios/impl/YandexMapKit/YMKMap_Binding.mm:421
2018-11-08 17:26:24.124539+0300 MapKitDemo[76995:20654112] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unordered_map::at: key not found'
*** First throw call stack:
(
	0   CoreFoundation                      0x00000001095dc29b __exceptionPreprocess + 331
	1   libobjc.A.dylib                     0x000000010ae0f735 objc_exception_throw + 48
	2   CoreFoundation                      0x00000001095dc022 +[NSException raise:format:arguments:] + 98
	3   Foundation                          0x000000010a576b47 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
	4   MapKitDemo                          0x000000010578f066 -[YMKMap addLayerWithLayerId:contentType:layerOptions:urlProvider:imageUrlProvider:projection:] + 2406
	5   MapKitDemo                          0x00000001053e7ec2 $S10MapKitDemo25CustomLayerViewControllerC11viewDidLoadyyF + 1122
	6   MapKitDemo                          0x00000001053e81e4 $S10MapKitDemo25CustomLayerViewControllerC11viewDidLoadyyFTo + 36
	7   UIKitCore                           0x0000000115fa1781 -[UIViewController loadViewIfRequired] + 1186
	8   UIKitCore                           0x0000000115fa1be0 -[UIViewController view] + 27
	9   UIKitCore                           0x0000000115b47e67 -[UINavigationController _startCustomTransition:] + 931
	10  UIKitCore                           0x0000000115b5e7bc -[UINavigationController _startDeferredTransitionIfNeeded:] + 741
	11  UIKitCore                           0x0000000115b5fbac -[UINavigationController __viewWillLayoutSubviews] + 150
	12  UIKitCore                           0x0000000115aeb63f -[UILayoutContainerView layoutSubviews] + 217
	13  UIKitCore                           0x0000000115f8c015 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1441
	14  QuartzCore                          0x000000010b861d3d -[CALayer layoutSublayers] + 175
	15  QuartzCore                          0x000000010b866bf7 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 395
	16  QuartzCore                          0x000000010b7dfaa6 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 342
	17  QuartzCore                          0x000000010b816c2a _ZN2CA11Transaction6commitEv + 576
	18  UIKitCore                           0x000000011589c8f5 _afterCACommitHandler + 268
	19  CoreFoundation                      0x000000010953f037 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
	20  CoreFoundation                      0x00000001095394ce __CFRunLoopDoObservers + 430
	21  CoreFoundation                      0x0000000109539b61 __CFRunLoopRun + 1537
	22  CoreFoundation                      0x0000000109539221 CFRunLoopRunSpecific + 625
	23  GraphicsServices                    0x000000011065a1dd GSEventRunModal + 62
	24  UIKitCore                           0x0000000115873115 UIApplicationMain + 140
	25  MapKitDemo                          0x00000001053e2524 main + 68
	26  libdyld.dylib                       0x000000010c686551 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Нет поддержки svg? Или что-то неправильно делаем? PNG работает ок

Crash CLClientStopVehicleHeadingUpdates

Само приложение не крашится, но в логах видет backtrace и в это время намертво зависает на секунды 3-5. Происходит сразу после вызова YMKMapKit.setApiKey.
Если вызов отложить на более позднее время, то вроде проблема при старте пропадает, но может тоже самое произойти после того как открыть карты и уйти с экрана с картами - приложение может завсинуть и опять в логах этот backtrace.
Также порой в логах два раза подряд встречается эта проблема.

Вот логи:

Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 3116, TID: 1242821, Thread name: PlatformDispatc, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4 libobjc.A.dylib 0x0000000197b6b6f4 + 56
5 CoreLocation 0x000000019f7bc638 CLClientStopVehicleHeadingUpdates + 133988
6 CoreLocation 0x000000019f79598c CoreLocation + 6540
7 CoreLocation 0x000000019f796044 CLClientCreateWithBundleIdentifierAndPathOnRunLoop + 136
8 CoreLocation 0x000000019f795f48 CLClientCreateWithBundleIdentifierAndPath + 300
9 CoreLocation 0x000000019f7a0ef0 CLClientStopVehicleHeadingUpdates + 21532
10 CoreLocation 0x000000019f7a16d4 CLClientStopVehicleHeadingUpdates + 23552
11 Xcom-Shop 0x00000001014f3d0c _ZNSt3__110__function6__funcIZN6yandex4maps7runtime19platform_dispatcher18PlatformDispatcher13BinderWrapperIZNS4_7sensors17lastKnownLocationEvE3$3JEEC1EOS9_EUlSB_E_NS_9allocatorISC_EEFN5boost8optionalINS8_8LocationEEESB_EEclESB + 52
12 Xcom-Shop 0x00000001014f40b0 _ZNSt3__110__function6__funcIZN6yandex4maps7runtime19platform_dispatcher18PlatformDispatcher13BinderWrapperIZNS4_7sensors17lastKnownLocationEvE3$_3JEE9runBinderIN5boost8optionalINS8_8LocationEEEEENS_9enable_ifIXntsr3std7is_voidIT_EE5valueEvE4typeEvEUlvE_NS_9allocatorISK_EEFvvEEclEv + 96
13 Xcom-Shop 0x0000000101331e2c _ZN6yandex4maps7runtime19platform_dispatcher8internal15runPlatformTaskENSt3__18functionIFvvEEE + 44
14 Xcom-Shop 0x00000001014f3b48 _ZN6yandex4maps7runtime19platform_dispatcher18PlatformDispatcher13BinderWrapperIZNS1_7sensors17lastKnownLocationEvE3$_3JEEclEv + 72
15 Xcom-Shop 0x0000000101329440 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_19platform_dispatcher18PlatformDispatcherC1ERKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS1_14ThreadPriorityEE3$0JEEEvSE_SF_OT_DpOT0 + 88
16 Xcom-Shop 0x00000001013295e4 _ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEPFvRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN6yandex4maps7runtime14ThreadPriorityEOZNSH_19platform_dispatcher18PlatformDispatcherC1ESE_SI_E3$0ESC_SI_SL_EEEEEPvSQ + 60
17 libsystem_pthread.dylib 0x0000000198572908 + 132
18 libsystem_pthread.dylib 0x0000000198572864 _pthread_start + 48
19 libsystem_pthread.dylib 0x000000019857adcc thread_start + 4

layers from GeoJSON

Нет работает прозрачный цвет для полигонов, если создавать layer из geoJSON(пример цвета 4287831714 (0xFF931EA2)). Кроме того, ваш же JSON из конструктора Яндекс карт не подходит. На сайте нигде нет ссылки на документацию, как прописываются стайлы в geoJSON для полигонов. Не понятно как сделать бордер, цвет бордера и т.д.

метка всегда в центре

с помощью какого метода можно сделать, что бы метка всегда была в центре ? сейчас ставлю метку через mapObjects.addPlacemark, но при смещении карты смещается и метка, нужно, что бы метка всегда была в центре и смог получить координаты и название точки , куда попадает метка

Краткое инфо по объекту на карте

Приветствую!
Правильно ли понимаю, что сценарий когда нажимаешь на placemark и появляется окно с краткой информацией, не реализуется стандартными средствами SDK?
В этом случае необходимо добавлять новый placemark через метод addPlacemark(with: view:), где в параметре view надо передавать ранее созданный элемент UI для отображения этой информации?

Метод "cameraPositionWithBoundingBox" не вычисляет зум для камеры

Необходимо установить камеру, чтобы она соответствовала группе точек на карте. Вычисление позиции для камеры с помощью метода cameraPositionWithBoundingBox возвращает объект, у которого отсутствует значение зума, при попытке установить эту камеру, происходит краш.

Есть ли способ вычислить зум самостоятельно, зная точки, которые должны попасть в камеру?

Screenshot 2019-09-10 at 13 47 26

Скролл карты на модальном окне в iOS13

Карта не скроллится на модальных окнах в iOS 13, находясь на любых прочих скролах тоже возникают проблемы. Скролл с карты уходит на родительскую вьюху. С этим кто-то боролся ?

Why setApiKey method haven't completionBlock ???

I create a first scene in the appDelegate. Everything slows down until a successful response from the setApiKey method. Why can’t you make a completion block in it? Moreover, it should work in a UI thread...

Настройка стилей

Где посмотреть список всех featureType, используемых для настройки стиля отображения карт?

YMKMapObjectTapListener example

I couldn't find any example of object tap listening, neither here, nor anywhere else. It would really help, if you could provide one.

Не грузятся карты

xcode 9.2, ключ добавлен

2018-04-13 13:45:23.226229+0300 MapKitDemo[6562:350264] Could not successfully update network info during initialization.
2018-04-13 13:45:23.282701+0300 MapKitDemo[6562:351323] Could not successfully update network info during initialization.
2018-04-13 13:45:23.282956+0300 MapKitDemo[6562:351324] Could not successfully update network info during initialization.
2018-04-13 13:45:28.419149+0300 MapKitDemo[6562:351323] Could not successfully update network info during initialization.
2018-04-13 13:45:38.516271+0300 MapKitDemo[6562:351323] Could not successfully update network info during initialization.
2018-04-13 13:45:38.885947+0300 MapKitDemo[6562:351324] yandex::maps::runtime::network::common::DnsCache::resetLocalResolver : Invalid argumentfailed to parce address from web.adfox.ru.
2018-04-13 13:45:59.327582+0300 MapKitDemo[6562:351322] Could not successfully update network info during initialization.
2018-04-13 13:45:59.662556+0300 MapKitDemo[6562:351322] yandex::maps::runtime::network::common::DnsCache::resetLocalResolver : Invalid argumentfailed to parce address from web.adfox.ru.

Impossible to call YMKMapKit.setApiKey from background thread

Initialisation of YandesMapKit takes 100ms on iPhone 7. It's huge.

I want to unload the main thread and move this call to background. But I get a error - Failed to set YandexMap api key with error: Invoked not in UI thread

Why it needs the main thread? I think that not all logic of setApiKey requires execution on the main thread. Maybe several calls lasting 1-10ms but not 100ms.

Do you have any plans to fix it and add ability to initialise this huge part of logic outside the main thread?

проблема с func onMapTap

подскажите пожалуйста вот есть такая функция

func onMapTap(with map: YMKMap, point: YMKPoint) {
print(point.latitude)
print(point.longitude)
}

при клике он как то выборочно показывает координаты, иногда показывает а иногда нет, когда не показывает вот такой в логе UriObjectConverter::convert : No 'name' attribute in object 29479244 in layer mapj

что это означает и как это заставить работать чтобы всегда давал координаты, при любом зуме, когда прям на дом тапаешь?

Краш в версии 3.3.1

Первый запуск проходит нормально, карта отображается, вторая и последующие попытки запуска приложения фейлятся.

2019-02-13 17:34:29.118 APPNAME[32738:498765] yandex::maps::mapkit::layers::createGroundLayerUpdater : Layer: map, url: spdys://spdy3.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2019-02-13 17:34:29.157 APPNAME[32738:498766] yandex::maps::mapkit::layers::createGroundLayerUpdater : Layer: sat, url: spdys://spdy3.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2019-02-13 17:34:29.198 APPNAME[32738:498767] yandex::maps::mapkit::layers::createGroundLayerUpdater : Layer: vskl2, url: spdys://spdy3.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2019-02-13 17:34:29.221 APPNAME[32738:498766] yandex::maps::mapkit::layers::createGroundLayerUpdater : Layer: vmap2, url: spdys://spdy3.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2019-02-13 17:34:29.384 APPNAME[32738:498767] decltype : Config does not have information for layer vmap3
2019-02-13 17:34:29.603 APPNAME[32738:498766] decltype : Config does not have information for layer indoor
2019-02-13 17:34:29.664 APPNAME[32738:498765] yandex::maps::runtime::connectivity::infiniteRetry : Config does not have information for coverage indoor

Версия эмулятора Iphone 5s(ios 9.0)

Отрисовка YMKPolygon под зданиями.

Здравствуйте! Не могу понять, почему отрезки линий отрисованные на карте проходят "под зданиями"? Где-то не указал Z-index или проблема в чем-то другом?
Скриншот:
IMG_2204
Код:

      let polygon = YMKPolygon(outerRing: YMKLinearRing(points: self.points), innerRings: [])
      let polygonMapObject = mapView.mapWindow.map.mapObjects.addPolygon(with: polygon)
      polygonMapObject.fillColor = .green.withAlphaComponent(0.16)
      polygonMapObject.strokeWidth = 3.0
      polygonMapObject.strokeColor = .green

получение названия из координат YMKPoint

Пытаюсь получить название места по координатам

    func onSearchResponseName(_ response: YMKSearchResponse) {
        searchPoints.removeAll()
        for searchResult in response.collection.children{
            if let _ = searchResult.obj.geometry.first?.point {

                searchField.text = searchResult.obj.name
            }
        }    
    }
    func getName(point : YMKPoint, zoom : NSNumber){
        let responseHandler = {(searchResponse: YMKSearchResponse?, error: Error?) -> Void in
            if let response = searchResponse {

                self.onSearchResponseName(response)

            } else {
                //  self.onSearchError(error!)
            }
        }
         searchSession = searchManager.submit(with: point, zoom: zoom, searchOptions: YMKSearchOptions(), responseHandler: responseHandler)
    }

вызываю так (в методе onCameraPositionChanged) :

            let point = map.cameraPosition.target
            let zoom = map.cameraPosition.zoom as? NSNumber
            getName(point: point, zoom: zoom!)

но в ответ всегда получаю лишь название своей страны

Карта не видит ключ АПИ

View с картой у нас находится в модуле, который загружается в приложение как фреймворк. К сожалению MapKit в модуле не видет ключ, указанный в AppDelegate приложения. Есть ли совет по решению данной проблемы?

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'You need to set API key before using MapKit.'

Отключение сброса поворота UserLocationPin при движении.

Здравствуйте!

Есть следующий кейс:
Устанавливаю поворот arrow и pin у YMKUserLocationView через свойство direction. И все хорошо, но только до того момента пока userPin не начинает движение. При движении direction сбрасывается в 0.

Подскажите как правильно менять поворот у пинов в YMKUserLocationView

Помогите правильно установить свою вью в YMKPlacemarkMapObject

Привет!
let viewPopUp = UIView(frame: CGRect(x: 0, y: 0, width: 226, height: 150))
viewPopUp.cornerRadius = 17
viewPopUp.backgroundColor = .white
if let viewProvider = YRTViewProvider(uiView: viewPopUp) {
placemark.setViewWithView(viewProvider)
}

screen shot 2019-02-26 at 13 29 47

Не могу никак повлиять на задний ЧЕРНЫЙ ФОН, помогите сделать его прозрачным(

func onObjectUpdated сробатывает 2 раза и все

func onObjectUpdated сробатывает 2 раза и все.

В данном примере данный метод срабатывает 2 раза подряд и все, в Android он работает постоянно. Запускал и в своем проекте, результат тот же !

UI thread called from background on setApiKey

Before returning from YMKMapKit.setApiKey(MAPKIT_API_KEY) there is a call to UI from background thread:

Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 342, TID: 13926, Thread name: 3#BgNorm(Global, Queue name: com.apple.root.default-qos.overcommit, QoS: 0

I believe it caused by calling [UIApplication applicationState] in yandex::maps::mapkit::lbs::lastKnownLocation's closure/block. But I'm not so handy with debugging precompiled pods, so could be wrong.
Never got a crash, though it is thread safety violation anyway. Warning is consistent in simulator and on device. YandexMapKit pod v 3.3.
Снимок экрана 2019-03-18 в 21 17 19

Смещение карты к определенному пользователем региону

Здравствуйте!

Никак не найду аналог метода setRegion (было в 1й версии API). Получается, что смещать карту можно только с помощью метода move экземпляра YMKMap с двумя перегрузками: move(_ with: YMKCameraPosition) и move(_ with: YMKCameraPosition, animationType: YMKAnimation, cameraCallback: YMKMapCameraCallback?); однако YMKCameraPosition оперирует только координатой (будущий центр карты) и масштабом, но не областью с конкретным центром и конкретным размером.

Свойство visibleRegion только для чтения. В лучшем случае мне может помочь метод visibleRegion(_ with: YMKCameraPosition), и то в извращениях, типа проверки вхождения моего региона (прямоугольника) в видимый прямоугольник для определенно настроенной камеры в цикле, который, отталкиваясь от центра региона, будет отдалять камеру... 🙈 Было бы здорово получать и, наоборот, - YMKCameraPosition из YMKVisibleRegion, чтобы потом передать его в метод move.

Или все же есть решение моей проблемы из коробки?

Спасибо!

p.s.: сейчас использую следующее решение:

            let zoomStep: Float = 0.5
            let zoomLimit = mapView.mapWindow.map!.getMinZoom() + 4.0
            var nextZoom = mapView.mapWindow.map!.getMaxZoom() - 4.0
            var nextCameraPosition: YMKCameraPosition!
            var isAllPlacemarksVisible = false
            
            repeat {
                nextCameraPosition = YMKCameraPosition(target: centerPoint, zoom: nextZoom, azimuth: 0.0, tilt: 0.0)
                isAllPlacemarksVisible = mapView.mapWindow.map!.visibleRegion(with: nextCameraPosition).contains(regionToMove)
                nextZoom -= zoomStep
            } while !isAllPlacemarksVisible && nextZoom > zoomLimit
            
            mapView.mapWindow.map!.move(with: nextCameraPosition)

Ну, и extension, разумеется:

    /// Checks if the current region is contains the provided one.
    ///
    /// - Parameters:
    ///   - region: Region to check.
    ///
    /// - Returns: Whether the provided region is located inside the current.
    public func contains(_ region: YMKVisibleRegion) -> Bool {
        return self.asCGRect().contains(region.asCGRect())
    }
    
    /// Converts current region (NSObject) to CGRect structure.
    ///
    /// - Returns: Converted CGRect struct.
    public func asCGRect() -> CGRect {
        return CGRect(
            x: self.topLeft.longitude,
            y: self.topLeft.latitude,
            width: self.topRight.longitude - self.topLeft.longitude,
            height: self.bottomLeft.latitude - self.topLeft.latitude
        )
    }

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

Не работают все типы mapType, кроме .map

Если установить mapView?.mapWindow.map?.mapType = .satellite, то вместо карты во вью будет подложка из квадратов. Зум при этом будет работать. Эта же проблема проявляется при выборе .hybrid и .vectorMap.

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

Здравствуйте!

У нас в приложении периодически случаются падения в Яндекс.Картах. По крэшлогу не очень понятно, что является причиной.
Подскажите, пожалуйста, чем может быть вызвано такое поведение?

0 | yandex::maps::runtime::storage::TileStorageImpl::read(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::'lambda'()::operator()() const + 342804

1 | decltype(fp()) yandex::maps::runtime::sqlite::Database::run<yandex::maps::runtime::storage::TileStorageImpl::read(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::'lambda'()>(yandex::maps::runtime::storage::TileStorageImpl::read(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)::'lambda'()&&)::'lambda'()::operator()() const + 342484

2 | yandex::maps::runtime::Binder<boost::optionalyandex::maps::runtime::storage::Item >::operator()() + 346748

3 | std::__1::enable_if<!(std::is_same<boost::optionalyandex::maps::runtime::storage::Item, void>::value), void>::type yandex::maps::runtime::async::internal::PackagedTask<(yandex::maps::runtime::async::Policy)0, boost::optionalyandex::maps::runtime::storage::Item >::setValue<boost::optionalyandex::maps::runtime::storage::Item >(yandex::maps::runtime::async::Promise<boost::optionalyandex::maps::runtime::storage::Item, yandex::maps::runtime::async::Future<boost::optionalyandex::maps::runtime::storage::Item > >&) + 346424

4 | yandex::maps::runtime::async::internal::PackagedTaskCommon<yandex::maps::runtime::async::Promise<boost::optionalyandex::maps::runtime::storage::Item, yandex::maps::runtime::async::Future<boost::optionalyandex::maps::runtime::storage::Item > >, (yandex::maps::runtime::async::Policy)0>::operator()() + 340824

5 | boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine, void, std::__1::__bind<void (yandex::maps::runtime::async::internal::coro::Task::)(boost::coroutines::pull_coroutine&), yandex::maps::runtime::async::internal::coro::Task, std::__1::placeholders::__ph<1> const&>, boost::coroutines::basic_standard_stack_allocatorboost::coroutines::stack_traits >::run() + 4355576132

6 | finish + 618820

Программное перемещение карты с затуханием.

Здравствуйте!

Существует необходимость программно переместить карту к заданой координате анимировано, но с затуханием как от жеста "swipe".

Сдвигать анимировано с анимацией из доступных в YMKAnimationType: smooth и linear не получается достичь точно такого же эффекта.

Существует ли возможность такое сделать?

краш в -[YMKMapKit setApiKey:] на iphone5

0#BgNorm(Global (10): EXC_ARITHMETIC (code=EXC_I386_EXTERR, subcode=0x80a0)

проблема на версиях мапкита 3.2, 3.1.
на версиях 3.0, 2.х проблемы нет.
воспроизводится на iphone 5 (реальный или симулятор), любая ios (9 или 10).
предполагаю проблема как-то связана с 32битной архитектурой 5 айфона 😕

0#BgNorm(Global (10)#0	0x01bea055 in jump_fcontext ()
#1	0x01bf11a4 in _yandex_impl___ZN5boost10coroutines6detail17coroutine_context4jumpERS2_Pv ()
#2	0x019df035 in _yandex_impl___ZN5boost10coroutines6detail19pull_coroutine_implIvE4pullEv ()
#3	0x019deba5 in yandex::maps::runtime::async::internal::coro::Task::escape() ()
#4	0x019e00cc in yandex::maps::runtime::async::internal::coro::(anonymous namespace)::CoroFuture::waitUntil(boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) ()
#5	0x019e0a42 in yandex::maps::runtime::async::internal::coro::ConditionVariableImpl::wait_until(std::__1::function<void ()>, std::__1::function<void ()>, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) ()
#6	0x019d990a in yandex::maps::runtime::async::ConditionVariable::wait_until_impl(std::__1::function<void ()>, std::__1::function<void ()>, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) ()
#7	0x01059e9b in yandex::maps::runtime::async::CVStatus yandex::maps::runtime::async::ConditionVariable::wait_until_impl<std::__1::unique_lock<yandex::maps::runtime::Mutex> >(std::__1::unique_lock<yandex::maps::runtime::Mutex>&, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) ()
#8	0x01059d8d in void yandex::maps::runtime::async::ConditionVariable::wait<std::__1::unique_lock<yandex::maps::runtime::Mutex>, yandex::maps::runtime::async::internal::SharedDataBase::waitLocked(std::__1::unique_lock<yandex::maps::runtime::Mutex>&) const::'lambda'()>(std::__1::unique_lock<yandex::maps::runtime::Mutex>&, yandex::maps::runtime::async::internal::SharedDataBase::waitLocked(std::__1::unique_lock<yandex::maps::runtime::Mutex>&) const::'lambda'()) ()
#9	0x010ca823 in yandex::maps::runtime::async::internal::SharedData<yandex::maps::runtime::connectivity::ConnectivityStatus>::pop() ()
#10	0x01a0d2d3 in std::__1::__function::__func<yandex::maps::runtime::connectivity::statusSubscription()::$_0, std::__1::allocator<yandex::maps::runtime::connectivity::statusSubscription()::$_0>, void (yandex::maps::runtime::async::MultiPromise<yandex::maps::runtime::connectivity::ConnectivityStatus>*)>::operator()(yandex::maps::runtime::async::MultiPromise<yandex::maps::runtime::connectivity::ConnectivityStatus>*&&) ()
#11	0x01a0d654 in yandex::maps::runtime::Binder<void, yandex::maps::runtime::async::MultiPromise<yandex::maps::runtime::connectivity::ConnectivityStatus>*>::operator()() ()
#12	0x01a0d0d4 in yandex::maps::runtime::async::internal::MultiPackagedTask<yandex::maps::runtime::connectivity::ConnectivityStatus, 4294967295ul>::invoke() ()
#13	0x01a0ce96 in yandex::maps::runtime::async::internal::PackagedTaskCommon<yandex::maps::runtime::async::MultiPromise<yandex::maps::runtime::connectivity::ConnectivityStatus>, (yandex::maps::runtime::async::Policy)0>::operator()() ()
#14	0x019de8ea in yandex::maps::runtime::async::internal::coro::Task::coroEntry(boost::coroutines::pull_coroutine<void>&) ()
#15	0x019df3b2 in boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, std::__1::__bind<void (yandex::maps::runtime::async::internal::coro::Task::*)(boost::coroutines::pull_coroutine<void>&), yandex::maps::runtime::async::internal::coro::Task*, std::__1::placeholders::__ph<1> const&>, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> >::run() ()
#16	0x019df33f in void boost::coroutines::detail::trampoline_push_void<boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, std::__1::__bind<void (yandex::maps::runtime::async::internal::coro::Task::*)(boost::coroutines::pull_coroutine<void>&), yandex::maps::runtime::async::internal::coro::Task*, std::__1::placeholders::__ph<1> const&>, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> > >(boost::context::detail::transfer_t) ()
#17	0x01bea013 in trampoline ()

размер мапкита + рантайма ~1гб

$ ls -lh YandexRuntime/YandexRuntime.framework/Versions/Current/YandexRuntime
-rw-r--r--  1 zhn  staff   247M 28 May 13:29 YandexRuntime/YandexRuntime.framework/Versions/Current/YandexRuntime
$ ls -lh YandexMapKit/YandexMapKit.framework/Versions/Current/YandexMapKit
-rw-r--r--  1 zhn  staff   763M 28 May 13:29 YandexMapKit/YandexMapKit.framework/Versions/Current/YandexMapKit

есть ли возможность уменьшить размер библиотек?

YMKMap возвращает неактуальный YMKVisibleRegion в YMKMapCameraListener

Например я хочу приблизить камеру, чтобы кластер распался.
Если я делаю это программно, то я могу получить актуальный YMKVisibleRegion в callback:

[self.mapView.mapWindow.map moveWithCameraPosition:cameraPosition
                                             animationType:animation
                                            cameraCallback:^(BOOL completed) {
                                                if (completed) {
                                                    // do something with self.mapView.visibleRegion
                                                }
                                            }];

Однако, если это делает пользователь, то я могу только слушать события в YMKMapCameraListener и добавлять магическую задержку, чтобы получить актуальный YMKVisibleRegion:

- (void)onCameraPositionChangedWithMap:(YMKMap *)map
                        cameraPosition:(YMKCameraPosition *)cameraPosition
                    cameraUpdateSource:(YMKCameraUpdateSource)cameraUpdateSource
                              finished:(BOOL)finished {

    if (self.isMapLoaded && finished) {
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(100 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{
            // do something with self.mapView.visibleRegion
        });
    }
}

Без задержки:
ymk_visibleregion_update_no_delay

С задержкой 100 мс:
ymk_visibleregion_update_with_delay

Подскажите пожалуйста, это баг или фича и как с этим работать?

Suggest // Настройка подсказок

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

  1. Подсказки должны выводится только в рамках выбранного региона или города
  2. Вывод подсказок должен быть только на русском языке
  3. Сортировка по удаленности должна производится в зависимости от месторасположения пользователя
  4. Было бы здорово сразу также получать координаты

Get tapped object details and change the icon

I need to display nearby objects with their custom icons on the map, and on tap event open the information window down below. Besides, I need to change the object icon on tap. How can I implement this?
I can hardly find any tutorial or course regarding YandexMapKit.
Any help would be appreciated!

Краш на версии SDK 3.1.2

Воспроизводится на iOS 10-12
Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS

# Platform: ios
# Date: 2019-01-23T14:18:00Z
# OS Version: 12.1.2 (16C101)
# Device: iPhone 6
# RAM Free: 12.2%
# Disk Free: 23.5%

#0. Crashed: com.apple.main-thread
0  AppName                        0x101636a3c yandex::maps::mapkit::camera::Camera::update(std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> > > const&) + 857272
1  AppName                        0x101811e14 yandex::maps::mapkit::map::MapImpl::generateRenderState() + 2803856
2  AppName                        0x101c5f058 yandex::maps::runtime::view::PlatformViewImpl::resetRenderState() + 382968
3  AppName                        0x10199bb9c yandex::maps::runtime::Binder<void>::operator()() + 4417048
4  AppName                        0x10199b758 yandex::maps::runtime::async::internal::PackagedTask<(yandex::maps::runtime::async::Policy)2, void>::invoke() + 4415956
5  AppName                        0x10199b4cc yandex::maps::runtime::async::internal::PackagedTaskCommon<yandex::maps::runtime::async::Promise<void, yandex::maps::runtime::async::Handle>, (yandex::maps::runtime::async::Policy)2>::operator()() + 4415304
6  AppName                        0x101a97be8 yandex::maps::runtime::async::internal::(anonymous namespace)::CallbackEvent::operator()() + 5449316
7  libdispatch.dylib              0x1b3fc16c8 _dispatch_call_block_and_release + 24
8  libdispatch.dylib              0x1b3fc2484 _dispatch_client_callout + 16
9  libdispatch.dylib              0x1b3f6e9a4 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068
10 CoreFoundation                 0x1b4518df4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
11 CoreFoundation                 0x1b4513cbc __CFRunLoopRun + 1964
12 CoreFoundation                 0x1b45131f0 CFRunLoopRunSpecific + 436
13 GraphicsServices               0x1b678c584 GSEventRunModal + 100
14 UIKitCore                      0x1e171ed40 UIApplicationMain + 212
15 AppName                        0x1012b43d4 main (main.m:94)
16 libdyld.dylib                  0x1b3fd2bb4 start + 4

#3. com.apple.uikit.eventfetch-thread
0  libsystem_kernel.dylib         0x1b4113ea4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1b411337c mach_msg + 72
2  CoreFoundation                 0x1b4518be8 __CFRunLoopServiceMachPort + 236
3  CoreFoundation                 0x1b4513a84 __CFRunLoopRun + 1396
4  CoreFoundation                 0x1b45131f0 CFRunLoopRunSpecific + 436
5  Foundation                     0x1b4f09494 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 300
6  Foundation                     0x1b4f09340 -[NSRunLoop(NSRunLoop) runUntilDate:] + 148
7  UIKitCore                      0x1e180f1f4 <redacted> + 136
8  Foundation                     0x1b503c23c __NSThread__start__ + 1040
9  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
10 libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
11 libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#4. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#5. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#6. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#9. com.twitter.crashlytics.ios.MachExceptionServer
0  AppName                        0x10136fdb4 CLSProcessRecordAllThreads + 4307942836
1  AppName                        0x10136fdb4 CLSProcessRecordAllThreads + 4307942836
2  AppName                        0x10136fc70 CLSProcessRecordAllThreads + 4307942512
3  AppName                        0x10135fa4c CLSHandler + 4307876428
4  AppName                        0x10135aa60 CLSMachExceptionServer + 4307855968
5  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
6  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
7  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#10. Thread
0  libsystem_pthread.dylib        0x1b41a7ce8 start_wqthread + 190

#13. 0#BgLow
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#14. 1#BgLow
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#15. 0#BgNorm(Global
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec568 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 96
3  AppName                        0x101a969c0 _yandex_impl___ZNSt3__118condition_variable8wait_forIxNS_5ratioILl1ELl1000000000EEEEENS_9cv_statusERNS_11unique_lockINS_5mutexEEERKNS_6chrono8durationIT_T0_EE + 5444668
4  AppName                        0x101a9552c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop()::'lambda'()::operator()() const + 5439400
5  AppName                        0x101a94ec4 yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437760
6  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
7  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
8  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
9  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
10 libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#16. 1#BgNorm(Global
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec568 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 96
3  AppName                        0x101a969c0 _yandex_impl___ZNSt3__118condition_variable8wait_forIxNS_5ratioILl1ELl1000000000EEEEENS_9cv_statusERNS_11unique_lockINS_5mutexEEERKNS_6chrono8durationIT_T0_EE + 5444668
4  AppName                        0x101a9552c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop()::'lambda'()::operator()() const + 5439400
5  AppName                        0x101a94ec4 yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437760
6  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
7  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
8  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
9  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
10 libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#17. 0#BgHigh
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#18. 1#BgHigh
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#19. System
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#20. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#21. PlatformDispatc
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101aac490 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_19platform_dispatcher18PlatformDispatcherC1EvE3$_0JEEEvRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS1_14ThreadPriorityEOT_DpOT0_ + 5533452
4  AppName                        0x101aac61c std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::platform_dispatcher::PlatformDispatcher::PlatformDispatcher()::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::platform_dispatcher::PlatformDispatcher::PlatformDispatcher()::$_0> >(void*, void*) + 5533848
5  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
6  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
7  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#22. Network
0  libsystem_kernel.dylib         0x1b412091c kevent + 8
1  AppName                        0x101bcb2b8 _yandex_impl___ZN5boost4asio6detail14kqueue_reactor3runElRNS1_8op_queueINS1_19scheduler_operationEEE + 194484
2  AppName                        0x101bcb024 _yandex_impl___ZN5boost4asio6detail9scheduler10do_run_oneERNS1_27conditionally_enabled_mutex11scoped_lockERNS1_21scheduler_thread_infoERKNS_6system10error_codeE + 193824
3  AppName                        0x101bcad80 _yandex_impl___ZN5boost4asio6detail9scheduler3runERNS_6system10error_codeE + 193148
4  AppName                        0x101bc912c yandex::maps::runtime::network::common::NetworkManagerImpl::run() + 185896
5  AppName                        0x101bcbee8 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_7network6common18NetworkManagerImplC1ERKNS5_13NetworkConfigEE3$_0JEEEvRKNSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEENS1_14ThreadPriorityEOT_DpOT0_ + 197604
6  AppName                        0x101bcbf34 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::network::common::NetworkManagerImpl::NetworkManagerImpl(yandex::maps::runtime::network::common::NetworkConfig const&)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::network::common::NetworkManagerImpl::NetworkManagerImpl(yandex::maps::runtime::network::common::NetworkConfig const&)::$_0> >(void*, void*) + 197680
7  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
8  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
9  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#23. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#24. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#25. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#26. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#27. Thread
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  AppName                        0x101bcb07c _yandex_impl___ZN5boost4asio6detail9scheduler10do_run_oneERNS1_27conditionally_enabled_mutex11scoped_lockERNS1_21scheduler_thread_infoERKNS_6system10error_codeE + 193912
3  AppName                        0x101bcad80 _yandex_impl___ZN5boost4asio6detail9scheduler3runERNS_6system10error_codeE + 193148
4  AppName                        0x101bd2484 _yandex_impl___ZN5boost4asio6detail21resolver_service_base22work_io_context_runnerclEv + 144
5  AppName                        0x101bd2410 _yandex_impl__boost_asio_detail_posix_thread_function + 28
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#28. DB:
0  libsystem_kernel.dylib         0x1b411ef0c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1b419cc88 _pthread_cond_wait$VARIANT$mp + 636
2  libc++.1.dylib                 0x1b36ec4d0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  AppName                        0x101a94f0c yandex::maps::runtime::async::internal::ExecTaskQueue<std::__1::unique_ptr<yandex::maps::runtime::async::Event, std::__1::default_delete<yandex::maps::runtime::async::Event> > >::pop() + 5437832
4  AppName                        0x101a94d18 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437332
5  AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
6  libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
7  libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
8  libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#29. DB:
0  libsystem_kernel.dylib         0x1b4120430 fsync + 8
1  AppName                        0x101dbe750 unixSync + 1822448
2  AppName                        0x101dbcd64 multiplexSync + 1815812
3  AppName                        0x101da8388 sqlite3PagerCommitPhaseOne + 1731368
4  AppName                        0x101da86e4 sqlite3BtreeCommitPhaseOne + 1732228
5  AppName                        0x101dd71ec sqlite3VdbeHalt + 1923468
6  AppName                        0x101de8564 sqlite3VdbeExec + 1993988
7  AppName                        0x101dab7b0 _yandex_impl__sqlite3_step + 1744720
8  AppName                        0x101db1a94 _yandex_impl__sqlite3_exec + 1770036
9  AppName                        0x101c33778 yandex::maps::runtime::sqlite::DatabaseImpl::exec(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 204568
10 AppName                        0x101c30ff0 yandex::maps::runtime::sqlite::TransactionImpl::commit() + 194448
11 AppName                        0x101c4771c std::__1::__function::__func<decltype(fp()) yandex::maps::runtime::sqlite::Database::run<yandex::maps::runtime::storage::KeyValueStorageImpl::write(std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > > > const&)::$_8>(yandex::maps::runtime::storage::KeyValueStorageImpl::write(std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > > > const&)::$_8&&)::'lambda'(), std::__1::allocator<decltype(fp()) yandex::maps::runtime::sqlite::Database::run<yandex::maps::runtime::storage::KeyValueStorageImpl::write(std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > > > const&)::$_8>(yandex::maps::runtime::storage::KeyValueStorageImpl::write(std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > > > const&)::$_8&&)::'lambda'()>, void ()>::operator()() + 286396
12 AppName                        0x10199bb9c yandex::maps::runtime::Binder<void>::operator()() + 4417048
13 AppName                        0x101c604ec yandex::maps::runtime::async::internal::PackagedTask<(yandex::maps::runtime::async::Policy)0, void>::invoke() + 388236
14 AppName                        0x101c602c0 yandex::maps::runtime::async::internal::PackagedTaskCommon<yandex::maps::runtime::async::Promise<void, yandex::maps::runtime::async::Future<void> >, (yandex::maps::runtime::async::Policy)0>::operator()() + 387680
15 AppName                        0x101a97be8 yandex::maps::runtime::async::internal::(anonymous namespace)::CallbackEvent::operator()() + 5449316
16 AppName                        0x101a94d38 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_5async8internal10ThreadPoolC1EjRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS7_8functionIFvPNS4_5EventEEEENS1_14ThreadPriorityEE3$_0JEEEvSF_SL_OT_DpOT0_ + 5437364
17 AppName                        0x101a96ba0 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::async::internal::ThreadPool::ThreadPool(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (yandex::maps::runtime::async::Event*)>, yandex::maps::runtime::ThreadPriority)::$_0> >(void*, void*) + 5445148
18 libsystem_pthread.dylib        0x1b41a425c _pthread_body + 128
19 libsystem_pthread.dylib        0x1b41a41bc _pthread_start + 48
20 libsystem_pthread.dylib        0x1b41a7cf4 thread_start + 4

#30. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#31. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#32. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#33. Thread
0  libsystem_pthread.dylib        0x1b41a7ce8 start_wqthread + 190

#34. ru.yandex.mobile.YandexMobileMetrica.YMMServer.Queue
0  libsystem_kernel.dylib         0x1b411de1c __accept + 8
1  YandexMobileMetrica            0x105944660 __async_wait_block_invoke + 112
2  libdispatch.dylib              0x1b3fc16c8 _dispatch_call_block_and_release + 24
3  libdispatch.dylib              0x1b3fc2484 _dispatch_client_callout + 16
4  libdispatch.dylib              0x1b3f69bd0 _dispatch_lane_serial_drain$VARIANT$mp + 592
5  libdispatch.dylib              0x1b3f6a718 _dispatch_lane_invoke$VARIANT$mp + 432
6  libdispatch.dylib              0x1b3f72eb8 _dispatch_workloop_worker_thread + 600
7  libsystem_pthread.dylib        0x1b41a50dc _pthread_wqthread + 312
8  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#35. Thread
0  libsystem_pthread.dylib        0x1b41a7ce8 start_wqthread + 190

#36. Thread
0  libsystem_kernel.dylib         0x1b411fb9c __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1b41a5100 _pthread_wqthread + 348
2  libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

#37. fmdb.<YMMDatabaseQueue: 0x2804a1560>
0  libsystem_kernel.dylib         0x1b4120430 fsync + 8
1  libsqlite3.dylib               0x1b49f2da8 sqlite3_free_table + 67320
2  libsqlite3.dylib               0x1b49fd8b0 sqlite3_randomness + 2476
3  libsqlite3.dylib               0x1b49f26c8 sqlite3_free_table + 65560
4  libsqlite3.dylib               0x1b49dccac sqlite3_value_text + 23712
5  libsqlite3.dylib               0x1b49a8290 sqlite3_finalize + 3672
6  libsqlite3.dylib               0x1b49d5658 sqlite3_step + 66844
7  libsqlite3.dylib               0x1b49c52ec sqlite3_step + 432
8  YandexMobileMetrica            0x1059e84d8 -[PodYandexMobileMetrica_FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] + 1816
9  YandexMobileMetrica            0x1059e8a20 -[PodYandexMobileMetrica_FMDatabase executeUpdate:withParameterDictionary:] + 72
10 YandexMobileMetrica            0x10594ec10 __35-[YMMDatabaseObject saveWithError:]_block_invoke + 120
11 YandexMobileMetrica            0x1059ec64c __53-[PodYandexMobileMetrica_FMDatabaseQueue inDatabase:]_block_invoke + 60
12 libdispatch.dylib              0x1b3fc2484 _dispatch_client_callout + 16
13 libdispatch.dylib              0x1b3f6f5c8 _dispatch_lane_barrier_sync_invoke_and_complete + 56
14 YandexMobileMetrica            0x1059ec5bc -[PodYandexMobileMetrica_FMDatabaseQueue inDatabase:] + 160
15 YandexMobileMetrica            0x1059b912c __25-[YMMStorage inDatabase:]_block_invoke + 60
16 YandexMobileMetrica            0x1059b89ac -[YMMStorage inOpenedDatabase:] + 300
17 YandexMobileMetrica            0x1059b90c4 -[YMMStorage inDatabase:] + 132
18 YandexMobileMetrica            0x10594eab0 -[YMMDatabaseObject saveWithError:] + 372
19 YandexMobileMetrica            0x10599aaac -[YMMReporter addEvent:createdAt:toSession:timeSince:] + 780
20 YandexMobileMetrica            0x105999ee0 -[YMMReporter reportEvent:createdAt:toSession:onFailure:] + 328
21 YandexMobileMetrica            0x105999ce4 -[YMMReporter reportEvent:createdAt:onFailure:] + 216
22 YandexMobileMetrica            0x105998a70 -[YMMReporter reportCommonEventWithBlock:session:date:onFailure:] + 204
23 libdispatch.dylib              0x1b3fc16c8 _dispatch_call_block_and_release + 24
24 libdispatch.dylib              0x1b3fc2484 _dispatch_client_callout + 16
25 libdispatch.dylib              0x1b3f69bd0 _dispatch_lane_serial_drain$VARIANT$mp + 592
26 libdispatch.dylib              0x1b3f6a718 _dispatch_lane_invoke$VARIANT$mp + 432
27 libdispatch.dylib              0x1b3f72eb8 _dispatch_workloop_worker_thread + 600
28 libsystem_pthread.dylib        0x1b41a50dc _pthread_wqthread + 312
29 libsystem_pthread.dylib        0x1b41a7cec start_wqthread + 4

Краш в версии 3.2.0

Версия 3.2.0
Воспроизводится на iOS 11 / 12
Firebase пишет что состояние устройства: 100 % В фоновом режиме

Crashed: Network
0  libsystem_kernel.dylib         0x1bdd7f104 __pthread_kill + 8
1  libsystem_pthread.dylib        0x1bddfb020 pthread_kill$VARIANT$mp + 380
2  libsystem_c.dylib              0x1bdcd6d78 abort + 140
3  AppName                       0x104bdef74 _yandex_impl__CRYPTO_memcmp + 1106068
4  AppName                       0x104b94918 _yandex_impl__ssl_load_ciphers + 801336
5  AppName                       0x104b96ef8 ossl_init_ssl_base_ossl_ + 811032
6  libsystem_pthread.dylib        0x1bddfb6c4 __pthread_once_handler + 80
7  libsystem_platform.dylib       0x1bddf3bac _os_once_callout + 28
8  libsystem_pthread.dylib        0x1bddfb640 pthread_once$VARIANT$mp + 68
9  AppName                       0x104c2fde0 _yandex_impl__CRYPTO_THREAD_run_once + 1437440
10 AppName                       0x104b96d80 _yandex_impl__OPENSSL_init_ssl + 810656
11 AppName                       0x104b996c8 _yandex_impl__SSL_CTX_new + 821224
12 AppName                       0x104ab39a4 _yandex_impl___ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE + 141828
13 AppName                       0x104ab2dfc yandex::maps::runtime::network::spdylay::SslSocketImpl::SslSocketImpl(boost::asio::io_context*, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<bool (unsigned char**, unsigned char*, unsigned char const*, unsigned int)> const&) + 138844
14 AppName                       0x104aae8a4 std::__1::shared_ptr<yandex::maps::runtime::network::spdylay::SslSocketImpl> std::__1::shared_ptr<yandex::maps::runtime::network::spdylay::SslSocketImpl>::make_shared<boost::asio::io_context*&, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<bool (unsigned char**, unsigned char*, unsigned char const*, unsigned int)> const&>(boost::asio::io_context*&&&, yandex::maps::runtime::network::common::NetworkConfig const&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&, std::__1::function<bool (unsigned char**, unsigned char*, unsigned char const*, unsigned int)> const&&&) + 121092
15 AppName                       0x104aad02c yandex::maps::runtime::network::spdylay::createSocket(boost::asio::io_context*, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<bool (unsigned char**, unsigned char*, unsigned char const*, unsigned int)> const&) + 114828
16 AppName                       0x104ac0180 yandex::maps::runtime::network::spdylay::SocketConnector::SocketConnector(boost::asio::io_context*, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<bool (unsigned char**, unsigned char*, unsigned char const*, unsigned int)>) + 4008
17 AppName                       0x104a93cdc yandex::maps::runtime::network::spdylay::Connector::connect(yandex::maps::runtime::network::spdylay::Connector::RequestData) + 11580
18 AppName                       0x104a953cc std::__1::__function::__func<yandex::maps::runtime::network::spdylay::Connector::submit(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long> const&, std::__1::function<bool (std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > > const&)> const&, std::__1::function<void (yandex::maps::runtime::network::Error)> const&)::$_0, std::__1::allocator<yandex::maps::runtime::network::spdylay::Connector::submit(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long> const&, std::__1::function<bool (std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > > const&)> const&, std::__1::function<void (yandex::maps::runtime::network::Error)> const&)::$_0>, void (std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > >)>::operator()(std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > >&&) + 17452
19 AppName                       0x104a960a0 std::__1::__function::__func<yandex::maps::runtime::network::spdylay::Connector::resolve(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long>, std::__1::function<void (std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > >)>)::$_1, std::__1::allocator<yandex::maps::runtime::network::spdylay::Connector::resolve(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long>, std::__1::function<void (std::__1::vector<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__1::allocator<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> > >)>)::$_1>, void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>::operator()(boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>&&) + 20736
20 AppName                       0x104aa03ec std::__1::__function::__func<yandex::maps::runtime::network::common::DnsCache::resolve(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>)::$_1, std::__1::allocator<yandex::maps::runtime::network::common::DnsCache::resolve(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>)::$_1>, void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>::operator()(boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>&&) + 62540
21 AppName                       0x104a80a5c std::__1::__function::__func<yandex::maps::runtime::network::common::HostResolver::HostResolver(boost::asio::io_context*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::function<void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>)::$_0, std::__1::allocator<yandex::maps::runtime::network::common::HostResolver::HostResolver(boost::asio::io_context*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::network::common::NetworkConfig const&, std::__1::function<void (boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>)::$_0>, void (boost::system::error_code const&, boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>)>::operator()(boost::system::error_code const&, boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>&&) + 2072
22 AppName                       0x104a82414 _yandex_impl___ZN5boost4asio6detail7binder2INSt3__18functionIFvRKNS_6system10error_codeENS0_2ip23basic_resolver_iteratorINS9_3tcpEEEEEES6_NS9_22basic_resolver_resultsISB_EEEclEv + 8656
23 AppName                       0x104a811a8 _yandex_impl___ZN5boost4asio6detail16resolve_query_opINS0_2ip3tcpENSt3__18functionIFvRKNS_6system10error_codeENS3_23basic_resolver_iteratorIS4_EEEEEE11do_completeEPvPNS1_19scheduler_operationESA_m + 3940
24 AppName                       0x104a9ae00 _yandex_impl___ZN5boost4asio6detail9scheduler10do_run_oneERNS1_27conditionally_enabled_mutex11scoped_lockERNS1_21scheduler_thread_infoERKNS_6system10error_codeE + 40544
25 AppName                       0x104a9aa40 _yandex_impl___ZN5boost4asio6detail9scheduler3runERNS_6system10error_codeE + 39584
26 AppName                       0x104a98dec yandex::maps::runtime::network::common::NetworkManagerImpl::run() + 32332
27 AppName                       0x104a9bba8 _ZN6yandex4maps7runtime8internal12threadRunnerIZNS1_7network6common18NetworkManagerImplC1ERKNS5_13NetworkConfigEE3$_0JEEEvRKNSt3__112basic_stringIcNSB_11char_traitsIcEENSB_9allocatorIcEEEENS1_14ThreadPriorityEOT_DpOT0_ + 44040
28 AppName                       0x104a9bbf4 std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::network::common::NetworkManagerImpl::NetworkManagerImpl(yandex::maps::runtime::network::common::NetworkConfig const&)::$_0&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, yandex::maps::runtime::ThreadPriority, yandex::maps::runtime::network::common::NetworkManagerImpl::NetworkManagerImpl(yandex::maps::runtime::network::common::NetworkConfig const&)::$_0> >(void*, void*) + 44116
29 libsystem_pthread.dylib        0x1bde0425c _pthread_body + 128
30 libsystem_pthread.dylib        0x1bde041bc _pthread_start + 48
31 libsystem_pthread.dylib        0x1bde07cf4 thread_start + 4
com.apple.main-thread
0  libc++abi.dylib                0x1bd3ad3f8 __cxxabiv1::scan_eh_tab(__cxxabiv1::(anonymous namespace)::scan_results&, _Unwind_Action, bool, _Unwind_Exception*, _Unwind_Context*) + 176
1  libc++abi.dylib                0x1bd3ad230 __gxx_personality_v0 + 112
2  libunwind.dylib                0x1bde2fcb4 _Unwind_RaiseException + 224
3  libc++abi.dylib                0x1bd3accc4 __cxa_rethrow + 104
4  AppName                       0x104969a14 yandex::maps::runtime::async::internal::coro::ConditionVariableImpl::wait_until(std::__1::function<void ()>, std::__1::function<void ()>, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) + 6085864
5  AppName                       0x1049637a8 yandex::maps::runtime::async::ConditionVariable::wait_until_impl(std::__1::function<void ()>, std::__1::function<void ()>, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) + 6060668
6  AppName                       0x1047cb3d8 yandex::maps::runtime::async::CVStatus yandex::maps::runtime::async::ConditionVariable::wait_until_impl<std::__1::unique_lock<yandex::maps::runtime::Mutex> >(std::__1::unique_lock<yandex::maps::runtime::Mutex>&, boost::optional<yandex::maps::runtime::async::internal::TimePoint> const&) + 4388524
7  AppName                       0x1047cb2d8 void yandex::maps::runtime::async::ConditionVariable::wait<std::__1::unique_lock<yandex::maps::runtime::Mutex>, yandex::maps::runtime::async::internal::SharedDataBase::waitLocked(std::__1::unique_lock<yandex::maps::runtime::Mutex>&) const::'lambda'()>(std::__1::unique_lock<yandex::maps::runtime::Mutex>&, yandex::maps::runtime::async::internal::SharedDataBase::waitLocked(std::__1::unique_lock<yandex::maps::runtime::Mutex>&) const::'lambda'()) + 4388268
8  AppName                       0x1047cb218 yandex::maps::runtime::async::internal::SharedDataBase::waitNext() const + 4388076
9  AppName                       0x104740534 yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >::InputIterator::waitNext() + 3819528
10 AppName                       0x104433964 std::__1::__function::__func<yandex::maps::mapkit::experiments::(anonymous namespace)::ExperimentsManagerImpl::ExperimentsManagerImpl(yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >)::'lambda'(yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >), std::__1::allocator<yandex::maps::mapkit::experiments::(anonymous namespace)::ExperimentsManagerImpl::ExperimentsManagerImpl(yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >)::'lambda'(yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >)>, void (yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >)>::operator()(yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > >&&) + 621624
11 AppName                       0x104433d5c void yandex::maps::runtime::Binder<void, yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > > >::invoke<0ul>(std::__1::tuple<yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > > >&, yandex::maps::runtime::internal::index<0ul>) + 622640
12 AppName                       0x10443375c yandex::maps::runtime::async::internal::PackagedTask<(yandex::maps::runtime::async::Policy)1, void, yandex::maps::runtime::async::MultiFuture<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > > >::invoke() + 621104
13 AppName                       0x1047ca394 yandex::maps::runtime::async::internal::PackagedTaskCommon<yandex::maps::runtime::async::Promise<void, yandex::maps::runtime::async::Handle>, (yandex::maps::runtime::async::Policy)1>::operator()() + 4384360
14 AppName                       0x104968448 boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, std::__1::__bind<void (yandex::maps::runtime::async::internal::coro::Task::*)(boost::coroutines::pull_coroutine<void>&), yandex::maps::runtime::async::internal::coro::Task*, std::__1::placeholders::__ph<1> const&>, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> >::run() + 6080284
15 AppName                       0x104b567b8 finish + 547032

При установке API ключа вызывает UI Thread из background

2019-07-22 15:33:08.047418+0300 ------------[2308:409664] yandex::maps::runtime::config::internal::ConfigManagerImpl::ConfigManagerImpl <warn>: Custom experiments are not allowed
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState] PID: 2308, TID: 409661, Thread name: 1#BgNorm(Global, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace: 2019-07-22 15:33:08.053039+0300 Vodovoz[2308:409661] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState] PID: 2308, TID: 409661, Thread name: 1#BgNorm(Global, Queue name: com.apple.root.default-qos.overcommit, QoS: 0 Backtrace:

Как добавить анимацию передвижения маркера (YMKPlacemarkMapObject) на карте?

Хотелось бы добавить анимацию кластеризации как на гифке:

Вот такой код анимации:

- (void)performAnimations:(NSArray<CKClusterAnimation *> *)animations completion:(void (^__nullable)(BOOL finished))completion {

    void (^animationsBlock)(void) = ^{};

    void (^completionBlock)(BOOL finished) = ^(BOOL finished){
        if (completion) completion(finished);
    };

    for (CKClusterAnimation *animation in animations) {
        YMKPlacemarkMapObject *placemark = [self placemarkForCluster:animation.cluster];


        placemark.zIndex = 0;
        placemark.geometry = [YMKPoint pointWithLatitude:animation.from.latitude
                                               longitude:animation.from.longitude];

        animationsBlock = ^{
            animationsBlock();
            placemark.geometry = [YMKPoint pointWithLatitude:animation.to.latitude
                                                   longitude:animation.to.longitude];
        };

        completionBlock = ^(BOOL finished){
            placemark.zIndex = 1;
            completionBlock(finished);
        };
    }

    if ([self.clusterManager.delegate respondsToSelector:@selector(clusterManager:performAnimations:completion:)]) {
        [self.clusterManager.delegate clusterManager:self.clusterManager
                                   performAnimations:animationsBlock
                                          completion:completionBlock];
    } else {
        [UIView animateWithDuration:self.clusterManager.animationDuration
                              delay:0
                            options:self.clusterManager.animationOptions
                         animations:animationsBlock
                         completion:completion];
    }

вместо animateWithDuration(...) пробовал ещё вот так:

CAMediaTimingFunction *curve = nil;
switch (self.clusterManager.animationOptions) {
    case UIViewAnimationOptionCurveEaseInOut:
        curve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        break;
    case UIViewAnimationOptionCurveEaseIn:
        curve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
        break;
    case UIViewAnimationOptionCurveEaseOut:
        curve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
        break;
    case UIViewAnimationOptionCurveLinear:
        curve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
        break;
    default:
        curve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
}

[CATransaction begin];
[CATransaction setAnimationDuration:self.clusterManager.animationDuration];
[CATransaction setAnimationTimingFunction:curve];
[CATransaction setCompletionBlock:^{
    completionBlock(YES);
}];
animationsBlock();
[CATransaction commit];

Результат: маркеры перемещаются но без анимации.

[Bug] CameraListener map leaks

Example:
mapView.mapWindow.map.addCameraListener(with: self)

Calling this method creates a strong reference to self. Removing self from listeners by calling mapView.mapWindow.map.removeCameraListener doesn't help.

YandexMapKit installed via cocoapods:

Installing YandexMapKit (3.4)
Installing YandexRuntime (3.4)

Demo crashes after selecting "MapObjects" section

In simulator and on device after selecting "MapObjects" and navigating back to MainMenuTableViewController there is a crash after some delay:

2019-03-18 11:24:35.637285+1000 MapKitDemo[1976:4265437] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Native object's weak_ptr for N6yandex4maps6mapkit3map9MapObjectE has expired'
*** First throw call stack:
(
	0   CoreFoundation                      0x0000000112f7f1bb __exceptionPreprocess + 331
	1   libobjc.A.dylib                     0x0000000114dd6735 objc_exception_throw + 48
	2   CoreFoundation                      0x0000000112f7ef42 +[NSException raise:format:arguments:] + 98
	3   Foundation                          0x0000000113fda877 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
	4   MapKitDemo                          0x000000010f096d82 -[YMKPlacemarkMapObject setViewWithView:] + 818
	5   MapKitDemo                          0x000000010ec3a99d $S10MapKitDemo0A21ObjectsViewControllerC015createPlacemarka10ObjectWithE8ProvideryyFyycfU_10doMainLoopL_yyF + 1261
	6   MapKitDemo                          0x000000010ec3a41a $S10MapKitDemo0A21ObjectsViewControllerC015createPlacemarka10ObjectWithE8ProvideryyFyycfU_ + 74
	7   MapKitDemo                          0x000000010ec3a49f $S10MapKitDemo0A21ObjectsViewControllerC015createPlacemarka10ObjectWithE8ProvideryyFyycfU_TA + 31
	8   MapKitDemo                          0x000000010ec3abed $SIeg_IeyB_TR + 45
	9   libdispatch.dylib                   0x00000001161c8602 _dispatch_client_callout + 8
	10  libdispatch.dylib                   0x00000001161cb54d _dispatch_continuation_pop + 565
	11  libdispatch.dylib                   0x00000001161dd883 _dispatch_source_invoke + 2211
	12  libdispatch.dylib                   0x00000001161d57c4 _dispatch_main_queue_callback_4CF + 1071
	13  CoreFoundation                      0x0000000112ee43e9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
	14  CoreFoundation                      0x0000000112edea76 __CFRunLoopRun + 2342
	15  CoreFoundation                      0x0000000112edde11 CFRunLoopRunSpecific + 625
	16  GraphicsServices                    0x000000011a22b1dd GSEventRunModal + 62
	17  UIKitCore                           0x000000011fa3881d UIApplicationMain + 140
	18  MapKitDemo                          0x000000010ec358f7 main + 71
	19  libdyld.dylib                       0x000000011623e575 start + 1
	20  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

All pods are v 3.3.x.

userLocationLayer месторасположение и Anchor

отображаю текущее месторасположение на карте :

        mapView.mapWindow.map.isRotateGesturesEnabled = false
        mapView.mapWindow.map.move(with:
            YMKCameraPosition(target: YMKPoint(latitude: 0, longitude: 0), zoom: 14, azimuth: 0, tilt: 0))
        
        let scale = UIScreen.main.scale
        let userLocationLayer = mapView.mapWindow.map.userLocationLayer
        userLocationLayer.isEnabled = true
        userLocationLayer.isHeadingEnabled = true
        userLocationLayer.setAnchorWithAnchorNormal(
            CGPoint(x: 0.5 * mapView.frame.size.width * scale, y: 0.5 * mapView.frame.size.height * scale),
            
            anchorCourse: CGPoint(x: 0.5 * mapView.frame.size.width * scale, y: 0.83 * mapView.frame.size.height * scale))

        
        userLocationLayer.setObjectListenerWith(self)
        mapView.mapWindow.map.addTapListener(with: self)
        
        mapView.mapWindow.map.mapObjects.addTapListener(with: self)

понадобилось убрать привязку к к текущему месторасположению (что бы мог свободно "гулять" по карте и не перекидывало на изначальную точку), из предыдущего вопроса https://github.com/yandex/mapkit-ios-demo/issues/26 узнал, что нужно не задавать userLocationLayer.setAnchorWithAnchorNormal или же вызывать resetAnchor, но :
если не задаю userLocationLayer.setAnchorWithAnchorNormal или же чуть ниже вызываю userLocationLayer.resetAnchor() - карта не грузится (голубой экран с логотипом яндекса).

Подскажите, как правильно отвязать привязку экрана к текущему расположению ?

Краш при [UIApplication applicationWillTerminate]

У нас в приложении появилось очень много крашей при закрытии пользователем приложения

есть какая нибудь информация по этому поводу? может SDK не правильно настроен?

2018-08-31 15 51 39

MapView на UIPageViewController

UIPageViewController перехватывает горизонтальный скролл у яндекс карты. Стояла гугловая и такой проблемы не было. Куда вообще копать можно ?

Как отключить anchor mode?

Использую режим движения с автоцентрированием карты через anchor.
Однако хотел бы иметь возможность в отсутствии движения отключать данный режим.
Но обнаружил что свойство isAnchorEnabled - read-only.
Как правильно отключать автоцентрирование?
Спасибо

карта не отображается

скачала проект, обновила поды и подставила свой ключ.
При переходе на карту - квадратики
может я что-то не так делаю?
спасибо

How can I added overlay like in AppleMaps or Google maps

Google maps sample:

iosched-ios/Source/IOsched/Screens/Map/MapViewController.swift
https://github.com/google/iosched-ios/blob/adb2cef4455b7990d0648d0e26eefe8ffc6bd92f/Source/IOsched/Screens/Map/MapViewController.swift

    overlay.map = mapView
    return mapView
  }

  private func setupOverlay() -> GMSOverlay {
    let mapImage = UIImage(named: "map.png")
    let overlayBounds = GMSCoordinateBounds(coordinate: Constants.overlaySouthWest, coordinate: Constants.overlayNorthEast)

    let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: mapImage)
    overlay.bearing = 0
    return overlay
  }

Apple MapKit:

https://www.raywenderlich.com/2765-overlay-images-and-overlay-views-with-mapkit-tutorial

Sample screen: https://koenig-media.raywenderlich.com/uploads/2014/06/MapOverlay.png

https://github.com/josephBustamante/Independent-Study-Tutorials/blob/e1d58cf987897d7aa20895e08f5e3c8dbcc2cfa1/Park%20View/PVParkMapViewController.m

https://github.com/josephBustamante/Independent-Study-Tutorials/blob/master/Park%20View/PVParkMapOverlayView.m

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay {
    if ([overlay isKindOfClass:PVParkMapOverlay.class]) {
        UIImage *magicMountainImage = [UIImage imageNamed:@"overlay_park"];
        PVParkMapOverlayView *overlayView = [[PVParkMapOverlayView alloc] initWithOverlay:overlay overlayImage:magicMountainImage];
        
        return overlayView;
    }

Thanks

Как исправить данные предупреждения в консоли?

Здравствуйте! Периодически в проекте выводятся данные логи:

2019-07-30 15:34:39.880005+0500 Client[21515:1003068] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 3 created. That could seriously decrease rendering speed
2019-07-30 15:34:42.462635+0500 Client[21515:1003068] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 4 created. That could seriously decrease rendering speed
2019-07-30 15:34:45.103704+0500 Client[21515:1003072] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 5 created. That could seriously decrease rendering speed

Не могу понять, о чем идет речь. Что за страницы и почему это серьезно уменьшает скорость рендеринга?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.