FileSystemException
에러는 파일 인코딩 문제 때문에 발생합니다. 특히 에러 메시지에 나온 ._
로 시작하는 파일은 macOS에서 자동으로 생성하는 메타데이터 파일인데, 이 파일이 텍스트 파일이 아니기 때문에 빌드 시스템이 UTF-8로 읽으려다 실패하는 경우입니다.
이 문제는 주로 외장 하드나 특정 파일 시스템을 사용할 때 자주 발생합니다.
원인 분석 🧐
에러 메시지를 자세히 보면, 문제가 되는 파일 경로가 /.../._Pods-Runner.release.xcconfig
인 것을 알 수 있습니다.
._
파일: 이 파일은 macOS가 파일 속성 같은 메타데이터를 저장하기 위해 만드는 숨김 파일입니다. 실제 설정 파일이 아니라서 텍스트 형식(UTF-8)이 아닙니다.- 빌드 오류: Flutter가 iOS 앱을 빌드할 때,
Pods
폴더 안에 있는.xcconfig
설정 파일들을 읽으려고 합니다. 이때 실제 설정 파일이 아닌._
로 시작하는 메타데이터 파일까지 읽으려고 시도하면서 “UTF-8로 디코딩할 수 없다”는 에러가 발생하는 것이죠.
해결 방법 ✅
해결 방법은 간단합니다. 프로젝트의 ios
폴더 내에 있는 불필요한 ._
메타데이터 파일들을 모두 삭제해 주는 것입니다.
아래 단계를 차근차근 따라 해 보세요.
1. 터미널 열기
- 먼저 컴퓨터에서 터미널(Terminal) 앱을 실행해 주세요.
2. 프로젝트의 ios
폴더로 이동하기
- 터미널에서
cd
명령어를 사용해 현재 작업 중인 Flutter 프로젝트의ios
폴더로 이동합니다.
Bash
# '프로젝트_경로' 부분에 실제 프로젝트가 있는 경로를 넣어주세요.
cd /Volumes/01042390717/Home/kanghyunseo/Development/project_flutter_3/planner_example/ios/
3. 불필요한 메타데이터 파일 삭제하기
ios
폴더로 이동했다면, 아래 명령어를 터미널에 입력하고 실행해 주세요. 이 명령어는 현재 폴더와 하위 폴더에 있는 모든._
로 시작하는 파일을 찾아 삭제합니다.
Bash
find . -name '._*' -delete
4. Flutter 프로젝트 클린하기
- 파일 삭제 후, 프로젝트의 루트 폴더로 다시 돌아가서
flutter clean
명령어를 실행해 기존 빌드 캐시를 깨끗하게 지워주는 것이 좋습니다.
Bash
# 상위 폴더로 이동
cd ..
# Flutter 프로젝트 클린
flutter clean
5. 앱 다시 실행하기
- 이제 다시 앱을 빌드하고 실행해 보세요. 아마 정상적으로 디버깅이 시작될 거예요!
Bash
flutter run
명령어 설명 📜
방금 사용한 find . -name '._*' -delete
명령어는 다음과 같은 의미를 가집니다.
find .
: 현재 위치(.
을 의미)부터 파일을 찾기 시작합니다.-name '._*'
: 이름이._
로 시작하는 (*
는 모든 문자를 의미) 파일을 찾습니다.-delete
: 찾은 파일을 삭제합니다.
이 간단한 조치로 대부분의 인코딩 관련 파일 시스템 에러를 해결할 수 있습니다.