A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
Hi @Natalie van Gogh (Hillebrand Gori NL) ,
Thank you for sharing the details and the steps you have already taken. I understand how frustrating a persistent issue like this can be. Let us use your findings to narrow down the cause.
The immediate issue is that libSkiaSharp.framework inside the IPA contains an unexpected x86_64 architecture, which is typically associated with Intel-based simulator builds rather than physical iOS devices. I suggest investigating this architecture issue first, then checking whether the PIE, segment alignment, and encryption errors remain.
Because each .NET for iOS workload requires a specific Xcode version, it would be helpful to confirm the exact SDK, workload, and active Xcode combination. Also, “latest SDK and workload” may not necessarily reflect the versions currently selected for the project, as these can be influenced by a global.json file or workload-set configuration.
Could you run the following commands from the MAUI project directory and share the output?
dotnet –version
dotnet –info
dotnet workload list
dotnet workload –info
xcodebuild –version
xcode-select –p
Please also share:
The iOS target framework from the .csproj
The SkiaSharp package versions
Any RuntimeIdentifier or RuntimeIdentifiers entries
The contents of global.json, if present
As a diagnostic test, you can then rebuild the MAUI application project explicitly for ios-arm64:
dotnet publish <your-project.csproj> \
-f <your-ios-target-framework> \
-c Release \
-p:RuntimeIdentifier=ios-arm64 \
-p:ArchiveOnBuild=true
Before uploading the new IPA, extract it and inspect the native binary:
lipo -info Payload/VeloDS.app/Frameworks/libSkiaSharp.framework/libSkiaSharp
If it reports only arm64, try uploading the new IPA and check whether the remaining validation errors persist.
If it still reports arm64 and x86_64, please share the command outputs, project configuration, SkiaSharp versions, and new lipo result so we can investigate the native package assets selected during the build.
For now, I would avoid updating or changing additional components until the current environment has been captured.
If you found my response helpful or informative, I would greatly appreciate it if you could follow this guide for your confirmation.
Thank you.