ILStrip failed when trying to publish net9.0-ios with Google.Maps.Utils.iOS.dll

Open
#115,838 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp, ios

Research direction

Clone the mapsilstriprepro repository and run dotnet publish -f "net9.0-ios" -c "Release" to reproduce the failure. Start at Microsoft.iOS.Sdk.net9.0_18.4/targets/Xamarin.Shared.Sdk.targets around line 917 and the ILStrip step; done means the sample publishes with assembly IL stripping enabled and without the reported index error.

Written by the indexing model from the issue text.

Description

area-Build-mono
Apple platform

iOS

Framework version

net9.0-ios

Affected platform version

.NET 9.0

Description

We are now in the middle of moving from .Net 8 to .Net 9 with MAUI app.
There is a problem with one of the packages that contains Google.Maps.Utils.iOS.dll and it doesn't matter if we are using Nuget like this: https://www.nuget.org/packages/Onion.Maui.GoogleMaps.Clustering/ or our own binding.

There is an error when publishing:
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net9.0_18.4/18.4.9289/targets/Xamarin.Shared.Sdk.targets(917,3): error : ILStrip failed for obj/Release/net9.0-ios/ios-arm64/linked/Google.Maps.Utils.iOS.dll: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')

No trimmer settings i helping here as it looks like trimming process is quite ok. The error can be fixed only by setting <EnableAssemblyILStripping>false</EnableAssemblyILStripping> which we do not want.

This behavriour is only observed on .Net 9 while it was fine on previous version.

Steps to Reproduce

clone https://github.com/tklptbs/mapsilstriprepro/tree/main
Run dotnet publish -f "net9.0-ios" -c "Release" on attached repo

Did you find any workaround?

<EnableAssemblyILStripping>false</EnableAssemblyILStripping>

Build logs

No response

Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/runtime

All issues in dotnet/runtime

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.