alibaba / alibaba/flutter_boost

[Bug]: 执行代理跳转创建FBFlutterViewContainer时候卡死,也不闪退就是卡死整个app动不了

Open
#2,201 11 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
7.2k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

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

在按照配置初始化flutterboost后,按钮点击执行[[FlutterBoost instance]open:options]; 触发代理pushFlutterRoute 在pushFlutterRoute方法中 创建FBFlutterViewContainer *vc = [[FBFlutterViewContainer alloc] init]; 程序卡死在这里,FBFlutterViewContainer.m中所有方法断点后都没执行,无法进行任何操作,这是个别机型版本会出现的问题。我这里用到的是13pro 18.3.2系统版本。为什么少部分机型会出现这样的问题,而且同一种机型也不是每个都会出问题。

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

正常的点击原生事件触发跳转到flutter模块的操作,在少部分机型会复现此问题。复现率很低,但是某一手机有问题的话会100%复现,一定卡死。卸载app重装等都没用。

### 在下面填入关键复现代码

- (void)pushFlutterRoute:(FlutterBoostRouteOptions *)options {

**//执行FBFlutterViewContainer *vc = [[FBFlutterViewContainer alloc] init];的时候直接卡死**

FBFlutterViewContainer *vc = [[FBFlutterViewContainer alloc] init];

[vc setName:options.pageName uniqueId:options.uniqueId params:options.arguments opaque:options.opaque];

//是否伴随动画
BOOL animated = YES;
NSNumber * animatedValue = options.arguments[@"animated"];
if(animatedValue){
animated = [animatedValue boolValue];
}

BOOL present = [options.arguments[@"present"] boolValue] || !options.opaque;

if(present){
[self.navigationController presentViewController:vc animated:animated completion:^{
options.completion(YES);
}];
}else{
[self.navigationController pushViewController:vc animated:animated];
options.completion(YES);
}
}

### 复现的平台

iOS

### Flutter SDK版本

3.27.0

### FlutterBoost版本

4.6.5

### 是否延迟初始化FlutterBoost

No

### 解决方案

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at pushFlutterRoute and FBFlutterViewContainer.m in the FlutterBoost 4.6.5 iOS integration. Reproduce the freeze on the reported iPhone 13 Pro and iOS 18.3.2 setup, comparing affected and unaffected devices, then inspect where initialization stops. Done means the route can create and present or push FBFlutterViewContainer without the app hanging.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, ios, objective-c
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.