Sparkle - sign_update через ssh: "Невозможно получить доступ к требуемому ключу в связке ключей"?
- Искорка-1.21.0
- OS X 10.11
generate_appcast
не работает с .dmg
файл:
Ошибка создания приложения из каталога /Users/quanta/Downloads/updates Ошибка 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
из моего брелка?
1 ответ
Причина в login.keychain
заблокирован при запуске через ssh.
Мы должны разблокировать его перед запуском sign_update
, Поместите следующую команду в скрипт:
#!/bin/sh
security unlock-keychain -p "$pa55w0rd" $HOME/Library/Keychains/login.keychain