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...
Compilação cruzada para iOS no Linux
O procedimento para isso é um pouco complexo e exige muitas etapas, mas assim que você tiver o ambiente configurado corretamente, poderá compilar o Godot para iOS sempre que quiser.
Isenção de responsabilidade
Embora seja possível compilar para iOS em um ambiente Linux, a Apple é muito restritiva quanto às ferramentas a serem usadas (especialmente em termos de hardware), permitindo praticamente apenas seus próprios produtos para o desenvolvimento. Portanto, isso não é oficial. No entanto, em 2010 a Apple disse que relaxou algumas das diretrizes de revisão da App Store para permitir que qualquer ferramenta seja usada, desde que o binário resultante não baixe nenhum código, o que significa que deve ser OK usar o procedimento descrito aqui e fazer a compilação cruzada do binário.
Requisitos
Xcode com o SDK do iOS (você deve estar logado em um ID Apple para baixar o Xcode).
Clang >= 3.5 para sua máquina de desenvolvimento instalado e no
PATH. Deve ser a versão >= 3.5 para visar a arquiteturaarm64.xar e pbzx (necessários para extrair o arquivo
.xipno qual o Xcode é fornecido).Para buildar o xar e o pbzx, você pode seguir este guia.
cctools-port para as ferramentas de build necessárias. O procedimento para o build é bastante peculiar e está descrito abaixo.
Isso também possui algumas dependências extras: automake, autogen, libtool.
Configurando o ambiente
Preparando o SDK
Extraia o arquivo .xip do Xcode que você baixou do site de desenvolvedores da Apple:
mkdir xcode
xar -xf /path/to/Xcode_X.x.xip -C xcode
pbzx -n Content | cpio -i
[...]
######### Blocks
Observe que para os comandos abaixo, você precisará substituir a versão (x.x) por qualquer versão do SDK do iOS que estiver usando. Se você não souber a versão do SDK do seu iPhone, poderá ver o arquivo JSON dentro de Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.
Extraia o SDK do 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
Empacote o SDK para que o cctools possa usá-lo:
cd iPhoneSDK
tar -cf - * | xz -9 -c - > iPhoneOS${IOS_SDK_VERSION}.sdk.tar.xz
Cadeia de ferramentas
Builde o 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
Copie as ferramentas para um lugar melhor. Observe que os scripts do SCons para build buscarão sob usr/bin dentro do diretório que você fornecer para os binários da toolchain, portanto você deve copiar para esse subdiretório, semelhante aos seguintes comandos:
mkdir -p "$HOME/iostoolchain/usr"
cp -r target/bin "$HOME/iostoolchain/usr/"
Agora você deve ter os binários da toolchain do iOS em $HOME/iostoolchain/usr/bin.
Compilando Godot para o iPhone
Depois de concluir as etapas acima, você deve manter duas coisas em seu ambiente: a toolchain buildada e o diretório do SDK do iPhoneOS. Eles podem ficar onde você quiser, já que você precisa fornecer os caminhos deles para o comando de build do SCons.
Para que a plataforma do iPhone seja detectada, você precisa da variável de ambiente OSXCROSS_IOS definida para qualquer coisa.
export OSXCROSS_IOS="anything"
Agora você pode compilar para iPhone usando o SCons da maneira padrão do Godot, com alguns argumentos adicionais para fornecer os caminhos corretos:
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-"