You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Enable AppleAppBuilder to bundle applications compiled with NativeAOT #80910
AppleAppBuilder build task currently only supports Mono as the default AOT compiler and runtime when creating application bundles.
Proposal
Extend AppleAppBuilder to support NativeAOT, as a second AOT compiler and runtime, when creating iOS application bundles.
This would enable building and running sample applications built with NativeAOT on iOS platforms, but also size and performance monitoring.
By setting TPI, .NET SDK imports WorkloadManifestTargetsLocator, which resolves Microsoft.macos.Sdk.net7 SDK, which further resolves Microsoft.NET.Runtime.MonoTargets.Sdk.net7 and then Xamarin.Shared.Sdk etc. Somewhere there in the SDK, we can check if '$(PublishAot)' == 'true' then e.g. skip importing WorkloadManifestTargetsLocator or something down the chain. There maybe some more changes required but that would be the starting point to ninja in the NativeAOT bits. 🥷
By setting TPI, .NET SDK imports WorkloadManifestTargetsLocator, which resolves Microsoft.macos.Sdk.net7 SDK, which further resolves Microsoft.NET.Runtime.MonoTargets.Sdk.net7 and then Xamarin.Shared.Sdk etc. Somewhere there in the SDK, we can check if '$(PublishAot)' == 'true' then e.g. skip importing WorkloadManifestTargetsLocator or something down the chain. There maybe some more changes required but that would be the starting point to ninja in the NativeAOT bits. 🥷
^ @kotlarmilos I believe this would contribute to your SDK integration work
Activity
am11 commentedon Jan 20, 2023
It gets enabled when
TargetPlatformIdentifieris set (not to be confused withTargetFrameworkIdentifier/ TFI).e.g.
<TargetFramework>net7.0-macos</TargetFramework>is same as:By setting TPI, .NET SDK imports
WorkloadManifestTargetsLocator, which resolvesMicrosoft.macos.Sdk.net7SDK, which further resolvesMicrosoft.NET.Runtime.MonoTargets.Sdk.net7and thenXamarin.Shared.Sdketc. Somewhere there in the SDK, we can check if'$(PublishAot)' == 'true'then e.g. skip importingWorkloadManifestTargetsLocatoror something down the chain. There maybe some more changes required but that would be the starting point to ninja in the NativeAOT bits. 🥷ivanpovazan commentedon Feb 7, 2023
^ @kotlarmilos I believe this would contribute to your SDK integration work
Enable AppleAppBuilder to bundle iOS applications built for NativeAOT…