【问题标题】:Can you update a sandboxed Mac app using Sparkle or something similar?您可以使用 Sparkle 或类似的工具更新沙盒 Mac 应用程序吗?
【发布时间】:2012-01-04 19:25:58
【问题描述】:

对于那些在 Mac App Store 之外分发 Mac 应用程序的人,您打算如何支持更新和沙盒?我猜目前大多数人的答案是他们不是,但我希望最终非 MAS 应用程序可以像 MAS 应用程序一样被沙盒化。

要使用 Sparkle,您的应用需要网络访问权限(可以授予),以及在应用程序中覆盖自身的能力。目前,您可以使用 com.apple.security.temporary-exception.files.absolute-path.read-write 权利来执行此操作,但这不是一个好的解决方案。它可能会消失,即使它没有,如果你要为应用程序提供完整的文件系统读写访问权限以及网络访问权限,那么对应用程序进行沙箱化也没有什么意义。

有没有人已经走上了这条路并找到了一个好的解决方案?我之所以这么问是因为我尽量让我的 MAS 构建和我的非 MAS 构建保持相同,并且我目前正在考虑将我的 MAS 构建沙盒化,而我的非 MAS 构建则不。

【问题讨论】:

  • 开发人员遇到的许多与沙盒相关的难题之一!

标签: macos cocoa sandbox sparkle


【解决方案1】:

@chockenberry on twitter 发起的对话中,@andy_matuschak responded 赞成为 Sparkle 创建 XPC 服务。

我有一个pull request open on GitHub,它实际上创建了 XPC 服务。希望这将很快融入 Sparkle。

【讨论】:

  • 我之前的回答包括建议创建一个临时异常,但这在沙盒下不起作用。
  • 现在情况如何?你们是否更接近于使 Sparkle 完全兼容沙盒?您是否能够解决 Andy 的所有安全问题(在 GitHub 上的讨论中)?谢谢。
  • 仍未拉入 Sparkle。我们现在才发布 Mac App Store,所以我不会做它。不过,请随意继续该拉取请求。
  • 我们目前正在将对此的支持合并到 Sparkle 中;见github.com/sparkle-project/Sparkle/issues/363
【解决方案2】:

我们实际上有两个版本的应用:一个用于我们自己的网站,一个用于应用商店。

我建议使用 Sam Deane 的方法,您可以在 his GitHub repository 中找到它。它对我们很有效。

【讨论】:

  • 我在那个版本中得到了比我应得的更多的荣誉——我主要是把别人完成的一些工作整合在一起。
  • fwiw,我认为应该归功于 Whitney Young 和 Erik Aderstedt。
【解决方案3】:

Not yet.

从 1.15 开始,Sparkle 不支持沙盒,并且浮动的 the patch 存在允许完全绕过沙盒安全的漏洞。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多