본문 바로가기

flutter

Flutter iOS 실기기에서 하얀 화면 문제 해결하기

반응형

문제 상황

Flutter 앱을 개발하던 중 다음과 같은 상황에 직면했습니다.

  • ✅ iOS 시뮬레이터에서는 정상 작동
  • ❌ 실제 iOS 기기에서는 하얀 화면만 표시
  • ❌ 간단한 테스트 앱도 동일한 문제 발생

 

Xcode 콘솔에는 다음과 같은 로그만 출력되고 앱이 멈춰있는 상태였습니다.

CLIENT OF UIKIT REQUIRES UPDATE: This process does not adopt UIScene lifecycle.
[VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(37)] Using the Impeller rendering backend.
fopen failed for data file: errno = 2 (No such file or directory)
Errors found! Invalidating cache...
flutter: The Dart VM service is listening on http://0.0.0.0:49246/kADA_aa2GEQ=/
App is being debugged, do not track this hang
Hang detected: 0.29s (debugger attached, not reporting)

 

시도했던 해결 방법들

1. Xcode Build Settings 변경

  • Strip Style을 "All Symbols"에서 "Non-Global Symbols"로 변경
  • 결과: ❌ 해결되지 않음


2. Metal API Validation 비활성화

  • Xcode 스키마에서 Metal API Validation 체크 해제
  • 결과: ❌ 해결되지 않음


3. Flutter 캐시 정리

flutter clean
rm -rf ios/Pods ios/.symlinks ios/Podfile.lock
flutter pub get
cd ios && pod install

 

결과: ❌ 해결되지 않음

4. iOS App Transport Security 설정

  • Info.plist에 NSAppTransportSecurity 추가
  • 결과: ❌ 해결되지 않음


5. 플랫폼 버전 설정

  • Podfile에서 platform :ios, '12.0' 명시적 설정
  • 결과: ❌ 해결되지 않음

 

진짜 문제와 해결책

실제 원인은 macOS 보안 설정이었습니다. Flutter가 iOS 기기와 통신하기 위해 사용하는 idevicesyslog 도구가 macOS에 의해 차단되고 있었던 것입니다.

 

Flutter 실행 중 다음과 같은 보안 경고가 나타났습니다.

'idevicesyslog'을(를) 열지 않음
Apple은 'idevicesyslog'에 사용자의 Mac에 손상을 입히거나
사용자의 개인정보에 침입할 수 있는 악성 코드가 없음을 확인할 수 없습니다.

 

 

idevicesyslog란?

idevicesyslog는 iOS 기기의 시스템 로그를 실시간으로 읽어오는 개발 도구입니다. Flutter는 이 도구를 사용해서

  • iOS 기기의 앱 실행 상태를 모니터링
  • 디버그 로그 및 에러 메시지 수집
  • 앱 크래시 정보 분석

이 도구가 차단되면 Flutter는 iOS 기기에서 앱이 제대로 실행되고 있는지 확인할 수 없어 하얀 화면 상태로 멈추게 됩니다.

 

해결 방법

macOS 시스템 설정에서 허용

  • Apple 메뉴 → 시스템 설정 (System Settings)
  • 개인 정보 보호 및 보안 (Privacy & Security)
  • 보안 (Security) 섹션에서 "'idevicesyslog'이(가) 차단됨" 메시지 확인
  • "열기 허용" 버튼 클릭

 

왜 이런 문제가 발생하는가?

 

macOS 보안 정책

  • macOS는 알 수 없는 개발자의 바이너리 실행을 차단합니다
  • idevicesyslog는 Homebrew나 libimobiledevice를 통해 설치되는 서드파티 도구입니다
  • 처음 실행 시 macOS가 자동으로 차단하게 됩니다


Flutter의 의존성

  • Flutter는 iOS 기기 디버깅을 위해 여러 시스템 도구에 의존합니다
  • 이 중 하나라도 차단되면 전체 개발 워크플로우가 중단됩니다
  • 특히 idevicesyslog는 실시간 로그 모니터링에 필수적입니다


결론

Flutter iOS 실기기 하얀 화면 문제는 다양한 원인이 있을 수 있지만, macOS 보안 설정으로 인한 도구 차단이 의외로 흔한 원인입니다.

 

복잡한 설정 변경을 시도하기 전에 다음을 먼저 확인해보세요.

  1. macOS 보안 경고 메시지 확인
  2. idevicesyslog 등 개발 도구 허용 상태
  3. Flutter 자동화 권한 설정
  4. iOS 기기 신뢰 설정

 

핵심은 idevicesyslog 허용입니다. 이 도구만 허용해주면 대부분의 하얀 화면 문제가 해결됩니다.

 

환경 정보

  • macOS: 15.0.1 (24A348)
  • Xcode: 16.2 (16C5032a)
  • Flutter: 3.32.6 (stable channel)
  • iOS: 18.5 (22F76)
  • 기기: iPhone (실제 기기)
반응형