-
Notifications
You must be signed in to change notification settings - Fork 551
Description
Description
I am experiencing an issue where iOS Wallet Extensions (a pair of UI and Non-UI extensions) are not being code-signed when migrating a .NET MAUI project from .NET 8 to .NET 10.
Current Behavior: When using .net10.0-ios, Visual Studio on Windows completes the build process, but the App Extensions are bundled without a valid signature. Even if I provide intentional nonsense/garbage values in or , the build still "succeeds" without throwing any signing errors, which indicates that the signing step for extensions is being skipped entirely in the .NET 10 SDK.
Expected Behavior: The build process should respect the CodesignKey and CodesignProvision properties for App Extensions, sign them correctly, and fail the build if the provisioning profile or certificate is invalid (as it correctly does in .NET 8).
Environment:
Framework: .NET 10.0 (Maui)
Target: net10.0-ios (arm64)
IDE: Visual Studio for Windows
Provisioning Type: Manual
Steps to Reproduce
Create a .NET MAUI solution targeting net10.0-ios.
Add two iOS App Extension projects (e.g., for Apple Wallet: one UI and one Non-UI).
Reference these extensions in the main MAUI project.
Configure Manual Provisioning in the .csproj of the Extension projects as follows:
csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0-ios</TargetFrameworks>
<OutputType>Library</OutputType>
<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
<Nullable>disable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<ImplicitUsings>enable</ImplicitUsings>
<SupportedOSPlatformVersion>18.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup>
<IsAppExtension>True</IsAppExtension>
<IsWatchExtension>False</IsWatchExtension>
</PropertyGroup>
<PropertyGroup>
<Registrar>static</Registrar>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net10.0-ios'">
<ProvisioningType>manual</ProvisioningType>
<CodesignKey>iPhone Distribution: ACC************(M2)</CodesignKey>
<CodesignProvision>Ac Wallet-NONUI</CodesignProvision>
<EnableSGenConc>True</EnableSGenConc>
<MtouchInterpreter>-all,System.Private.Windows.Core</MtouchInterpreter>
</PropertyGroup>
<ItemGroup>
<IosInfoPlist Include="Info.plist" />
<IosEntitlementsPlist Include="Entitlements.plist" />
</ItemGroup>
</Project>Perform a Build/Publish of the main project on a Windows machine connected to a Mac build host.
Inspect the resulting .ipa (or build artifacts).
Observation: The Extensions are NOT present in the Payload. Additionally, changing the CodesignKey to a random string does not trigger a build error, confirming the signing task is ignored.
Link to public reproduction project repository
No response
Version with bug
10.0.0
Is this a regression from previous behavior?
Yes, this used to work in .NET MAUI
Last version that worked well
.NET 8 (Please specify exact version)
Affected platforms
iOS
Affected platform versions
iOS extensions, Wallet, macios, MAUI
Did you find any workaround?
No response