ios - 如何构建 native C 源代码以创建用于 Unity 的库,以用于 iOs 平台?

标签 ios c unity-game-engine build

我想从 native C 源代码导入一个库,以供 Unity 用于 iO。我希望需要 .a 二进制文件和 .h header (以及任何其他需要的文件,如果我缺少的话),但我找不到关于如何构建它的任何指南。

我尝试直接在 Xcode 上构建源代码,但无法从中创建库。 XCode 仅通过命令行项目接受 native C,而我需要一个库。

然后我尝试在 mac 终端上运行这个 CMake 命令: .cmake . -DCMAKE_SYSTEM_NAME=iOS "-DCMAKE_OSX_ARCHITECTURES=arm64;arm64e"-DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 -DENET_STATIC=1 -DENET_LZ4=1 -GXcode

这会创建一个 Xcode 项目,我为通用 IOS 构建它,但当我将其部署到设备上时,代码无法在 Unity 上运行。

最佳答案

开始的好地方是 Bonjour example from the Unity Manual .这至少为您提供了一个可用的 iOS 插件作为起点。

您将这些文件包含在您的 Unity 项目中,并为 iOS 构建。您会注意到 Plugins/iOS 下的文件自动包含在生成的 Xcode 项目中。它们只会在您构建/运行 Xcode 项目时编译。

注意,iOS 插件与 MacOS 插件不同。对于 MacOS 插件,您需要创建 bundle 并将其包含到您的 UnityProject 中。 DllImport 装饰器在您的 C# 代码中也会有所不同。对于 iOS,它是 "__Internal",但对于 MacOS,它是包的名称。

如果您尝试与第三方库交互,您可能需要手动修改 Xcode 项目的库搜索路径,以便在构建和链接时正确定位您的 .a 和 .h 文件。

附带说明一下,当包含第三方 .a 二进制文件时,请验证它是否符合 iOS 架构要求,否则您的应用在提交到应用商店时可能会被拒绝。

关于ios - 如何构建 native C 源代码以创建用于 Unity 的库,以用于 iOs 平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956698/

相关文章:

iOS。我如何在 Grand Central Dispatch 的上下文中处理 URL 身份验证质询

ios - 无法使用解析服务器将大文件保存到 S3

Coverity - 结构类型溢出

c - Ubuntu 中的 skbuff.h 文件在哪里?

unity-game-engine - 将 Sprite 与相机的底部边缘对齐

ios - 如何在 iOS 8 上测试我的应用程序?

iphone - 核心数据 - 向 xcddatamodel 文件添加额外属性后应用程序崩溃

c - 在 C 中初始化大块 double 的最有效方法

unity-game-engine - Unity 线渲染器不直

c# - 使用泛型方法