Microsoft Store上线应用报错:无法提交,模块 PaxListing 无效,请检查并重试

自己开发了一个视频播放器,看到最近microsoft store对个人开发者免费,打算上传一下,结果在上传包的时候报错了,无法提交,模块 PaxListing 无效。请检查并重试

 结果发现自己打包的exe引导程序还不能直接上传,要用Microsoft 的Visual Studio 来打包成 .msixupload 或 .appxupload 格式的文件,参考链接:

解决 MSIX 应用的提交错误 - Windows apps | Microsoft Learn

打包 MSIX 应用 - MSIX | Microsoft Learn
 

方法一(使用electorn打包appx格式应用上传):
由于我用的electorn打包我的应用,所以可以用electorn打包appx文件,不用一定用Visual Studio来生成安装引导程序,修改package.json文件即可:

​环境准备:安装 Windows SDK​

    • 从微软官网下载并安装 Windows SDK。

    • 记录 SDK 的安装路径(如 C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64),后续签名步骤会用到。

  1. ​账号准备:注册微软开发者账号​

    • 访问 ​​Microsoft Partner Center​​ 注册开发者账号。

    • ​费用​​:个人开发者目前免费了,公司一次性 $99

    • ​重要提示​​:注册时填写地址信息,省、市请使用​​拼音首字母​​,不要用中文,否则极易出现 2201错误。

    • 注册完成后,务必在账户设置中完善​​付款配置文件​​和​​税务配置文件​​。

  2. ​应用注册:在合作伙伴中心创建应用​

    • 在控制台中创建新产品,选择 ​​“MSIX 或 PWA 应用”​​。

    • 填写应用名称、隐私政策链接、定价、技术支持联系方式等基本信息。

    • ​关键操作​​:进入 产品管理-> 产品标识,记录下三个重要信息:

      • 标识名称 (Identity Name)

      • 发行商 (Publisher)

      • 发布者显示名称 (Publisher Display Name)

      • 这三个信息必须准确无误地配置到打包步骤中。

  3. ​资源准备:制作应用图标​

    • 准备符合要求的四种尺寸的 PNG 图标文件,放在项目指定目录(如 ./icons/appx/

    • 同时准备一个 icon文件作为应用图标。

  4. ​应用打包:配置并生成 .appx 安装包​

    • 在 vue.config.js(或 electron-builder 的配置文件中) 配置 appx选项,填入上一步记录的三个关键信息。

    • 由于我用的electorn打包我的应用,所以可以用electorn打包appx文件,不用一定用Visual Studio来生成安装引导程序,修改package.json文件即可,需将微软产品标识页面中的信息写到packge.json文件中:

          "directories": {
            "buildResources": "./build/icons"
          },
          "win": {
            "icon": "build/icons/icon.ico",
            "target": [
              {
                "target": "nsis",
                "arch": [
                  "x64"
                ]
              },
              {
                "target": "appx",
                "arch": [
                  "x64"
                ]
              }
            ],
          "appx": {
            "identityName": "com.longze.videoplayer",
            "publisher": "CN=longze",
            "publisherDisplayName": "longze",
            "applicationId": "com.longze.videoplayer",
            "languages": ["en-US"]
          }
    • 运行打包命令(如 npm run electron:build)生成 .appx包。

  5. ​本地测试:签名并安装测试​

    • 在系统设置中开启 ​​“开发者模式”​​。

    • 使用 electron-builder命令行工具为你的应用​​创建自签名证书​​(证书名称取自合作伙伴中心的“发行商”信息,去掉CN=)。

    • 使用 Windows SDK 中的 SignTool工具对生成的 .appx包进行签名。

    • 签名成功后,即可在本地双击安装并进行测试。

  6. ​应对兼容性问题(常见坑)​

    • child_process.spawn问题​​:在 AppX 包中,使用 { shell: true }选项可能会报错。​​解决方案​​:改为 shell: false或使用 child_process.execFile

    • userData路径问题​​:AppX 包中 app.getPath('userData')返回的路径可能与预期不同。​​建议​​:使用 app.getPath('temp')来存储临时文件。

  7. ​商店提交与测试​

    • 将签名的 .appx包上传到合作伙伴中心。

    • 利用微软的​​内测机制​​(类似 TestFlight):

      • 在提交时,于“定价和可用性”中设置可见性为 ​​“特定受众”​​,并添加你的测试邮箱。

      • 审核通过后,在 促销代码页面生成兑换码,分享给测试人员。他们可以通过商店链接兑换并下载安装经过微软签名的版本进行测试。

    • 所有测试通过后,即可创建公开提交,等待审核上架。提交时遇到runFullTrust功能批准,解释说这是electron应用即可。

PS:我的app打包上传后认证时发现了这个问题,用electron打包时需要准备多尺寸的icon:

package.json下的appx的配置:

    "appx": {
      "identityName": "",
      "publisher": "",
      "publisherDisplayName": "",
      "applicationId": "",
      "languages": ["en-US"]
    }

我是把appx直接放在icons文件夹下面了,所以我directories下面的buildResources填的./build/icons,建议使用和我一样的文件路径,如果你的appx文件夹不在icons下面, buildResources应该填./build文件夹,不然electron是一直无法打包图标进到包里的,会默认回滚为默认electron图标!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    "directories": {
      "buildResources": "./build/icons"
    },
    "win": {
      "icon": "build/icons/icon.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        },
        {
          "target": "appx",
          "arch": [
            "x64"
          ]
        }
      ],
    "appx": {
      "identityName": "com.longze.videoplayer",
      "publisher": "CN=longze",
      "publisherDisplayName": "longze",
      "applicationId": "com.longze.videoplayer",
      "languages": ["en-US"]
    }


Appx 格式打包的话icons下面下需要准备不同尺寸的icon文件,放到build/appx下面,下面四个是必需的,还有一些可选的optional的,可参考官方文档:

图标文件名

主要用途

分辨率

StoreLogo.png

应用商店显示

512×512

Square150x150Logo.png

开始菜单中的​​方形磁贴​

150×150

Wide310x150Logo.png

开始菜单中的​​宽形磁贴​

310×150

Square44x44Logo.png

任务栏图标、开始菜单右键列表中的应用程序图标

44×44

参考链接:
Icons - electron-builder

AppX - electron-builder

还是要用微软官方的资产生成工具创建图标,不然electron打包,像素不匹配,还是会使用默认的electron默认图标。

使用 Visual Studio 的资产生成工具创建图标 - Windows apps | Microsoft Learn

本方法参考链接:

electron应用提交到Windows应用商店全流程 - 简书

方法二(使用Visual Studio打包上传msix格式应用包):

首先下载Visual Studio:
Visual Studio 2022 社区版 - 下载最新的免费版本

1. 确保项目可以在 Windows 上运行​

在打包之前,确保您的项目可以正常运行:

  • ​Web 应用​​(如 React/Vue/Angular):确保 npm run build生成 dist或 build文件夹。

  • ​Electron 应用​​:确保 electron-builder或 electron-packager能生成 .exe文件。

  • ​Node.js 应用​​:确保可以打包成可执行文件(如 pkg或 nexe)。


​2. 在 Visual Studio 中创建 Windows 应用程序打包项目​

​2.1 安装必要的 Visual Studio 组件​

  • 打开 ​​Visual Studio Installer​​,确保已安装:

    • ​“.NET 桌面开发”​​ 或 ​​“通用 Windows 平台 (UWP) 开发”​​ 工作负载。

    • ​“MSIX 打包工具”​​(在可选组件中勾选)。

安装后记得要重启电脑,不然.net的系统环境变量不会生效,创建windows应用程序打包项目时会导致报错:

​2.2 创建打包项目​

  1. ​打开 Visual Studio​​,选择 ​​“文件” → “新建” → “项目”​​。

  2. 搜索 ​​“Windows 应用程序打包项目”​​(选择 C# 或 C++ 版本)。

  3. 命名项目(如 MyApp.Package),点击 ​​“创建”​​。


​3. 导入 VS Code 项目​

​3.1 方式 1:直接打包 dist文件夹(适用于 Web 应用)​

  1. ​在打包项目中​​,右键 ​​“应用程序”​​ → ​​“添加” → “文件夹”​​(命名为 App)。

  2. ​右键 App文件夹​​ → ​​“添加” → “现有项”​​,选择 dist文件夹下的所有文件(如 index.htmljs/css/)。


​4. 配置 Package.appxmanifest

  1. ​双击 Package.appxmanifest​ 打开清单编辑器。

  2. ​“应用程序”选项卡​​:

    • 设置 ​​“显示名称”​​(应用名称)。

    • 设置 ​​“入口点”​​(如 App\index.html或 App\your-app.exe)。

  3. ​“功能”选项卡​​:

    • 勾选所需权限(如 InternetFile System)。

  4. ​“打包”选项卡​​:

    • 填写 ​​“发布者名称”​​(需证书,可临时用测试证书)。

    • 设置 ​​“版本”​​(如 1.0.0)。


​5. 生成 MSIX 包​

  1. ​右键打包项目​​ → ​​“发布” → “创建应用程序包”​​。

  2. 选择 ​​“否”(不发布到 Microsoft Store)​​。

  3. 选择 ​​“Release”​​ 和 ​​“x64”​​(或 x86/ARM)。

  4. 点击 ​​“创建”​​,Visual Studio 会生成 .msix文件。

  5. ​输出位置​​:

    • 默认在 `MyApp.Package\AppPackages`下。

    • .msix文件可用于本地安装或企业分发。

打包时选择分发方法时,记得把启用自动更新给关掉,不然后面会多一个步骤配置更新设置


​6. 测试安装​

  1. ​双击 .msix文件​​ 安装。

  2. 或使用 PowerShell 安装:

    Add-AppxPackage -Path "C:\path\to\your-app.msix"

    然后用打包好后的msix文件重新上传MSIX 或 PWA 应用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值