iOSビルド時のBoringSSL-GRPCエラー解消法「unsupported option '-G'」
問題の説明
Xcode 16 BetaでiOSアプリのビルド時に以下のエラーが発生します:
BoringSSL-GRPC unsupported option '-G' for target 'arm64-apple-ios15.0'
このエラーは主にFirebaseやgRPC関連ライブラリを使用したプロジェクトで発生します。具体的な要因は:
- コンパイラフラグ
-GCC_WARN_INHIBIT_ALL_WARNINGS
が新しいXcodeバージョンで非サポートに - BoringSSL-GRPCモジュールが最新のiOS SDKと互換性がない
- 一部のFlutterプロジェクトで依存関係の不整合が発生
pod update
やデプロイメントターゲットの変更では解決しないケースが多く、具体的な設定変更が必要です。
効果的な解決方法
🔧 方法1: Podfileにpost_installスクリプトを追加(推奨)
最も効果的で多くのケースで有効な手法です
post_install do |installer|
installer.pods_project.targets.each do |target|
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
end
end
適用手順
# 1. Podfileに上記スクリプトを追記
nano ios/Podfile
# 2. 依存関係をクリーンアップ
flutter clean
rm -rf ios/Pods ios/Podfile.lock
# 3. 依存関係再インストール
flutter pub get
cd ios
pod install --repo-update
原理
このスクリプトはBoringSSL-GRPC
ターゲットから問題のフラグ-GCC_WARN_INHIBIT_ALL_WARNINGS
を削除します。Xcode 16ではこのフラグがarm64アーキテクチャでサポートされていないため、明示的に除外することで互換性を確保します。
⬆️ 方法2: Firebaseライブラリのアップデート
Firebaseを使用している場合、最新版への更新で問題が解消されるケースがあります
dependencies:
firebase_core: ^3.6.0
firebase_auth: ^5.3.1
cloud_firestore: ^5.4.4
# その他使用中のFirebaseパッケージも最新版に
flutter pub upgrade
方法3: iOSデプロイメントターゲットの調整
# ファイル先頭付近でiOSバージョンを指定
platform :ios, '13.0' # 13.0以上を推奨
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
⚠️ 追加のトラブルシューティング
上記手法でも解決しない場合、以下の対応を試してください:
# キャッシュの完全クリーン
pod cache clean --all
rm -rf ~/Library/Caches/CocoaPods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
# CocoaPodsの再インストール
brew reinstall rbenv
sudo gem install cocoapods
Xcodeプロジェクト内での設定変更:
- Runner → Build Settingsで
ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES
をYES
に設定 EXCLUDED_ARCHS[sdk=iphonesimulator*]
にarm64
を追加
解決策の比較表
方法 | 必要作業 | 想定解決時間 | 推奨プロジェクト状態 |
---|---|---|---|
post_installスクリプト | Podfile編集 | 10分 | 全ての状態 |
Firebase更新 | パッケージバージョンアップ | 5分 | Firebase使用プロジェクト |
デプロイメントターゲット変更 | iOSバージョン設定 | 5分 | 古いiOS向けプロジェクト |
技術的背景
このエラーはgRPCの既知の問題で、主にXcodeツールチェーンの更新による互換性問題です。AppleのARM64アーキテクチャと警告抑制オプションの非互換性から生じます。根本的な修正はgRPCライブラリの更新が必要ですが、一時的な回避策として上記手法が有効です。
注意
iOSシミュレーターで問題が発生するケースが多いため、実機テストで正常動作を確認してください。
以上の対策により、Xcode 16環境での「unsupported option '-G'」エラーは解決可能です。プロジェクトの状態に合わせて最適な方法を選択してください。