用于 iOS 的 Godot 自定义共享模块,导出到 XCode 并在其中构建

问题描述

我正在尝试从 Shin-NiL 中包含共享模块并导出到 iOS,但在尝试了很多之后还没有成功。我想问一下我的步骤是否正确。

使用:
Godot编辑器:v3.2.3
Godot 源代码:v3.2.3 https://github.com/godotengine/godot
分享模块:https://github.com/Shin-NiL/Godot-Share
XCode:版本 12.3 (12C33)

步骤:

  1. 将“share”目录复制到Godot源码的“modules”目录下

  2. 在“share”模块的文件里面改一些东西,否则会报错。
    (can_build(env,platform) 而不是 can_build(platform);删除检查 godot 版本 2 或 3,只需使用版本 3 的所有内容;修复一些对文件的不正确引用;添加导入。)>

  3. 在 godot 主目录中打开终端并使用 SCons 构建:

scons p=iphone tools=no target=debug arch=arm64
scons p=iphone tools=no target=debug arch=x86_64
lipo -create bin/libgodot.iphone.debug.arm64.a bin/libgodot.iphone.debug.x86_64.a -output bin/libgodot.iphone.debug.fat.a

此时我跳过了 32 位,因为最低 iOS 版本设置为 11,不支持 32 位。如果我尝试将其更改为例如“godot/platform/iphone/detect.py”中的 9,那么它将停止并出现很多错误,说 godot 使用的某些东西需要 iOS 11。

  1. 接下来是让它在 XCode 中构建和运行。我尝试了几种不同的方法
    (一)
    将我刚刚创建的“libgodot.iphone.debug.fat.a”复制到“godot/misc/dist/ios_xcode”并替换现有的。压缩目录,将其命名为“iphone.zip”。在godot中导出时,在自定义模块中选择这个zip。当我尝试在 XCode 中构建结果时,它说“未找到 MoltenVK.a”。
    (b)
    我没有在自定义模块中选择 ZIP,而是用这个替换了标准模板(在“Library/Application Support/Godot/templates/3.2.3.stable”内。然后以正常方式导出。当我尝试在 XCode 中构建它时,我收到了 100 个错误“未定义符号:_vk ...”所有不同的 _vk 东西。
    (c)
    我还尝试使用标准模板正常导出,然后将项目中的“GAME_NAME.a”替换为“libgodot.iphone.debug.fat.a”并将该名称改回“GAME_NAME.a”。在 XCode 中,这给出了与方法 (b) 相同的错误

这给我留下了以下问题:
Q1:
我是否可能做错了什么,实际上您也应该能够通过采取其他步骤为 arm 构建?如果是这样,你将如何做到这一点?
Q2:
我认为跳过手臂不会有问题,如果您在从 Godot 导出时不选中手臂。这对吗?
Q3:
主要问题:基本上我不知道如何从这里继续,我做错了什么?我怎样才能解决这个问题?或者,如果之前有人成功完成过此操作,请分享您的步骤。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)