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
Другие вопросы по тегам