発生した問題

FlutterでiOS実機ビルドするときにエラーが出て、進行不能になりました。

Building for iOS, but the linked and embedded framework 'App.framework' was built for iOS Simulator. (in target 'Runner' from project 'Runner')

環境

  • macOS Catalina 10.15.1
  • Xcode 11.4
  • Flutter 1.12.13

結論

Flutterのバージョンを v1.15.3 以上にすることで解決しました。

手順

###バージョン確認とアップデート

Flutterのバージョンは

$ flutter --version

で確認することができて、

Flutterのアップデートは、

$ flutter upgrade

でアップデートすることができますが、1点注意が必要です。

channelの確認

Flutterのバージョンはchannelごとにバージョン管理されており、デフォルトのstableでは、最新版は v1.12.13+hotfix.8 となっています。 (つまり、Stableのままではこの問題は解決しません)

https://flutter.dev/docs/development/tools/sdk/releases

自分がどのchannelを使っているかは flutter channel で分かります。 上のものほど最新の機能が使えますが、その分不具合も多くなります。

$ flutter channel
Flutter channels:
  master
  dev
  beta
* stable

今回の問題解決のために、beta channelに切り替えました。

$ flutter channel beta

ちょっと切り替えに時間がかかりますが、切り替え終わるとchannelが切り替わっています。

$ flutter channel
Flutter channels:
  master
  dev
* beta
  stable

この状態でアップデートすることで、無事に v1.15.3 以上にすることができました。

$ flutter --version
Flutter 1.15.17 • channel beta • https://github.com/flutter/flutter.git

参考記事

Xcode 11.4 Support

https://flutter.dev/docs/development/ios-project-migration