はじめに

Godot4というゲームエンジンを使ってiOSアプリを開発していると、iPhone7やiPad第7世代などの特定の端末で起動直後にクラッシュするという現象が起こることがあります。 本記事では、その原因と解決方法を実際の経験をもとにまとめます。

原因

Godot4のデフォルトレンダラーは多くの場合Forward+で、これはVulkan/Metalベースのレンダリング方式です。 ただし、数年前に発売されたiPhone/iPad(A9, A10 GPU 世代)は、Forward+ が必要とする一部のGPU機能をサポートしていない可能性があります。 そのため、初期化に失敗 → 起動直後にクラッシュという症状が起きる場合があります。

解決方法

解決策は、gl_compatibility(OpenGL)レンダラーに切り替えることです。

設定手順

  1. Godotエディタで Project > Project Settings を開く
  2. 検索バーで Rendering を探す
  3. rendering_method.mobileの値を gl_compatibility に変更 ※ 私は念のためrendering_method, rendering_method.webgl_compatibilityに変更しました。
  4. プロジェクトを再エクスポートして、Xcode から実機にインストール
スクリーンショット

まとめ

Godot4を使ったiOSアプリで、特定の端末(iPhone7/iPad 第7世代など)では、Forward+ が必要とする GPU 機能を満たしていない可能性があり、その結果、初期化に失敗して起動直後にクラッシュする場合がある。

rendering_method.mobileの値をgl_compatibility(OpenGL)に切り替えることで解決できることがある。

この情報が今後開発される方のご参考になれば幸いです。