我必须使用Unity 5.2.3在App Store上更新游戏。
我已经收到很多与il2cpp相关的错误,因为我无法再为iOS构建....这已经持续了3个月了......已经尝试了从5.1.2到5.2的所有Unity版本.3 ....你可以想象它对我们的业务不利。
之前已在Unity论坛上发布此问题并发布了Bug报告,但仍未找到解决此问题的方法。
我再次发布了在Unity3D中构建iOS时出现的这些错误:
ERROR 1/4:
IL2CPP错误(没有关于托管代码的更多信息 已转换可用)其他信息:构建开发 建立更多信息。无法解决装配:' ...项目 路径...(09年12月,版本= 0.0,文化=中立,PublicKeyToken = null'
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/Data/Managed/Assembly-CSharp-firstpass.dll" --assembly ...项目路径... /Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --assembly项目... path ... /Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" --assembly =" ...项目路径... /Temp/StagingArea/Data/Managed/UnityEngine.dll" --generatedcppdir =" ...项目路径... / Temp / il2cppOutput / il2cppOutput"
stdout:IL2CPP错误(没有关于托管代码的更多信息 正在转换可用)附加信息:建立一个 开发构建以获取更多信息。无法解决装配: ' ...项目路径...(09年12月,版本= 0.0,文化=中立, 公钥=空' il2cpp.exe没有捕获异常: Mono.Cecil.AssemblyResolutionException:无法解析程序集: ' ...项目路径...(09年12月,版本= 0.0,文化=中立, 公钥=空'在Unity.IL2CPP.Common.AssemblyLoader.Resolve (IMetadataScope范围)[0x00000] in:0 at Unity.IL2CPP.Common.AssemblyLoader.Load(System.String name)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter + c__AnonStorey1<> m__0 (System.String path)[0x00000] in:0 at 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 来源)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert()[0x00000] in:0在Unity.IL2CPP.AssemblyConverter.Apply() [0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String [] 程序集,NiceIO.NPath outputDir)[0x00000] in:0 标准错误:未处理的异常:Mono.Cecil.AssemblyResolutionException:失败 解决汇编:&#39; ...项目路径......(09年12月,版本= 0.0, Culture = neutral,PublicKeyToken = null&#39;在 Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope范围) [0x00000] in:0 at Unity.IL2CPP.Common.AssemblyLoader.Load(System.String name)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter + c__AnonStorey1&LT;&GT; m__0 (System.String path)[0x00000] in:0 at 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 来源)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert()[0x00000] in:0在Unity.IL2CPP.AssemblyConverter.Apply() [0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String [] 程序集,NiceIO.NPath outputDir)[0x00000] in:0 [错误]致命未处理例外情况: Mono.Cecil.AssemblyResolutionException:无法解析程序集: &#39; ...项目路径...(09年12月,版本= 0.0,文化=中立, 公钥=空&#39;在Unity.IL2CPP.Common.AssemblyLoader.Resolve (IMetadataScope范围)[0x00000] in:0 at Unity.IL2CPP.Common.AssemblyLoader.Load(System.String name)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter + c__AnonStorey1&LT;&GT; m__0 (System.String path)[0x00000] in:0 at System.Linq.Enumerable + c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable
1 来源)[0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert()[0x00000] in:0在Unity.IL2CPP.AssemblyConverter.Apply() [0x00000] in:0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String [] 程序集,NiceIO.NPath outputDir)[0x00000] in:0UnityEngine.Debug:LOGERROR(对象) UnityEditorInternal.Runner:RunManagedProgram(String,String,String, CompilerOutputParserBase)(at /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)(at /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解析器)(at /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)(at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp,BuildTarget target, System.String stagingAreaData,System.String stagingArea, System.String stagingAreaDataManaged,System.String playerPackage, System.String installPath,System.String companyName,System.String productName,BuildOptions选项,UnityEditor.RuntimeClassRegistry usedClassRegistry)UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (BuildPostProcessArgs args) UnityEditor.PostprocessBuildPlayer.Postprocess(BuildTarget target, System.String installPath,System.String companyName,System.String productName,Int32 width,Int32 height,System.String 下载WebplayerUrl,System.String manualDownloadWebplayerUrl, BuildOptions选项,UnityEditor.RuntimeClassRegistry usedClassRegistry)(at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316) UnityEditor.HostView:OnGUI()
ERROR 4/4:
构建播放器时出错:异常:/ Applications / Unity 5.2.3 / Unity.app / Contents / Frameworks / il2cpp / build / il2cpp.exe无法正常运行!
我在这个问题上需要帮助,否则我们可能不得不放弃这个项目,并使用其他游戏引擎制作未来的游戏项目!
答案 0 :(得分:0)
我会给其他开发人员一个很长的答案可能会觉得它很有用。你应该选择最底层的案例。
我不知道问题是什么。我也对旧游戏进行了更新,并得到了许多奇怪的错误。大多数情况下,我无法附加现有的x32 xCode项目(主要是由于缺乏我的iOS经验,因此制作新的xCode项目的速度较少)。所以:
确保删除了所有x32插件,或更新了
旧游戏很可能正在使用像Etcetera或Prime31这样的x32插件......这些可能会阻止ill2cpp编译。如果可能的话,将它们更新为x64或删除它们,并在Objective C或Swift中编写自己的实现。
制作新的xCode项目
没有必要,但如果你像我一样懒惰你应该。这主要是由于切换到ill2cpp构建。使用ill2cpp构建一个全新的xCode项目,并尝试将您对旧xCode项目所做的所有更改传输到此项目。或者,您可以附加旧项目,但要确保知道ill2cpp项目在xCode中的结构,以及项目设置和iOS的一般基本经验。
制作新的Unity项目
这是最后的选择。如果你使用版本控制系统,它可能会发疯。无论如何 - 如果上述步骤不起作用,你必须尝试这个 - 制作一个新文件夹来存储一个新项目;将资产和项目设置文件夹复制到新文件夹;将新文件夹作为Unity中的项目打开(Unity会抱怨丢失文件,但会为您重新创建项目)。然后再次执行创建一个新的xCode项目步骤。
希望它有所帮助。