Post

flutter 개발자라면 iOS18.4 , iOS26으로 업데이트 하는것은 잠시 멈춰주세요

flutter 개발자라면 iOS18.4 , iOS26으로 업데이트 하는것은 잠시 멈춰주세요

저는 Flutter 전용 개발자는 아니지만, Flutter를 사용한 프로젝트가 있어 중요한 정보를 공유하게 되었습니다.

최근 iOS26의 발표와 함꼐 iOS18.4 버전도 출시가 되었습니다. 하지만 Flutter 개발자에게 이는 달갑지 않은 소식 일 수 있습니다.

왜? 업데이트를 하면 안될까요?

Flutter의 디버깅모드는 아이폰의 JIT(Just-In-Time)컴파일 기능을 활용하여 핵심 기능인 핫 리로드를 구현헀습니다. 하지만 iOS 18.4 및 iOS 26 버전부터는 애플 측에서 보안 이슈 해결 과정에서 JIT의 버그를 수정하면서, 디버그 모드일때 JIT를 사용할 수 없게 되었습니다.

이로 인해 Flutter 개발 커뮤니티인 Flutter Forum에서도 큰 불만이 제기되고 있는 상황이죠. https://forum.itsallwidgets.com/t/ios-26-jit-and-flutter/3534

JIT(Just-In_Time) 컴파일 이란?

JIT(Just-In_Time) 컴파일은 프로그램 코드를 실행하는 시점에서 기계어로 번역하는 기술입니다.

일반적으로는 코드는 미리 기계어로 컴파일딘 후 배포되지만, Flutter의 핫 리로드는 개발자가 코드를 수정할 떄마다 실행 중인 앱에서 해당 변경 사항만 빠르게 적용하기 위해 이 JIT 컴파일 방식을 사용합니다. 이 방식은 개발 속도를 획기적으로 높여주는 Flutter의 핵심 기능중 하나죠

그러면 아예 개발을 못해?

그렇지 않습니다.

  • 안드로이드는 이 문제와 관련이 없습니다.
  • iOS 시뮬레이터에서는 JIT를 사용하지 않기 떄문에 시뮬레이터로 개발하는 경우라면 문제없이 진행이 가능합니다.

문제는 실기기 개발에서 발생합니다.

가장 좋은 해결측은 Flutter에서 해당 이슈를 해결하고 새로운 버전을 릴리즈할 떄까지 기다리는것입니다. 또는 시뮬레이터로 개발하는 방법이 있습니다.

실기기에서 꼭 테스트를 해야한다면 모든 개발을 완료하고 Profile 모드 혹은 Release 모드에서 확인하는 방법입니다. 이 두 모드는 JIT를 사용하지 않아서 작동에는 문제가 없습니다.

하지만… 핫 리로드는 되지 않죠…

언제 배포?

다행히도 Flutter 팀에서도 해당 이슈를 빠르게 인지하고 수정이 완료된 상황입니다.

[해당 이슈] https://github.com/flutter/flutter/issues/163984

하지만 아직 공식적으로는 배포된 상황은 아니며, Flutter 측의 정식 릴리즈 기다릴수 밖에 없는 상황이죠

저 역시 리퀴드 글래스가 궁금해서 업데이트를 해버렸고, 저 같은경우 실기기로만 작동하는 부분이 있기 떄문에… 지금은 안드로이드를 이용해 주로 개발을 하고 있고, 모든 개발이 완료 되었을떄 Profile 모드로 아이폰에서도 체크하는 방식으로 임시방편을 고수하고 있습니다…

하루라도 빨리 업데이트 되길!

This post is licensed under CC BY 4.0 by the author.