问题标签 [sparkle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
67 浏览

macos - Sparkle 框架:是否可以在更新之前创建以前版本的备份?

我正在使用Sparkle 框架在 macOS 应用程序中实现自动更新。如果可能的话,我希望在执行更新之前在某处备份应用程序的先前版本。使用 Sparkle 可以完成这样的事情吗?

0 投票
1 回答
224 浏览

macos - Sparkle 在更新后每次启动时都会显示消息“您的应用程序是最新的”

我正在使用 Sparkle 框架来更新我的 Mac 应用程序。更新成功完成。但是现在在每次启动应用程序时更新后,用户都会收到一条消息“您的应用程序是最新的”。如何在每次启动时禁用此消息?

我正在使用SUUpdater.shared.checkForUpdateInformation() 并使用代表

- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update;

- (void)updaterDidNotFindUpdate:(SUUpdater *)update;

当找到有效更新时,我将调用SUUpdater.shared.installUpdatesIfAvailable

这是在制造问题吗?

0 投票
0 回答
163 浏览

python - 如何将 sparkle updater 框架与使用 pyinstaller 构建的 python 应用程序集成

我们正在开发一个 python 应用程序,它将作为一个进程安装在 mac 上(这个应用程序没有 UI,它只是安装并启动进程)。我遇到了 mac 上大多数应用程序用于自动更新的sparkle 框架。

但我看到该框架是用 C 编写的。我们给客户的可分发文件是 mpkg。有什么方法可以通过将应用程序集成到 python 应用程序中来更新应用程序吗?

有没有我可以寻找的替代品?是否可以在 xcode 中编写一个单独的更新程序应用程序来更新我的应用程序(python 应用程序)?

0 投票
1 回答
188 浏览

html - 如何使 Sparkle 发行说明中的​​链接打开默认浏览器?

我在 macOS 应用程序中使用 Sparkle 进行更新,并在 appcast.xml 标记中传递发行说明:

<sparkle:releaseNotesLink>https://example.com/release-notes.html</sparkle:releaseNotesLink>

发行说明包含 Sparkle 显示的 HTML,以及指向我网站上有关该版本的更多信息的链接,例如:

<p>This is our latest update. <a href="https://example.com/learn-more/" target="_blank">Learn more</a></p>

但是当我点击链接时,什么也没有发生。我希望它能够打开默认的系统浏览器,就像其他使用 Sparkle 的应用程序在其发行说明中包含链接时所做的那样。

有关如何使链接正常工作的任何建议?

谢谢!

0 投票
1 回答
652 浏览

xcode - Sparkle 的 Xcode 10 公证问题关于 Autoupdate.app 和 fileop 的强化运行时

由于 Apple 为在 Mac App Store 之外分发的应用程序引入了新的公证流程,当我尝试提交通过 CocoaPods 安装了 Sparkle 框架的公证申请时,我收到了这个错误。

强化运行时错误

该错误首先出现在我的应用程序(帮助应用程序和其他框架)中包含的所有包中,但是在我通过项目编辑器启用 Hardened Runtime 后,除了这两个提到的 Sparkle 包之外,它们都消失了。

启用强化运行时

我不太了解这个新公证的指导方针,因为它刚刚发布,我已经看过WWDC 2018关于它的演示文稿并且找不到任何其他文档。

任何想法如何为 Sparkle 的 Autoupdate.app 和 fileop 启用强化运行时?还是 Sparkle 不可能像启用沙盒一样,因为自动更新过程需要访问其他应用程序?

0 投票
1 回答
198 浏览

qt - 是否可以在 Qt(Golang 绑定)应用程序中使用 Sparkle?

我们使用: https ://github.com/therecipe/qt构建一个 Qt 应用程序。现在我们需要一个自动更新程序并找到了这个:https ://sparkle-project.org

看起来它正在被我机器上的多个应用程序使用:

一些文章向我展示了如何在 Qt 中使用它:

但它适用于 C++/Objective C 代码。

是否可以与 Golang 一起使用?如果是这样,怎么做?

0 投票
1 回答
379 浏览

macos - Sparkle - 通过 ssh 的 sign_update:“无法访问钥匙串中所需的密钥”?

  • Sparkle-1.21.0
  • 操作系统 X 10.11

generate_appcast不适用于.dmg文件:

从目录 /Users/quanta/Downloads/updates 生成 appcast 时出错 Error Domain=SUSparkleErrorDomain Code=1001 “在 /Users/quanta/Downloads/updates 中找不到可用的档案” UserInfo={NSLocalizedDescription=在 /Users/quanta/ 中找不到可用的档案下载/更新}

所以,我必须appcast.xml手动创建:

测试时出现此错误:

包的 DSA 签名验证失败。该更新包含一个安装程序包,并且所有安装程序包都必须有有效的 DSA 签名。更新将被拒绝。使用有效的 DSA 密钥对安装程序进行签名,或者改用 .app 包更新。

第一次运行sign_update,我选择“始终允许”,所以下次它不会要求输入密码:

但是通过 ssh 运行时仍然出现此错误:

我知道我们可以openssl用来做同样的事情:https ://github.com/sparkle-project/Sparkle/blob/master/bin/old_dsa_scripts/sign_update

但是如何dsa_priv.pem从我的钥匙串中导出?

0 投票
1 回答
367 浏览

macos - 运行最新版本时没有“最新”消息?

我正在尝试将Sparkle与 Qt(Go 绑定)应用程序一起使用。

火花.m:

sparke.go:

在 中main.go,我添加了一个菜单来调用该函数:

有更新时它工作正常:下载、解压、安装、重新启动…… 在此处输入图像描述 但是当运行最新版本时,单击“检查更新……”菜单并没有任何反应。没有弹出说我们是最新的,像这样: 在此处输入图像描述 在控制台中,我只看到这个:

appcast.xml:

信息列表:

我错过了什么?

0 投票
1 回答
391 浏览

qt - 如何从 NSApplication 事件循环中启动 Go 的 main 函数?

我正在尝试将Sparkle添加到我的 Qt(Go 绑定)应用程序中,以使其可以自动更新。

问题:运行最新版本时没有弹出对话框

这是代码:https ://github.com/sparkle-project/Sparkle/blob/master/Sparkle/SUUIBasedUpdateDriver.m#L104

作者指出的原因是NSAlert需要一个运行循环才能工作。

我找到了一些文档:

因此,据我了解,我们必须NSApplication在创建QApplication.

我的 Go 的主要功能是这样的:

问题:如何从NSApplicationMain事件循环中启动 Go 的 main 函数?

0 投票
1 回答
158 浏览

objective-c - Sparkle checkForUpdatesInBackground 在网络服务器上没有请求

在我的命令行应用程序中,调用 时[[SUUpdater sharedUpdater] checkForUpdatesInBackground],Sparkle 项目不会在我的网络服务器上放置 HTTPS 请求。我想要一个checkForUpdatesInBackground成功的电话,所以我知道我的设置是正确的。我正在通过 HTTPS 使用 Nginx 网络服务器,并查看该服务器的日志以确保正在请求 appcast.xml 文件。

我试过调试Sparkle框架,调用后发现checkForUpdatesInBackground,框架确实调用dispatch_asynchere。这给出了以下堆栈跟踪。

我的信息列表:

我的代码:

为了等待请求结束,Sparkle 确实停止了我的应用程序的终止。在我的网络服务器上,我没有看到正在请求 appcast.xml,Sparkle 也没有显示包含任何更新信息的窗口。