Zenn
🍋

急にiOS Simulatorでビルドできなくなった ~Module 'cloud_firestore' not found~

2025/03/15に公開

環境情報

  • Flutter: 3.3.0 以上
  • iOS: 18.1(シミュレータ)
  • Xcode: 最新版
  • CocoaPods: 1.10.1 以上
  • macOS: 24.3.0
  • CPU: Apple Silicon (M3)
  • デバイス: iPhone 16(シミュレータ)

発生した問題

iOS シミュレータでビルドする際に、突然以下のエラーが発生するようになりました。Android では問題なくビルドできるのに、iOS だけでエラーが起きてました。

Launching lib/main.dart on iPhone 16 in debug mode...
Xcode build done.                                            8.7s
Failed to build iOS app
Error output from Xcode build:
↳
    --- xcodebuild: WARNING: Using the first of multiple matching destinations:
    { platform:iOS Simulator, id:202F6301-C84D-4553-AA63-641761D53A2A, OS:18.1, name:iPhone 16 }
    { platform:iOS Simulator, id:202F6301-C84D-4553-AA63-641761D53A2A, OS:18.1, name:iPhone 16 }
    ** BUILD FAILED **

Xcode's output:
↳
    Writing result bundle at path:
    	/var/folders/xx/xxxxxxxxxx/T/flutter_tools.XXXXXX/flutter_ios_build_temp_dirXXXXXX/temporary_xcresult_bundle

    /Users/username/Projects/flutter_app/ios/Runner/GeneratedPluginRegistrant.m:12:9: error: Module 'cloud_firestore' not found (in target 'Runner' from project 'Runner')
    /Users/username/Projects/flutter_app/ios/Runner/GeneratedPluginRegistrant.m:12:9: error: Module 'cloud_firestore' not found (in target 'Runner' from project 'Runner')
    note: Disabling previews because SWIFT_VERSION is set and SWIFT_OPTIMIZATION_LEVEL=-O, expected -Onone (in target 'Runner' from project 'Runner')
    note: Run script build phase 'Run Script' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'Runner' from project 'Runner')
    note: Run script build phase 'Thin Binary' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'Runner' from project 'Runner')

Could not build the application for the simulator.
Error launching application on iPhone 16.

エラーの核心は「Module 'cloud_firestore' not found」で、GeneratedPluginRegistrant.m の 12 行目で cloud_firestore モジュールが読み込めないというものです。

試行錯誤:効果がなかった対応策

以下の一般的な対処方法を試しましたが、残念ながらエラーは解消されませんでした。

  1. Flutter ビルドキャッシュの削除

    flutter clean
    
  2. Xcode の DerivedData ディレクトリの削除

    rm -rf ~/Library/Developer/Xcode/DerivedData/*
    
  3. Flutter の依存関係の再取得

    flutter pub get
    
  4. iOS の CocoaPods キャッシュの削除

    cd ios && rm -rf Pods && rm -rf .symlinks && rm Podfile.lock
    
  5. CocoaPods の依存関係の再インストール

    pod install
    cd ..
    
  6. iOS アプリのビルド確認

    flutter build ios --no-codesign
    

これらの一般的な対応策を試しても、シミュレータでのビルド時に同じエラーが発生し続けました。

解決策:問題を解消した対応

詳細に調査した結果、以下の対策により問題が解決しました。

1. Apple Silicon (M1/M2/M3) シミュレータ対応の設定追加

Podfile に以下の設定を追記しました。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      # 既存の設定...

      # Apple Silicon (M1/M2/M3) シミュレータ対応設定
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

      # その他の設定...
    end
  end
end

2. プロジェクトの完全なクリーンアップと再ビルド

# Flutterプロジェクトのクリーンアップ
flutter clean

# Flutter依存関係の再取得
flutter pub get

# iOSのPodsを完全に削除して再構築
cd ios
rm -rf Pods
rm -f Podfile.lock
pod install
cd ..

# アプリの実行
flutter run

原因分析

この問題の主な原因は以下の通りと考えられます。

  1. Apple Silicon (M1/M2/M3) Mac 環境特有の問題

    • Apple Silicon Mac ではシミュレータも arm64 アーキテクチャで動作するため、一部の Firebase 関連ライブラリが対応しきれていない可能性があります。
    • EXCLUDED_ARCHS[sdk=iphonesimulator*] の設定を追加することで、シミュレータビルド時に arm64 を除外し、x86_64(Rosetta 2 経由)でビルドするように指示しました。
  2. 環境の変化

    • iOS のバージョンアップ(iOS 18.1 シミュレータ使用)
    • Xcode のアップデート
    • CocoaPods のバージョン変更
    • Flutter プラグインの更新

この問題は Firebase/FlutterFire の公式リポジトリでも報告されており、同様の事例と解決策が共有されています。Firebase 開発チームからも、同様の対策(EXCLUDED_ARCHS[sdk=iphonesimulator*] の設定追加)が推奨されています。

https://github.com/firebase/flutterfire/issues/8984

最後に

前日まで正常に動作していたプロジェクトでしたが、一時的に別のプロジェクトで作業した後、元のプロジェクトに戻ってデバッグを行ったところ、このエラーが発生しました。なぜ突然動かなくなったのかについては深く調査していないため原因は不明ですが、同様の問題に直面している方々の参考になれば幸いです。

Discussion

ログインするとコメントできます