【问题标题】:Apple's SMJobBless() doesn't work under sandboxApple 的 SMJobBless() 在沙箱下不起作用
【发布时间】:2015-09-27 19:14:22
【问题描述】:

Apple 的SMJobBless 应该是编写在沙箱中运行并需要特权的程序的新的正确方法。但是,当我下载代码并打开沙盒时,它不起作用。相反,我得到了这个错误:

2015-09-27 15:10:30.820 SMJobBlessApp[78676:4426508] ApplePersistence=NO
2015-09-27 15:10:31.273 SMJobBlessApp[78676:4426508] Something went wrong! NSOSStatusErrorDomain / -60005

我需要在沙盒中运行的应用程序中将文件写入 /etc。这可能吗?

【问题讨论】:

    标签: macos appstore-sandbox smjobbless


    【解决方案1】:

    我认为“Apple 的 SMJobBless 应该是编写在沙箱中运行并需要特权的程序的新的、正确的方法”的开场白是不正确的。

    当我查看 Apple 应用沙盒设计指南的 "Determine Whether Your App Is Suitable for Sandboxing" 部分时,您似乎无法使用授权服务来提升权限。

    如果您在沙盒中,you really can't access the "/etc" directory

    【讨论】:

    • 嗯。这很不幸,因为 App Store 中的任何应用都需要沙盒。这是否意味着需要授权的应用根本无法上架 App Store?
    • 根据"Authorization Services Programming Guide"的第一句话,“应用沙箱中不支持授权服务API,因为它允许提权。”听起来您正在尝试做的事情属于“特权升级”定义:“安装特权工具或需要访问操作系统的受限区域”。
    • 确实如此。如果您需要在沙箱中进行权限提升,同一份文档说要提交错误报告,所以我已经这样做了。我目前的计划是打开一个窗口,指示用户从窗口中复制文本并将其粘贴到控制台中。
    猜你喜欢
    • 2015-12-12
    • 2021-07-18
    • 2015-10-18
    • 2012-10-27
    • 2014-04-23
    • 1970-01-01
    • 2017-09-23
    • 2013-08-17
    • 2012-06-24
    相关资源
    最近更新 更多