ЗДЕСЬ iOS Премиум Карта - setAppId Crash - PullRequest
0 голосов
/ 11 июля 2019

У меня странный сбой, который происходит с меньшинством наших пользователей, но достаточно часто, чтобы вызывать беспокойство.

if(!NMAApplicationContext.isInitialized()) {
  NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}

Есть идеи, что может вызвать сбой этого вызова init?

Спасибо!

Дополнительная информация:

Из нашего отчета о сбоях Devices with crash

enter image description here

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Спасибо!Обновление - мне удалось зафиксировать сбой в XCode.Stacktrace:

frame #0: 0x00000001bd4520dc libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001bd4cb094 libsystem_pthread.dylib`pthread_kill$VARIANT$mp + 380
frame #2: 0x00000001bd3abea8 libsystem_c.dylib`abort + 140
frame #3: 0x0000000104724f60 NMAKit`___lldb_unnamed_symbol2248$$NMAKit + 476

Мне удалось воспроизвести его.Код выше вызывается на переднем плане, и кажется, что вызов isInitialized возвращает ложь на переднем плане (не новый запуск приложения), поэтому он пытается повторно подключить библиотеку .... и затем происходит сбой.Надеюсь, это поможет.

1 Ответ

0 голосов
/ 19 июля 2019

Ваш код:

if(!NMAApplicationContext.isInitialized()) {
  NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}

Вызывает сбой из-за неправильного использования API:

  1. Задать учетные данные следует перед тем, как использовать ЛЮБОЙ вызов API HereSDK.
  2. NMAApplicationContext не предоставляет методы проверки авторизации, NMAApplicationContext.isInitialized () проверяет, готова ли функция карты к использованию (уже запущен механизм).NMAApplicationContext.isInitialized () проверяется перед пользовательской настройкой конфигурации .

Как решить проблему сбоя:

  1. УдалитеNMAApplicationContext.isInitialized () if оператор
  2. вызывает NMAApplicationContext.setAppId (метод HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY), проверяет правильность установки и проверяет правильность установки.
...