.NET 9 Blazor MAUI Hybrid安卓Release模式XML验签空异常问题
.NET 9 Blazor MAUI Hybrid安卓Release模式XML签名验证空异常解决方案
问题背景
我维护的基于.NET 9的Blazor MAUI Hybrid应用里,包含一个负责XML签名验证的类库。遇到了一个特定场景下的异常问题:仅在安卓Release模式调用CheckSignature方法时会抛出空异常,但安卓Debug模式(真机、模拟器均可)、Windows平台运行完全正常。排查确认RSA公钥、待验证的签名XML、签名节点都能正常加载,排除了数据加载层面的问题。
无效的排查尝试
一开始尝试了两种常见的剪裁优化相关方案,但均未解决问题:
- 在项目csproj文件中,将
System.Security.Cryptography.Xml添加到TrimmerRootAssembly列表,防止该程序集被剪裁 - 配置Proguard规则,避免相关代码被混淆或移除
有效解决方法
最终通过将System.Security.Cryptography程序集加入TrimmerRootAssembly列表,成功解决了空异常问题。
后续优化建议
为避免过度保留程序集导致应用体积增大,后续可通过TrimmerRootDescriptor创建更精准的剪裁配置,只保留XML签名验证所需的特定类型或成员,而非整个程序集。
内容的提问来源于stack exchange,提问作者ZorgoZ
相关产品推荐
相关产品推荐

