Dav*_*ece 7 macos sandbox sparkle
在一阵非思维的热情中,我沙盒,然后闪耀更新我的应用程序.由于应用程序只对用户选择的文件(和音乐目录)具有读/写访问权限,因此我现在无法更新自己的二进制文件.哎呀.
在过去一年左右的时间里,Andy Matuschak对此进行了广泛的讨论(https://github.com/sparkle-project/Sparkle/pull/165)但是虽然建议的解决方案"已经足够好"了,但是没有发光关于已经分发非沙盒应用程序的问题.
哦,似乎我一直在使用闪存分布的'磁盘映像'方法.
我能想到的唯一解决方案就是发布一个闪亮的更新,它只是向用户提供一条消息,告诉他们手动下载.有没有人有更好的想法?
戴夫
Andy Matuschak 似乎表明 Sparkle 实际上可以为您优雅地处理“仅下载”。用他自己的话说,只需将 the 排除<enclosure>在 your 之外<item>并添加一个<sparkle:version>2.0</sparkle:version>元素作为 the 的子元素<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>
Run Code Online (Sandbox Code Playgroud)
在接收该 appcast 且无法更新的沙箱应用程序中,“安装更新”消失了,取而代之的是“了解更多”按钮,该按钮会将用户带到该<link>. 这是一个提供下载说明的好地方。
在应用程序的下一个版本中,您可以为 appcast 使用不同的 URL,以便上述 appcast 仅适用于旧版本(假设您修复了一些问题,现在使用 Sparkle 的非官方 XPC 技巧)。
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |