はじめに
Xcode 11.4でFlutterの実機デバッグを実行した際に以下のエラーが発生したため、対応方法についてまとめました。
error: 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.4 Beta(19E250c) |
Android Studio | 3.6.1 |
Xcode | 11.4 beta (11N111s) |
対処方法
Flutterの公式サイトに以下の記載1がありました。
To develop Flutter apps for iOS, you need a Mac with Xcode installed. Xcode 11.4 changed the way frameworks are linked and embedded, and you may experience issues switching between iOS devices and simulators. Flutter v1.15.3 and later will automatically migrate your Xcode project.
Xcode 11.4以降を利用する場合、Flutterをv1.15.3以降にアップデートすることで自動的に移行してくれるとあります。
このため、対処としてはFlutterのアップデートとなります。
$flutter upgrade
$flutter clean
$flutter build ios
※ Android Studioなどを利用している場合、flutter clean, flutter build iosを明示的にコマンド実行する必要はないかもしれませんが、念のため実施しています。
私の環境では上記対応を行った後に再度実行することで、実機デバッグに成功しました。
なお、Flutterの公式サイトには自動移行に失敗した際に、手動で移行する手順も記載されていました。
このため、上記対応でうまくいかなかった場合は以下を参照してみてください。
If you need to manually upgrade your project, use the following steps:
From the Flutter app directory, open ios/Runner.xcworkspace in Xcode.
In the Navigator pane, locate the Flutter group and remove App.framework and Flutter.framework.