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.

为 iOS 导出

参见

这个页面描述的是如何将 Godot 项目导出到 iOS。如果你想要找的是从源码编译导出模板二进制文件,请阅读为 iOS 平台编译

这些是在 Xcode 中加载 Godot 项目的步骤。这允许你构建和部署到 iOS 设备,为 App Store构建一个发行版本,并执行你通常可以使用 Xcode 执行的所有其他操作。

注意

从 Godot 4.2 开始,用 C# 编写的项目可以导出到 iOS,但支持是实验性的并且存在一些限制

需求

  • 你必须从运行安装了 Xcode 的 macOS 的计算机中为 iOS 导出。

  • 下载 Godot 导出模板。请使用 Godot 菜单:编辑器 > 管理导出模板

将 Godot 项目导出到 Xcode

在 Godot 编辑器中,从项目菜单打开导出窗口。导出窗口打开后,点击添加.. 并选择 iOS

应用(Application) 类别下的 App Store Team ID 和(Bundle) 标识符(Identifier) 选项是必填项。如果将它们留空,导出器将会报错。此外,Bundle ID(标识符)必须是唯一的。

备注

一个有效的 Bundle ID 只能包含字母、数字、连字符和句点(即 A-Z, a-z, 0-9, -, 和 . )。苹果建议使用你拥有的域名的“反向 DNS 格式”(例如 com.example.your-game),这样就能保证你的 Bundle ID 是独一无二的。另外,Bundle ID 是不区分大小写的。具体详情可以查阅 CFBundleIdentifier 的官方文档。

备注

如果你在导出过程中遇到类似以下错误
JSON 文本不是以数组或对象开头,并且未设置允许片段的选项
那么可能是由于 App Store 团队 ID 格式错误!
导出器需要一个(10 个字符长的)代码,例如 ABCDE12XYZ,而不是 Xcode 喜欢显示在 Signing & Capabilities 选项卡中的你的姓名。
你可以在 developer.apple.com 右上角姓名的旁边找到这个代码。

点击导出项目后,仍有两个重要选项:

  • 路径是一个空文件夹,它将包含导出的 Xcode 项目文件。

  • 文件将是 Xcode 项目的名称和几个项目特定的文件和目录。

../../_images/ios_export_file.webp

备注

本教程使用 exported_xcode_project_name,但你将使用你的项目的名称。当你在以下步骤中看到 exported_xcode_project_name 时,请将其替换为你使用的名称。

备注

选择 exported_xcode_project_name 时,避免使用空格,因为这可能会导致 Xcode项目文件错误。

导出完成后,输出文件夹应如下所示:

../../_images/ios_export_output.webp

警告

iOS 模拟器仅支持 兼容 渲染器。

搭载 Apple Silicon 芯片的 Mac 电脑可以原生运行 iOS 应用,因此你可以直接在 Apple Silicon Mac 上运行导出的 iOS 项目,而完全不受 iOS 模拟器的各种限制。

打开 exported_xcode_project_name.xcodeproj 可让你像任何其他 iOS 应用程序一样构建和部署。

活跃开发相关考虑

上面的方法创建了一个可以为发布而构建的导出项目,但每次在 Godot 中进行更改时,都必须重新导出。

在开发过程中,你可以通过将 Godot 项目文件直接链接到你的应用程序,来加快此过程。

在以下示例中:

  • exported_xcode_project_name 是导出的 iOS 应用程序的名称(如上所示)。

  • godot_project_to_export 是 Godot 项目的名称。

备注

godot_project_to_exportexported_xcode_project_name 必须不一样,以免 Xcode 出现签名问题。

iOS 的插件

在 Godot 中可以使用特殊的 iOS 插件。请查看 创建 iOS 插件 页面。

环境变量

你可以使用以下环境变量在编辑器外部设置导出选项。在导出过程中,这些值会覆盖你在导出菜单中设置的值。

iOS 导出环境变量

导出选项

环境变量

加密 / 密钥

GODOT_SCRIPT_ENCRYPTION_KEY

选项/应用程序/设定档UUID调试

GODOT_IOS_PROVISIONING_PROFILE_UUID_DEBUG

选项/应用程序/设定档UUID发布

GODOT_IOS_PROVISIONING_PROFILE_UUID_RELEASE

故障排除

xcode-select 指向错误的 SDK 位置

xcode-select 是 Xcode 附带的一个工具,和其他工具一样都指向 Mac 上的 iOS SDK。如果你安装过 Xcode、打开过、同意过许可协议,并安装过命令行工具,那么 xcode-select 就应该指向 iPhone SDK 的正确位置。如果不是这样的话 Godot 就无法导出到 iOS,会出现如下错误:

MSB3073: The command ""clang" <LOTS OF PATHS AND COMMAND LINE ARGUMENTS HERE>
"/Library/Developer/CommandLineTools/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"" exited with code 1.

在这种情况下,Godot 尝试在 /Library/Developer/CommandLineTools/ 文件夹中找到包含 iPhone SDK 的 Platforms 文件夹,但包含 iPhone SDK 的 Platforms 文件夹实际上位于 /Applications/Xcode.app/Contents/Developer 下。要验证这一点,你可以打开终端并运行以下命令来查看 xcode-select 指向的内容:

xcode-select -p

要修复 xcode-select 指向错误的位置,请在终端中输入以下命令:

sudo xcode-select -switch /Applications/Xcode.app

运行此命令后,Godot 应该能够成功导出到 iOS。

导出选项

导出选项的完整列表见EditorExportPlatformIOS类参考文档。