この記事を書いている2020/04/12時点で、FlutterのiOS実機ビルドが以下のようなエラーで通らなくなっています(´・ω・)
どうやら、最新のXcode11.4とstableチャンネルの組み合わせが原因らしく、Flutterのチャンネルを切り替えてあげればOKとのことでした。
とりあえず、stable→beta→stableとすることで回避はできましたが、チャンネル毎の違いをイマイチ理解していないので調べてみました。
チャンネルは全部で4種類
公式のドキュメントによると、リリースチャンネルは全部で以下の4種類があるようです。
- master
- dev
- beta
- stable
開発フェーズによって分かれているらしいのですが、それぞれのチャンネルは後述のような位置づけとなっています。個人的には、実際にリリースするアプリに適用するならstableかbetaが良いような気がします。
masterチャンネル
現在の最新ソースがコミットされる開発ブランチ(gitのmasterブランチ)です。上記4つのチャンネル内で一番最新の機能が取り込まれる反面、もっとも不安定ともいえるチャンネルです。
devチャンネル
masterの次フェーズに相当する最新のテスト済みブランチです。masterのビルドの内、テストを通過したものがdevへと昇格します。一定の品質は保たれているので、masterよりは安心して使えるチャンネルといえますね。
betaチャンネル
devの次フェーズに相当するブランチです。月に1回、前月で最も品質の良かったdevチャンネルのビルドがbetaチャンネルへと昇格します。月1回のリリースなので、devチャンネルよりも更新は遅いですが、品質的にはより安定したチャンネルといえます。
stableチャンネル
利用が推奨される安定版ブランチです。Flutterをインストールしたときにデフォルトで適用されるチャンネルもこのstableになります。特に理由がなければ、このチャンネルを使って開発するのが良いでしょう。ただし開発のペースは遅く、目標とされていた四半期に一度のアップデートも最近は守られていないような気がします…。
チャンネルの確認と切り替え方法
実際に適用されているチャンネルの確認とその切り替えは、それぞれコマンド1つで簡単にできます。
チャンネルの確認には以下のコマンドを実行すればOKです。
適用されているチャンネルの横に*が付いていますね。
beta
dev
master
* stable
チャンネルの切り替えもコンソールから以下のように実行すればOKです。
まとめ
本来であればstableの使用が望ましいですが、当初は四半期毎のリリースが目標となっていたstableブランチも、最近はhotfixばかりでなかなか順調に開発が進んでいない印象です。
開発する上で特に問題がなければ良いのですが、stableに取り込まれていない不具合修正もあるようです。必要に応じてbetaなどの他ブランチの使用も検討するのが良いと思います。
まだまだ発展途上のフレームワークであることは間違いないので、常に動向を見守りながらになりそうですね。
ではでは