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...
Крос-компіляція для iOS на Linux
Процедура для цього є дещо складною та вимагає багатьох кроків, але як тільки ви правильно налаштуєте середовище, ви зможете скомпілювати Godot для iOS будь-коли.
Достовірність
Хоча компіляція для iOS у середовищі Linux можлива, Apple дуже обмежує інструменти, які потрібно використовувати (особливо щодо апаратного забезпечення), дозволяючи для розробки використовувати майже лише свої продукти. Отже, це не офіційно. Однак у 2010 році Apple заявила, що пом’якшила деякі інструкції щодо перевірки App Store, дозволивши використовувати будь-який інструмент, якщо отриманий двійковий файл не завантажує жодного коду, що означає, що можна використовувати описану тут процедуру та крос-компіляцію двійкового файлу.
Вимоги
XCode з iOS SDK (щоб завантажити Xcode, потрібно ввійти в обліковий запис Apple ID).
Clang >= 3.5 для вашої машини розробки встановлено та в
PATH. Це має бути версія >= 3.5 для цільової архітектуриarm64.xar і pbzx (потрібно для розпакування архіву
.xipXcode поставляється в).Щоб створити xar і pbzx, ви можете слідувати цьому посібнику.
cctools-port для необхідних інструментів збірки. Процедура нарощування досить своєрідна і описана нижче.
Тут також є деякі додаткові залежності: automake, autogen, libtool.
Налаштування середовища
Підготовка SDK
Розпакуйте файл Xcode .xip, який ви завантажили з веб-сайту розробника Apple:
mkdir xcode
xar -xf /path/to/Xcode_X.x.xip -C xcode
pbzx -n Content | cpio -i
[...]
######### Blocks
Зауважте, що для наведених нижче команд вам потрібно буде замінити версію (x.x) на будь-яку версію iOS SDK, яку ви використовуєте. Якщо ви не знаєте свою версію SDK для iPhone, ви можете переглянути файл JSON у Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.
Розпакуйте iOS SDK:
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
Упакуйте пакет SDK, щоб cctools міг його використовувати:
cd iPhoneSDK
tar -cf - * | xz -9 -c - > iPhoneOS${IOS_SDK_VERSION}.sdk.tar.xz
Набір інструментів
Збірка 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
Скопіюйте інструменти в зручніше місце. Зверніть увагу, що скрипти SCons для збірки шукатимуться в usr/bin всередині каталогу, який ви надаєте для бінарних файлів інструментарію, тому вам потрібно скопіювати їх у такий підкаталог, подібно до наступних команд:
mkdir -p "$HOME/iostoolchain/usr"
cp -r target/bin "$HOME/iostoolchain/usr/"
Тепер ви повинні мати бінарні файли ланцюжка інструментів iOS у $HOME/iostoolchain/usr/bin.
Компіляція Godot для iPhone
Після того, як ви виконаєте наведені вище кроки, ви повинні зберегти дві речі у своєму середовищі: вбудований інструментарій і каталог iPhoneOS SDK. Вони можуть залишатися де завгодно, оскільки ви повинні надати їхні шляхи до команди збірки SCons.
Щоб платформу iPhone було виявлено, вам потрібна змінна середовища OSXCROSS_IOS, визначена будь-чим.
export OSXCROSS_IOS="anything"
Тепер ви можете скомпілювати для iPhone за допомогою SCons, як стандартний спосіб Godot, з деякими додатковими аргументами для надання правильних шляхів:
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-"