Skip to content

Upgrading from .NET 9.0 to .NET 10.0 leads to linker issues when using Objective-C framework #24711

@Hamdev-Algo

Description

@Hamdev-Algo

Apple platform

iOS

Framework version

net10.0-*

Affected platform version

VS 18.2.11415.280, Workload 10.0.10x targeting Xcode 26.x

Description

When attempting to compile a maui project that uses a native IOS library written in Objective-C, the compilation fails at the linker stage.

I'm using Visual Studio 2026 on Windows 11 paired to a Mac (Apple M1) running macOS Tahoe (26.2) and XCode 26.2. All attempts to create a project using .Net 9 or .Net 10 with the toolchain and Xcode 26.x failed.

The current workload installed on my pc is :

Workload version: 10.0.101.1

Installed Workload Id      Manifest Version         Installation Source
------------------------------------------------------------------------------------------------------
android                    36.1.2/10.0.100          SDK 10.0.100, VS 18.2.11415.280, VS 17.14.36414.22
ios                        26.2.10191/10.0.100      SDK 10.0.100, VS 18.2.11415.280, VS 17.14.36414.22
maccatalyst                26.2.10191/10.0.100      SDK 10.0.100, VS 18.2.11415.280, VS 17.14.36414.22
macos                      26.2.10191/10.0.100      SDK 10.0.100, VS 17.14.36414.22
maui                       10.0.1/10.0.100          SDK 10.0.100
maui-windows               10.0.1/10.0.100          SDK 10.0.100, VS 18.2.11415.280, VS 17.14.36414.22
tvos                       26.2.10191/10.0.100      SDK 10.0.100
wasm-tools-net6            10.0.101/10.0.100        SDK 10.0.100, VS 17.14.36414.22
wasm-tools-net7            10.0.101/10.0.100        SDK 10.0.100, VS 17.14.36414.22

The workload installed on the mac is :

Workload version: 10.0.101.1

Installed Workload Id      Manifest Version         Installation Source
--------------------------------------------------------------------------------------------
android                                   36.1.2/10.0.100           SDK 10.0.100            
ios                                       26.2.10191/10.0.100       SDK 10.0.100            
maccatalyst                               26.2.10191/10.0.100       SDK 10.0.100            
macos                                     26.2.10191/10.0.100       SDK 10.0.100            
maui                                      10.0.1/10.0.100           SDK 10.0.100            
tvos                                      26.2.10191/10.0.100       SDK 10.0.100

I have carried out several repro projects to reproduce the error we are encountering in our main project. See the projects in the attached zip file -->
CameraProjects.zip

The zip contains 2 more zip files.

  • framework_testframework_projects.zip : Contains the framework project and a native application project for testing the framework..
  • CameraIOSBindingTest_MAUI.zip : Contains the iOS .NET binding project, which generates a NuGet package, and a MAUI .NET 10 project that uses this package.

The framework is supposed to display the camera view.

I don't know if this will help, but here's a log of the nm command on the framework:

nm ./CameraFramework.framework/CameraFramework | grep CFCameraController
00000000000042e4 t +[CFCameraController shared]
00000000000044dc t +[CFCameraController shared].cold.1
00000000000044d0 t -[CFCameraController .cxx_destruct]
00000000000044bc t -[CFCameraController cameraVC]
000000000000440c t -[CFCameraController dismissCamera]
0000000000004340 t -[CFCameraController presentCameraFromViewController:]
00000000000044c4 t -[CFCameraController setCameraVC:]
000000000000c328 S _OBJC_CLASS_$_CFCameraController
000000000000c2d0 s _OBJC_IVAR_$_CFCameraController._cameraVC
000000000000c350 S _OBJC_METACLASS_$_CFCameraController
0000000000004800 s __OBJC_$_CLASS_METHODS_CFCameraController
0000000000004818 s __OBJC_$_INSTANCE_METHODS_CFCameraController
000000000000c120 s __OBJC_$_INSTANCE_VARIABLES_CFCameraController
000000000000c148 s __OBJC_$_PROP_LIST_CFCameraController
000000000000c160 s __OBJC_CLASS_RO_$_CFCameraController
000000000000c0d8 s __OBJC_METACLASS_RO_$_CFCameraController
0000000000004314 t ___28+[CFCameraController shared]_block_invoke
00000000000044a0 t ___35-[CFCameraController dismissCamera]_block_invoke

On the pc side, in the folder CameraIOSBindingTest\CameraTestMaui\obj\Release\net10.0-ios\ios-arm64\linker-cache :
Image
Image

Every files as 0 kb.

Thank you for you help !

Steps to Reproduce

To reproduce this error, simply compile the CameraTest .Net 10 project targeting a remote iphone on a mac.

Did you find any workaround?

No, I tried workloads 10.0.100, 10.0.101 and 10.0.101.1 which target Xcode 26.0, 26.1 and 26.2 respectively and it didn't solve anything.

Build logs

Here's a binlog attached --> CameraTest_Release_AnyCPU_Build_2026-02-13T18_05_18.2318961+01_00.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    binding-projectsIssue or PR that affects binding projectsneed-attentionAn issue requires our attention/response

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions