Sparkle - sign_update через ssh: «Невозможно получить доступ к требуемому ключу в связке ключей»? - PullRequest
0 голосов
/ 10 декабря 2018
  • Sparkle-1.21.0
  • OS X 10.11

generate_appcast не работает с .dmg файлом:

Ошибка создания appcast из каталога / 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 Ответ

0 голосов
/ 11 декабря 2018

Причина в том, что login.keychain заблокирован при запуске через ssh.

Мы должны разблокировать его перед запуском sign_update.Вставьте следующую команду в скрипт:

#!/bin/sh

security unlock-keychain -p "$pa55w0rd" $HOME/Library/Keychains/login.keychain
...