ios - 无法将 iOS 项目与 il2cpp 和 Unity 链接

标签 ios unity-game-engine il2cpp

你们中有人知道我的项目发生了什么吗?

有这个错误:

ld:找不到架构arm64的符号

unity_ios

Unity播放器设置是这样的:

player_settings

最佳答案

IL2CPP 是唯一支持在 iOS 上部署到 ARM 64 位的脚本后端,因此必须部署到 Apple 应用商店以发布新应用。

There iOS 64 bit Upgrade guide provided by Unity其中指出

如何开始在 iOS 上使用 IL2CPP

在播放器设置的脚本后端下拉列表中选择它。

enter image description here

默认情况下,它将针对通用架构(包括 ARM64 和 ARMv7)构建,如果需要,您可以在播放器设置中切换到特定架构。在您的应用程序启动并以 64 位运行之前,需要完成许多事情:

  • 您需要支持 64 位的设备才能进行测试。这些都是iOS设备 配备 A7 或更高版本芯片(目前包括:iPhone 5S、iPad Air、iPad Mini Retina、iPhone 6、iPhone 6 Plus、iPad Mini 3、iPad Air 2)。
  • 您需要使用 64 位支持来编译所有 native 插件 (或作为源代码提供)。如果您使用的是 3rd 方插件, 您应该联系您的插件供应商以获得 64 位功能并 该插件的 IL2CPP 兼容版本。目前都是最新的 众所周知,Prime31 插件非常好。
  • 如果您是插件供应商或只有自己的原生插件 那么你需要记住以下几点:

(1) IL2CPP 与 Mono Runtime API 不兼容(未公开),这意味着如果插件使用 mono_* 函数将不再链接。解决此问题的最佳方法是切换到托管委托(delegate)/回调方法,并将托管回调传递到插件的 native 端,并在某些 native 数据或事件到达时从那里回调它们。

(2) 所有以预编译静态库(.a 文件)形式提供的插件现在都应包含 ARM64 切片。

(3) 在进行 native 代码/类型转换时请记住,指针和长整型现在是 64 位宽,而整型仍然是 32 位宽。

  • 为了最大限度地减少生成的 C++ 代码量,IL2CPP 始终是(即使在 剥离级别设置为禁用)执行某种托管代码 剥离。有时你需要帮助它。寻找link.xml iOS 播放器尺寸优化手册中的指南。

疑难解答

  1. 问:我的代码在 IL2CPP 上的运行速度比在 Mono 上慢。为什么? 答:制作 确保您在 Xcode Release 中测试您的代码性能 配置。如果问题仍然存在,请提交错误报告!
  2. 问: Unity 生成的 Xcode 项目无法通过以下或 类似错误:找不到方法:'默认构造函数不存在 找到...System.ComponentModel.Int64Converter 的 ctor()'。 答: 反序列化器和序列化器通常仅通过以下方式引用某些类型 .NET 反射 API,在这种情况下,这些方法甚至类 可能会从项目中剥离。您可以提示托管代码剥离器 该特定类/方法通过 link.xml 或通过 引入在其中一个中明确引用它的虚拟代码 你的脚本。
  3. 问:Unity 生成的 Xcode 项目无法与其他一些项目一起编译 错误。 A: 请验证您的所有插件是否支持 ARM64 和 IL2CPP 如果是这种情况,请提交错误报告并附上您的 项目(或只是编写其中的一部分)到错误报告中。谢谢!

关于ios - 无法将 iOS 项目与 il2cpp 和 Unity 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747958/

相关文章:

unity-game-engine - Unity Firebase 安全

android - Google Play 游戏::无法使用快照异常

ios - FBSDKApplicationDelegate 没有名为 "application"的成员

ios - 设置最大数量级?

ios - 在 iOS C# 中从 Unity 调用电话

xcode - 如何防止在 Unity3d IL2CPP 中剥离托管 dll

c# - 如何解决 Unity3D iOS 构建中的 AOT 和代码剥离

android - 构建 - il2cpp 未正常运行

jquery - 使用 ajax 时,在 iOS 中按住文本不会在 jQueryMobile 对话框中显示 'copy' 按钮

javascript - 评估JavaScript在WkWebview上缓慢(非常慢)地绘制数据