본문 바로가기
프로그래밍/Flutter <Dart>

[Flutter] flutter_inappwebview iOS 18 Ambiguous use of 'evaluateJavaScript(_:completionHandler)' 에러 해결

by TaeGyeong Lee 2024. 9. 18.

개요 

flutter_inappwebview 플러그인을 사용하면서 iOS 18 을 타켓하는 프로젝트 빌드 시 발생할 수 있습니다. iOS 18 와 플러그인 간 호환성 문제입니다. 이를 해결해 보겠습니다.

 

해결

위 에러 발생한 상태에서 문제를 해결해 보겠습니다. 함수명 evaluateJavaScript에 마우스를 올린 후 우클릭합니다. Jump to Definition 을 선택해 주세요.

 

InAppWebView 를 선택해 주세요.

 

InAppWebView 선택 시 아래와 같이 evaluateJavaScript 함수 원형으로 이동합니다. 

 

아래와 같이 completionHandler 속성에 @MainActor 를 추가해 주세요. 

 

저장 후 다시 빌드 시도해 보세요.

 

flutter_inappwebview는 23년을 마지막으로 업데이트되지 않은 플러그인입니다. 꾸준히 유지 보수되지 않으면 이런 상황처럼 직접 플러그인을 수정해야 합니다. 오픈소스 생태계의 허점입니다. 

 

참고 자료

 

[Xcode 16 Beta] Override evaluateJavaScript error when build · Issue #2201 · pichillilorenzo/flutter_inappwebview

Check the Showcase page to see an open list of Apps built with Flutter and Flutter InAppWebView. If you are using the Flutter InAppWebView plugin and would like to add your App there, follow the in...

github.com