Skip to content

"Optimizing assemblies for size failed" - Core 9 Latest Maui iOS Build #114022

Open
@mnxamdev

Description

@mnxamdev

Description

Same as #104945

Reproduction Steps

/usr/local/share/dotnet/dotnet publish /Users/me/myproject/myapp.csproj --framework net9.0-ios --configuration InternalBuild --runtime ios-arm64 /p:ArchiveOnBuild=true

Expected behavior

Builds on iOS.

Actual behavior

Error output during build (note: trying to build iOS IPA which always worked before updating to MAUI 9, works on development macs)

Fatal error in IL Linker
14:21:42                Unhandled exception. Mono.Linker.LinkerFatalErrorException: ILLink: error IL1011: Failed to write 'obj/QABuild/net9.0-ios/ios-arm64/linked/Microsoft.iOS.dll'.
14:21:42                 ---> System.ArgumentException: Member 'System.Boolean owns' is declared in another module and needs to be imported
14:21:42                   at Mono.Cecil.MetadataBuilder.LookupToken(IMetadataTokenProvider provider)
14:21:42                   at Mono.Cecil.Cil.CodeWriter.WriteOperand(Instruction instruction)
14:21:42                   at Mono.Cecil.Cil.CodeWriter.WriteInstructions()
14:21:42                   at Mono.Cecil.Cil.CodeWriter.WriteResolvedMethodBody(MethodDefinition method)
14:21:42                   at Mono.Cecil.MetadataBuilder.AddMethod(MethodDefinition method)
14:21:42                   at Mono.Cecil.MetadataBuilder.AddType(TypeDefinition type)
14:21:42                   at Mono.Cecil.MetadataBuilder.AddTypes()
14:21:42                   at Mono.Cecil.MetadataBuilder.BuildTypes()
14:21:42                   at Mono.Cecil.MetadataBuilder.BuildModule()
14:21:42                   at Mono.Cecil.MetadataBuilder.BuildMetadata()
14:21:42                   at Mono.Cecil.ModuleWriter.<>c.<BuildMetadata>b__2_0(MetadataBuilder builder, MetadataReader _)
14:21:42                   at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TItem item, Func`3 read)
14:21:42                   at Mono.Cecil.ModuleWriter.BuildMetadata(ModuleDefinition module, MetadataBuilder metadata)
14:21:42                   at Mono.Cecil.ModuleWriter.Write(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
14:21:42                   at Mono.Cecil.ModuleWriter.WriteModule(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
14:21:42                   at Mono.Cecil.ModuleDefinition.Write(String fileName, WriterParameters parameters)
14:21:42                   at Mono.Cecil.AssemblyDefinition.Write(String fileName, WriterParameters parameters)
14:21:42                   at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
14:21:42                   --- End of inner exception stack trace ---
14:21:42                   at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
14:21:42                   at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory)
14:21:42                   at Mono.Linker.Steps.OutputStep.OutputAssembly(AssemblyDefinition assembly)
14:21:42                   at Mono.Linker.Steps.OutputStep.ProcessAssembly(AssemblyDefinition assembly)
14:21:42                   at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
14:21:42                   at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
14:21:42                   at Mono.Linker.Pipeline.Process(LinkContext context)
14:21:42                   at Mono.Linker.Driver.Run(ILogger customLogger)
14:21:42                   at Mono.Linker.Driver.Main(String[] args)
14:21:42                Build continuing because "ContinueOnError" on the task "ILLink" is set to "ErrorAndContinue".
14:21:42            1>Done Building Project "/Users/macbuild/buildAgent/work/6715574de90c19a4/myproject/myapp.csproj" (Publish target(s)) -- FAILED.
14:21:42       
14:21:43          1>ILLink : error IL1011: Failed to write 'obj/InternalBuild/net9.0-ios/ios-arm64/linked/Microsoft.iOS.dll'.
14:21:43          1>/Users/macbuild/.nuget/packages/microsoft.net.illink.tasks/9.0.3/build/Microsoft.NET.ILLink.targets(96,5): error NETSDK1144: Optimizing assemblies for size failed.

Regression?

Yes. Worked fine with .Net MAUI 8

Known Workarounds

None. Tried this but didn't work:
<_AggressiveAttributeTrimming>false</_AggressiveAttributeTrimming>

Configuration

macOS Sequoia 15.3.2
Intel Mac

<PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'InternalBuild'">
		<DefineConstants>__IOS__;__INTERNALBUILD__;</DefineConstants>
		<Optimize>True</Optimize>
		<DebugType>portable</DebugType>
		<CreatePackage>false</CreatePackage>
		<CodesignProvision>Automatic:AdHoc</CodesignProvision>
		<CodesignKey>iPhone Distribution</CodesignKey>
		<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
		<BuildIpa>true</BuildIpa>
		<CodesignEntitlements>Platforms\iOS\Entitlements.plist</CodesignEntitlements>
		<MtouchLink>SdkOnly</MtouchLink>
		<UseInterpreter>true</UseInterpreter>
	</PropertyGroup>
.NET SDK:
 Version:           9.0.202
 Commit:            3a53853c30
 Workload version:  9.0.200-manifests.5c4e24dc
 MSBuild version:   17.13.13+1c2026462

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  15.3
 OS Platform: Darwin
 RID:         osx-x64
 Base Path:   /usr/local/share/dotnet/sdk/9.0.202/

.NET workloads installed:
 [maui-maccatalyst]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [maui-ios]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [maui-android]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [ios]
   Installation Source: SDK 9.0.200
   Manifest Version:    18.2.9180/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.ios/18.2.9180/WorkloadManifest.json
   Install Type:        FileBased

 [maui-mobile]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [maui]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [android]
   Installation Source: SDK 9.0.200
   Manifest Version:    35.0.50/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.android/35.0.50/WorkloadManifest.json
   Install Type:        FileBased

Configured to use loose manifests when installing new manifests.

Host:
  Version:      9.0.3
  Architecture: x64
  Commit:       831d23e561

Other information

Please fix soon or provide a workaround please. Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Tools-ILLink.NET linker development as well as trimming analyzersuntriagedNew issue has not been triaged by the area owner

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions