未声明的标识符错误 Unity IOS 到 Xcode

Undeclared Identifier error Unity IOS to Xcode

我有一个 Unity 5.3.1 iOS 项目,它也使用新的多人游戏网络 UNet。可怕的东西。当我构建并 运行 项目时,我在 Xcode 中收到以下错误:

Use of undeclared identifier `IL2CPP_RAISE_MANAGED_EXCEPTION`

项目 运行 在 Unity 编辑器中运行良好。这是一个巨大的 Bulk_Generics_10.cpp 处理 System.Comparison1<UnityEngine.Networking.NetworkSystem.PeerInfoPlayer

的脚本

这是发现错误的代码块。

 // System.Void
 System.Linq.Enumerable/<CreateDistinctIterator>c__Iterator3`1<System.Object>::Reset()
 extern TypeInfo*
 NotSupportedException_t1382227673_0_il2cpp_TypeInfo_var; extern const
 uint32_t
 U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_MetadataUsageId;
 extern "C"  void
 U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_gshared
 (U3CCreateDistinctIteratorU3Ec__Iterator3_1_t1454147488_0 * __this,
 const MethodInfo* method) {    static bool s_Il2CppMethodIntialized;   if
 (!s_Il2CppMethodIntialized)    {       il2cpp_codegen_initialize_method
 (U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_MetadataUsageId);
        s_Il2CppMethodIntialized = true;    }   {
        NotSupportedException_t1382227673_0 * L_0 =
 (NotSupportedException_t1382227673_0 *)il2cpp_codegen_object_new
 (NotSupportedException_t1382227673_0_il2cpp_TypeInfo_var);
        NotSupportedException__ctor_m149930845_0(L_0, /*hidden
 argument*/NULL);       IL2CPP_RAISE_MANAGED_EXCEPTION(L_0);    } }

看起来 Unity 没有干净利落地交给 Xcode。我想知道我是否需要在 Unity 中进行一些调整。

如何更正此错误?

这是一个新问题,因为不同平台的构建包在安装程序中是可选的。如果您安装一个平台然后升级您的 Unity 版本,但在第二次安装时不安装该平台,则该平台的旧版本将保留并导致问题。

我的解决方案是完全清除我的 Unity3d 文件夹并使用正确的平台重新安装。

相关话题:http://forum.unity3d.com/threads/il2cpp_raise_managed_exception-undeclared-identifier.382377/

据我所知 System.Linq 得到了 iOS 的支持。

这里也有一个关于这个的帖子,

Linq for Collections 的大多数 Linq 扩展方法在 iOS 上无法与 IEnumerables 一起使用,因为它们需要不受支持的 AOT 运行时编译器。

但是,Asset Store 上有一个类似于 Linq 但不需要运行时编译器的 Linq for iOS 库。所以你可以在 iOS.

上使用它

来源:http://forum.unity3d.com/threads/linq-on-ios.84147/