carrotquest / ios-sdk

Conversational platform for business. iOS sdk.
3 stars 1 forks source link

При ответе на сообщение в чате, приложение падает с ошибкой #11

Closed baihu92 closed 3 years ago

baihu92 commented 3 years ago

Здравствуйте. При отправке сообщения в чате, приложение падает с ошибкой. Чат открывался по нажатию на пуш-нотификацию. Версия - 2.0.1

Ошибка: Thread 1: EXC_BAD_ACCESS (code=1, address=0x875a8949a020)

Alond commented 3 years ago

@baihu92 Привет, взял в работу.

Alond commented 3 years ago

@baihu92 Привет! Не могу повторить :( Есть тестовый проект или более подробное описание как повторить?

baihu92 commented 3 years ago

Приложение написано на flutter'e.

При старте вызывается

AppDelegate следующий:

import UIKit
import Flutter
import Firebase
import CarrotSDK

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, MessagingDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
    ) -> Bool {
        if #available(iOS 10.0, *) {
            UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
        }

        GeneratedPluginRegistrant.register(with: self)
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }

    override func userNotificationCenter(
        _ center: UNUserNotificationCenter,
        willPresent notification: UNNotification,
        withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let notificationService = CarrotNotificationService.shared
        if notificationService.canHandle(notification) {
            notificationService.show(notification, completionHandler: completionHandler)
        }
    }

    override func userNotificationCenter(
        _ center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void) {
        let notificationService = CarrotNotificationService.shared
        if notificationService.canHandle(response) {
            notificationService.clickNotification(notificationResponse: response)
        }

        completionHandler()
    }
}

Тестировал на устройстве (не симулятор).

Ситуация при которой происходит креш:

Далее приложение падает с указанной ошибкой.

Alond commented 3 years ago

@baihu92 Не смог повторить на свифте. Тестового проекта нет?

Dimoshka commented 3 years ago

@Alond Возможно ответ находится тут https://stackoverflow.com/a/63869774

Up - проблема таже, только я не пытаюсь исползовать фаирбейс.

Dimoshka commented 3 years ago

Вроде бы работает, можно закрывать