はじめに
Flutterの環境作成が終わったので少し動かしてみようかと思い、別のアプリでflutter run
を実行したところ新しいバージョンが出たのでupgradeしてくれとの表示が出てきました。
その指示に従いflutter upgrade
を実行したところ下記のエラーが発生しました。
このエラーを解決するまでに調べたことを備忘録として残そうと思います。
環境
MacBook Pro 2018
macOS Mojave 10.14.5
Xcode 10.2.1
Android Studio 3.4.2
Flutter 1.7.8 (upgrade後のバージョンです...upgrade前のバージョンメモし忘れたorz)
解決策
Flutter SDKを解凍したディレクトリでgit stash save
or git checkout .
を実行し、環境をクリーンした後で再度flutter upgrade
を行うと正常に動作します。
なぜエラーが発生したのか?
現状把握
Flutter SDKのディレクトリでgit status
を実行すると、身に覚えのない差分が表示されます。
Flutter SDKのインストールからflutter upgrade
を実行するまでに行なった操作としては、Flutterのセットアップとエミュレータでのアプリ起動のみです。
検証1(セットアップ作業の影響?)
セットアップ作業の影響で差分が発生しているなら差分をクリアした後にflutter doctor
を実行すると出力が変わるかと思い試してみます。
コマンドとしては下記の順に実行しました。
$ git stash save
$ flutter doctor
結果としてはflutter doctor
の出力は変わりませんでした。
検証2(アプリ起動時の影響?)
セットアップ作業の影響はなさそうという事が分かったので、次にエミュレータでアプリ起動をしてみます。
この予測は当たっておりアプリ起動後にFlutter SDKディレクトリ内でgit status
を実行すると差分が表示されるようになりました。
差分のパスをよく見てみると下記のようになっておりアプリ起動の影響でキャッシュのようなもの作成されたと考えられます。
...差分のパス最初からよく見ればよかった。
dev/integration_tests/アプリ名
終わりに
Flutter SDK内の差分はアプリ起動時に作成されるキャッシュのようなので心置きなくgit checkout .
でクリーンできるようになりました。
キャッシュ的なものをSDK内部に作成するのあまりイケてない気がするので何とかならんものか...
余談ですが、git stash save
で保存した差分をupgrade直後にpopするとコンフリクトしました。
キャッシュならupgradeと関係しないはずなのでぶつかる事もない気がするのですが何なんでしょうね...
popしなくてもアプリ起動は出来たのでこれ以上は調べませんが。