flutter 개발환경 구성하기 (mac)

flutter 설치하기

brew install flutter

 

IOS 설정하기

xcode 설정하기

먼저 appstore에서 xcode를 설치한다.

 

xcode 라이센스 동의하기

sudo xcodebuild -license

 

CocoaPods 설치

brew install cocoapods

 

안드로이드 설정하기

openjdk 17 설치하기

왜 17설치하라는지 모르겠으나.. 우선 17설치

brew install openjdk@17
sudo ln -sfn "$(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk" \
  /Library/Java/JavaVirtualMachines/openjdk-17.jdk

echo 'export JAVA_HOME="/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home"' >> ~/.zshrc
echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

java -version

 

안드로이드 sdk 설치

안드로이드 스튜디오는 싫으니까.. sdk만 설치

brew install --cask android-commandlinetools

 

SDK 루트 지정

Android SDK가 설치될 기본 경로를 $HOME/Library/Android/sdk로 고정합니다.

export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
export ANDROID_HOME="$ANDROID_SDK_ROOT"
mkdir -p "$ANDROID_SDK_ROOT"
  • ANDROID_SDK_ROOT: 전체 SDK의 루트 디렉터리
  • ANDROID_HOME: 일부 구버전 툴들이 참고하는 변수 (둘 다 설정하면 안전)

 

SDK 필수 구성요소 설치

Homebrew로 설치된 sdkmanager를 사용해, SDK 루트에 필요한 패키지를 한 번에 설치합니다.
중복 설치는 안전하며, --sdk_root 옵션으로 경로를 명시합니다.

# 모든 라이선스 자동 수락
yes | /opt/homebrew/bin/sdkmanager --sdk_root="$ANDROID_SDK_ROOT" --licenses

# 필수 구성요소 설치
/opt/homebrew/bin/sdkmanager --sdk_root="$ANDROID_SDK_ROOT" \
  "cmdline-tools;latest" \           # avdmanager, sdkmanager 등 CLI 도구
  "emulator" \                       # 에뮬레이터 실행 바이너리
  "platform-tools" \                 # adb 등 기본 플랫폼 도구
  "platforms;android-34" \           # Android 14(API 34) 플랫폼
  "build-tools;34.0.0" \             # 앱 빌드용 도구 모음
  "system-images;android-34;google_apis;arm64-v8a"  # 에뮬레이터용 시스템 이미지 (ARM64)

 

에뮬레이터 설치 확인

에뮬레이터 실행 파일이 잘 설치되었는지 확인합니다. 

ls "$ANDROID_SDK_ROOT/emulator/emulator"

정상이라면 실행 파일 경로가 출력됩니다.

 

환경변수 영구 등록

이제 관련 설정이 매번 설정하지 않도록 .zshrc에 환경변수를 추가하고 적용합니다.

echo 'export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"' >> ~/.zshrc
echo 'export ANDROID_HOME="$ANDROID_SDK_ROOT"' >> ~/.zshrc
echo 'export PATH="$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

 

AVD(가상 디바이스) 생성

avdmanager를 이용해 Android Virtual Device(AVD)를 새로 생성합니다.

avdmanager create avd \
  -n mini \                                             # AVD 이름
  -k "system-images;android-34;google_apis;arm64-v8a" \ # 사용할 시스템 이미지
  -d "pixel_5" \                                        # 디바이스 프리셋
  --force                                               # 같은 이름이 있으면 덮어쓰기

에뮬레이터 실행

생성한 AVD(@mini)를 직접 실행합니다.

$ANDROID_SDK_ROOT/emulator/emulator @mini \
  -no-boot-anim \           # 부팅 애니메이션 비활성화 (부팅 빠름)
  -noaudio \                # 오디오 비활성화
  -camera-back none \       # 카메라 비활성화
  -camera-front none \      # 전면 카메라 비활성화
  -gpu host \               # GPU 가속 사용
  -qemu -m 2048             # 메모리 2GB 할당
 

flutter에 안드로이드 sdk 위치 지정

flutter config --android-sdk ~/Library/Android/sdk