.. _doc_compiling_for_ios:
Compiling for iOS
=================
.. highlight:: shell
.. seealso::
This page describes how to compile iOS export template binaries from source.
If you're looking to export your project to iOS instead, read :ref:`doc_exporting_for_ios`.
Requirements
------------
- `Python 3.8+ `_.
- `SCons 4.0+ `_ build system.
- `Xcode `_.
- Launch Xcode once and install iOS support. If you have already launched
Xcode and need to install iOS support, go to *Xcode -> Settings... -> Platforms*.
- Go to *Xcode -> Settings... -> Locations -> Command Line Tools* and select
an installed version. Even if one is already selected, re-select it.
- Download and follow README instructions to build a static ``.xcframework``
from the `MoltenVK SDK `__.
.. note:: If you have `Homebrew `_ installed, you can easily
install SCons using the following command:
::
brew install scons
Installing Homebrew will also fetch the Command Line Tools
for Xcode automatically if you don't have them already.
Similarly, if you have `MacPorts `_
installed, you can easily install SCons using the
following command:
::
sudo port install scons
.. seealso:: To get the Godot source code for compiling, see
:ref:`doc_getting_source`.
For a general overview of SCons usage for Godot, see
:ref:`doc_introduction_to_the_buildsystem`.
Compiling
---------
Open a Terminal, go to the root folder of the engine source code and type
the following to compile a debug build:
::
scons platform=ios target=template_debug generate_bundle=yes
To compile a release build:
::
scons platform=ios target=template_release generate_bundle=yes
To create an Xcode project like in the official builds, you need to use the
template located in ``misc/dist/ios_xcode``. The release and debug libraries
should be placed in ``libgodot.ios.debug.xcframework`` and
``libgodot.ios.release.xcframework`` respectively. This process can be automated
by using the ``generate_bundle=yes`` option on the *last* SCons command used to
build export templates (so that all binaries can be included).
The MoltenVK static ``.xcframework`` folder must also be placed in the
``ios_xcode`` folder once it has been created. MoltenVK is always statically
linked on iOS; there is no dynamic linking option available, unlike macOS.
Run
---
To run on a device, follow these instructions:
:ref:`doc_exporting_for_ios`.
iOS exports can run directly on an Apple Silicon Mac. To run exported iOS project
on Mac, open exported project in Xcode and select ``My Mac`` in the ``Run Destinations``
dropdown.
Troubleshooting
---------------
Fatal error: 'cstdint' file not found
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you get a compilation error of this form early on, it's likely because
the Xcode command line tools installation needs to be repaired after
a macOS or Xcode update:
::
./core/typedefs.h:45:10: fatal error: 'cstdint' file not found
45 | #include
| ^~~~~~~~~
Run these two commands to reinstall Xcode command line tools
(enter your administrator password as needed):
::
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
If it still does not work, try updating Xcode from the Mac App Store and try again.