반응형
문제 상황
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 보안 설정으로 인한 도구 차단이 의외로 흔한 원인입니다.
복잡한 설정 변경을 시도하기 전에 다음을 먼저 확인해보세요.
- macOS 보안 경고 메시지 확인
- idevicesyslog 등 개발 도구 허용 상태
- Flutter 자동화 권한 설정
- iOS 기기 신뢰 설정
핵심은 idevicesyslog 허용입니다. 이 도구만 허용해주면 대부분의 하얀 화면 문제가 해결됩니다.
환경 정보
- macOS: 15.0.1 (24A348)
- Xcode: 16.2 (16C5032a)
- Flutter: 3.32.6 (stable channel)
- iOS: 18.5 (22F76)
- 기기: iPhone (실제 기기)
반응형
'flutter' 카테고리의 다른 글
| flutter social login - google 소셜 로그인 (Android, iOS) (0) | 2025.09.23 |
|---|---|
| Flutter는 어떻게 작동할까? 아키텍처와 네이티브 개발 완전 분석 (0) | 2025.09.22 |
| Flutter 시작하기: 크로스 플랫폼 앱 개발의 첫걸음 (0) | 2025.09.22 |
| Dart 기초 마스터하기 #4 List와 Map으로 데이터 다루기 (0) | 2025.09.21 |
| Dart 기초 마스터하기 #3 조건문과 반복문으로 프로그램 제어하기 (0) | 2025.09.21 |