- Sparkle-1.21.0
- 操作系统 X 10.11
generate_appcast
不适用于.dmg
文件:
从目录 /Users/quanta/Downloads/updates 生成 appcast 时出错 Error Domain=SUSparkleErrorDomain Code=1001 “在 /Users/quanta/Downloads/updates 中找不到可用的档案” UserInfo={NSLocalizedDescription=在 /Users/quanta/ 中找不到可用的档案下载/更新}
所以,我必须appcast.xml
手动创建:
<?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
,我选择“始终允许”,所以下次它不会要求输入密码:
$./bin/sign_update /path/to/x.dmg
sparkle:edSignature="x==" length="105562628"
但是通过 ssh 运行时仍然出现此错误:
$ ~/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
用来做同样的事情:https ://github.com/sparkle-project/Sparkle/blob/master/bin/old_dsa_scripts/sign_update
但是如何dsa_priv.pem
从我的钥匙串中导出?