見出し画像

【Flutter】unsupported option -G for targetの対処法

こんにちは。やすです。

今回は、「unsupported option -G for targetの対処法」についてお話します。

iPhone16の発表が先日あり、ios18もリリースされました。

そこで、これまでFlutterアプリをXcodeでビルドできていたのに、

急に、unsupported option -G for targetこんな感じのエラーが出て、

ビルドができなくなりました。

ただ、色々海外のサイトなどを見て、対処できました。

まだ日本語の情報が少ないと感じたので、共有したいと思います。

unsupported option -G for targetの対処法

1.Podfileにコードを追加

まず、Flutterプロジェクトのiosフォルダの中に、Podfileがあります。
(ios/Podfile)

ここに以下の画像の緑の部分を追加します。

pod 'Firebase/Analytics', :modular_headers => true
pod 'Firebase/Auth', :modular_headers => true
pod 'Firebase/Core', :modular_headers => true
pod 'Firebase/Firestore', :modular_headers => true
if target.name == 'BoringSSL-GRPC'
  target.source_build_phase.files.each do |file|
    if file.settings && file.settings['COMPILER_FLAGS']
      flags = file.settings['COMPILER_FLAGS'].split
      flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' }
      file.settings['COMPILER_FLAGS'] = flags.join(' ')
    end
  end
end

2.コマンドをたたく

次に、以下のコマンドをたたきます。

自分のプロジェクトフォルダから、以下の5行のコマンドを順番に実行してください。

cd ios

rm -rf Pods

rm -rf ~/Library/Developer/Xcode/DerivedData/*

pod cache clean --all

pod install

おそらくここまでを行い、ビルドをすると以下の

BoringSSL-GRPC unsupported option '-G' for target 'arm64-apple-ios15.0'

このエラーは解消します。

ですが、それと同時にぼくの場合、新しいエラーが起きました。

3.もしかしたら追加で修正

新しいエラーは

「Lexical or Preprocessor Issue (Xcode): Include of non-modular header inside framework module 'firebase_messaging.FLTFirebaseMessagingPlugin'」

こんな感じのやつでした。

そこで、これに対しての対処法が以下です。

まず、自分のFlutterプロジェクトの中のiosフォルダのRunner.xcodeprojフォルダの中のproject.pbxprojファイルを探します。

そこで、

Begin XCBuildConfiguration section

上を検索かけてみてください。

あとは、以下の画像を参考に3箇所、コードを追加します。




CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;

追加するのは3箇所とも、上のコードです。

ここまで終わったら

flutter clean

flutter pub get

これをFlutterプロジェクトでやって、ビルド、実行してみてください。

まとめ

最近は、生成AIを使ってアプリを作っていて、基本的にどんなエラーも解決できていたので、

久しぶりにしっかりハマりました。

また、参考になる情報を共有できればと思います。

最後まで読んでいただきありがとうございました。
ではまた。

いいなと思ったら応援しよう!