Flutter: MacのデスクトップアプリをXcodeでビルドすると、「Swift Compiler Error No such module '#######'」のエラー
結論:ターミナルからopen macos/Runner.xcworkspaceでXcodeを起動する
2022/3/13 Flutter エラー・バグ日記
FlutterのMac用デスクトップアプリの挙動は、いつもAndroid Studioのエミュレーターで確認していたが、初めてXcodeでビルドしてみたところ、以下のエラーが出た。
Swift Compiler Error No such module 'desktop_window'
アプリのウィンドウサイズを制限するため、「desktop_window」というパッケージを用いていたが、このモジュールが見つからないらしい。
改めて「macos」フォルダ内でpod installするも解消せず。
flutter clean、clean build folder、Xcode再起動など、ひと通り試すも駄目。
pod installしたときに、
Installing desktop_window (0.0.1)
という表示は出ているので、問題ないように見えるが。。。
Xcodeでビルドできないと、当然ながらAppStoreの申請もできないため困る。。
下記記事の「4」で全く同じ質問が掲載されているが、回答されていない。。
試しに、「pubspec.yaml」から「desktop_window」を削除してみると、今度は「firebase_core」でも同じエラーに。
結局、「desktop_window」の問題ではなく、ライブラリ関係の全てが導入できていない模様。
その他、同じエラーメッセージでググって見つけた下記記事の情報を試させていただくが、自分の状況とは異なるようで、解消できず。。
改めて、下記のFlutter公式情報
を眺め直すと、アプリ配信のための段取りとして、
$ flutter build macos
$ open macos/Runner.xcworkspace
を実行する必要があると気づく。
そこでターミナルで1つ目のコマンドを実行後、続けて2つ目のコマンドを実行すると、Xcodeが立ち上がった。
Runnerフォルダに加え、Podフォルダが生成されており、XcodeのRunボタン(▶)からビルドすると、無事、Macのデスクトップアプリを起動できた。
どうやらXcodeの起動方法が間違っていたらしい。
エラーが出たときは、「macos/Runner.xcodeproj」の部分で右クリックして、「Flutter」→「Open iOS module in Xcode」で開いていた。
自分で手探りで見つけた方法だったが、よく考えれば、「iOS」と書かれているので、正しい方法ではないと気づくべきだった。。
Mac用デスクトップアプリのライブラリをインポートして使用できるようにするためには、コマンドラインからXcodeを起動する必要があることを学習。
\一般的なエラー対処法をまとめた記事はこちら/
リリースしたアプリ(全てFlutterで開発)
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/