我希望appcast pubDate xml元素允许我指定我的应用程序不能考虑更新,除非当前日期是发布日期(pubDate)或更高版本 .
这是一个示例appcast,其中包含item元素中的pubDate元素:
<item>
<title>Version 2.0 (2 bugs fixed; 3 new features)</title>
<sparkle:releaseNotesLink>http://you.com/app/2.0.html</sparkle:releaseNotesLink>
<pubDate>Wed, 09 Jan 2006 19:20:11 +0000</pubDate>
<enclosure url="http://you.com/app/Your Great App 2.0.zip" sparkle:version="2.0" length="1623481" type="application/octet-stream" sparkle:dsaSignature="BAFJW4B6B1K1JyW30nbkBwainOzrN6EQuAh" />
</item>
这是从Sparkle的网站复制的:https://github.com/sparkle-project/Sparkle/blob/0ed83cf9f2eeb425d4fdd141c01a29d843970c20/Sample%20Appcast.xml
所以顺序是这样的:
-
我将我更新的应用程序 - myapp v1.1 - 复制到星期一的更新Web服务器
在我的更新服务器上 -
,我还将pubDate设置为星期三(采用适当的RFC 822格式)
-
周二,有人运行myapp v1.0并尝试使用myapp v1.0中捆绑的sparkle appcast将myapp更新为可用的任何内容
-
在那一点上,sparkle比较版本并看到更新应该发生,但它仍然只是周二如此闪耀不会提供更新选项,直到他再次尝试周三(或更晚)
-
星期三到来,用户再次尝试更新myapp v1.0,这次它可以工作,因为版本可以更新,日期是星期三 .
这是pubDate Sparkle元素的目的吗?
除了版本号之外,Sparkle是否使用pubDate来帮助确定是否应该进行更新?
持有一个应用程序从更新直到某个日期是我想要的,但我发现pubDate似乎并没有为我这样做 .
我无法在Sparkle文档中找到pubDate的用途参考:https://github.com/sparkle-project/Sparkle/wiki
1 回答
如你所知,Sparkle使用RSS列出机箱标签内的应用程序更新(这就是他们所谓的"appcasting" - 见:http://connectedflow.com/appcasting/)
pubDate元素并不特定于Sparkle - 它只是RSS规范的一部分(参见http://www.w3schools.com/rss/rss_tag_pubdate.asp),并且可能/应该由通用rss读者用于按时间顺序呈现项目/条目 .
就我自己而言,Sparkle本身只使用pubDate做了一件事 - 并且它正在订购更新候选者(https://github.com/sparkle-project/Sparkle/blob/master/SUAppcast.m#L218)
现在,您可以通过子类化SUUpdater进一步自定义Sparkle选择符合条件的更新的方式:请参阅https://github.com/sparkle-project/Sparkle/wiki/bundles#wiki-subclassing-suupdater,特别是
bestValidUpdateInAppcast
方法:https://github.com/sparkle-project/Sparkle/wiki/customization在那里,您应该能够进一步处理项目并实现您的行为 .