본문 바로가기

Flutter/00 환경설정

[Flutter] MacOS - Flutter 개발환경 준비

이번에는 맥북에 flutter 환경을 설정하는 방법에 대해서 알아보겠습니다.

맥북 버전은 12.6.2 몬트레이 입니다.

 

기본적인 방법은 "https://docs.flutter.dev/get-started/install/macos" 사이트를 참고로 하였습니다.

 

 

1. Xcode 설치 - https://developer.apple.com/xcode/,  에 접속하여 xcode 14 를 앱스토어를 통해서 설치합니다. 파일 용량이 커서 시간이 좀 걸립니다.

 

 

앱스토어를 통해서 설치가 완료되면 터미널에서 아래 두 명령어를 실행합니다. Path 설정입니다.

 

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

 

"xcode-select -p" 명령어를 통해서 폴더 설정을 확인합니다.

 

mike@MIKEBSs-MacBook-Pro Developer % xcode-select -p
/Applications/Xcode.app/Contents/Developer

 

 

2. 로제타2 설치

 

sudo softwareupdate --install-rosetta --agree-to-license

 

 

3. flutter SDK 받기  

- 참고사이트 : https://docs.flutter.dev/get-started/install/macos

 

HOME 폴더 아래에 압축 풀기, mike 폴더에 flutter 를 다운받아서 압축을 푼다.

 

 

 

4. .zshrc에 flutter path 설정 추가(cmd+shift+. 숨김파일 보기), 없으면 파일 생성해서 추가합니다.

 

export PATH="$PATH:$HOME/flutter/bin" 명령어를 .zshrc 파일에 추가. 파일이 없으면 생성한다.
source $HOME/.zshrc

파일 설정이 잘되어 있는지 확인한다. 또한 실행파일 위치도 잘 찾는지 확인한다.
echo $PATH
which flutter

 

 

5. 안드로이드 스튜디오 설치 - Mac with Apple chip

실행해서 안드 아이콘을 applications 아이콘으로 이동해주면 설치됨(드레그로 이동하는 방식).

import 설정 - "do not import settings"

(경우에 따라 다름) Kotlin plugin update available >> Update

다음 클릭하며 기본 설치 완료

More Actions >> SDK Manager >> Android SDK >> SDK tools 

>> 3번째, Android SKD Command-line Tools(lastest) 선택, 적용, 완료 및 OK

>> 여기서 플러그들 추가 설치 >> flutter & dart

 

 

6. flutter doctor --android-licenses 실행 >> y 선택하며 계속 동의

 

 

# 가끔 여기서 아래 오류가 나는 경우가 있습니다.
# 저도 처음 설치할때는 오류가 없었는데, 1년정도 flutter 개발을 안하다가
# 다시 개발하려고 flutter doctor 에서 Android toolchain 오류가 보여져서 
# "flutter doctor --android-licenses" 실행하니 아래와 같은 오류가 발생했습니다.

오류: 기본 클래스 com.android.sdklib.tool.sdkmanager.SdkManagerCli을(를) 로드하는 중 LinkageError가 발생했습니다.
	java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
    
    
# 이런 분들은 아래 링크를 보고 이름 변경으로 해결 가능합니다.

 

https://stackoverflow.com/questions/76882205/error-linkageerror-occurred-while-loading-main-class-com-android-sdklib-tool-sd

 

Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli

I am trying to set up flutter with VS Code in Ubuntu. I have followed the installation guide and have installed the latest cmdline tools as required by the flutter doctor. Now this is the output I ...

stackoverflow.com

 

 

 

 

여기까지는 자료도 많고 별다른 어려움 없이 설정이 가능하다.

 

 

 

=================== 여기부터가 문제가 자주 발생하는 부분입니다 ===================

=================== 여기부터가 문제가 자주 발생하는 부분입니다 ===================

 

 

7. cocoaPods 설치

말도 많고 문제도 많은 cocoapods 설치 부분입니다.

 

# 일반적으로 아래 명령어로 하면 된다는데, 오류가 나면서 되지 않았습니다.
# 오류 없이 설치가 잘되는 분들은 여기까지만 하면 됩니다.
sudo gem install cocoapods

 

가장 많이 발생하는 오류가 아래와 같습니다. 제 경우입니다.

 

 

구글링하니 툴(development tools) 설치해야한다면서 아래 명령어를 추천했습니다.

 

xcode-select --install
sudo xcodebuild -license

 

*** 이거 설치할때 path 설정이 변경되는 경우가 있는데, 아래 명령어로 확인하고 아래와 다르다면 아래처럼 설정한다.

 

mike@MIKEBSs-MacBook-Pro ~ % xcode-select -p
/Applications/Xcode.app/Contents/Developer
mike@MIKEBSs-MacBook-Pro ~ %

 

*** path 설정 정보가 다르다면 아래 명령어를 사용해서 변경해 주세요, 앞부분에서 사용한 명령어 입니다.

 

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

 

하지만, 여기까지 했는데도 cocoapods 가 설치가 되지 않았습니다. 오류는 앞에서 보여준 오류 메시지와 동일했습니다.

 

sudo gem install cocoapods

 

 

기존에 디폴트로 설치된 ruby 가 뭔가 문제가 많다고 해서 새로 설치하기로 했습니다. 

설치는 brew 를 통해서 설치했습니다.

 

 

— brew 설치 명령어를 터미널에서 실행합니다.

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

설정을 추가합니다.

 

echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/mike/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/mike/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

 

 

brew 를 설치하고 나면 "xcode-select" 의 폴더 설정이 변경되는 경우가 있습니다.

저는 이렇게 변경되었습니다. ==> "/Library/Developer/CommandLineTools"

 

 

mike@MIKEBSs-MacBook-Pro ~ % xcode-select -p
/Library/Developer/CommandLineTools
mike@MIKEBSs-MacBook-Pro ~ %

 

 

(개인적인 추측) 전체 포멧하고 개발환경을 3,4번 정도 설정순서를 변경해 가면서 개발환경을 설정 하다보니, "xcode-select --install" 툴을 설치하기 전에 brew 를 먼저 설치하면, "xcode-select -p" 패스가 변경되는것 같습니다(개인적인 추측 ^^).

brew 가 설치될때 xcode 를 일부 설치합니다.  ("/Library/Developer/CommandLineTools" 폴더가 없는 경우 발생)

 

아무튼 "xcode-select -p" 의 결과가 다르면 "flutter doctor" 에서 xcode 관련 오류가 있다고 오류메시지가 출력되니 참고하세요.

 

 

설치가 안되니 별걸 다해봤네요. gem 을 업데이트 해봤는데, 이것도 업데이트 중에 약간의 오류가 났습니다.

버전 업은 되었으나 오류 메시지는 캡쳐하지 못했네요. 

루비를 새로 설치하면서 path 가 추가되면서 다른 버전이 실행됩니다. 뻘짓했네요.

 

 

which gem
mike@MIKEBSs-MacBook-Pro ~ % which gem
/usr/bin/gem
mike@MIKEBSs-MacBook-Pro ~ % gem -v
3.0.3.1
mike@MIKEBSs-MacBook-Pro ~ % 

sudo gem update --system

mike@MIKEBSs-MacBook-Pro bin % gem -v   
3.4.2
mike@MIKEBSs-MacBook-Pro bin % which gem
/usr/bin/gem
mike@MIKEBSs-MacBook-Pro bin %

 

거의 마지막 단계입니다. ruby 만 새로 설치하면 cocoapods 설치가 잘됩니다.

 

ruby 설치 - 요약정보를 잃어버리면 설정이 불가능해서 망합니다. 조심해야할 부분입니다.

 

brew install ruby 

———————————————————————— 아래 내용은 설치완료시 출력되는 메시지입니다.
==> Summary
🍺  /opt/homebrew/Cellar/ruby/3.1.3: 16,149 files, 43.3MB
==> Running `brew cleanup ruby`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Caveats
==> ruby
By default, binaries installed by gem will be placed into:
  /opt/homebrew/lib/ruby/gems/3.1.0/bin
You may want to add this to your PATH.

ruby is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have ruby first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc

For compilers to find ruby you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/ruby/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/ruby/include"

mike@MIKEBSs-MacBook-Pro ~ %

 

설치 완료되면 아래 정보를 .zshrc  파일에 추가해줍니다.

 

echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
echo 'export LDFLAGS="-L/opt/homebrew/opt/ruby/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/ruby/include"' >> ~/.zshrc
$ source ~/.zshrc

 

아래 명령어로 설정결과 확인합니다.

 

# 설정완료 후 설치된 ruby 버전 및 설치위치 확인필수.

mike@MIKEBSs-MacBook-Pro ~ % ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin21]
mike@MIKEBSs-MacBook-Pro ~ % which ruby
/opt/homebrew/opt/ruby/bin/ruby
mike@MIKEBSs-MacBook-Pro ~ %

# ruby를 새로 설치하면서 gem 도 새로운 버전이 생겼습니다.

mike@MIKEBSs-MacBook-Pro ~ % which gem
/opt/homebrew/opt/ruby/bin/gem
mike@MIKEBSs-MacBook-Pro ~ % gem --version
3.3.26

 

Path 우선순위를 확인해서 혹시라도 중복 설치된 cocoapods가 있다면, 버전 충돌이 생기지 않도록 주의해서 설치한다.

 

sudo gem install -n /usr/local/bin cocoapods

 

끝났습니다. 아래 명령어로 설치가 잘되었는지 확인합니다.

 

mike@MIKEBSs-MacBook-Pro bin % pod env

### Stack
```
   CocoaPods : 1.11.3
        Ruby : ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin21]
    RubyGems : 3.3.26
        Host : macOS 12.6.2 (21G320)
       Xcode : 14.2 (14C18)
         Git : git version 2.37.1 (Apple Git-137.1)
Ruby lib dir : /opt/homebrew/Cellar/ruby/3.1.3/lib
Repositories :
```

### Installation Source
```
Executable Path: /usr/local/bin/pod
```

### Plugins
```
cocoapods-deintegrate : 1.0.5
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.1
cocoapods-trunk       : 1.6.0
cocoapods-try         : 1.2.0
```

mike@MIKEBSs-MacBook-Pro bin %

 

 

mike@MIKEBSs-MacBook-Pro ~ % flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.3.10, on macOS 12.6.2 21G320 darwin-arm, locale
    ko-KR)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.74.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!
mike@MIKEBSs-MacBook-Pro ~ %

 

 

Flutter 기본 프로젝트 실행화면