繁体   English   中英

Unity 5.2.3-无法在3个月内构建到iOS

[英]Unity 5.2.3 - unable to build to iOS for 3 months now

我必须使用Unity 5.2.3更新App Store上已经存在的游戏。

我收到了许多与il2cpp相关的错误,由于这些错误,我无法为iOS生成任何东西。...这已经进行了3个月了。...已经尝试了从5.1.2到5.2.3的所有Unity版本。 …您可以想象这对我们的业务不利。

早些时候已在Unity论坛上发布了此问题,并发布了错误报告,但仍未找到此问题的解决方案。

再次发布这些错误,这些错误是在Unity3D中为iOS构建时出现的:

ERROR 1/4:

IL2CPP错误(没有有关正在转换的托管代码的更多信息)附加信息:构建开发版本以获取更多信息。 无法解析程序集:“ ...项目路径...(12月9日,版本= 0.0,区域性=中性,PublicKeyToken =空”

ERROR 2/4:

无法运行/ Applications / Unity 5.2.3 / Unity.app / Contents / Frameworks / il2cpp / build / il2cpp.exe --convert-to-cpp --copy-level = None --emit-null-checks --enable- array-bounds-check --extra-types.file =“ / Applications / Unity 5.2.3 / Unity.app / Contents / Frameworks / il2cpp / il2cpp_default_extra_types.txt” --assembly =“…项目路径…/ Temp / StagingArea /数据/托管/Assembly-CSharp-firstpass.dll“-程序集...项目路径... /Temp/StagingArea/Data/Managed/Assembly-CSharp.dll”-组装...项目路径... / Temp / StagingArea / Data / Managed / UnityEngine.UI.dll“ --assembly =”…项目路径…/Temp/StagingArea/Data/Managed/UnityEngine.dll“ --generationcppdir =”…项目路径…/ Temp / il2cppOutput / il2cppOutput“

stdout:IL2CPP错误(没有有关正在转换的托管代码的更多信息)附加信息:构建开发版本以获取更多信息。 无法解决程序集:'...项目路径...(12月9日,版本= 0.0,文化=中性,PublicKeyToken =空')il2cpp.exe没有捕获异常:Mono.Cecil.AssemblyResolutionException:无法解决程序集:'...项目路径…(在Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope范围)[0x00000]在Unity.IL2CPP.Common.AssemblyLoader.Load(0年12月9日,版本= 0.0,文化=中立,PublicKeyToken = null“)( System.String名称)[0x00000]在Unity.IL2CPP.AssemblyConverter + c__AnonStorey1。<> m__0(System.String路径)[0x00000]在0时在System.Linq.Enumerable + c__Iterator10 2[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable 1源):0处,在Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert(:0处)[0x00000] )Unity.IL2CPP.AssemblyConverter.Apply()中0的[0x00000] [0x00000] Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String []程序集:0中的[0x00000] NiceIO.NPath outputDir)[0x00000] in:0 stderr:

未处理的异常:Mono.Cecil.AssemblyResolutionException:无法解析程序集:“…项目路径…”(12月9日,Unity.IL2CPP.Common.AssemblyLoader.Resolve(版本= 0.0,Culture = neutral,PublicKeyToken = null)(IMetadataScope范围) [0x00000]在Unity.IL2CPP.Common.AssemblyLoader.Load(System.String名称)中为0:[0x00000]在Unity.IL2CPP.AssemblyConverter + c__AnonStorey1。:0中的为[0x00000]。<> m__0(System.String路径)[0x00000]在:0在System.Linq.Enumerable + c__Iterator10 2[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable 1源)在Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert()处为0的[0x00000]()在Unity.IL2CPP.AssemblyConverter.Apply()为0处的Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System [0x00000]在[0x00000]处) .String []程序集,NiceIO.NPath outputDir)[0x00000] in:0 [错误]致命的异常例外:Mono.Cecil.AssemblyResolutionException:无法执行 解析程序集:“ ...项目路径...”(12月9日,版本= 0.0,文化=中性,PublicKeyToken =空),位于Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope范围)[0x00000],位于Unity.IL2CPP:0。在Unity.IL2CPP.AssemblyConverter + c__AnonStorey1。:0中的Common.AssemblyLoader.Load(System.String名称)[0x00000] [0x00000]。在System.Linq.Enumerable + c__Iterator10 2[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable ,:0的m.0(System.String路径)[0x00000]。 2[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable 1源)[0x00000]在Unity的:0中。 IL2CPP.AssemblyConverter.CollectAssembliesToConvert()在Unity上的:0处为[0x00000] .IL2CPP.AssemblyConverter.Apply()在Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String [])处:0处为[0x00000] [0x00000]在:0中

UnityEngine.Debug:LogError(Object)UnityEditorInternal.Runner:RunManagedProgram(String,String,String,CompilerOutputParserBase)(在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:68)UnityEditorInternal .IL2CPPBuilder:ConvertPlayerDlltoCpp(ICollection 1, String, String) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:417) UnityEditorInternal.IL2CPPBuilder:Run() (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:301) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action 1,RuntimeClassRegistry)(在/ Users / builduser / buildslave / unity /build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218)UnityEditor.HostView:OnGUI()

ERROR 3/4:

例外:/ Applications / Unity 5.2.3 / Unity.app / Contents / Frameworks / il2cpp / build / il2cpp.exe无法正常运行! UnityEditorInternal.Runner.RunManagedProgram(System.String exe,System.String args,System.String workingDirectory,UnityEditor.Scripting.Compilers.CompilerOutputParserBase解析器)(在/ Users / builduser / buildslave / unity / build / Editor / Mono / BuildPipeline / Il2Cpp /IL2CPPUtils.cs:70)UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp(ICollection 1 userAssemblies, System.String outputDirectory, System.String workingDirectory) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:417) UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:301) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action 1 ModifyOutputBeforeCompile,UnityEditor.RuntimeClassRegistry runtimeClassRegistry)(位于/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess(UnityEditor.iOS.iOSBuildPostprocessor pp,BuildTarget目标,System.String stagingAreaData,System.String stagingArea,System.String stagingAreaDataManaged,System.String playerPackage,System.String installPath,System.String companyName,System。字符串productName,BuildOptions选项,UnityEditor.RuntimeClassRegistry usedClassRegistry)UnityEditor.iOS.iOSBuildPostprocessor.PostProcess(BuildPostProcessArgs args)UnityEditor.PostprocessBuildPlayer.Postprocess(BuildTarget目标,System.String installPath,System.String companyName,System.String productName,Int32 width,Int32高度,System.String downloadWebplayerUrl,System.String manualDownloadWebplayerUrl,BuildOptions选项,UnityEditor.RuntimeClassRegistry usedClassRegistry)(位于/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)UnityEditor.HostView:OnGUI ()

ERROR 4/4:

构建Player时出错:异常:/ Applications / Unity 5.2.3 / Unity.app / Contents / Frameworks / il2cpp / build / il2cpp.exe无法正常运行!

在此问题上我需要帮助,否则我们可能不得不放弃该项目,并使用其他游戏引擎制作未来的游戏项目!

对于其他开发人员可能会觉得有用的问题,我会给出一个很长的答案。 您应该走在最底层。

我不知道问题是什么。 我也对旧游戏进行了更新,并且收到很多奇怪的错误。 在大多数情况下,我无法追加现有的x32 xCode项目(主要是由于缺乏我的iOS经验,而对于创建新xCode项目的速度则更少)。 所以:

确保删除了所有x32插件,或者更新了它们

旧游戏最有可能正在使用x32插件,例如Etcetera或Prime31 ...这些可能会阻止ill2cpp编译。 如果可能,将它们更新为x64或删除它们,然后在Objective C或Swift中编写自己的实现。

制作一个新的xCode项目

没必要,但如果您像我一样懒惰,就应该这样做。 这主要是由于切换到ill2cpp构建。 使用ill2cpp构建一个全新的xCode项目,然后尝试将对旧xCode项目所做的所有更改都转移到该项目。 另外,您可以追加旧项目,但请确保您知道ill2cpp项目在xCode中的结构,并且对项目设置和iOS具有基本的总体了解。

新建一个Unity项目

这是不得已的方法。 如果使用版本控制系统,它可能会发疯。 无论如何-如果上述步骤无效,则必须尝试-创建一个新文件夹来存储新项目; 将“资产和项目设置”文件夹复制到新文件夹; 在Unity中将新文件夹作为项目打开(Unity会抱怨缺少文件,但会为您重新创建项目)。 然后再次执行“创建新的xCode项目”步骤。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM