2

Sparkle で Mac アプリケーションの更新に署名する方法を教えてください。https://github.com/sparkle-project/Sparkle/wiki/publishing-an-updateを確認しました

しかし、明確なアイデアが得られませんでした。教えてください

これは Mac 開発者 ID によって行われますか? そして、更新に署名する開発者ID以外の他の方法は何ですか.

4

1 に答える 1

5

実際、参照するドキュメントで指摘されているように、次のいずれかを実行できます。

(A) Apple 開発者証明書を使用して、アプリケーションを共同設計します。これは、Apple の署名ツールとワークフローを使用して行う必要があります。コマンド ライン スタイルを使用する場合は、次の行になります。

  • コード設計:codesign -f -s "$identity" "$somepath"
  • 資格:codesign --entitlements "$entitlements_path" --resource-rules "$tpl" -f -s "$identity" "$somepath"

詳細については、Apple を参照してください: https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

または (B) コード署名できない/しない場合でも、DSA キーを使用して更新自体に署名できます。これ、リンクしたページに記載されています。ほとんどの場合、Sparkle が提供するスクリプトを使用する必要があります。ruby sign_update.rb path_to_your_update.zip path_to_your_dsa_priv.pem

そして、署名を appcast に追加する必要があります。

それをすべて自分でやりたい場合は、openssl を起動して何かを実行できますが、Sparkle のナイス スクリプトを使用してみませんか? ;)

# Generate keys
/usr/bin/openssl dsaparam 1024 < /dev/urandom > dsaparam.pem
/usr/bin/openssl gendsa dsaparam.pem -out dsa_priv.pem
/usr/bin/openssl dsa -in dsa_priv.pem -pubout -out dsa_pub.pem
rm dsaparam.pem

# Sign the update
/usr/bin/openssl dgst -sha1 -binary < "${dmgFinal}" | /usr/bin/openssl dgst -dss1 -sign "dsa_priv.pem" | /usr/bin/openssl enc -base64

それが役立つことを願っています。

于 2014-01-21T10:30:04.750 に答える