为通用Windows平台导出

导出一个 .appx 包没有额外的要求,它可以作为Windows应用程序被安装,或提交到Windows应用商店。也可以在任何平台上,而不仅仅是从Windows上,导出UWP软件包。

However, if you want to install and run the app, you need to sign it with a trusted signature. Godot supports automatic signing of packages with external tools.

此外,请确保导出包时,设置的发布者名称,与证书上使用的名称相匹配。

Xbox One的限制

UWP文档 中所述:

  • 提交为 App
    • 可用内存为1GB
    • 共享2-4个CPU核
    • 共享GPU能力(45%)
  • 提交为 游戏 (通过 Xbox Live创意者计划
    • 可用内存为5GB
    • 4个专用CPU内核和2个共享CPU内核
    • 独享GPU能力(100%)
  • 超过这些内存限制将导致分配失败,并且应用程序将崩溃。

创建签名证书

这需要Windows SDK附带的 MakeCert.exePvk2Pfx.exe 工具。如果您使用Visual Studio,则可以打开其中一个开发者命令提示符,因为它附带了这些工具,并且它们可以在路径中定位。

您可以从 Microsoft的文档 获得更详细的说明。

首先,运行 MakeCert 来创建私钥:

MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e expirationDate /sv MyKey.pvk MyKey.cer

其中 publisherName 匹配包的发布者名称,expirationDate` `是 ``mm/dd/yyyy 格式。

接下来,使用 Pvk2Pfx.exe 创建个人信息交换(.pfx)文件:

Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]

如果未使用 / po 参数指定密码,则PFX将具有与私钥相同的密码。

您还需要信任此证书才能安装您的应用。以管理员身份打开命令提示符并运行以下命令:

Certutil -addStore TrustedPeople MyKey.cer

Setting up automatic signing

To setup automatic signing on export you need to go to Editor Settings > Export > Uwp. From there you need to click on the folder for Signtool, and navigate to the SignTool.exe file on your computer.

../../../_images/UWP_sign_tool.png

After setting that up close the editor settings, go to Project > Export, and select the UWP preset. Under the Signing options click on the folder next to Certificate and go to the certificate file. Then enter the pfxPassword in the password field.

../../../_images/UWP_export_signing.png

Your project will now be automatically signed on export.

If you want to sign an exported app manually run SignTool.exe and use the following command.

SignTool sign /fd SHA256 /a /f MyKey.pfx /p pfxPassword package.appx

安装包

从Windows 10周年更新开始,只需双击Windows资源管理器中的 .appx 文件即可安装软件包。

也可以使用 Add-AppxPackage PowerShell cmdlet进行安装。

注解

如果要更新已安装的应用程序,则必须更新新软件包上的版本号或首先卸载以前的软件包。