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
Publishing a net11.0-ios app to an iOS device with CoreCLR (UseMonoRuntime=false) fails at install time with MismatchedBundleIDSigningIdentifier (MIInstallerErrorDomain error 77).
Affected configuration: net11.0-ios, iOS device, CoreCLR / UseMonoRuntime=false. Mono and NativeAOT are not affected.
Key evidence
Check
Observed
Framework Info.plist bundle id
<app-id>.<libname>
codesign -dvvv identifier
<libname>
codesign -dvvv format
Mach-O dylib
Example observed in the failing app: libSystem.IO.Compression.Native.framework had CFBundleIdentifier = net.dot.mauitesting.libSystem.IO.Compression.Native, but its codesign identifier was only libSystem.IO.Compression.Native.
Likely cause
Converted CoreCLR dylib frameworks are being signed before they are complete/recognized as framework bundles. Codesign therefore treats the payload as a bare Mach-O dylib and derives the signature identifier from the binary name. Later, the framework Info.plist contains <app-id>.<libname>, so iOS install-time validation sees a bundle-id/signing-identifier mismatch and rejects the app.
Suggested fix direction
Ensure each converted CoreCLR framework has its Info.plist in place before signing, so codesign recognizes it as a framework bundle and uses the plist bundle identifier.
Note
Issue description generated with GitHub Copilot.
Summary
Publishing a
net11.0-iosapp to an iOS device with CoreCLR (UseMonoRuntime=false) fails at install time withMismatchedBundleIDSigningIdentifier(MIInstallerErrorDomainerror 77).Failing build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2958313&view=results
Job: https://dev.azure.com/dnceng/internal/_build/results?buildId=2958313&view=logs&j=22562ed2-ac63-545d-00a9-948aa372a9bb&t=087f1567-7589-5970-688b-4e9b08762a52
Affected configuration:
net11.0-ios, iOS device, CoreCLR /UseMonoRuntime=false. Mono and NativeAOT are not affected.Key evidence
Info.plistbundle id<app-id>.<libname>codesign -dvvvidentifier<libname>codesign -dvvvformatMach-O dylibExample observed in the failing app:
libSystem.IO.Compression.Native.frameworkhadCFBundleIdentifier = net.dot.mauitesting.libSystem.IO.Compression.Native, but its codesign identifier was onlylibSystem.IO.Compression.Native.Likely cause
Converted CoreCLR dylib frameworks are being signed before they are complete/recognized as framework bundles. Codesign therefore treats the payload as a bare Mach-O dylib and derives the signature identifier from the binary name. Later, the framework
Info.plistcontains<app-id>.<libname>, so iOS install-time validation sees a bundle-id/signing-identifier mismatch and rejects the app.Suggested fix direction
Ensure each converted CoreCLR framework has its
Info.plistin place before signing, so codesign recognizes it as a framework bundle and uses the plist bundle identifier.