LoginSignup
2

More than 3 years have passed since last update.

Flutter upgradeでgit関連のエラーが出た場合の対処方法

Posted at

はじめに

Flutterの環境作成が終わったので少し動かしてみようかと思い、別のアプリでflutter runを実行したところ新しいバージョンが出たのでupgradeしてくれとの表示が出てきました。
その指示に従いflutter upgradeを実行したところ下記のエラーが発生しました。
このエラーを解決するまでに調べたことを備忘録として残そうと思います。
upgradeエラー.png

環境

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しなくてもアプリ起動は出来たのでこれ以上は調べませんが。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2