问题标签 [il2cpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
919 浏览

ios - Modify Assembly-CSharp.dll before send to IL2CPP in Unity3d

I want to insert some code stub to Assembly-CSharp.dll by using Mono.Cecil before send to il2cpp when build iOS player with batchmode.

Currently, the only way I know is to wrap Unity\Editor\Data\Tools\UnusedByteCodeStripper2\UnusedBytecodeStripper2.exe to execute my patcher before real stripper.

Is there any other better way like [DidReloadScripts] to do this?

For Android, I can patch dlls after BuildPlayer. But for iOS with il2cpp, there is no dll generated before BuildPlayer.

0 投票
1 回答
1483 浏览

c# - Unity iOS Build Error UnusedBytecodeStripper2.exe 没有正常运行

我在为 iOS 构建应用程序时收到此错误。脚本后端设置为 IL2CPP,架构是通用的。我知道我的项目中的一个插件使用了 zxing 库,这导致了这个错误。当我为 android 构建但无法获得 ios 构建时,我没有收到任何错误。除了删除插件还有其他方法吗?

运行 C:\Program Files\Unity\Editor\Data\Tools/UnusedByteCodeStripper2/UnusedBytecodeStripper2.exe 失败 -out "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed" -l none -c 链接 -x "C:\Program Files\Unity\Editor\Data\Tools\native_link.xml" -f "C:\Program Files\Unity\Editor\Data\il2cpp\LinkerDescriptors" -x "C:\Users \Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed..\platform_native_link.xml" -x "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS/Temp/StagingArea/Data/methods_pointedto_by_uievents .xml" -d "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea \Data\Managed\Assembly-CSharp-firstpass.dll" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data \Managed\Assembly-UnityScript.dll" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\UnityEngine.UI.dll" -a "C:\Users\Koray \Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\cscanner.dll" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\Google.ProtocolBuffers .dll" -a "C:\Users\Koray\Source\Repos\NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\Google.ProtocolBuffers.Serialization.dll" -a "C:\Users\Koray\Source\Repos \NewJoyiOS\NewJoyiOS\Temp\StagingArea\Data\Managed\NativeToolkitWP8.dll"

标准输出:Mono CIL 链接器 Mono.Cecil.AssemblyResolutionException 中的致命错误:无法解析程序集:Mono.Linker.LinkContext.Resolve 中的“zxing.unity,版本=0.12.0.0,文化=中性,PublicKeyToken=null”(IMetadataScope 范围) [0x00000] 在:0 在 Mono.Linker.Steps.ResolveFromXmlStep.ProcessReferences (Mono.Cecil.AssemblyDefinition 程序集,Mono.Linker.LinkContext 上下文) [0x00000] 在:0 在 Mono.Linker.Steps.ResolveFromXmlStep.GetAssembly(Mono. Linker.LinkContext 上下文,System.String assemblyName) [0x00000] 在 :0 处 Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies (Mono.Linker.LinkContext 上下文,System.Xml.XPath.XPathNodeIterator 迭代器) [0x00000] 在 :0 处Mono.Linker.Steps.ResolveFromXmlStep.Process () [0x00000] in :0 在 Mono.Linker.Steps.BaseStep.Process (Mono.Linker.LinkContext 上下文)[0x00000] 在:0 在 Mono.Linker.Pipeline.Process(Mono.Linker.LinkContext 上下文)[0x00000] 在:0 在 Mono.Linker.Driver.Run () [0x00000] 在:0 在 Mono。 Linker.Driver.RunDriver(Mono.Linker.Driver 驱动程序)[0x00000] in :0 stderr:

UnityEngine.Debug:LogError(Object) UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase) (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:66) UnityEditorInternal.AssemblyStripper :RunAssemblyLinker(IEnumerable 1, String&, String&, String, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:192) UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String, String, String&, String&, String, String, IEnumerable1) (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:185) UnityEditorInternal.AssemblyStripper:Strip(String, String, String&, String&, String, String, IEnumerable1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:136) UnityEditorInternal.AssemblyStripper:Strip(String[], String[], String, String, String&, String&, String, String, IEnumerable1) (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:121) UnityEditorInternal.IL2CPPBuilder:RunAssemblyStripper(IEnumerable, String, String[], String[], String) (在 C :/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:477) UnityEditorInternal.IL2CPPBuilder:StripAssemblies(String[], String) (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline /Il2Cpp/IL2CPPUtils.cs:465) UnityEditorInternal.IL2CPPBuilder:Run() (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:293) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String , IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry) (在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211) UnityEditor.HostView:OnGUI()

0 投票
1 回答
12127 浏览

c# - IL2CPP 与 Mono2x 和 Android 部署

IL2CPP是 Unity 开发的脚本后端,在为某些平台构建项目时,您可以将其用作 Mono 的替代方案。注意 - IL2CPP 仅在为以下平台构建时可用:

  • Android AppleTV、iOS*、Nintendo 3DS、Nintendo Switch、Playstation 4 Playstation Vita、WebGL*、Windows Store、Xbox One

我有一个项目(统一 5.2)已切换为 Android 部署。我试图将我的脚本从 Mono2x 切换到 IL2CPP,它向我展示了

Andriod 上的 IL2CPP 是实验性的,不受支持

所以,我的简单问题是,如果仍然不支持,那么为什么包含该选项,IL2CPP 和 Mono2x 之间的根本区别是什么。为什么我切换到 IL2CPP 脚本后端?

我还检查了 unity 5.5.2 Windows 平台部署中没有 IL2CPP 选项。

0 投票
0 回答
173 浏览

unity3d - IL2CPP 不为 Mono.Cecil 生成的以枚举作为参数的函数生成 Box()

我正在使用 Mono.Ceil 打包 C# 代码,以便在函数中插入代码存根。这是我的代码

对于枚举类型,即 ValueType,我使用 OpCodes.box 将其装箱为对象。如果不使用 il2cpp(形式 Unity3D)翻译成 C++ 代码,它就可以工作。

它生成不正确(var L_3 未装箱),

但是对于未修补枚举的 func,它生成正确,(var L_3 boxed)

它们具有相同的(至少对我而言)IL 代码(IL_0013 ~ IL_001d),

和 (IL_0004 ~ IL_000c)

我想念什么?

附加信息,我发现对于其他非原始值类型(结构值),它有同样的问题,L_4 装箱为 L_5,但 L_7 没有装箱。

0 投票
0 回答
1008 浏览

android - 如何使用 IL2CPP 将 Unity 导出到 Android 项目

Mac OS 10.12.4 Unity 5.5.1p4

当我使用 IL2CPP 构建 Android APK 或导出 Android 项目时,我会收到以下消息:

有必要运行 il2cpp.exe ?? 看来我必须在 Windows 中构建它?如何在 Mac 中构建?

这是 Unity3d.com 的“IL2CPP 的工作原理”

在此处输入图像描述

0 投票
1 回答
1194 浏览

c# - 如何解决 Unity3D iOS 版本上的 AOT 和代码剥离

当 IL2CPP 编译器开始从您的 iOS 构建中的外部程序集 (dll) 中剥离您的代码时,您应该怎么做。导致您的 JSON 反序列化代码中断。

0 投票
1 回答
1704 浏览

unity3d - Unity WebGL 构建

无论我在论坛上尝试什么,我都在尝试发布 WebGl 版本并不断收到以下错误消息。

我的构建在任何其他平台上运行良好

第一个错误:

运行 C:\Program Files\Unity\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --compile-cpp --libil2cpp-static --platform="WebGL" --architecture=" 失败EmscriptenJavaScript" --configuration="Release" --outputpath="C:\Users\jmassa\Documents\Lidl ENT\Assets /../Temp/StagingArea/Data\Native\build.bc" --cachedirectory="C: \Users\jmassa\Documents\Lidl ENT\Assets..\Library/il2cpp_cache" --compiler-flags="-Oz -DIL2CPP_EXCEPTION_DISABLED=1 " --additional-libraries="C:\Program Files\Unity\Editor\Data \PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AIModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AnimationModule_Dynamic.bc"--additional-libraries="C:\Program Files\Unity\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AudioModule_Dynamic.bc" --additional-libraries="C:\Program

第二个错误:

例外:C:\Program Files\Unity\Editor\Data\il2cpp/build/il2cpp.exe 没有正常运行!UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase 解析器) (在 C:/buildslave/unity/build/Editor/ Mono/BuildPipeline/BuildUtils.cs:130) UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase 解析器, System.Action`1 setupStartInfo) (在 C :/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)

第三个错误:

UnityEditor.BuildPlayerWindow+BuildMethodException:构建失败并出现错误。在 UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer(BuildPlayerOptions 选项)[0x001b9] 在 C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:162 在 UnityEditor.BuildPlayerWindow.CallBuildMethods(布尔 askForBuildLocation,BuildOptions defaultBuildOptions)[0x00050]在 C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:83 UnityEditor.HostView:OnGUI()

如果有人有任何见解,将不胜感激。太感谢了。

0 投票
1 回答
1634 浏览

ios - Can't link iOS project with il2cpp and Unity

any of you know what is happening with my project ?

There is this error:

ld: symbol(s) not found for architecture arm64

unity_ios

Unity Player Settings is like this:

player_settings

0 投票
0 回答
231 浏览

ios - 统一项目中的Apple Mach-O链接错误

我收到了一个统一的游戏项目,它可能需要集成到我们未来的应用程序中。源代码基于 Xcode 9 和 swift 4,当我尝试构建时,我得到了这个 Apple Mach-O 链接错误,如下图所示:

我尝试过的解决方案:

1.change build setting -> Architectures to armv7 and build active architecture YES。但它不起作用。

  1. 将构建设置 -> 架构更改为标准架构。是的,只为调试构建活动架构

3.尝试在 Link Binary With Libraries 中添加 libiPhone-lib.a。它也不起作用。

4.尝试在项目中添加libil2cpp文件夹,它也不起作用。

我不知道这些错误,也没有开发统一项目的经验,如果您有任何想法,请告诉我。错误截图:

在此处输入图像描述

0 投票
1 回答
136 浏览

ios - iOS 上的 NotSuppportedException IL2CPP