Search Issue Tracker

Fixed in future release

Votes

0

Found in

2017.2.0f3

Issue ID

962771

Regression

Yes

[IL2CPP][Android] Unity CIL Linker fails to run when compiling assemblies that use code specific to iOS

IL2CPP

-

-

Priority: 3Not yet prioritized for a release

-

Severity: 1Crash or major loss of functionality

Android builds fail when assemblies that utilize iOS code are used in the project, even though the code isn't used directly. This affects projects with Unity IAP enabled in some instances.

Steps to reproduce:
1) Open the attached project (repro.zip).
2) Build for Android.

The build fails; error message appears in the console:
Fatal error in Unity CIL Linker
System.NullReferenceException: Object reference not set to an instance of an object.
at UnityLinker.AddUnresolvedStubsStep.GetTypeModule(TypeReference type, AssemblyDefinition[] assemblies)
at UnityLinker.AddUnresolvedStubsStep.Process()
at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at UnityLinker.UnityDriver.Run()
at UnityLinker.UnityDriver.RunDriver()

and also:
Failed running C:\Program Files\Unity2017.3.0f1\Editor\Data\il2cpp/build/UnityLinker.exe <...>
Exception: C:\Program Files\Unity2017.3.0f1\Editor\Data\il2cpp/build/UnityLinker.exe did not run properly!

This does not reproduce with Mono.
This does reproduce with .NET 4.6 and 3.5 scripting runtime versions. Engine Code Stripping has no effect as well.

Reproduced on:
2017.3.0f1, 2017.2.0f3, 2017.1.0a3, 5.6.4p1, 5.6.2f1

Did not reproduce:
2018.1.0a6, 5.5.5p2, 5.5.0b4

Couldn't test: 5.6.0b4

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.