问题标签 [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.
macos - Sparkle 框架:是否可以在更新之前创建以前版本的备份?
我正在使用Sparkle 框架在 macOS 应用程序中实现自动更新。如果可能的话,我希望在执行更新之前在某处备份应用程序的先前版本。使用 Sparkle 可以完成这样的事情吗?
macos - Sparkle 在更新后每次启动时都会显示消息“您的应用程序是最新的”
我正在使用 Sparkle 框架来更新我的 Mac 应用程序。更新成功完成。但是现在在每次启动应用程序时更新后,用户都会收到一条消息“您的应用程序是最新的”。如何在每次启动时禁用此消息?
我正在使用SUUpdater.shared.checkForUpdateInformation() 并使用代表
- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update;
- (void)updaterDidNotFindUpdate:(SUUpdater *)update;
当找到有效更新时,我将调用SUUpdater.shared.installUpdatesIfAvailable
这是在制造问题吗?
python - 如何将 sparkle updater 框架与使用 pyinstaller 构建的 python 应用程序集成
我们正在开发一个 python 应用程序,它将作为一个进程安装在 mac 上(这个应用程序没有 UI,它只是安装并启动进程)。我遇到了 mac 上大多数应用程序用于自动更新的sparkle 框架。
但我看到该框架是用 C 编写的。我们给客户的可分发文件是 mpkg。有什么方法可以通过将应用程序集成到 python 应用程序中来更新应用程序吗?
有没有我可以寻找的替代品?是否可以在 xcode 中编写一个单独的更新程序应用程序来更新我的应用程序(python 应用程序)?
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 的应用程序在其发行说明中包含链接时所做的那样。
有关如何使链接正常工作的任何建议?
谢谢!
xcode - Sparkle 的 Xcode 10 公证问题关于 Autoupdate.app 和 fileop 的强化运行时
由于 Apple 为在 Mac App Store 之外分发的应用程序引入了新的公证流程,当我尝试提交通过 CocoaPods 安装了 Sparkle 框架的公证申请时,我收到了这个错误。
该错误首先出现在我的应用程序(帮助应用程序和其他框架)中包含的所有包中,但是在我通过项目编辑器启用 Hardened Runtime 后,除了这两个提到的 Sparkle 包之外,它们都消失了。
我不太了解这个新公证的指导方针,因为它刚刚发布,我已经看过WWDC 2018关于它的演示文稿并且找不到任何其他文档。
任何想法如何为 Sparkle 的 Autoupdate.app 和 fileop 启用强化运行时?还是 Sparkle 不可能像启用沙盒一样,因为自动更新过程需要访问其他应用程序?
qt - 是否可以在 Qt(Golang 绑定)应用程序中使用 Sparkle?
我们使用: https ://github.com/therecipe/qt构建一个 Qt 应用程序。现在我们需要一个自动更新程序并找到了这个:https ://sparkle-project.org
看起来它正在被我机器上的多个应用程序使用:
一些文章向我展示了如何在 Qt 中使用它:
- http://www.discoversdk.com/knowledge-base/using-sparkle-in-qt
- https://github.com/sparkle-project/Sparkle/issues/1137#issuecomment-336667547
但它适用于 C++/Objective C 代码。
是否可以与 Golang 一起使用?如果是这样,怎么做?
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
从我的钥匙串中导出?
qt - 如何从 NSApplication 事件循环中启动 Go 的 main 函数?
我正在尝试将Sparkle添加到我的 Qt(Go 绑定)应用程序中,以使其可以自动更新。
这是代码:https ://github.com/sparkle-project/Sparkle/blob/master/Sparkle/SUUIBasedUpdateDriver.m#L104
作者指出的原因是NSAlert
需要一个运行循环才能工作。
我找到了一些文档:
- https://wiki.qt.io/Application_Start-up_Patterns
- https://developer.apple.com/documentation/appkit/nsapplication
因此,据我了解,我们必须NSApplication
在创建QApplication
.
我的 Go 的主要功能是这样的:
问题:如何从NSApplicationMain
事件循环中启动 Go 的 main 函数?
objective-c - Sparkle checkForUpdatesInBackground 在网络服务器上没有请求
在我的命令行应用程序中,调用 时[[SUUpdater sharedUpdater] checkForUpdatesInBackground]
,Sparkle 项目不会在我的网络服务器上放置 HTTPS 请求。我想要一个checkForUpdatesInBackground
成功的电话,所以我知道我的设置是正确的。我正在通过 HTTPS 使用 Nginx 网络服务器,并查看该服务器的日志以确保正在请求 appcast.xml 文件。
我试过调试Sparkle框架,调用后发现checkForUpdatesInBackground
,框架确实调用dispatch_async
了here。这给出了以下堆栈跟踪。
我的信息列表:
我的代码:
为了等待请求结束,Sparkle 确实停止了我的应用程序的终止。在我的网络服务器上,我没有看到正在请求 appcast.xml,Sparkle 也没有显示包含任何更新信息的窗口。