Skip to content

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スクリプトを追加(推奨)

最も効果的で多くのケースで有効な手法です

ruby
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

適用手順

bash
# 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を使用している場合、最新版への更新で問題が解消されるケースがあります

yaml
dependencies:
  firebase_core: ^3.6.0
  firebase_auth: ^5.3.1
  cloud_firestore: ^5.4.4
  # その他使用中のFirebaseパッケージも最新版に
bash
flutter pub upgrade

方法3: iOSデプロイメントターゲットの調整

ruby
# ファイル先頭付近で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

⚠️ 追加のトラブルシューティング

上記手法でも解決しない場合、以下の対応を試してください:

bash
# キャッシュの完全クリーン
pod cache clean --all
rm -rf ~/Library/Caches/CocoaPods
rm -rf ~/Library/Developer/Xcode/DerivedData/*

# CocoaPodsの再インストール
brew reinstall rbenv
sudo gem install cocoapods

Xcodeプロジェクト内での設定変更:

  1. Runner → Build Settingsで ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULESYES に設定
  2. 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'」エラーは解決可能です。プロジェクトの状態に合わせて最適な方法を選択してください。