首页 文章

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

提问于
浏览
2

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

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

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

1 回答

  • 5

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

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

    • codesigning: 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密钥对更新本身进行签名 . 这个 is 记录在您链接的页面中 . 差不多,你应该使用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
    

    希望有所帮助 .

相关问题