我已经构建了一个Windows 10 UWP Cordova应用程序,现在正在尝试对其进行签名。我已经有一个证书用于其他地方(用于签署.net程序集),因此我想在这个应用程序签名中使用同一个证书。
当我使用signtool.exe时,我会收到以下错误消息...
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2146958839/0x80080209)
按照建议,在事件日志中查看此处,我没有看到任何错误,只有两条信息消息。
读取器已成功创建,无需清单验证。
我已确保AppxManifest.xml文件中的Publisher
字段与证书中的主题匹配。
在此处查看,我发现这被描述为
0x80080209-APPX_E_INVALID_SIP_CLIENT_DATA
Description : The SIP_SUBJECTINFOstructure used to sign the package didn’t
contain the required data
有人知道这是什么意思吗?
[更新1]
在上述失败后,我尝试根据此网页的说明创建新证书。
我使用了以下内容。
# create
New-SelfSignedCertificate -Type Custom -Subject "CN=My Company Pty Ltd, O=My Company Pty Ltd, C=AU" -KeyUsage DigitalSignature -FriendlyName mycert_uwp -CertStoreLocation "Cert:\LocalMachine\My"
# get info
Set-Location Cert:\LocalMachine\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint
# export
$pwd = ConvertTo-SecureString -String password123 -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\LocalMachine\My\17BBBBBB2DC49F550671AF3E72120C88E2333333" -FilePath h:\0\mycert_uwp.pfx -Password $pwd
一切似乎都正常工作。
在我的AppxManifest.xml文件中,我有...
<Identity Name="com.mycompany.myapp" Publisher="CN=My Company Pty Ltd, O=MyCompany Pty Ltd, C=AU" Version="1.0.1.1" ProcessorArchitecture="x86" />
当我使用上述方法时,仍然会出现相同的错误。
[更新2]
我正在使用的 signtool 命令为:
signtool sign /fd SHA256 /a /f myapp_uwp.pfx /p may password c:\dev\myapp\platforms\windows\build\windows\release\x86\win10\Upload\CordovaApp.Windows10_1.0.1.1_x86\CordovaApp.Windows10_1.0.1.1_x86.appx
如此处所述。
我还尝试使用SHA384
和SHA512
。还有建议尝试使用/debug
,但是我收到一个错误提示/debug
是无效选项。
[更新3] 看起来是证书的问题。我试图通过Visual Studio(打包,选择证书)使用它,但在输入密码后出现以下错误:
.. 但我已经遵循了这里的说明(并进行了三重检查)。
这些说明有误吗?