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...
Linux에서 iOS용 크로스 컴파일
이를 위한 절차는 다소 복잡하고 많은 단계가 필요하지만, 일단 환경이 적절하게 구성되면 원할 때 언제든지 iOS용 Godot를 컴파일할 수 있습니다.
면책조항
Linux 환경에서 iOS용으로 컴파일하는 것이 가능하지만 Apple은 사용되는 도구(특히 하드웨어 측면)에 대해 매우 제한적이므로 거의 자사 제품만 개발에 사용할 수 있습니다. 따라서 이것은 공식적이지 않습니다. 그러나 2010년에 Apple은 `App Store 검토 지침 <https://developer.apple.com/app-store/review/guidelines/>`__의 일부를 완화하여 결과 바이너리가 코드를 다운로드하지 않는 한 모든 도구를 사용할 수 있다고 밝혔습니다. 즉, 여기에 설명된 절차를 사용하고 바이너리를 크로스 컴파일해도 괜찮다는 의미입니다.
요구 사항
XCode(iOS SDK)(Xcode를 다운로드하려면 Apple ID에 로그인해야 합니다).
Clang >= 3.5 <https://clang.llvm.org>`__는 개발 머신이 설치되어 있고 ``PATH``에 있습니다. ``arm64` 아키텍처를 대상으로 하려면 버전 >= 3.5여야 합니다.
xar 및 pbzx <https://github.com/NiklasRosenstein/pbzx>`__(Xcode가 들어오는 `.xip`` 아카이브를 추출하는 데 필요함).
xar 및 pbzx를 빌드하려면 `이 가이드 <https://gist.github.com/phracker/1944ce190e01963c550566b749bd2b54>`__을 따르세요.
필요한 빌드 도구에 대한 cctools-port. 구축 절차는 매우 특이하며 아래에 설명되어 있습니다.
여기에는 automake, autogen, libtool과 같은 추가 종속성이 있습니다.
환경 구성
SDK 준비
Apple 개발자 웹사이트에서 다운로드한 Xcode .xip 파일을 추출합니다.
mkdir xcode
xar -xf /path/to/Xcode_X.x.xip -C xcode
pbzx -n Content | cpio -i
[...]
######### Blocks
아래 명령의 경우 버전(x.x)을 사용 중인 iOS SDK 버전으로 바꿔야 합니다. iPhone SDK 버전을 모르는 경우 Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 내부에서 JSON 파일을 볼 수 있습니다.
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
cctools가 사용할 수 있도록 SDK를 패키징하세요.
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/"
이제 ``$HOME/iostoolchain/usr/bin``에 iOS 툴체인 바이너리가 있어야 합니다.
아이폰용 Godot 컴파일하기
위 단계를 완료한 후에는 환경에 두 가지 항목, 즉 빌드된 툴체인과 iPhoneOS SDK 디렉터리를 유지해야 합니다. SCons 빌드 명령에 경로를 제공해야 하므로 원하는 위치에 머물 수 있습니다.
iPhone 플랫폼을 감지하려면 무엇이든 정의된 OSXCROSS_IOS 환경 변수가 필요합니다.
export OSXCROSS_IOS="anything"
이제 올바른 경로를 제공하기 위한 몇 가지 추가 인수와 함께 표준 Godot 방식과 같은 SCons를 사용하여 iPhone용으로 컴파일할 수 있습니다:
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-"