iOSビルド失敗: EXC_BAD_ACCESS (code=1, address=0x0)の対処法

MacOSのバージョンをVenturaからSonomaにバージョンアップし、XCodeも14.xから15.xにバージョンアップした際にビルドエラーが発生したため、解消法を忘備録として記載する。

開発環境

  • MacOS Sonoma 14.1
  • Xcode – develop for iOS and macOS (Xcode 15.0.1)
  • Flutter 3.13.6

エラー内容

flutter run 実行時に以下のエラーが出現。

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000000000000
Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

Xcode 15でiOS 12未満のサポートが削除されたことに関連して発生するエラーのようで、この問題は、Flutterプロジェクト内で使用されているCocoaPodsのターゲットが、iOS 12未満のデプロイメントターゲットに設定されている場合に発生する可能性がある。

回避策

${project-root}/ios/Podfile に以下を記述する。

post_install do |installer|
  installer.pods_project.targets.each do |target|
  flutter_additional_ios_build_settings(target)
  target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        end
    end
  end

上記のスクリプトをPodfileに追加することで、プロジェクト内の全てのデプロイメントターゲットが少なくともiOS 12.0であることを保証する。これを行うことで、Xcode 15でビルド時に発生する互換性の問題を回避できます。

参考ソース

関連記事

コメント

この記事へのコメントはありません。