拓冰建站拓冰建站
首页 / 资讯中心 / 正文

LocalSend 上架 Microsoft Store 实战:MSIX 打包、签名到商店提交的 7 步流水线

LocalSend 上架 Microsoft Store 实战MSIX 打包、签名到商店提交的 7 步流水线【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend想在 Windows 端把 LocalSend 上架 Microsoft Store这条指南按“打包 → 签名 → 提交”的实际操作顺序把它拆成 7 个可执行步骤先备好构建环境再改对 AppxManifest 清单然后分别产出本地包、商店包和签名包最后走完 Partner Center 的提交流程。每个环节都给出仓库内真实存在的脚本路径和命令照着执行就能交付一个可上架的 MSIX。1️⃣ 搭好构建环境装上 msix 插件MSIX 是微软推出的现代化应用包格式本质是“带清单的压缩包 数字签名”。相比传统 EXE/MSI 安装包它的实际收益有四点安装容器化自带依赖不污染系统目录卸载按清单彻底清理不留残留文件包体必须签名安装前自动做完整性校验上架商店后由系统接管更新用户不用手动装补丁。环境上你需要Windows 10 1903 及以上清单里TargetDeviceFamily最低要求 10.0.19041.0、可用的 Flutter 工具链本项目用 fvm 锁定版本、Windows SDK 以及 VS2022 Developer PowerShell后面 Helper 包会用到 MakePri、MakeAppx 两个工具。先克隆仓库并引入打包插件git clone https://gitcode.com/GitHub_Trending/lo/localsend # 克隆项目源码 cd localsend/app # 进入 Flutter 应用目录 fvm flutter pub add msix # 添加 msix 打包插件开发依赖 fvm flutter pub get # 拉取全部依赖 fvm flutter doctor # 体检确认 Windows 构建链无报错2️⃣ AppxManifest 三类字段改对包才不会跑偏清单文件在support/build/msix/content/AppxManifest.xml真正要盯住的是三类内容。第一类是Identity节点它定义了“包是谁、什么版本”Identity NameLocalSend.App Version1.18.2.0 PublisherCNSignPath Foundation, OSignPath Foundation, CUS, SDE, LLewes ProcessorArchitecturex64 /Version对应app/pubspec.yaml里的version: 1.18.264x.y.z.构建号每次发版必须递增否则商店会拒收Publisher必须与签名证书的主题逐字一致这是新手最常踩的坑ProcessorArchitecture固定 x64如果要出 ARM 版需单独打包。第二类是权限声明。LocalSend 只声明了runFullTrust能力含义是按普通桌面程序运行、保留完整文件系统访问而不是被关进打包应用的沙箱。权限保持最小化审核也更省事。第三类是入口与扩展项Executablelocalsend_app.exe加EntryPointWindows.FullTrustApplication指定真正启动的可执行文件两个扩展中windows.startupTask提供开机自启默认关闭windows.shareTarget把“发送到 LocalSend”注册进 Windows 系统的共享面板支持任意文件类型及文本、URI 数据。另外uap10:AllowExternalContent设为 trueResources节点列了 29 种语言保证多语言环境显示正常。3️⃣ 本地先跑通生成第一个 MSIX 包在app目录依次执行fvm flutter clean # 清掉旧构建产物避免脏状态 fvm flutter pub get # 重新解析依赖 fvm dart run build_runner build -d # 代码生成i18n 文案等 fvm flutter pub run msix:create # 编译 Release 并打包出 msix产物落在build/windows/x64/runner/Release/localsend_app.msix。建议先双击安装本地版确认启动、托盘图标、局域网设备发现都正常再进入签名和商店流程——本地能装好的包签名后大概率也没问题。4️⃣ 商店版打包一个 --store 参数的差别support/scripts/compile_windows_msix_store.ps1就是把上面四步串起来的官方脚本额外做的事只有两件打包命令换成fvm flutter pub run msix:create --store按商店提交兼容的方式生成包体将产物改名搬运为LocalSend-XXX-windows-x86-64-store.msix其中 XXX 是留给你的版本号占位符。直接运行脚本即可不必手写命令。注意脚本开头有两行被注释掉的git reset/git pull那是 CI 场景下锁定最新提交用的本地手工执行时保持注释状态。5️⃣ 一键签名 MSIX证书路径与密码参数对外分发和商店上传都需要签名包脚本是support/scripts/compile_windows_msix_signed.ps1。它的逻辑进入app→ clean → pub get → 执行msix:create --certificate-path ../secrets/windows-tienisto.pfx --certificate-password $CERTIFICATE_PASSWORD→ 产物改名为LocalSend-XXX-windows-x86-64.msix。两个参数要特别说明-CERTIFICATE_PASSWORD在脚本里是必填项Mandatory$true漏传会直接拒绝执行PFX 证书按仓库约定放在secrets/目录脚本默认指向../secrets/windows-tienisto.pfx这个目录不要提交进版本库。还没有证书时可以先自签一张再导出 PFXNew-SelfSignedCertificate -Type Custom -Subject CNYourCompany -KeyUsage DigitalSignature -FriendlyName LocalSendDev # 生成自签名证书 Export-PfxCertificate -Cert Cert:\CurrentUser\My\thumbprint -FilePath .\secrets\localsend.pfx -Password (ConvertTo-SecureString 你的密码 -AsPlainText -Force) # 导出为 PFX自签证书满足本地分发与商店初验正式运营建议换成受信任的代码签名证书且 Subject 要与清单里的Publisher保持一致。6️⃣ 上传 Partner Center 并走完商店审核拿到商店版或签名版 msix 后商店侧按编号顺序走在 Microsoft Partner Center 注册开发者账号19 美元/年完成身份验证新建应用并选择“从应用包提交”上传 .msix商店会自动读取清单中的名称、版本、图标补全元数据应用描述 100 字符以上、截图至少 5 张1366×768 或 1920×1080仓库fastlane/metadata/android/en-US/images/phoneScreenshots/下的横版截图可作构图参考、应用图标 300×300、功能列表、隐私政策链接、支持联系方式一项都少不了设置定价可免费与地区可用性提交认证等待审核。审核侧留意三点核心功能必须可用LocalSend 的主场景是局域网传输确认仅本地网络模式下正常工作描述避免“最佳”“唯一”这类绝对化措辞网络权限用途在隐私说明里讲清楚。另外仓库还有support/scripts/compile_windows_msix_helper.ps1它先用 MakePri.exe 按support/build/msix/priconfig.xml生成资源映射再用 MakeAppx.exe pack 把support/build/msix/content打成 MSIX Helper 辅助包。脚本注释特别提醒资源映射名必须与 Identity Name 一致否则共享面板里的图标会显示为空白。这张启动画面来自support/build/msix/content/Images/目录其中按 100/125/150/200/400 五档缩放备齐了全部规格StoreLogo、Square150x150Logo、Square44x44Logo、LargeTile、SmallTile、Wide310x150Logo、BadgeLogo。更换图标时按同一套命名成比例替换即可只放单一尺寸会触发资源缺失。7️⃣ 打包失败排查按顺序定位五类报错报错时建议按下面的顺序定位前四项覆盖了绝大多数失败场景证书类错误核对 PFX 是否过期、密码是否传错、证书 Subject 是否与Identity的 Publisher 逐字一致资源缺失或图标空白检查清单中Images\...路径是否真实存在、Helper 包资源映射名是否等于 Identity Name版本冲突、商店拒收递增Identity第四位版本号并同步app/pubspec.yaml的构建号权限不足MakePri/MakeAppx 建议在管理员身份的 VS2022 Developer PowerShell 中运行本地可安装但共享面板没有“发送到 LocalSend”确认 shareTarget 扩展未被裁剪、Helper 包已随主包部署。上架之后更新很省心商店版本由系统自动推送你只需每次递增版本号重新提交一个新包。收尾要点✅ 本地包、商店包、签名包共用同一条流水线差异只在msix:create的参数无参数 /--store/--certificate-path。✅ 最高频的两个坑证书 Subject 与 Publisher 不一致、发版忘记递增版本号。✅ 证书与secrets/目录永远不要进版本库商店自动更新是上架后免费拿到的能力。【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门