使用.msix/.msixbundle发布Delphi 10.1 Berlin应用至微软商店报错求助
解决Delphi 10.1 Berlin MSIX包上传微软商店的异常报错问题
问题背景
我用Delphi 10.1 Berlin为应用创建了.msix安装包,本地安装正常,且通过WACK(Windows App Certification Kit)检测无阻塞问题。已确认AppxManifest.xml中的标识、产品元数据与微软商店页面的包信息一致,且和我生成的自签名密钥匹配。但上传至微软商店时,收到一系列不符合实际的错误提示:
- 您必须上传至少一个包。如果使用市场组,则每个市场组必须至少有一个包。
- 您必须提供支持每个所选设备系列的包(或取消勾选不支持的设备系列)。注意,针对Xbox设备系列需要中性或x64包。
- 包DataMystic.WordPipe.msix处理时间过长。如果未尽快完成,请尝试刷新页面,或移除包后重新上传。若持续出现此问题,请联系支持人员。
- 提交前必须修复所有包验证错误。
尝试使用.msixbundle/.msixupload文件上传,结果完全相同。此前遇到数字签名密钥问题,被告知需使用自签名密钥(硬件数字密钥的CN与商店分配的CN不匹配)。另外,Delphi 10.1 Berlin没有10.4版本里的「Project | Options | Provisioning」选项,缺少官方文档支持。
解决方案建议
1. 用工具重新生成符合商店要求的签名包
Delphi 10.1 Berlin的打包工具可能存在签名兼容性问题,手动使用Windows SDK自带的工具重新处理:
- 用
MakeAppx.exe bundle命令生成.msixbundle,确保包含对应设备架构的包(比如勾选Xbox的话,必须提供中性或x64包) - 改用微软商店后台提供的临时签名证书重新签名:下载应用的临时证书后,执行
SignTool.exe sign /f <证书路径> /fd SHA256 <包路径>命令完成签名
2. 清理商店后台残留数据后重新上传
删除商店后台中已上传的所有相关包,清理浏览器缓存,先尝试上传单个架构的.msix包(比如仅x64版本,不要传bundle),观察是否还出现处理超时和错误提示。
3. 匹配设备系列选择与包架构
在商店后台检查设备系列配置:
- 如果勾选了Xbox,必须确保包是中性或x64架构,移除仅x86的包
- 取消勾选当前包不支持的设备系列(如IoT、HoloLens等),只保留PC、Xbox(若符合架构要求)
4. 手动修正AppxManifest.xml的隐藏问题
Delphi 10.1生成的AppxManifest.xml可能存在WACK未捕获但商店检测到的元数据问题:
- 确保
<Identity>节点的Name、Publisher、Version完全和商店后台的应用标识一致(注意大小写和格式细节) - 检查
<Dependencies>节点,确认最低Windows版本符合商店要求(建议至少Windows 10 1809) - 移除非必需的自定义扩展或功能声明,只保留应用运行必需的部分
5. 绕过Delphi打包工具,手动制作MSIX包
由于Delphi 10.1 Berlin对MSIX的支持不完善,可手动创建包:
- 将应用所有文件复制到一个空目录
- 手动编写符合商店规范的
AppxManifest.xml - 用
MakeAppx.exe pack命令生成.msix包 - 用商店临时证书签名后上传
内容的提问来源于stack exchange,提问作者Simon Carter
相关产品推荐
相关产品推荐

