首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ssh实现的sign_update:“无法访问密钥链中所需的密钥”?

通过ssh实现的sign_update:“无法访问密钥链中所需的密钥”?
EN

Stack Overflow用户
提问于 2018-12-10 10:06:39
回答 1查看 462关注 0票数 0
  • Sparkle-1.21.0
  • OS X 10.11

generate_appcast不适用于.dmg文件:

从目录/User/quanta/ Domain=SUSparkleErrorDomain / Code=1001生成应用程序时出错--Code=1001“在/User/quanta/下载/更新中找不到可用的档案”UserInfo={NSLocalizedDescription=No可用档案出现在/User/NSLocalizedDescription=No/Download/updates}

因此,我必须手动创建appcast.xml

代码语言:javascript
复制
<?xml version="1.0" standalone="yes"?>
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
    <channel>
        <title>x</title>
        <item>
            <title>1.0.0.2891</title>
            <pubDate>Thu, 06 Dec 2018 17:25:26 +0800</pubDate>
            <sparkle:minimumSystemVersion>10.7</sparkle:minimumSystemVersion>
            <enclosure url="https://example.com/x.dmg" sparkle:version="1.0.0.2891" sparkle:shortVersionString="1.0.0.2891" length="86454539" type="application/octet-stream"/>
        </item>
    </channel>
</rss>

在测试时得到此错误:

包的DSA签名验证失败。更新包含一个安装程序包,所有安装程序包都必须有有效的DSA签名。更新将被拒绝。使用有效的DSA密钥对安装程序进行签名,或者使用.app包更新。

第一次运行sign_update时,我选择“始终允许”,因此它下次不会询问密码:

代码语言:javascript
复制
$./bin/sign_update /path/to/x.dmg
sparkle:edSignature="x==" length="105562628"

但是,在通过ssh运行时仍然会出现这个错误:

代码语言:javascript
复制
$ ~/Downloads/Sparkle-1.21.0/bin/sign_update /path/to/x.dmg
ERROR! Unable to access required key in the Keychain -25308 (you can look it up at osstatus.com)

我知道我们可以使用openssl来做同样的事情:update

但是如何从我的密钥链导出dsa_priv.pem呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 05:06:37

原因是login.keychain在通过ssh运行时被锁定。

在运行sign_update之前,我们必须解锁它。将以下命令放入脚本中:

代码语言:javascript
复制
#!/bin/sh

security unlock-keychain -p "$pa55w0rd" $HOME/Library/Keychains/login.keychain
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53703363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档