【问题标题】:Error building in Xcode 6.3, 6.4, using Unity 5.0, 5.1 IL2CPP Scripting BK ARM64使用 Unity 5.0、5.1 IL2CPP Scripting BK ARM64 在 Xcode 6.3、6.4 中构建错误
【发布时间】:2015-07-22 22:35:58
【问题描述】:

我有一个问题,正在尝试上传 Unity3d 构建以在 appstore/Itunes Connect 中进行测试。

我使用 neatplug 插件(FacebookSNS、AppleIAP)。

当我选择 IL2CPP 脚本后端来支持 ARM64 架构并尝试上传进行测试时。 它在 IPAD Air(崩溃) 中不起作用。并且在 Iphone 中有点缺乏(慢)。

使用 Unity 5.1.1p4 和 5.1.1p3 和 5.1.2f1,现在我有苹果 mach-o 链接器错误,Xcode 6.3、6.4 中有很多警告

非常感谢! 欢迎任何帮助

【问题讨论】:

    标签: xcode plugins unity3d arm64


    【解决方案1】:

    请务必提供错误日志,以帮助我们了解您所面临问题的确切原因。

    请确保您遵守以下规则:

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

    1. 您需要支持 64 位的设备才能进行测试。这些都是 iOS 设备 使用 A7 或更高版本的芯片(目前这些是:iPhone 5S、iPad Air、 iPad Mini Retina、iPhone 6、iPhone 6 Plus、iPad Mini 3、iPad Air 2)。
    2. 您的所有原生插件都需要编译为支持 64 位 (或作为源代码提供)。如果您使用的是 3rd 方插件, 您应该联系您的插件供应商以获得 64 位功能和 该插件的 IL2CPP 兼容版本。
    3. 如果您是插件供应商或只有自己的原生插件 那么你需要记住几件事:IL2CPP 不是 API 与 Mono Runtime API 兼容(未公开),后者 意味着如果插件正在使用 mono_* 函数将不再链接。这 解决此问题的最佳方法是切换到托管 委托/回调方法并将您的托管回调传递给 插件的本机端,并在某些本机时从那里调用它们 数据或事件到达。
    4. 作为预编译静态库(.a 文件)提供的所有插件 现在应该包括 ARM64 切片。执行本机代码/类型时 转换请记住,指针和长现在是 64 位宽 整数仍然是 32 宽。

    据我了解,您有与插件相关的问题,它们需要使用 64 位支持编译,请询问您的供应商。在设备上构建之前,请确保您在 xcode 中添加了所有必要的框架(如果需要为您提到的插件添加)。

    【讨论】:

    • 感谢哈谢尔!正如你所说,错误是由插件引起的,neatplug 尚未更新以支持 Xcode 6.3、6.4 中的新 64 位架构。
    【解决方案2】:

    实现测试后,我检查了neatplug插件是错误的原因。 是很好的插件,但没有这个实现是无法使用的。

    我尝试向供应商询问这个问题,但没有任何回应。

    我正在寻找新的供应商。也许是素数 31

    非常感谢!

    【讨论】:

    • 是的,prime 31 所有的插件都是用 64 位编译的。
    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多