alibaba / alibaba/flutter_boost
iOS OpenGL 相关闪退
- Dominant language
- Dart
- Stars
- 7.2k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
flutter 环境
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.12.13+hotfix.9, on macOS 11.0.1 20B29, locale
zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
[!] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2019.1.1)
[✓] VS Code (version 1.52.0)
[!] Connected device
! No devices available
flutter_boost 版本
flutter_boost:
git:
url: 'https://github.com/alibaba/flutter_boost.git'
ref: '1.12.13'
线上包闪退日志
Thread 0 name:
Thread 0 Crashed:
0 OpenGLES 0x00000001b805f8ec +[EAGLContext setCurrentContext:] + 72 (eagl_context.m:425)
1 OpenGLES 0x00000001b805f8e0 +[EAGLContext setCurrentContext:] + 60 (eagl_context.m:419)
2 Flutter 0x00000001086cb3e4 flutter::IOSGLRenderTarget::~IOSGLRenderTarget() + 88 (ios_gl_render_target.mm:74)
3 Flutter 0x00000001086cb3e4 flutter::IOSGLRenderTarget::~IOSGLRenderTarget() + 88 (ios_gl_render_target.mm:64)
4 Flutter 0x00000001086cb3e4 std::__1::default_delete::operator()(flutter::IOSGLRenderTarget*) const + 88 (memory:2339)
5 Flutter 0x00000001086cb3e4 std::__1::unique_ptr >::reset(flutter::IOSGLRenderTarget*) + 116 (memory:2652)
6 Flutter 0x00000001086ca800 std::__1::unique_ptr >::~unique_ptr() + 8 (memory:2606)
7 Flutter 0x00000001086ca800 std::__1::unique_ptr >::~unique_ptr() + 8 (memory:2606)
8 Flutter 0x00000001086ca800 flutter::IOSSurfaceGL::~IOSSurfaceGL() + 44 (ios_surface_gl.mm:25)
9 Flutter 0x00000001086ca800 flutter::IOSSurfaceGL::~IOSSurfaceGL() + 44 (ios_surface_gl.mm:25)
10 Flutter 0x00000001086ca800 flutter::IOSSurfaceGL::~IOSSurfaceGL() + 60 (ios_surface_gl.mm:25)
11 Flutter 0x00000001086cd838 std::__1::default_delete::operator()(flutter::IOSSurface*) const + 12 (memory:2339)
12 Flutter 0x00000001086cd838 std::__1::unique_ptr >::reset(flutter::IOSSurface*) + 24 (memory:2652)
13 Flutter 0x00000001086cd838 flutter::PlatformViewIOS::SetOwnerViewController(fml::WeakPtr) + 96 (platform_view_ios.mm:50)
14 Flutter 0x00000001086adf98 -[FlutterEngine setViewController:] + 200 (FlutterEngine.mm:190)
15 Flutter 0x00000001086bdcf0 -[FlutterViewController initWithEngine:nibName:bundle:] + 348 (FlutterViewController.mm:87)
16 TaQu 0x00000001057405e0 -[FLBFlutterViewContainer init] + 304 (FLBFlutterViewContainer.m:51)
17 TaQu 0x000000010574a2cc -[FlutterRouter open:urlParams:exts:completion:] + 76 (FlutterRouter.m:54)
18 TaQu 0x000000010574a228 -[FlutterRouter runWithURL:params:] + 240 (FlutterRouter.m:49)
19 TaQu 0x00000001048b2c2c __48+[XHBQCTopicFlutterManager showReceiveCallView:]_block_invoke + 76 (XHBQCTopicFlutterManager.m:77)
20 libdispatch.dylib 0x000000018504324c _dispatch_call_block_and_release + 32 (init.c:1454)
21 libdispatch.dylib 0x0000000185044db0 _dispatch_client_callout + 20 (object.m:559)
22 libdispatch.dylib 0x00000001850527ac _dispatch_main_queue_callback_4CF + 836 (inline_internal.h:2548)
23 CoreFoundation 0x00000001853cc11c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 (CFRunLoop.c:1790)
24 CoreFoundation 0x00000001853c6120 __CFRunLoopRun + 2508 (CFRunLoop.c:3118)
25 CoreFoundation 0x00000001853c521c CFRunLoopRunSpecific + 600 (CFRunLoop.c:3242)
26 GraphicsServices 0x000000019c444784 GSEventRunModal + 164 (GSEvent.c:2259)
27 UIKitCore 0x0000000187dfe200 -[UIApplication _run] + 1072 (UIApplication.m:3266)
28 UIKitCore 0x0000000187e03a74 UIApplicationMain + 168 (UIApplication.m:4738)
29 TaQu 0x0000000102d8f18c main + 88 (main.m:16)
30 libdyld.dylib 0x00000001850856c0 start + 4
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the crash frames in Flutter's ios_gl_render_target.mm and ios_surface_gl.mm, then trace the SetOwnerViewController path through platform_view_ios.mm and FlutterEngine.mm. Reproduce the iOS crash using the reported Flutter 1.12.13+hotfix.9 and Xcode 12.2 setup. Done means the reported OpenGLES crash no longer occurs when the Flutter view container is initialized.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, ios
- Domain
- computer-graphics, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100