365平台怎么注册-365平台地址体育-365tiyu

使用 SignTool 对应用包进行签名 - MSIX

使用 SignTool 对应用包进行签名 - MSIX

SignTool 是一种命令行工具,用于对应用包或证书捆绑进行数字签名。 证书可由用户(用于测试目的)创建,也可以由公司(分发)颁发。 对应用包进行签名可让用户验证应用的数据在签名后尚未修改,同时确认已签名的用户或公司的标识。 SignTool 可以对加密或未加密的应用包和捆绑包进行签名。

重要

如果使用 Visual Studio 开发应用,建议使用 Visual Studio 向导创建和签名应用包。 有关详细信息,请参阅 使用 Visual Studio 打包 UWP 应用 和 使用 Visual Studio 从源代码打包桌面应用。

有关代码签名和证书的一般信息,请参阅 代码签名简介。

先决条件

打包的应用

若要详细了解如何手动创建应用包,请参阅 使用 MakeAppx.exe 工具创建应用包。

有效的签名证书

有关创建或导入有效签名证书的详细信息,请参阅 创建或导入用于包签名的证书。

SignTool.exe

根据 SDK 的安装路径,这是 SignTool 位于 Windows 10 电脑上的位置:

x86:C:\Program Files (x86)\Windows Kits\10\bin\\x86\SignTool.exe

x64:C:\Program Files (x86)\Windows Kits\10\bin\\x64\SignTool.exe

使用 SignTool

SignTool 可用于对文件进行签名、验证签名或时间戳、删除签名等。 为了对应用包进行签名,我们将重点介绍 sign 命令。 有关 SignTool 的完整信息,请参阅 SignTool 参考页。

确定哈希算法

使用 SignTool 对应用包或捆绑包进行签名时, SignTool 中使用的哈希算法必须与用于打包应用的算法相同。 例如,如果使用 MakeAppx.exe 使用默认设置创建应用包,则必须在使用 SignTool 时指定 SHA256,因为这是 MakeAppx.exe使用的默认算法。

若要找出打包应用时使用了哪些哈希算法,请提取应用包的内容并检查 AppxBlockMap.xml 文件。 若要了解如何解压缩/提取应用包,请参阅 从包或捆绑包中提取文件。 哈希方法采用 BlockMap 元素,具有以下格式:

HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">

下表显示了每个 HashMethod 值及其相应的哈希算法:

HashMethod 值

哈希算法

http://www.w3.org/2001/04/xmlenc#sha256

SHA256

http://www.w3.org/2001/04/xmldsig-more#sha384

SHA384

http://www.w3.org/2001/04/xmlenc#sha512

SHA512

注释

由于 SignTool 的默认算法是 SHA1( 在MakeAppx.exe中不可用),因此在使用 SignTool 时,必须始终指定哈希算法。

对应用包进行签名

完成所有先决条件并确定用于打包应用的哈希算法后,即可对其进行签名。

SignTool 包签名的常规命令行语法为:

SignTool sign [options]

用于对应用进行签名的证书必须是 .pfx 文件,或者安装在证书存储中。

若要使用 .pfx 文件中的证书对应用包进行签名,请使用以下语法:

SignTool sign /fd /a /f .pfx /p .appx

SignTool sign /fd /a /f .pfx /p .msix

请注意,此选项 /a 允许 SignTool 自动选择最佳证书。

如果证书不是 .pfx 文件,请使用以下语法:

SignTool sign /fd /n .appx

SignTool sign /fd /n .msix

或者,可以使用以下语法指定所需证书的 SHA1 哈希,而不是 <证书> 名称:

SignTool sign /fd /sha1 .appx

SignTool sign /fd /sha1 .msix

有关更多示例,请参阅 使用 SignTool 对文件进行签名

请注意,某些证书不使用密码。 如果证书没有密码,请从示例命令中省略“/p <密码>”。

使用有效证书对应用包进行签名后,即可将包上传到应用商店。 有关将应用上载和提交到应用商店的更多指南,请参阅 应用提交。