Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: FlutterBoost exceptions on iOS. #1972

Open
Ali-Zameen89 opened this issue Feb 29, 2024 · 2 comments
Open

[Bug]: FlutterBoost exceptions on iOS. #1972

Ali-Zameen89 opened this issue Feb 29, 2024 · 2 comments

Comments

@Ali-Zameen89
Copy link

请描述遇到的问题,以及您所期望的正确的结果

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method check on channel dev.fluttercommunity.plus/connectivity)
#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:320:7)
<asynchronous suspension>
#1      MethodChannelConnectivity.checkConnectivity.<anonymous closure> (package:connectivity_plus_platform_interface/method_channel_connectivity.dart:41:15)
<asynchronous suspension>
#2      ConnectionManagerController.getConnectivityType (package:flutter_module_favorites/network/utils/connection_manager_controller.dart:34:28)
<asynchronous suspension>
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
#0      NativeRouterApi.getStackFromHost (package:flutter_boost/src/messages.dart:257:7)
<asynchronous suspension>
#1      FlutterBoostAppState._restoreStackForHotRestart (package:flutter_boost/src/flutter_boost_app.dart:215:19)
<asynchronous suspension>
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
#0      NativeRouterApi.saveStackToHost (package:flutter_boost/src/messages.dart:284:7)
<asynchronous suspension>
#1      FlutterBoostAppState._saveStackForHotRestart (package:flutter_boost/src/flutter_boost_app.dart:210:5)
<asynchronous suspension>
Screenshot 2024-02-29 at 3 13 13 PM Screenshot 2024-02-29 at 3 13 55 PM

请说明如何操作会遇到上述问题

  1. flutter build ios-framework
  2. Take out debug xcframeworks and add in a sample project.

在下面填入关键复现代码

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    
    let delegate = BoostDelegate()
    
    FlutterBoost.instance().setup(application, delegate: delegate, callback: { engine in
      debugPrint(engine)
    })
    
//    FlutterBoost.instance().sendEventToFlutter(with: "appArgs", arguments: ["language": "en", "environment": "com"])
//    FlutterBoost.instance().sendEventToFlutter(with: "loginUser", arguments: [:])
    
    return true
  }
  
  // MARK: UISceneSession Lifecycle
  
  func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
    // Called when a new scene session is being created.
    // Use this method to select a configuration to create the new scene with.
    return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
  }
  
  func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
    // Called when the user discards a scene session.
    // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
    // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
  }
}

复现的平台

iOS

Flutter SDK版本

3.16.9

FlutterBoost版本

5.0.1

是否延迟初始化FlutterBoost

No

解决方案

@Ali-Zameen89
Copy link
Author

We are witnessing that flutter boost isn't picking up routes that we provide from native iOS side.

@Ali-Zameen89
Copy link
Author

Ali-Zameen89 commented Mar 1, 2024

When we create a dummy Flutter Engine, we are able to silence these exceptions but our native pigeon communications don't work with FlutterBoost engine's binary messenger.

var flutterEngine = FlutterEngine(name: "FlutterBoostPlugin") flutterEngine.run() GeneratedPluginRegistrant.register(with: flutterEngine)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant