CLI Tizen build-web 显示无效密码错误

Fie*_*uid 2 javascript command-line-interface tizen tizen-web-app

我正在尝试从 CLI (Arch linux) 为 Samsung Active 2 智能手表构建 tizen Web 应用程序,但不断收到此错误:

[ERROR] Main.java(195) - org.tizen.common.sign.exception.CertificationException: Invaild password
Run Code Online (Sandbox Code Playgroud)

我遵循了本手册:Tizen CLI 手册

我用来构建包的命令是:

tizen package -t wgt -s CertificateName  -- .
Run Code Online (Sandbox Code Playgroud)

其中,CertificateName 是我使用 CLI 和以下命令创建的现有证书的名称:

tizen certificate -a CertificateName -p password -n Name -e fake@email.com
Run Code Online (Sandbox Code Playgroud)

生成证书后,我使用以下命令将其添加到安全配置文件中:

tizen security-profiles add -n author -a /home/user/tizen-studio-data/keystore/author/author.p12 -p password
Run Code Online (Sandbox Code Playgroud)

之后,我使用以下命令将信任锚添加到项目中:

tizen trust-anchor set -c /home/user/tizen-studio-data/keystore/author/author.p12 -s true -- projectfolder
Run Code Online (Sandbox Code Playgroud)

如何修复无效密码错误?谢谢!

Cra*_*uge 7

当您调用 时tizen package,应用程序会检查您设置的默认 profile.xml 文件的证书条目。它应该看起来像这样:

<profileitem ca="<tizen>/tools/certificate-generator/certificates/developer/tizen-developer-ca.cer" distributor="0" key="<tizen-data>/keystore/author/<cert>.p12" password="<tizen-data>/keystore/author/<cert>.pwd" rootca=""/>

<profileitem ca="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-ca.cer" distributor="1" key="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12" password="<tizen-data>/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.pwd" rootca=""/>
Run Code Online (Sandbox Code Playgroud)

实际上,密码并不存储在 *.pwd 文件中,而是Login存储在gnome-keyring. 为了检索之前通过调用 存储的密码tizen security-profiles addtizen package请调用:

<tizen>/tools/certificate-encryptor/secret-tool lookup --label=tizen-studio

通过使用上面的命令,您将看到一个错误,提供的信息比tizan package. 在您的情况下,gnome-keyring可能未安装或Login密钥环可能未正确初始化。

解决方案#1

要解决此问题,最简单的方法是安装/重新安装gnome-keyring软件包并重新启动(或重新启动 gnome-keyring-daemon):

pacman -S gnome-keyring
reboot
Run Code Online (Sandbox Code Playgroud)

这应该添加Login密钥环,如果没有,您可以使用seahorse或手动添加它echo <PASSWORD> | gnome-keyring-daemon --unlock

最后,使用 重新添加您的个人资料tizen security-profiles add。您可以查看有关远程/docker 配置的Tizen 博客文章。

解决方案#2

如果您不想使用 gnome-keyring,您可以尝试直接在profiles.xml 文件中添加密码,如Tizen 论坛所示,如下所示:

<profileitem ca="<tizen>/tools/certificate-generator/certificates/developer/tizen-developer-ca.cer" distributor="0" key="<tizen-data>/keystore/author/<cert>.p12" password="<strong_password>" rootca=""/>

<profileitem ca="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-ca.cer" distributor="1" key="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12" password="tizenpkcs12passfordsigner" rootca=""/>
Run Code Online (Sandbox Code Playgroud)