🔌

asdf flutter

2024/09/23に公開2

asdfでFlutterの環境構築をする

普段はFVMでFlutterのバージョン管理をしているのでasdf使ってみたいなと思い環境構築をしてみました。

https://asdf-vm.com/

インストールするもの

  1. xcode
  2. Android Studio
  3. VScode
  4. Google Chrome
  5. cocoapods

参考にした情報

私の新しく購入したM3 Macだと同じようにやってもできなかったですね?

https://marble-heroes.com/blog/6zt-da-qv8
https://zenn.dev/tksuuu/articles/2bd0b7567050e9

実行したコマンド

asdf plugin add flutter
asdf list all flutter

asdf install flutter 3.24.0-stable

Error code
Asdfとflutterのプラグインはインストール済み

asdf install flutter 3.24.0-stable
/Users/hashimotojunichi/.asdf/plugins/flutter/bin/install: line 25: jq: command not found
/Users/hashimotojunichi/.asdf/plugins/flutter/bin/install: line 26: jq: command not found
/Users/hashimotojunichi/.asdf/plugins/flutter/bin/install: line 27: [: -gt: unary operator expected
Cannot find the download url for the version: 3.24.0-stable

jqと呼ばれているツールも必要なので追加

brew install jq

追加されているか確認

which jq

再度実行

asdf install flutter 3.24.0-stable

インストールされているか確認する。

asdf list flutter

全体で使えるように設定

asdf global flutter 3.24.0-stable

versionの確認をしてみる。

zsh: command not found: flutter
と出た場合は.zshrcに設定を追加する。

$HOME/.asdf/asdf.sh
export PATH="HOME/.asdf/shims:PATH"

ファイルの下の方に追加する。

# システムPATH
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

# Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"

# anyenv (anyenvを使用する場合)
if command -v anyenv 1>/dev/null 2>&1; then
  eval "$(anyenv init -)"
else
  # rbenv (anyenvを使用しない場合)
  if command -v rbenv 1>/dev/null 2>&1; then
    eval "$(rbenv init - zsh)"
  fi
fi

# Rails
alias be="bundle exec"
export PATH="$HOME/.rbenv/shims:$PATH"

# その他の設定やエイリアスをここに追加

# 環境変数の重複を削除
typeset -U PATHexport PATH="/opt/homebrew/opt/openjdk/bin:$PATH"

# kdoctor settings
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
VOLTA_HOME=$HOME/.volta
export PATH=$VOLTA_HOME/bin:$PATH

# bun completions
[ -s "/Users/hashimotojunichi/.bun/_bun" ] && source "/Users/hashimotojunichi/.bun/_bun"

# bun
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"

# asdf flutter
. $HOME/.asdf/asdf.sh
export PATH="$HOME/.asdf/shims:$PATH"
flutter --version

成功すればログに表示されるはず

flutter --version
Flutter 3.24.0 • channel stable •
https://github.com/flutter/flutter.git
Framework • revision 80c2e84975 (8 weeks ago)2024-07-30 23:06:49

flutterが存在しているかも確認する

which flutter
/Users/hashimotojunichi/.asdf/shims/flutter

iOSの設定

xcodeのエラーが出た場合はターミナルに入力されるコマンドがあるはずなのでそちらを入力してください。

cocoa podsをインストールする。

brew install cocoapods

gem installを実行。パスワード入力するように指示あるのでやる。

sudo gem install cocoapods

Androidの設定

GUI側で設定してライセンスのコマンドを実行する。Android Studioを起動してasdfのフォルダから使いたいFlutterのバージョンを選択する。フォルダは最初は表示されていないので、Macの人は、commandkey + . を押すと表示される。



Android Studioのコマンドラインツールが入っていないと思うので、GUIで操作して追加する。




ライセンスのコマンドを実行して全部yを選択する。


flutter doctor --android-licenses

flutter doctorを実行する。問題なければエラーは出てこないはず。

flutter doctor

最初はAndroidのエミュレーターが小さいと思うので、画面左上のsettingから通常サイズに設定する。小さいと使いずらいですからね。

iOSのビルドはOK

AndroidのビルドはOK

と思ったら新しく稼働デバイスを追加する必要があった😅
Pixel 8aを追加。




Flutter Webもビルドできた🙌

最後に

環境構築で結構詰まりましたね💦
FVMではないほうでバージョン管理をすることになった人は参考にしてみてください。

Discussion

JboyHashimotoJboyHashimoto

久しぶりに動かしたら動かなくなった😇

なぜだ?

直下方法

1. asdfの設定が適切にされていないようです。以下の手順で完全にクリーンインストールを行いましょう:

まず、完全にアンインストール:
# asdfのアンインストール
brew uninstall asdf

# 関連ディレクトリの削除
rm -rf ~/.asdf
rm -rf ~/.tool-versions
  1. asdfを再インストール:
# インストール
brew install asdf
  1. ディレクトリの作成:
# 必要なディレクトリを作成
mkdir -p ~/.asdf/lib/
mkdir -p ~/.asdf/plugins/
mkdir -p ~/.asdf/completions/
  1. .zshrcの設定を更新:
# asdf
. $(brew --prefix asdf)/libexec/asdf.sh
fpath=($(brew --prefix asdf)/share/zsh/site-functions $fpath)
autoload -Uz compinit && compinit
  1. 新しい設定を反映:
source ~/.zshrc
  1. asdfが正しく動作するか確認:
asdf --version
  1. Flutterをインストール:
# プラグインの追加
asdf plugin add flutter

# Flutterのインストール
asdf install flutter 3.24.0-stable

# グローバルバージョンの設定
asdf global flutter 3.24.0-stable
  1. Flutterの動作確認:
flutter --version
flutter doctor

パスが反応しないときはこのコマンドを使った。

echo "flutter 3.24.0-stable" > ~/.tool-versions

パスを更新

source ~/.zshrc

実機のiPhone繋いでる影響かエラーが出ているが接続解除してれば出ないと思う。