1. mkosuke

    No comment

    mkosuke
Changes in body
Source | HTML | Preview
@@ -1,165 +1,164 @@
Google I/O 2018に向けて、Flutterの環境構築を行った時のメモを残しておきます。
-(備忘録の意味合いが強く、走り書きですみません…)
## 開発環境
mac High Sierra(10.13.4)
## Flutterのinstall
Flutterを任意の場所にgitからcloneします
```terminal
$ git clone https://github.com/flutter/flutter.git
```
※1.0がリリースされたため、`-b beta` の記述を削除しました
pathを通す
```terminal
$ export PATH=`pwd`/flutter/bin:$PATH
```
または.bash_profileを直接書き直してもOKです
```terminal
vi ~/.bash_profile
```
下記を追加してください
```shell:.bash_profile
(略)
# Add Flutter
export FLUTTER="/(flutterへのpath)/flutter/bin"
export PATH=$FLUTTER:$PATH
(略)
```
## 必要なライブラリのセットアップ
flutterの開発環境について確認します
```terminal
$ flutter doctor
```
私の環境では以下のような出力が行われました。
```terminal
[✓] Flutter (Channel beta, v0.3.1, on Mac OS X 10.13.4 xxxx, locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[!] iOS toolchain - develop for iOS devices
✗ 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
✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
brew install --HEAD libimobiledevice
brew install ideviceinstaller
✗ ios-deploy not installed. To install:
brew install ios-deploy
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
For more info, see https://flutter.io/platform-plugins
To install:
brew install cocoapods
pod setup
[✓] Android Studio (version 3.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[!] Connected devices
! No devices available
! Doctor found issues in 3 categories.
```
「✗」がついた部分を順に解決していきます。
### iOS
※Android toolchainは後述します
```terminal
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
```
XcodeをDownloadしてxcode-selectをしろと言われています。私はbeta版をDL済みでしたので以下のコマンドを実行しました。
```terminal
$ sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer/
```
その後、出力されたとおりに以下のコマンドを実行しました。
```terminal
$ brew install --HEAD libimobiledevice
$ brew install ideviceinstaller
$ brew install ios-deploy
$ brew install cocoapods
$ pod setup
```
### Android
下記の出力ですが、Android StudioでPluginをインストールすればOKです。
```terminal
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
```
Android Studio > Preferences > Plugins
- [Install JetBrains plugin]から[Dart]をインストール
- [Browse Repositories]から[Flutter]をインストール
次にライセンスの解決を行います。
```terminal
$ flutter doctor --android-licenses
```
実行すると色々聞かれますが、ひたすら「y」(yes)と入力してください。
### 再実行
ここまでできたら一度flutter doctorを実行すると、以下の出力がされました。
```terminal
[!] iOS toolchain - develop for iOS devices (Xcode 9.4)
✗ Missing Xcode dependency: Python module "six".
Install via 'pip install six' or 'sudo easy_install six'.
```
私はpython未インストールのため、以下のコマンドを実行しました。 
```terminal
$ brew reinstall python@2
$ pip install six
```
ここで再度flutter doctorを実行すると、私の環境では全ての警告が解消しました。
(No devices availableにはなっていますが。)
### Device
「No devices available」と出力されているのはデバイスが接続されていないためです。
iosシミュレータを立ち上げる場合は下記コマンドで立ち上がります。
```terminal
$ open -a Simulator.app
```
また、Androidの場合はAndroid StudioでTools > AVD ManagerでVirtual Deviceを作成して起動してあげればOKです。
ちなみに、AVDは最初x86で作ったのですが、Android StudioでFlutterプロジェクトを起動させると
「PANIC: Missing emulator engine program for 'x86'」
とエラーが出てしまいました…ので、x86_64で作り直したところうまく起動できました。
この辺はまだよくわかっていないので、勉強していきたいと思います。