你能使用Sparkle或类似的工具更新一个被沙盒化的Mac应用程序吗?

23

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

要使用Sparkle,您的应用程序需要网络访问权限,这可以被授权,并且可以覆盖Applications中的自身。目前,您可以使用com.apple.security.temporary-exception.files.absolute-path.read-write权限来实现此操作,但这不是一个好的解决方案。它很可能会消失,即使它没有消失,如果您要给应用程序完全的文件系统读写访问权限以及网络访问权限,沙盒化应用程序也没有太大意义。

是否已经有人走过这条路并找到了一个好的解决方案?我之所以问是因为我尝试尽可能将我的MAS构建和非MAS构建保持一致,而我目前正在考虑让我的MAS构建被沙盒化,而我的非MAS构建则不沙盒化。


1
开发人员面临的许多沙盒相关问题之一! - sbooth
3个回答

5

我的先前回答包括创建一个临时异常的建议,但在沙盒环境下无法工作。 - wbyoung
现在的情况怎么样?你们在使Sparkle完全符合沙盒要求方面有没有更近一步?你们是否能够解决Andy(在GitHub上讨论中提出的)的所有安全问题?谢谢。 - Dennis Ritchie
2
仍未合并到 Sparkle 中。我们现在只发布 Mac App Store 版本,所以我不会再继续开发它了。你可以自由地从那个拉取请求中继续开发。 - wbyoung
1
我们目前正在将对此的支持合并到Sparkle中;请参见https://github.com/sparkle-project/Sparkle/issues/363。 - Jake Petroules

1

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

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


我得到了比我应得的更多的赞誉,因为那个版本主要是我整合了其他人完成的一些工作。 - Sam Deane
就我所知,这应该归功于Whitney Young和Erik Aderstedt。 - Sam Deane

0

尚未

截至1.15版本,Sparkle不支持沙盒,而流传的补丁存在漏洞,可以完全绕过沙盒安全性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接