Article

Flutter GetX CLI 에러 해결: waitFor 문제 진단 및 해결

문제 상황

Flutter에서 GetX 프레임워크를 사용 중이라면 get_cli(GetX CLI)를 통해 자동으로 프로젝트 구조와 보일러플레이트를 생성하곤 합니다. 최근 다음과 같은 에러가 발생했습니다:

Synchronous waiting using dart:cli waitFor and C API Dart_WaitForEvent is deprecated 
and disabled by default. This feature will be fully removed in Dart 3.4 release. 
You can currently still enable it by passing --enable_deprecated_wait_for to the 
Dart VM. See https://dartbug.com/52121.

이 에러는 get createget generate 등의 명령을 실행할 때 발생합니다.

근본 원인 분석

Dart의 변경 사항

Dart 3.0 이후 버전에서 동기 대기 기능(synchronous waiting)이 deprecated 되었습니다. 이는 보안과 성능상의 이유로 점진적으로 제거되고 있는 기능입니다.

get_cli의 문제

공식 get_cli 패키지는 이 deprecated된 기능에 의존하고 있습니다. 최신 Dart 버전(3.3+)에서는 기본적으로 이 기능이 비활성화되어 있어서 에러가 발생합니다.

해결 방법 비교

방법장점단점
Flutter 다운그레이드간단함보안 취약, 미래 문제
플래그 사용 (임시)빠른 해결임시방편, 곧 삭제됨
get_cli 업데이트 (권장)근본적 해결별도 설치 필요

권장 해결책: 커뮤니티 포크 설치

공식 get_cli의 업데이트가 늦어서, 커뮤니티에서 최신 Dart와 호환되도록 패치한 버전이 나왔습니다.

단계별 설치 방법

1단계: 기존 get_cli 제거

flutter pub global deactivate get_cli

2단계: 최신 커뮤니티 버전 설치

flutter pub global activate --source=git https://github.com/inyong1/get_cli.git

3단계: 설치 확인

get --version

설치 후 사용

이제 일반적으로 사용하던 모든 get_cli 명령어가 정상 작동합니다:

get create page:home
get create controller:user
get generate

임시 해결책 (비권장)

만약 위의 방법이 작동하지 않는다면, Dart VM 플래그를 사용할 수 있습니다:

dart --enable_deprecated_wait_for /path/to/get_cli

하지만 이것은 임시방편이며, Dart 3.4에서 완전히 제거될 예정입니다.

Flutter/Dart 버전 호환성

  • Dart 3.0-3.3: 플래그로 deprecated 기능 활성화 가능
  • Dart 3.4+: 완전 제거 (플래그도 작동 안 함)
  • 최신 get_cli (포크 버전): 모든 Dart 3.x 버전에서 작동

마치며

GetX CLI는 여전히 Flutter 개발의 생산성을 크게 높이는 훌륭한 도구입니다. 다만 공식 버전의 업데이트가 늦을 수 있으므로, 이 가이드의 커뮤니티 포크 버전 설치를 권장합니다.

최신 기술을 사용하면서도 필요한 개발 도구를 계속 사용할 수 있는 좋은 해결책입니다. 만약 다른 에러가 발생한다면, 공식 get_cli GitHub 저장소의 이슈 섹션을 확인해보세요.

댓글