volga-volga / react-native-yamap

React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
148 stars 81 forks source link

Краш с новой версией 4.1.0 IOS #146

Closed ch3rn1k closed 1 year ago

ch3rn1k commented 1 year ago

Добрый день! Стало крашить при запуске приложения, чистый билд с переустановкой Pods делал. Вот часть лога краша:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Incident Identifier: 81D5C6D9-9AB9-4772-A124-3E879BF6D820
CrashReporter Key:   B0139B81-C30B-1E7D-48F5-1A35BAC60A7E
Hardware Model:      MacBookPro15,1
Process:             XXX [33334]
Path:                /Users/USER/Library/Developer/CoreSimulator/Devices/E0408ABE-CF61-4B09-8F15-E28DA2C247EF/data/Containers/Bundle/Application/8D5810DA-16C7-488D-BA2A-2893EC427437/XXX.app/XXX
Identifier:          org.reactjs.native.example.XXX
Version:             1.0 (1)
Code Type:           X86-64 (Native)
Role:                Foreground
Parent Process:      launchd_sim [11294]
Coalition:           com.apple.CoreSimulator.SimDevice.E0408ABE-CF61-4B09-8F15-E28DA2C247EF [3525]
Responsible Process: SimulatorTrampoline [11258]

Date/Time:           2022-08-02 12:35:16.2533 +0300
Launch Time:         2022-08-02 12:35:15.3277 +0300
OS Version:          macOS 12.4 (21F79)
Release Type:        User
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib              0x7fff7017300e __pthread_kill + 10
1   libsystem_pthread.dylib             0x7fff701cb1ff pthread_kill + 263
2   libsystem_c.dylib                   0x7fff2010b6b7 abort + 130
3   XXX                                     0x1053d966b yandex::maps::mapkit::internal::MapKitImpl::MapKitImpl() + 5323
4   XXX                                     0x1053e4f21 std::__1::shared_ptr<yandex::maps::mapkit::internal::MapKitImpl> yandex::maps::runtime::makeWeakPlatformObject<yandex::maps::mapkit::internal::MapKitImpl, yandex::maps::mapkit::internal::MapKitImpl>() + 81
5   XXX                                     0x1053d8094 yandex::maps::mapkit::MapKitHolder::MapKitHolder() + 36
6   XXX                                     0x1053f9c22 yandex::maps::mapkit::MapKitHolder& yandex::maps::runtime::singleton<yandex::maps::mapkit::MapKitHolder>() + 66
7   XXX                                     0x1053d8069 yandex::maps::mapkit::internal::getMapKit() + 9
8   XXX                                     0x105f5f9a9 yandex::maps::mapkit::search::internal::SearchImpl::SearchImpl() + 169
9   XXX                                     0x105f630e1 std::__1::shared_ptr<yandex::maps::mapkit::search::internal::SearchImpl> yandex::maps::runtime::makeWeakPlatformObject<yandex::maps::mapkit::search::internal::SearchImpl, yandex::maps::mapkit::search::internal::SearchImpl>() + 81
10  XXX                                     0x105f5f7dd yandex::maps::mapkit::search::SearchHolder::SearchHolder() + 29
11  XXX                                     0x105f5f8c2 yandex::maps::mapkit::search::SearchHolder& yandex::maps::runtime::singleton<yandex::maps::mapkit::search::SearchHolder>() + 66
12  XXX                                     0x105f5f879 yandex::maps::mapkit::search::getSearch() + 9
13  XXX                                     0x105f6432c +[YMKSearch(Factory) getPlatformInstance] + 28
14  XXX                                     0x103b8e4cb -[YamapSuggests init] + 315 (YamapSuggests.m:22)
15  XXX                                     0x103c57e74 __115-[RCTModuleData initWithModuleClass:bridge:moduleRegistry:viewRegistry_DEPRECATED:bundleManager:callableJSModules:]_block_invoke + 36 (RCTModuleData.mm:116)
16  XXX                                     0x103c58b11 -[RCTModuleData setUpInstanceAndBridge:] + 1553 (RCTModuleData.mm:190)
17  XXX                                     0x103c5b16a __25-[RCTModuleData instance]_block_invoke + 42 (RCTModuleData.mm:401)
18  XXX                                     0x103cd27b8 RCTUnsafeExecuteOnMainQueueSync + 56 (RCTUtils.m:275)
19  XXX                                     0x103c5ace2 -[RCTModuleData instance] + 962 (RCTModuleData.mm:400)
20  XXX                                     0x103bf6d58 __49-[RCTCxxBridge _prepareModulesWithDispatchGroup:]_block_invoke + 184 (RCTCxxBridge.mm:1022)
21  libdispatch.dylib                   0x7fff201148e4 _dispatch_call_block_and_release + 12
22  libdispatch.dylib                   0x7fff20115b25 _dispatch_client_callout + 8
23  libdispatch.dylib                   0x7fff201230a4 _dispatch_main_queue_drain + 1147
24  libdispatch.dylib                   0x7fff20122c1b _dispatch_main_queue_callback_4CF + 31
25  CoreFoundation                      0x7fff20371ed5 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
26  CoreFoundation                      0x7fff2036c6ca __CFRunLoopRun + 2761
27  CoreFoundation                      0x7fff2036b704 CFRunLoopRunSpecific + 562
28  GraphicsServices                    0x7fff2cba9c8e GSEventRunModal + 139
29  UIKitCore                           0x7fff2509e65a -[UIApplication _run] + 928
30  UIKitCore                           0x7fff250a32b5 UIApplicationMain + 101
31  XXX                                    0x1035dd708 main + 104 (main.m:8)
32  dyld_sim                               0x10cab0f21 start_sim + 10
33  dyld                                   0x10d2b251e start + 462
ownikss commented 1 year ago

Можешь пожалуйста отсюда поставить? https://github.com/imsnow/react-native-yamap/tree/up_to_4.1.0_version

С этого репозитория и ветки. Здесь была обновлена версия sdk. Нужно понять где проблема - в самом апгрейде или в других изменениях которые вносились в библиотеку

imsnow commented 1 year ago

Попробуй перед вызовом YMKMapKit.setApiKey, добавить вызов YMKMapKit.setLocale("ru_RU")

ch3rn1k commented 1 year ago

Попробуй перед вызовом YMKMapKit.setApiKey, добавить вызов YMKMapKit.setLocale("ru_RU")

Да, такое решение помогло. Надо бы в README добавить для всех инфу...

[YMKMapKit setLocale: @"ru_RU"];
[YMKMapKit setApiKey: @"API_KEY"];

@ownikss проблемам решена, спасибо. Подправлю тогда README для всех

Hartaithan commented 1 year ago

UPD: Ок, неважно, проблема решилась переносом вызовов YMKMapKit выше [RNSplashScreen show]

Такая же проблема с версией "react-native-yamap": "^4.1.5". Вызов YMKMapKit.setLocale("ru_RU") стоит перед вызовом YMKMapKit.setApiKey. В чем еще может быть проблема?

Incident Identifier: 8867EE61-D1D4-4507-9CBF-220928F29CEB
CrashReporter Key:   A8F8B70C-CA67-824D-ABEB-2A71210A60AA
Hardware Model:      iMac20,1
Process:             AppName [15284]
Path:                /Users/USER/Library/Developer/CoreSimulator/Devices/B42E3526-68CD-4C73-8B9E-FF875DBAA76D/data/Containers/Bundle/Application/3BFC08DF-97A8-43C9-965A-48A202D86FDB/AppName.app/AppName
Identifier:          app.appName
Version:             1.0 (1)
Code Type:           X86-64 (Native)
Role:                Foreground
Parent Process:      launchd_sim [1459]
Coalition:           com.apple.CoreSimulator.SimDevice.B42E3526-68CD-4C73-8B9E-FF875DBAA76D [1475]
Responsible Process: SimulatorTrampoline [1446]

Date/Time:           2022-08-24 11:50:25.8773 +0900
Launch Time:         2022-08-24 11:50:22.6659 +0900
OS Version:          macOS 12.5 (21G72)
Release Type:        User
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib                 0x11cbbb00e __pthread_kill + 10
1   libsystem_pthread.dylib                0x11b4ee1ff pthread_kill + 263
2   libsystem_c.dylib                      0x11b5dc6b7 abort + 130
3   AppName                                    0x110ad066b yandex::maps::mapkit::internal::MapKitImpl::MapKitImpl() + 5323
4   AppName                                    0x110adbf21 std::__1::shared_ptr<yandex::maps::mapkit::internal::MapKitImpl> yandex::maps::runtime::makeWeakPlatformObject<yandex::maps::mapkit::internal::MapKitImpl, yandex::maps::mapkit::internal::MapKitImpl>() + 81
5   AppName                                    0x110acf094 yandex::maps::mapkit::MapKitHolder::MapKitHolder() + 36
6   AppName                                    0x110af0c22 yandex::maps::mapkit::MapKitHolder& yandex::maps::runtime::singleton<yandex::maps::mapkit::MapKitHolder>() + 66
7   AppName                                    0x110acf069 yandex::maps::mapkit::internal::getMapKit() + 9
8   AppName                                    0x1116569a9 yandex::maps::mapkit::search::internal::SearchImpl::SearchImpl() + 169
9   AppName                                    0x11165a0e1 std::__1::shared_ptr<yandex::maps::mapkit::search::internal::SearchImpl> yandex::maps::runtime::makeWeakPlatformObject<yandex::maps::mapkit::search::internal::SearchImpl, yandex::maps::mapkit::search::internal::SearchImpl>() + 81
10  AppName                                    0x1116567dd yandex::maps::mapkit::search::SearchHolder::SearchHolder() + 29
11  AppName                                    0x1116568c2 yandex::maps::mapkit::search::SearchHolder& yandex::maps::runtime::singleton<yandex::maps::mapkit::search::SearchHolder>() + 66
12  AppName                                    0x111656879 yandex::maps::mapkit::search::getSearch() + 9
13  AppName                                    0x11165b32c +[YMKSearch(Factory) getPlatformInstance] + 28
14  AppName                                    0x10f29ee3b -[YamapSuggests init] + 315 (YamapSuggests.m:19)
15  AppName                                    0x10f366624 __115-[RCTModuleData initWithModuleClass:bridge:moduleRegistry:viewRegistry_DEPRECATED:bundleManager:callableJSModules:]_block_invoke + 36 (RCTModuleData.mm:115)
16  AppName                                    0x10f3672c1 -[RCTModuleData setUpInstanceAndBridge:] + 1553 (RCTModuleData.mm:189)
17  AppName                                    0x10f36a74a __25-[RCTModuleData instance]_block_invoke + 42 (RCTModuleData.mm:467)
18  AppName                                    0x10f3e1428 RCTUnsafeExecuteOnMainQueueSync + 56 (RCTUtils.m:275)
19  AppName                                    0x10f36a2c2 -[RCTModuleData instance] + 962 (RCTModuleData.mm:466)
20  AppName                                    0x10f3057d8 __49-[RCTCxxBridge _prepareModulesWithDispatchGroup:]_block_invoke + 184 (RCTCxxBridge.mm:1064)
21  libdispatch.dylib                      0x11a0da8e4 _dispatch_call_block_and_release + 12
22  libdispatch.dylib                      0x11a0dbb25 _dispatch_client_callout + 8
23  libdispatch.dylib                      0x11a0e90a4 _dispatch_main_queue_drain + 1147
24  libdispatch.dylib                      0x11a0e8c1b _dispatch_main_queue_callback_4CF + 31
25  CoreFoundation                         0x119687261 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
26  CoreFoundation                         0x119681a56 __CFRunLoopRun + 2761
27  CoreFoundation                         0x119680a90 CFRunLoopRunSpecific + 562
28  Foundation                             0x11bf50e31 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213
29  Foundation                             0x11bf510aa -[NSRunLoop(NSRunLoop) runUntilDate:] + 72
30  AppName                                    0x10f66b046 +[RNSplashScreen show] + 230 (RNSplashScreen.m:31)
31  AppName                                    0x10eb7c4a5 -[AppDelegate application:didFinishLaunchingWithOptions:] + 1189 (AppDelegate.mm:63)
32  UIKitCore                              0x128fdf847 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 214
33  UIKitCore                              0x128fe1538 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 4128
34  UIKitCore                              0x128fe6ed8 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1190
35  UIKitCore                              0x128557a92 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 122
36  UIKitCore                              0x128b4bba6 _UIScenePerformActionsWithLifecycleActionMask + 88
37  UIKitCore                              0x12855858c __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 198
38  UIKitCore                              0x128557fc9 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 252
39  UIKitCore                              0x1285583c2 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 831
40  UIKitCore                              0x128557c6f -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 354
ownikss commented 1 year ago

Не понял, проблемы в итоге нет?

Hartaithan commented 1 year ago

Не понял, проблемы в итоге нет?

Проблема решена. По какой-то причине приложение крашится только если вызов [RNSplashScreen show] стоит выше вызовов [YMKMapKit]

Если в вашем проекте используется react-native-splash-screen, то ваш AppDelegate.m/mm должен выглядеть примерно вот так:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  [YMKMapKit setLocale: @"ru_RU"];
  [YMKMapKit setApiKey: @"YOUR_API_KEY"];
  [RNSplashScreen show];
  return YES;
}