我第一次使用Sparkle,并且遇到了麻烦。当我检查更新时,它会正确检测到更新版本,下载它,取消归档,然后给出以下错误:
更新错误! 提取存档时发生错误。请稍后再试。
输出日志显示以下详细信息:
Sparkle: The appcast item for the update has no DSA signature.
The update will be rejected, because both DSA and Apple Code
Signing verification failed.
我的存档名为" MyApp.pkg.zip",仅包含" MyApp.pkg"。它有一个苹果ID数字签名。我通过手动下载zip,解压缩,运行PKG,然后单击第一个安装页面上的锁定图标来验证这一点。
PKG是使用Packages创建的。
我的appcast有以下内容:
<enclosure url="http://thedomain/MyApp.pkg.zip" sparkle:version="1.0.0.990" length="5752133" type="application/octet-stream" />
我的.app也具有与.pkg相同的Apple ID签名,但我认为在自动更新过程的这一点上它并不重要。
所以我的问题是:我做错了什么?当PKG清楚地进行数字签名时,Sparkle如何断定数字签名是不够的?
答案 0 :(得分:0)
您是否有签署.app和.pkg的不同证书?当您在Apple的证书网站上创建证书时,您必须选择一种或另一种类型。
您需要拥有两个证书,一个用于签署.app,另一个用于签署.pkg。