【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を使ってアプリを作っていて、基本的にどんなエラーも解決できていたので、
久しぶりにしっかりハマりました。
また、参考になる情報を共有できればと思います。
最後まで読んでいただきありがとうございました。
ではまた。