You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI iOS应用上传报com.microsoft.libSkiaSharp签名错误90034

问题根因

这个报错既不是本地苹果提交证书配置错误,也不是libSkiaSharp类库本身不支持iOS,属于.NET 6版本MAUI iOS发布流程的已知缺陷:构建生成IPA时,流程没有对嵌入的libSkiaSharp.framework动态框架执行符合提交要求的重签名操作,苹果App Store上传校验时会检测所有内嵌框架的签名有效性,发现签名不匹配就会抛出90034错误。

修复方案

按操作成本从低到高排序,可任选一种方案处理:

方案1:升级SkiaSharp版本(优先推荐)

  • 移除项目中旧版本的SkiaSharp相关NuGet包,升级到2.88.3及以上稳定版本,该版本已完成iOS框架签名逻辑适配
  • 清空本地NuGet缓存,删除项目下的bin、obj目录后重新执行发布命令,无需额外配置即可自动完成所有内嵌框架的签名

方案2:追加发布参数强制签名(不适合升级版本时使用)

在原有dotnet publish命令中追加两个参数,强制构建流程对所有内嵌第三方框架执行签名:
/p:CodesignAllFrameworks=true /p:CodesignEntitlements=<项目Entitlements.plist文件的本地绝对路径>

修正后的完整发布命令参考(注意修正原命令中ServerUser参数缺失闭合的笔误):

dotnet publish -f:net6.0-ios -c:Release /p:ServerAddress=192.168.xx.xxx /p:ServerUser=<name> /p:TcpPort=58181 /p:ArchiveOnBuild=true /p:_DotNetRootRemoteDirectory=/Users/<name>/Library/Caches/Xamarin/XMA/SDKs/dotnet/ /p:CodesignAllFrameworks=true /p:CodesignEntitlements=/Users/<name>/Projects/YourMauiApp/Platforms/iOS/Entitlements.plist

方案3:生成IPA后手动重签名(应急场景使用)

如果前两种方案执行后仍存在签名问题,可以在Mac端对生成的IPA手动补签名:

  1. 将生成的IPA文件后缀修改为.zip,解压后找到Payload目录下的.app包
  2. 进入.app/Frameworks目录,执行签名命令:
codesign -f -s "Apple Distribution: 你的证书全称" libSkiaSharp.framework
  1. 确认所有内嵌framework签名完成后,重新将Payload目录压缩为.zip,修改后缀为.ipa即可正常上传
预校验方法

上传前可以先在Mac端执行签名校验命令,提前排查问题避免反复提交被打回:

codesign -v -R="anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and certificate leaf[field.1.2.840.113635.100.6.1.13] exists" /path/to/your/Payload/YourApp.app/Frameworks/libSkiaSharp.framework

命令执行后无任何输出即代表签名符合App Store提交要求。


内容的提问来源于stack exchange,提问作者mcy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 20:06:25