Macを持たずにGodotのゲームをiOSにエクスポートする
GodotのiOSエクスポートは、ゲームをXcodeプロジェクトにします。そのあとXcodeがアプリをビルドし、署名し、アップロードします。XcodeはmacOSでしか動きません。当社は2026年10月19日に、Godot 4.7.2で一連の流れをGitHub Actionsで実行しました。エクスポートの工程は、WindowsとLinuxでも動きました。Xcodeの工程にはMacが必要でした。
ドキュメントの説明と、実際に見たこと
Godot 4.7のiOSのページには、Xcodeが入ったMacからエクスポートする必要があると書かれています。当社のテストでは、WindowsとLinuxのエディタでも、Xcodeプロジェクトは書き出されました。次の警告を出して、そこで止まりました。
WARNING: Xcode Build: .ipa can only be built on macOS. Leaving Xcode project without building the package. WARNING: Project export for preset "iOS" completed with warnings.
それぞれのプロジェクトをMacにコピーし、デバイス向けにビルドしました。3つのビルドはすべて成功しました。これは試して確かめた近道で、公式の機能ではないと考えてください。当社のテスト用のゲームには、プラグインもC#のコードもありませんでした。Godotのソースコードによると、C#のプロジェクトはmacOSからiOSにエクスポートする必要があります。
手順1:エクスポートテンプレート
エクスポートには、使っているGodotとまったく同じバージョンのエクスポートテンプレートが必要です。エディタで、Editor、Manage Export Templatesの順に開いてダウンロードします。4.7.2のファイルは約1.3 GBです。画面のないサーバーでは、.tpzを自分で展開します。当社が使ったフォルダは次のとおりです。
# macOS ~/Library/Application Support/Godot/export_templates/4.7.2.stable # Linux ~/.local/share/godot/export_templates/4.7.2.stable # Windows (Git Bash) $APPDATA/Godot/export_templates/4.7.2.stable
手順2:iOSのエクスポートプリセット
Project、Exportの順に開き、Addをクリックして、iOSを選びます。必須の項目が2つあります。App Store Team IDは、Apple Developerアカウントにある10文字のコードで、名前ではありません。Bundle Identifierはアプリの識別子で、com.example.mygameのような形です。Godotはプリセットをexport_presets.cfgに保存します。当社のファイルのうち、大事な部分は次のとおりです。
# export_presets.cfg [preset.0] name="iOS" platform="iOS" runnable=true export_filter="all_resources" include_filter="" exclude_filter="" export_path="export/GodotDemo.ipa" [preset.0.options] application/app_store_team_id="ABCDE12XYZ" application/bundle_identifier="com.example.godotdemo" application/export_project_only=true # project.godot, two settings the export needed [application] config/icon="res://icon.svg" [rendering] textures/vram_compression/import_etc2_astc=true
Export Project Onlyを指定すると、GodotはXcodeプロジェクトを書き出して止まります。これがないと、Mac上のGodotは自分でxcodebuildを実行し、アーカイブと.ipaを作ろうとします。それには本物の署名が必要なので、まずはプロジェクトだけで始めてください。
手順3:コマンドラインからエクスポートする
プリセット名は引用符で囲みます。出力先のパスは、project.godotのあるフォルダからの相対パスです。
godot --headless --path demo --export-release "iOS" export/GodotDemo.ipa
エクスポートは、Linuxで約9秒、Windowsで約21秒でした。GodotDemo.xcodeproj、GodotDemoフォルダ、ゲームのデータが入った.pck、そしてGodotDemo.xcframeworkとしてエンジンが書き出されました。
次の2つのエラーで、それぞれ1回ずつ実行をやり直しました。
- プロジェクトのアイコンがないと、エクスポートはInvalid icon (icons/settings_58x58)で失敗します。Project Settingsでアイコンを設定してください。
- ETC2/ASTCのテクスチャのインポートがないと、エクスポートは中身のない"configuration errors"というメッセージで失敗します。Rendering、Textures、VRAM Compressionで、Import ETC2 ASTCをオンにしてください。
手順4:Macでビルドする
書き出したフォルダをgitにpushするか、scpでコピーします。Macでは、次のコマンドで、署名をオフにしてデバイス向けにビルドします。
xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \ -configuration Release -sdk iphoneos \ -destination 'generic/platform=iOS' \ -derivedDataPath build build CODE_SIGNING_ALLOWED=NO
25秒もかからずに終わり、82 MBのアプリができました。リリースするには、GodotDemo.xcodeprojをXcodeで開きます。Signing and Capabilitiesでチームを選び、Product、Archiveの順に選びます。アップロードについては公開ガイドをご覧ください。
シミュレータの落とし穴
普通のシミュレータ向けのビルドは、リンクで失敗しました。公式のテンプレートに入っているシミュレータ用のエンジンのライブラリは、Intel(x86_64)向けだけです。AppleシリコンのMacでは、Xcodeはarm64を探し、次のエラーで止まります。
Undefined symbols for architecture arm64: "_main", referenced from:
x86_64向けにビルドするとうまくいきました。アプリはRosetta経由でiPhone 17 Proのシミュレータで動き、何もない灰色のシーンが表示されました。Godotのドキュメントによると、シミュレータはCompatibilityレンダラーにしか対応していません。
xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \ -configuration Release -sdk iphonesimulator \ -destination 'generic/platform=iOS Simulator' ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO \ -derivedDataPath build build CODE_SIGNING_ALLOWED=NO
本当の速さやタッチ操作を試すには、TestFlightでスマートフォンに入れてテストします。リモートのMacからは、PCにつないだiPhoneは見えません。
Xcodeの工程のためのMac
MacRunの1日パスは、専用のM6 Mac miniが$15で、1週間なら$59です。Xcode 27.1が入っていて、古いプロジェクト用にXcode 26.6もあります。Godotは入っていません。管理者権限とHomebrewが使えるので、エディタと同じバージョンを自分でインストールします。WindowsからSSHか画面共有で作業します。期間が終わるとMacのデータは消去されるので、先に作業をpushしてください。画面のコツについてはWindowsからXcodeをご覧ください。
この用途でMacを借りるべきでない人
署名なしのビルドの確認だけが必要なら、上のコマンドをGitHub ActionsのmacOS runnerで実行してください。当社の5つのジョブは、自分のMacなしでそこで成功しました。2026年10月19日時点の料金ページによると、Codemagicは個人に、macOS M2の時間を毎月500分、無料で提供しています。何年も毎週リリースするなら、中古のMacのほうがレンタルより安いかもしれません。Xcodeを開く必要があるときに借りてください。署名のエラー、シミュレータ、アップロードするアーカイブなどです。
よくある質問
GodotはWindowsでiOSにエクスポートできますか?
+
Godotのドキュメントは、macOSからエクスポートするように書いています。2026年10月の当社のテストでは、WindowsとLinuxのGodot 4.7.2でもXcodeプロジェクトは書き出せました。.ipaはmacOSでしかビルドできないという警告が出ました。そのあと、Macでビルドしました。
GodotのゲームをApp Storeで公開するにはMacが必要ですか?
+
最後の工程には必要です。Xcodeがアプリをビルドし、署名し、アップロードします。XcodeはmacOSでしか動きません。その工程は、レンタルのMacかmacOSのCI runnerでまかなえます。
GodotのiOSエクスポートにあるApp Store Team IDとは何ですか?
+
Apple Developerのチームの10文字のコードで、ABCDE12XYZのような形です。名前ではありません。Godotのドキュメントによると、developer.apple.comで名前の横に表示されています。
GodotのiOSシミュレータ向けビルドが、undefined symbol _mainで失敗するのはなぜですか?
+
当社のテストでは、公式の4.7.2のテンプレートのシミュレータ用ライブラリがx86_64専用でした。AppleシリコンのMacでは、xcodebuildのコマンドにARCHS=x86_64を加えます。するとアプリはRosetta経由で動きます。
画面のないマシンでは、Godotのエクスポートテンプレートをどこに置きますか?
+
.tpzを展開し、中のtemplatesフォルダの名前を4.7.2.stableのようなバージョン名に変えます。macOSでは~/Library/Application Support/Godot/export_templatesに置きます。Linuxでは~/.local/share/godot/export_templatesを使います。
C#のGodotプロジェクトを、WindowsからiOSにエクスポートできますか?
+
できません。Godotのソースコードは、macOS以外のシステムでのC#のiOSエクスポートを止めています。またGodotは、iOSでのC#を実験的な機能としています。C#のプロジェクトはMacでエクスポートしてください。