我已经构建了一个Windows 10 UWP cordova应用程序,现在正在尝试签名。我已经有了一个在其他地方使用的证书(用于签署.net程序集),所以我想我会在申请签名时使用相同的证书。
当我使用signtool.exe时,出现以下错误..
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//Your code here
NotificationCenter.default.addObserver(self, selector: #selector(postTokenAcquisitionScript), name: NSNotification.Name(rawValue: "tokenAcquired"), object: nil)
}
func applicationWillEnterForeground(_ application: UIApplication) {
//Your code here
NotificationCenter.default.addObserver(self, selector: #selector(postTokenAcquisitionScript), name: NSNotification.Name(rawValue: "tokenAcquired"), object: nil)
}
func applicationDidEnterBackground(_ application: UIApplication) {
//Your code here
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "tokenAcquired"), object: nil)
}
按照建议here查看事件日志,我发现只有2条信息消息没有错误
成功创建了阅读器,但未进行清单验证。
我确保AppxManifest.xml文件中的SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2146958839/0x80080209)
字段与证书中的主题相匹配。
看here,我认为这被描述为
Publisher
有谁知道这意味着什么?
[UPDATE1]
在上述失败后,我尝试按照here概述创建新证书。
我使用了以下内容。
0x80080209-APPX_E_INVALID_SIP_CLIENT_DATA
Description : The SIP_SUBJECTINFOstructure used to sign the package didn’t
contain the required data
一切似乎都很好。
在我的AppxManifest.xml中,我有......
# 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
使用上述内容时仍然会出现相同的错误。
[更新2]
我使用的signtool命令是
<Identity Name="com.mycompany.myapp" Publisher="CN=My Company Pty Ltd, O=MyCompany Pty Ltd, C=AU" Version="1.0.1.1" ProcessorArchitecture="x86" />
概述here。
我也尝试过使用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
是无效选项。
[UPDATE3] 它似乎是证书。我试图通过Visual Studio(打包,选择证书)使用,但得到以下错误(输入密码后)
..和yets我已按照说明here(和三重检查)。
这些说明是错的吗?
答案 0 :(得分:0)
以防万一其他人遇到类似的问题(签名时出现0x80080209错误),较新版本的签名工具(Windows 10 SDK中的那个)对我有用。
答案 1 :(得分:0)
我有一个类似的问题:
Error information: "Error: SignerSign() failed." (-2146958839/0x80080209)
但是没有日志条目,清单是正确的。
我们的解决方法是使用msvc2017而不是msvc2015进行编译。