MacOS BigSur にFlutter開発環境をインストールする(2021/05/06版)

BigSurだと何か違うのか、他の参考文献の通りにやっても上手く行かなかった。
とにかく `flutter doctor` というコマンドを実行して以下のように全てにチェックマークが入れば良い。

```
% flutter doctor            
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.2.2 20D80 darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] VS Code (version 1.54.3)
[✓] Connected device (1 available)

• No issues found!
```

#1.Flutter入れる
https://flutter.dev/docs/get-started/install/macos

自分の場合はHomeディレクトリにdevelopmentってフォルダを切って、そこにおきました。
あと***bash***使ってるのでその辺は適宜読み替えてください。

```
mkdir ~/development
cd ~/development
unzip ~/Downloads/flutter_macos_2.0.6-stable.zip
```

パスを通す

```
echo 'export PATH="$PATH:`pwd`/flutter/bin"' >> ~/.bash_profile
source ~/.bash_profile
```

#2.Android Studio入れる
https://developer.android.com/studio/index.html

こだわりの設定とかがなければ全部Nextで最後にFinish

#3.Android Studioのプラグインを導入する
・Flutter
Android Studioを起動したら、右下にConfigureってプルダウンがあるので、そこからPluginsを選択し、"Flutter"で検索してインストール。
(Dartも一緒に入ります)
![005-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467051/6067653b-edf9-0c48-648a-fe33681fbd62.png)

・Android SDK Command-line tools
上記だけだとなぜかライセンス許可できなかった。

```
% flutter doctor --android-licenses
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 5 more
```

なのでCommand-line toolsを追加で入れる。
Configureの
Tools > SDK Manager
System Settings > Android SDK
から
SDK Tools タブを選択して
"Android SDK Command-line tools"
にチェックしてApply

![O1UpC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467051/3bf04cd3-6aff-cea4-cd44-0eb0cd0484eb.png)

・ライセンスを許可する

```
flutter doctor --android-licenses
```

#4.Xcode入れる
https://apps.apple.com/jp/app/xcode/id497799835?mt=12

アプリストアから普通にインストール
めちゃ時間かかる。
入れたら一回起動して、利用規約みたいなのにagreeする。

#5.CocoaPodsをインストール
CocoaPodsとかいうプラグインがないとか言われる。

```
% flutter doctor                   
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.2.2 20D80 darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart
        side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] VS Code (version 1.54.3)
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

```

なので入れる
この手順は文献によってあったりなかったりする(?)

```
sudo gem install cocoapods
```

できた。

#参考
https://qiita.com/oekazuma/items/92e9bae4268fea107efa

https://stackoverflow.com/questions/64708446/flutter-doctor-android-licenses-exception-in-thread-main-java-lang-noclass