Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Compilation croisée pour iOS sur Linux
The procedure for this is somewhat complex and requires a lot of steps, but once you have the environment properly configured you can compile Godot for iOS anytime you want.
Avertissement
While it is possible to compile for iOS on a Linux environment, Apple is very restrictive about the tools to be used (especially hardware-wise), allowing pretty much only their products to be used for development. So this is not official. However, in 2010 Apple said they relaxed some of the App Store review guidelines to allow any tool to be used, as long as the resulting binary does not download any code, which means it should be OK to use the procedure described here and cross-compiling the binary.
Pré-requis
XCode avec le SDK iOS (vous devez pour vous connecter avec un compte Apple ID pour télécharger Xcode).
Clang >= 3.5 for your development machine installed and in the
PATH
. It has to be version >= 3.5 to targetarm64
architecture.xar and pbzx (required to extract the
.xip
archive Xcode comes in).For building xar and pbzx, you may want to follow this guide.
cctools-port pour les outils de construction nécessaires. La procédure de construction est assez particulière et est décrite ci-dessous.
Cela a également des dépendances supplémentaires : automake, autogen, libtool.
Configurer l'environnement
Préparation du SDK
Extract the Xcode .xip
file you downloaded from Apple's developer website:
mkdir xcode
xar -xf /path/to/Xcode_X.x.xip -C xcode
pbzx -n Content | cpio -i
[...]
######### Blocks
Note that for the commands below, you will need to replace the version (x.x
)
with whatever iOS SDK version you're using. If you don't know your iPhone SDK
version, you can see the JSON file inside of
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
.
Extraire le SDK iOS :
export IOS_SDK_VERSION="x.x"
mkdir -p iPhoneSDK/iPhoneOS${IOS_SDK_VERSION}.sdk
cp -r xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/* iPhoneSDK/iPhoneOS${IOS_SDK_VERSION}.sdk
cp -r xcode/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/* iPhoneSDK/iPhoneOS${IOS_SDK_VERSION}.sdk/usr/include/c++
fusermount -u xcode
Pack the SDK so that cctools can use it:
cd iPhoneSDK
tar -cf - * | xz -9 -c - > iPhoneOS${IOS_SDK_VERSION}.sdk.tar.xz
Toolchain
Construire cctools :
git clone https://github.com/tpoechtrager/cctools-port.git
cd cctools-port/usage_examples/ios_toolchain
./build.sh /path/iPhoneOS${IOS_SDK_VERSION}.sdk.tar.xz arm64
Copiez les outils à un endroit plus approprié. Notez que les scripts SCons pour la construction regarderont à l'intérieur du répertoire usr/bin
pour vous fournir les binaires de la chaîne d'outils, vous devez donc copier dans ce sous-répertoire, comme pour les commandes suivantes :
mkdir -p "$HOME/iostoolchain/usr"
cp -r target/bin "$HOME/iostoolchain/usr/"
Maintenant vous deviez avoir les binaires de la chaîne d'outils iOS dans $HOME/iostoolchain/usr/bin
.
Compilation de Godot pour iPhone
Une fois que vous avez effectué les étapes ci-dessous, vous devez conserver deux choses dans votre environnement : la chaîne d'outils construite et le répertoire SDK pour iPhoneOS. Ceux-ci peuvent rester n'importe-où ou vous voulez car vous devez fournir leurs chemins à la commande de construction SCons.
Pour que la plate-forme iPhone soit détectée, vous avez besoin de la variable d'environnement OSXCROSS_IOS
définie à n'importe quoi.
export OSXCROSS_IOS="anything"
Vous pouvez maintenant compiler pour iPhone en utilisant SCons comme la méthode standard de Godot, avec quelques arguments supplémentaires pour fournir les chemins corrects :
scons platform=ios arch=arm64 target=template_release IOS_SDK_PATH="/path/to/iPhoneSDK" IOS_TOOLCHAIN_PATH="/path/to/iostoolchain" ios_triple="arm-apple-darwin11-"