未声明的标识符错误 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.
上使用它
我有一个 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.
上使用它