
iOS 26부터 보안 정책이 강화되면서, Flutter 3.32.x 기준으로 실기기 환경에서 Debug 모드 실행 시 앱이 정상적으로 동작하지 않는 문제가 발생했다.
Flutter의 Debug 모드는 기본적으로 JIT(Just-In-Time) 컴파일에 의존한다.
하지만 iOS 26에서는 실기기 환경에서 메모리 보호 정책(RX ↔ RW 전환)이 강화되며,
JIT 컴파일이 OS 레벨에서 차단된다.
그 결과,
이라는 환경별 비일관성 문제가 발생했다.
해당 이슈는 Flutter 내부 버그라기보다는,
또한 동일한 증상이 Flutter 이슈 트래커에 공식 등록되면서,
개별 프로젝트 이슈가 아닌 플랫폼 차원의 변화임이 확인되었다.
Debug 모드 실행을 고집하지 않고, AOT(Ahead-Of-Time) 기반의 Release 모드로 실기기 테스트 전략을 변경하였다.
Release 모드는 JIT이 아닌 AOT 컴파일을 사용하기 때문에,
iOS 26의 보안 정책과 충돌하지 않는다.
기존 실행 방식
flutter run --flavor production -t lib/main_production.dart
기존 실행 방식
flutter run --release --flavor production -t lib/main_production.dart
위와 같이 --release 옵션을 명시함으로써,
이라는 장점을 얻을 수 있었다.