gpt4 book ai didi

macos - 使用 sparkle 更新(可悲的是已经分发)沙盒 OSX 应用程序

转载 作者:行者123 更新时间:2023-12-03 20:27:51 27 4
gpt4 key购买 nike

在一阵不假思索的热情中,我对我的应用程序进行了沙盒化,然后进行了 Shiny 更新。由于该应用程序只有对用户选择的文件(和音乐目录)的读/写访问权限,我现在无法更新我自己的二进制文件。哎呀。

在过去一年左右的时间里,这与 Andy Matuschak 进行了广泛的辩论 (https://github.com/sparkle-project/Sparkle/pull/165),但虽然提出的解决方案“几乎足够好”,但没有阐明已经分发了非沙盒应用程序的问题。

哦,看来我一直在使用闪光分布的“磁盘镜像”方法可能是相关的。

我能想到的唯一解决方案是发布一个 Shiny 的更新,它只会向用户显示一条消息,告诉他们手动下载。有没有人有更好的想法?

-戴夫

最佳答案

Andy Matuschak 似乎表明 Sparkle 实际上可以为您优雅地处理“仅下载”。用他自己的话来说,就是离开<enclosure>出你的 <item>并添加一个 <sparkle:version>2.0</sparkle:version>元素作为 <item> 的子元素.

在这里阅读他的评论:https://github.com/sparkle-project/Sparkle/issues/227#issuecomment-13192723

就像之前的费马一样,他遗漏了一条信息。但与定理不同的是,我们可以访问 Sparkle 源代码,特别是 SUAppcastItem.m .感谢代码,我发现丢失的部分是 <link>标签。这是一个示例应用程序:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>FooBar</title>
<link>http://foobar.com/appcast.xml</link>
<description>Most recent changes with links to updates.</description>
<language>en</language>
<item>
<title>FooBar 2.0</title>
<sparkle:releaseNotesLink>http://foobar.com/release-notes-special.html</sparkle:releaseNotesLink>
<sparkle:minimumSystemVersion>10.9.0</sparkle:minimumSystemVersion>
<pubDate>2014-04-14T18:40:44+02:00</pubDate>
<sparkle:version>2013</sparkle:version>
<sparkle:shortVersionString>2.0</sparkle:shortVersionString>
<link>http://foobar.com/release-notes-special.html</link>
</item>
</channel>
</rss>

在接收该应用程序且无法以其他方式更新的沙盒应用程序中,“安装更新”消失了,取而代之的是一个“了解更多”按钮,该按钮会将用户带到该 <link> 中的 URL。 .这是提供下载说明的好地方。

在您的应用程序的下一个版本中,您可以为应用程序使用不同的 URL,以便上述应用程序仅适用于旧版本(假设您修复了一些问题,现在使用 Sparkle 的非官方 XPC 技巧)。

关于macos - 使用 sparkle 更新(可悲的是已经分发)沙盒 OSX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com