为iOS平台编译

需求

  • SCons3.0+(您可以从macports获得它,安装后应该可以在终端上运行 scons)。
  • Xcode 10.0(或更高版本)以及iOS(10.0)SDK和命令行工具。

参见

有关Godot的SCons用法的一般概述,请参阅 构建系统介绍

开始编译

打开终端,转到引擎源代码的根目录并键入:

  1. $ scons p=iphone target=debug

针对调试版本,或:

  1. $ scons p=iphone target=release

对于发布版本(检查 platform/iphone/detect.py 以获取用于每种配置的编译器标志)。

或者,您可以运行

  1. $ scons p=iphone arch=x86_64 target=debug

用于模拟器可执行文件。

对于最新的设备,当您上载到苹果商店时,苹果要求64位版本的应用程序二进制文件。提供这些功能的最好方法是创建一个包,其中包含32位和64位二进制文件,这样每个设备都可以运行游戏。

可以分三步完成:首先编译32位版本,再编译64位版本,然后使用 lipo 命令将它们绑定到一个“通用(universal)”二进制文件中。所有这些步骤都可以通过以下命令执行:

  1. $ scons p=iphone tools=no target=release arch=arm
  2. $ scons p=iphone tools=no target=release arch=arm64
  3. $ lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a -output bin/libgodot.iphone.release.fat.a
  4. $ lipo -create bin/libgodot_camera_module.iphone.opt.arm.a bin/libgodot_camera_module.iphone.opt.arm64.a -output bin/libgodot_camera_module.iphone.release.fat.a
  5. $ lipo -create bin/libgodot_arkit_module.iphone.opt.arm.a bin/libgodot_arkit_module.iphone.opt.arm64.a -output bin/libgodot_arkit_module.iphone.release.fat.a

如果您还想提供一个模拟器构建(减少具有依赖项的任何链接器错误的机会),您还需要构建和 lipo x86_64 体系结构。

  1. $ scons p=iphone tools=no target=release arch=arm
  2. $ scons p=iphone tools=no target=release arch=arm64
  3. $ scons p=iphone tools=no target=release arch=x86_64
  4. $ lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a bin/libgodot.iphone.opt.x86_64.a -output bin/libgodot.iphone.release.fat.a
  5. $ lipo -create bin/libgodot_camera_module.iphone.opt.arm.a bin/libgodot_camera_module.iphone.opt.arm64.a bin/libgodot_camera_module.iphone.opt.x86_64.a -output bin/libgodot_camera_module.iphone.release.fat.a
  6. $ lipo -create bin/libgodot_arkit_module.iphone.opt.arm.a bin/libgodot_arkit_module.iphone.opt.arm64.a bin/libgodot_arkit_module.iphone.opt.x86_64.a -output bin/libgodot_arkit_module.iphone.release.fat.a

运行

要在设备或模拟器上运行,请按照以下说明操作:为iOS导出

将您的可执行文件替换或添加到Xcode项目,如果您使用替代版本,则相应地更改Info.plist上的 可执行文件名称 属性。