为 iOS 平台编译
参见
这个页面描述的是如何从源码编译 iOS 导出模板二进制。如果你想要找的是导出项目到 iOS,请阅读 为 iOS 导出。
需求
SCons 3.0+(你可以通过 Homebrew 或 MacPorts 安装它,安装后你应该可以在终端运行
scons
)。Xcode 10.0(或更高版本)以及iOS(10.0)SDK和命令行工具.
参见
要获取编译所需的 Godot 源码,请参阅 获取源代码。
有关 Godot 的 SCons 用法的一般概述,请参阅 构建系统介绍。
编译
打开终端, 转到引擎源代码的根目录并键入:
$ scons p=iphone target=debug
针对调试版本, 或:
$ scons p=iphone target=release
对于发布版本(检查 platform/iphone/detect.py
以获取用于每种配置的编译器标志).
或者, 你可以运行
$ scons p=iphone arch=x86_64 target=debug
用于模拟器可执行文件.
对于最新的设备, 当您上载到苹果商店时, 苹果要求64位版本的应用程序二进制文件. 提供这些功能的最好方法是创建一个包, 其中包含32位和64位二进制文件, 这样每个设备都可以运行游戏.
可以分三步完成: 首先编译32位版本, 再编译64位版本, 然后使用 lipo
命令将它们绑定到一个 “通用(universal)” 二进制文件中. 所有这些步骤都可以通过以下命令执行:
$ scons p=iphone tools=no target=release arch=arm
$ scons p=iphone tools=no target=release arch=arm64
$ lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a -output bin/libgodot.iphone.release.fat.a
$ 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
$ 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
体系结构.
$ scons p=iphone tools=no target=release arch=arm
$ scons p=iphone tools=no target=release arch=arm64
$ scons p=iphone tools=no target=release arch=x86_64
$ 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
$ 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
$ 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上的 可执行文件名称
属性.