如何在闪光中签署您的更新

Gau*_*wat 2 cocoa objective-c sparkle

任何人都可以告诉我如何签署闪存中的mac应用程序更新.我检查了https://github.com/sparkle-project/Sparkle/wiki/publishing-an-update

但是没有明白的想法.请告诉我

这是由Mac开发人员ID完成的吗?除了开发人员ID签署更新之外,还有什么其他方式.

Man*_*utz 5

实际上,正如您所指的文档中所指出的,您可以:

(A)使用Apple开发人员证书对您的应用程序进行编码 - 您应该使用Apple的签名工具和工作流程来实现.如果你想要命令行样式,那将是:

  • 代码签名: codesign -f -s "$identity" "$somepath"
  • 待遇: codesign --entitlements "$entitlements_path" --resource-rules "$tpl" -f -s "$identity" "$somepath"

你会发现更多有关苹果: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
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.