Skip to content

[Bug]: Linking fails for iOS device builds with version 20.2.45 #3997

Open
@Qonstrukt

Description

@Qonstrukt

Describe the bug 🐞

While creating a local build for my iOS device, I'm met with the following error:

1>Microsoft.NET.ILLink.targets(96,5): Error NETSDK1144 : Optimizing assemblies for size failed.

Step to reproduce

  1. Have a project with net9.0-ios as TargetFramework
  2. Upgrade ReactiveUI from 20.1.63 to 20.2.45
  3. Start a device build (even with MtouchLink set to None)

Reproduction repository

https://github.com/reactiveui/ReactiveUI

Expected behavior

The build should succeed. This is a very clear difference between the previous and current version. I tried with clean build directories, and can reproduce it every time.

I unfortunately don't have a reproduction repository yet.

Screenshots 🖼️

No response

IDE

Rider macOS

Operating system

MacOS

Version

15.3.2

Device

iPhone 15 Pro

ReactiveUI Version

20.2.45

Additional information ℹ️

Simulator builds are unaffected.

This is the full error:

1>ILLink: Error IL1012 : IL Trimmer has encountered an unexpected error. Please report the issue at https://aka.ms/report-illink
Fatal error in IL Linker
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.Collections.Immutable.ImmutableArray`1.get_Item(Int32 index)
   at Mono.Linker.Dataflow.TrimAnalysisMethodCallPattern.Merge(ValueSetLattice`1 lattice, TrimAnalysisMethodCallPattern other)
   at Mono.Linker.Dataflow.MethodBodyScanner.HandleCall(MethodBody callingMethodBody, Instruction operation, Stack`1 currentStack, Dictionary`2 locals, InterproceduralState& interproceduralState, Int32 curBasicBlock)
   at Mono.Linker.Dataflow.MethodBodyScanner.Scan(MethodIL methodIL, InterproceduralState& interproceduralState)
   at Mono.Linker.Dataflow.ReflectionMethodBodyScanner.Scan(MethodIL methodIL, InterproceduralState& interproceduralState)
   at Mono.Linker.Dataflow.MethodBodyScanner.InterproceduralScan(MethodIL startingMethodIL)
   at Mono.Linker.Dataflow.ReflectionMethodBodyScanner.InterproceduralScan(MethodIL methodIL)
   at Mono.Linker.Steps.MarkStep.MarkReflectionLikeDependencies(MethodIL methodIL, Boolean requiresReflectionMethodBodyScanner, MessageOrigin origin)
   at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method, DependencyInfo& reason)
   at Mono.Linker.Steps.MarkStep.ProcessQueue()
   at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
   at Mono.Linker.Steps.MarkStep.Process()
   at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
   at Mono.Linker.Pipeline.Process(LinkContext context)
   at Mono.Linker.Driver.Run(ILogger customLogger)
   at Mono.Linker.Driver.Main(String[] args)
Build continuing because "ContinueOnError" on the task "ILLink" is set to "ErrorAndContinue".
Target ILLink:
1>Microsoft.NET.ILLink.targets(96,5): Error NETSDK1144 : Optimizing assemblies for size failed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions