[flutter] how to install flutter on m1 or m2
flutter 설치
여기 에 설치법이 나와 있다.
rosetta 설치
sudo softwareupdate --install-rosetta --agree-to-license
SDK 설치
SDK는 intel과 silicon이 다르기 때문에, 구분에서 다운받아서 설치한다. 설치위치는 Document폴더에 WorkSpace를 만들고, root에서 접근할수 있게 link를 걸었다.
Run Flutter doctor
flutter doctor를 하면 부족한 utility를 알려준다.
flutter doctor
flutter doctor를 설치하면 welcome메시지가 나온다. 조금 기다리면 분석결과가 나온다.

Figure 1: welcome1
분석 결과는 다음과 같다.

Figure 2: flutter doctor결과
이제 문제점을 해결해 보자.
android toolchain 문제
[1] unable to locate Android SDK
android sdk를 찾을수 없다고 한다. 이것은 android studio를 설치하면 해결된다. android studio를 다운받아서 설치하면 된다. 처음 android studio를 실행하면, 여러 설정이 있는데, 여기서 import setting은 하지 않고, 통계도 don’t send한다. theme은 dracula를 설치했다. sdk설치 동의가 끝나면 android설치가 시작된다. 대충 1-2분 걸린다.
android 설치
여기 로 가서 android studio를 설치한다.

Figure 3: android studio
이렇게 설치하면 android sdk는 다음 위치에 설치된다.
/Users/hoyoul/Library/Android/sdk
android sdk 설치 위치를 확인하는 법은 다음과 같다.

Figure 4: android sdk 설치확인
android sdk path
android sdk를 path에 추가한다.
export ANDROID_HOME=/Users/hoyoul/Library/Android/sdk
export PATH="$PATH:$ANDROID_HOME/tools"
export PATH="$PATH:$ANDROID_HOME/tools/bin"
export PAtH="$PATH:$ANDROID_HOME/platform-tools"
export PATH="/opt/homebrew/opt/curl/bin:$PATH"
[2] cmdline-tools component is missing problem
android studio가 설치됐으면, 바로 메뉴에서 settings을 클릭한다. 만일 close했다면, 다시 studio를 열고 메뉴에서 settings를 선택해서 cmdline tool을 설치한다.

Figure 5: cmdline tools
android sdk를 검색하고 sdk tools를 보면 command line tools가 보인다. check하고 설치한다.

Figure 6: cmdline tools2
[3] android license problem
[!] Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
위와 같은 error는 shell에서 다음 명령어를 쳐서 해결할 수 있다.
flutter doctor --android-licenses
y를 계속 누른다.
xcode 설치 문제
[1] Xcode installation is incomplete;
xcode를 다운로드 해야한다. 아래 link에서 다운받아서 설치한다. https://developer.apple.com/xcode/ 설치하고 다음을 설정한다.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
첫번째는 xcode가 여러개 설정될수 있기 때문에, 사용할 xcode를 선택하는 것이다.
xcode를 실행하면, license동의하는게 나오는데, xcode를 실행하지 않고, shell에서 다음을 입력하자.
sudo xcodebuild -license
enter치고 agree를 치면 된다. xcode license에 동의하는 것이다.
[2] simulator list 못가져오는 문제
아래처럼 shell에서 해도 되고, xcode실행해서 simulator를 설치해도 된다. 나는 아래와 같이 했다.
xcodebuild -downloadPlatform iOS
테스트 해보자.
open -a Simulator
[3] CocoaPods not installed.
cocoapods은 ruby로 만들어졌다. 하는일은 object-c나 swift library를 사용할 수 있게 해준다. cocoapods이 ios native library를 dart와 통합시켜주기 때문이다. ruby가 맥북에 이미 있지만, 너무 오래됐다. asdf로 최신버전을 설치하자. 이 문서 를 참고해서 ruby를 설치한다. rails에서도 ruby를 설치해야하기 때문에, 어차피 설치해야 한다. 참고하기 귀찮아서 여기에, asdf설치까지 작성한다. ps:m1 chip에서는 아래와 같이 하면 안된다. asdf를 하면 안되고, m1 chip을 위한 별도 section에서 설명하겠다. 아래는 m2나 intel에서 적용된다. 여튼 먼저 asdf의 prerequisite을 설치한다.
brew install coreutils curl git
asdf ruby install (m2 or intel)
그리고 asdf를 설치한다.
brew install asdf
asdf를 shell path에 등록한다.
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
plugin은 관리할 programming language다. 다음과 같이 설치한다.
asdf plugin add ruby
현재 gorails에서 rails버전에 맞는 ruby의 추천은 3.2.2다. 그런데 kholdem project는 3.2.1을 사용한다. 3.2.1, 3.2.2 둘다 설치하자.
asdf install ruby 3.2.2
asdf install ruby 3.2.1
terminal을 다시 시작한 후 아래를 실행한다.
asdf global ruby 3.2.1
# Update to the latest Rubygems version
gem update --system
설치된 ruby version을 확인한다.
which ruby
#=> /Users/username/.asdf/shims/ruby
ruby -v
#=> 3.2.1
-
ps: asdf 설치시 주의 사항.
asdf에서 version을 설치하면, .asdf폴더아래에, installs라는 폴더에 설치된 언어(plugin)과 설치된 version이 폴더로 모아져 있다. 특정 version이 제대로 안된다면 설치된 내용이 다를 것이다. 비교가 필요하다.
-
그 다음 아래를 실행한다.
sudo gem install cocoapods그리고 silicon mac의 경우, 다음을 실행해야 한다.
sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc
cocoapods for m1 chip
ruby를 설정한다거나, sudo gem install cocoapods 혹은 ffi제거 같은걸 하지 않고, 아래처럼 brew로 설치만 하면 된다고 한다.
brew install cocoapods
그리고, flutter doctor로 확인한다. 확인이 된 이후에 asdf를 사용하면 된다.
ps: <내경우는 asdf로 ruby버전을 변경했고, sudo gem install cocoapods을 하니 에러가 났다. 에러를 고치지 못한채 brew install cocoapods로 하고 flutter doctor를 하니 설치게 제대로 됐다고 한다. 그런데 sudo gem install cocoapods을 다시 하면 에러가 나고, document에는 brew install cocoapods를 하라는 얘기는 없다. 여튼 flutter doctor에선 문제가 없다고 하니 그냥 넘어간다. m2를 빌려서 사용해 봤는데, m2는 document대로 sudo gem install cocoapods하니 문제없었다. 그리고 내 intel pc도 문제가 없었다.
완료

Figure 7: flutter doctor completed
android studio 설정
android studio를 실행하고, plugins의 marketplace에서 dart, flutter를 설치한다.

Figure 8: plugin
이렇게 하면 new flutter project가 보이게 된다.
project의 실행
github으로 다운받은 project나 이미 있는 project를 다운받았다면 어떻게 실행할까?