플러터:실행
개요
개발 중 화면을 파악하기 위하여.
| 과정 | 설명 | 비고 |
|---|---|---|
| 개발환경 준비 | 안드로이드, ios 등 해당 개발환경에 대해 배포하기 위한 사전작업이 되어 있는지 확인.
각 개발환경에 대한 준비 여부를 진단한다. |
flutter doctor |
| 확인(선택사항) |
|
flutter devices |
| 실행 | window, 연결된 장 등 해당 환경에서의 앱을 실행해본다. | flutter run -d 디바이스명
vscode의 경우, 우측 하단에서 디바이스를 설정하고(에뮬레이터를 켜고) flutter run 만으로 가능. |
에뮬레이터 사용하기
프로젝트를 시작하는 방법과 에뮬레이터(가상기) 사용법에 대하여.
| 과정 | 설명 | 비고 |
|---|---|---|
| 안드로이드 스튜디오 설치 | 휴대폰 뮬레이터를 실행하기 위해 필요한 프로그램이다.(iOS개발은 윈도우 컴에선 못함.)
|
https://developer.android.com/studio/installhttps://developer.android.com/studio?hl=ko#get-android-studio |
| 에뮬레이터 사용 설정 | 안드로이드 SDK를 지정해주어야 한다.
|
|
| 기기 추가 |
|
|
| 라이센스 동의 | flutter doctor를 실행하면 [!] Android toolchain - develop for Android devices (Android SDK version 35.0.1) 과 같은 메시지가 뜬다.
라이센스 동의 관련은 |
발생할 수 있는 문제
| 과정 | 설명 | |
|---|---|---|
| ...... to "build\flutter_assets\shaders/ink_sparkle.frag" failed with exit code -1073741819. | 보통 프로젝트나 플러터의 경로에 한글이 포함되어 있을 때 발생하는 에러이다.
이렇게 경로를 바꿔주는 경우, VSCode의 경우에 좌측의 세팅에서 "Dart: Flutter SDK Path" 설정을 찾아 설정파일을 변경해주어야 한다. 이렇게 하면 flutter doctor에서 경로가 바뀌었음을 지적하는데, 이는 flutter clean으로 build 파일을 제거했다가 다시 구성하면 해결된다. | |
| Flutter failed to delete a directory at "build\flutter_assets". The flutter tool cannot access the file or directory. | 2025년 기준 이런 메시지가 뜨는 건 여러 이유가 있겠지만... 나의 경우엔 원드라이브 내부의 경로를 사용했을 때이다.
구글드라이브나 원드라이브나 동기화 폴더 안에 두면 사용중으로 묶여버리는데... 이거 이유를 한참만에 발견했다;;; 동기화 환경에선 쓸 수 없다는 게 굉장히...치명적이고 불편하다. |
실제 기기를 활용한 실행
안드로이드
실제 휴대폰이 에뮬레이터보다 빠르고 안정적임.
| 과정 | 설명 | 비고 | ||||
|---|---|---|---|---|---|---|
| 디버깅 모드 활성화 | 핸드폰 설정
USB 케이블로 연결:
|
파일전송이 가능한 USB로 연결해야 함. | ||||
| Google USB Driver 설치 | 안드로이드스튜디오 > Tools > SDK Manager > Languages&Frameworks > Android SDK > SDK Tools > Google USB Driver
|
|||||
| 자바 JDK 설치 |
|
|||||
| 연결 및 확인 |
|
|||||
| 자바 설치 |
|
|||||
| 실행 | flutter run에서 디바이스 선택. | VSCode라면 하단바에 선택 가능. 상당히 느리다. 앱을 빌드해서 실행하는 것 같은 느낌. 핫 리로드 됨. 디버그모드는 핫 리로드를 위한 메타데이터 때문에 오히려 실제 빌드보다 더 느리다. 빌드 캐시를 지우는 게 두려워질 정도로;; 간단한 마이크 테스트용 올려봤는데, 그래들 task만 160초, 빌드.. 디버그 팩 설치하는 데만도 한참 걸린다;; 연결을 끊어도 앱이 설치되어 있어, 앱을 계속 쓸 수 있음. |
iOS
실행 이후 개발
핫 리로드
파일을 저장하면 실행 화면에 실시간으로 저장 내용이 반영된다.
애석하게도, 원드라이브 등 프로젝트가 특수한 디렉토리 안에 있으면 파일이 잠겨서 핫 리로드가 안된다.(옛날엔 한글 디렉토리에 있으면 실행조차 안되었는데, 어느 순간 해결되었다.)
문제 발생
여러 에뮬레이터로 개발을 하는 상황에서 Gradle 캐시 잠금 문제가 발생한다. 원인으로는 다음과 같은 것들이 생각된다.
Gradle 캐시 잠금 문제
| 원인 | 설명 | 비고 |
|---|---|---|
| 한글 경로가 포함됨. | (사용자명이 한글인 경우. 어쩔 수가 없는;;): 파워쉘에서 setx GRADLE_USER_HOME "D:\FlutterGradleCache" 형식으로 경로를 바꾸어준다. | |
| 회사망이라 SSL 인증서 문제로 제대로 된 Gradle 다운로드가 안됨. |
|
|
| 플러터와 Gradle 버전이 안맞음. | 이건... 코파일럿도 잘 안알려주는 문제였다; 버전에 대한 질문을 해보길. | 보통 코파일럿 등은 코드만 살펴주지, 이런 문제는 상정 외... |
| 보안 프로그램 | 보안 프로그램이 스캔하면서 잠가버리면 답 없....
프로젝트가 원드라이브 안에 있어도 이유를 모르겠지만 감궈버림... |
학교에서 개발할 때......정말 안된다.
V3인지 뭔지 계속 잠겨서......... 빠르게 포기하고 노트북으로 넘어가는 편이 좋다. 학교 노트북에도 기본적으로 보안프로그램이 설치되어 있어 안되었었는데, V3 지우니 되었음. |