谁能告诉我如何在 sparkle 中为 mac 应用程序签名更新。我检查了https://github.com/sparkle-project/Sparkle/wiki/publishing-an-update
但没有得到任何明确的想法。请告诉我
这是由 Mac 开发人员 ID 完成的吗?除了签名更新的开发人员 ID 之外,还有哪些其他方式。
谁能告诉我如何在 sparkle 中为 mac 应用程序签名更新。我检查了https://github.com/sparkle-project/Sparkle/wiki/publishing-an-update
但没有得到任何明确的想法。请告诉我
这是由 Mac 开发人员 ID 完成的吗?除了签名更新的开发人员 ID 之外,还有哪些其他方式。
实际上,正如您所指的文档中所指出的,您可以:
(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 nice 脚本呢?;)
# 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
希望有帮助。