在 Sparkle 的 appcast 中保留旧版本是否可取?

Is it advisable to keep old versions in Sparkle's appcast?

一些使用 Sparkle 框架的应用程序开发人员在他们的 appcast 中保留旧版本(通过使用多个 <item> 标签)。

我认为如果 Sparkle 在自上次更新以来发生多次更新时显示中间版本的发行说明(例如,用户从版本 4.0.0 升级到 4.0.5),我认为这种做法是有意义的。然而,Sparkle 出于某种原因并没有这样做。

那你为什么要在 appcast 中保留旧版本?

您可以实现自己的版本比较机制,只需return一个自己的SUVersionComparisonProtocol委托回调

- (id<SUVersionComparison>)versionComparatorForUpdater:(SUUpdater *)updater;

保留旧的 appcast 项目的一个动机是支持旧的 macOS 版本,因为随着时间的推移,所需的 macOS 版本逐渐增加以进行更新。最新项目的 <sparkle:minimumSystemVersion> 过高,但一些较旧的项目仍然适用。然后,仍会提示使用旧版 macOS 的用户下载其 macOS 允许的最新更新,即使这不是最新更新。