はじめに
GodotでiOSアプリを開発する際、通常は以下の手順が必要です。
Godotで修正
↓
プロジェクト > エクスポート(毎回)
↓
Xcodeでビルド
↓
実機で確認
この「毎回エクスポート」が地味に面倒です。この記事では一度だけセットアップすれば、以降はGodotで修正→XcodeでCmd+Rするだけで実機確認できる方法を解説します。
実際にハマったエラーと解決策も含めてリアルに記録しています。
想定環境
| 項目 | 内容 |
|---|---|
| OS | macOS(Apple Silicon) |
| Godot | 4.7 stable |
| Xcode | 最新安定版 |
| 確認先 | iPhone実機 |
注意:iOSシミュレータについて
Godot 4.4以降、iOSシミュレータは非サポートになっています(残念、、、)。Metal/VulkanレンダラーがシミュレータのGPUに対応していないためです。Apple Silicon MacはiOSアプリをネイティブ実行できますが、今回は実機での確認を目指します。
1. 事前準備
1-1. エクスポートテンプレートのインストール
「エクスポートテンプレート」とはGodotがiOS向けにビルドするために必要なバイナリファイル一式です。Godot本体とは別にダウンロードが必要です。
エディター > エクスポートテンプレートの管理 を開き、「Install All Templates」ボタンを押します。現在のGodotバージョン(4.7)に対応したテンプレートが自動でインストールされます。すでに「インストール済み」と表示されている場合は不要です。
オフラインモードではインストールできませんでしたので、その場合はオンラインモードにしてください
1-2. Apple Developer アカウントの確認
iPhone実機にインストールするには Apple Developer アカウントが必要です。無料アカウントでも実機デバッグは可能です(App Storeへの配信は有料アカウントが必要)。
1-3. App Store Team IDの確認
エクスポート設定に必要な10文字のTeam IDを確認します。
- Xcodeを開く
-
Xcode > Settings > AccountsでApple IDを追加 -
Manage Certificatesをクリック - Team IDは
developer.apple.comのアカウントページでも確認できます(例:ABCDE12XYZ)
注意:XcodeがSigning & Capabilitiesタブに表示する「名前」ではなく、10文字のコード(例:
ABCDE12XYZ)が必要です。
2. 最初の1回:通常エクスポートを行う
2-1. フォルダ名の命名ルール
Godotプロジェクトのフォルダ名とXcodeプロジェクト名は必ず別の名前にしてください。同じ名前にするとXcodeで署名エラーが発生します。
✅ 正しい例
Godotプロジェクト:escape-game-sample/
Xcodeプロジェクト:EscapeGameXcodeProj/ ← 任意の名前
❌ 誤った例
Godotプロジェクト:EscapeGameSample/
Xcodeプロジェクト:EscapeGameSample/ ← 同じ名前はNG
2-2. iOSエクスポートプリセットの設定
プロジェクト > エクスポート > 追加 > iOS で以下を設定します。
| 項目 | 値 |
|---|---|
| App Store Team ID | 10文字のTeam ID(例:ABCDE12XYZ) |
| Bundle Identifier | 任意の一意なID(例:com.yourname.escapegame) |
下記アラートが出ている場合はOnにしてください
「エクスポート」ボタンで任意のフォルダに .ipa を書き出します。書き出し先は Godotプロジェクトとは別のフォルダにしてください。
3. Xcodeとの連携設定(一度だけ)
ここからが本題です。一度設定すれば以降は再エクスポート不要になります。
3-1. Xcodeプロジェクトを開く
エクスポートで生成された .xcodeproj をXcodeで開きます。
open EscapeGameXcodeProj/EscapeGameXcodeProj.xcodeproj
3-2. .pckファイルをProject Navigatorから削除
XcodeのProject Navigatorから EscapeGameXcodeProj.pck を右クリック → Delete → Remove Reference で削除します。
.pckはGodotプロジェクト全体をまとめたパッケージファイルです。Godotプロジェクトフォルダを直接参照する形にしたため不要になります。
3-3. Copy Bundle Resourcesから.pckを除外する
Build Phases > Copy Bundle Resources を開き、EscapeGameXcode.pck が残っていれば選択して - ボタンで削除します。
3-4. escape-game-sampleをCopy Bundle Resourcesに追加する
-
Build Phases > Copy Bundle Resourcesの+ボタンをクリック -
Add Other...を選択
- Godotプロジェクトフォルダ(
escape-game-sample)を選択
- ダイアログで以下を選択
-
Destination:Copy items if needed のチェックを外す -
Added folders:Create folder references
-
-
Finishをクリック
3-6. Info.plistにgodot_pathを追加
- Project Navigatorで
EscapeGameXcode-Info.plistを開く - 既存のKeyの行末にある
+ボタンをクリックして新しい行を追加 - 以下を入力する
| Key | Type | Value |
|---|---|---|
godot_path |
String | escape-game-sample |
ValueはGodotプロジェクトのフォルダ名のみ(フルパスではありません)。
✅ 正しい例:escape-game-sample
❌ 誤った例:/Volumes/ssd001/godot/escape-game-sample
4. ハマったエラーと解決策
エラー:Undefined symbol: _main
原因:Godot 4.4以降、iOSシミュレータはサポート外になったため、シミュレータをターゲットにするとこのエラーが出ます。
解決策:ターゲットをシミュレータではなく実機(接続したiPhone)に変更する。
5. iPhone実機での確認
5-1. iPhoneをMacに接続
iPhoneをUSBケーブルでMacに接続します(もしくはワイヤレスビルド)。
5-2. Xcodeのターゲットを実機に変更
Xcodeの上部ツールバーでビルドターゲットを 接続したiPhone に変更します。
5-3. 署名設定
- Project Navigatorで
EscapeGameXcodeをクリック TARGETS > EscapeGameXcode > Signing & Capabilities-
TeamにApple IDを設定
5-4. 実行
Cmd+R でビルドして実機にインストールされます。
6. 以降の開発フロー
セットアップ完了後の開発フローはこれだけです。
Godotエディタで修正・保存
↓
XcodeでCmd+R(ビルド&インストール)
↓
iPhone実機で確認
再エクスポートは不要です。
まとめ
| 手順 | 頻度 |
|---|---|
| エクスポートテンプレートのインストール | 一度のみ |
| iOSエクスポートプリセットの設定 | 一度のみ |
| 通常エクスポートで .xcodeproj を生成 | 一度のみ |
| Xcode連携設定(Reference files) | 一度のみ |
| .pckの削除・godot_path設定 | 一度のみ |
Godotで修正 → Cmd+R |
毎回これだけ |
初回セットアップは手順が多いですが、一度やってしまえば以降の開発サイクルが大幅にスムーズになります。特に≈「Copy Bundle Resourcesにフォルダを追加する」≈が重要なポイントです。










