如何使用 Objective-C 检查家长控制

How to check Parental Controls with Objective-C

我需要知道当前用户是否受 Mac OS X 家长控制(更具体地说,应用年龄限制)的管理,以阻止应用的某些内容。我怎样才能做到这一点?这些中的任何一个都足够了。

可以使用 Objective-C 实现但不一定使用 Objective-C 的方法,如 bash 命令或 AppleScript 命令,也被接受。

编辑: 可以在此处找到应用年龄限制:https://ibb.co/mOZyww

首先,我不确定你所说的

是什么意思

app age restrictions

在 macOS 10.13 上,我只看到将应用程序限制到白名单的选项;我无法根据年龄配置限制。

无论如何,家长控制存储在本地目录服务中,在相关用户的 mcx_attributes 属性中。

(mcx 指的是旧的 Managed Preference 框架)

您可以使用目录实用程序通过 UI 或通过 dscl(使用 mcx 插件)浏览此内容。

如果您 运行 dscl,则可以使用 cdls 等浏览目录服务

例如,我可以导航到我的测试用户:

cd /Local/Default/Users/testuser

然后使用 mcxexport

转储家长控制
 -mcxexport .

这将为您提供 XML 格式的已配置家长控制。

查看 dscl . -mcxhelp 了解更多信息。

已更新

切换 "Restrict: Apps to:" 设置会更新此首选项键:

<key>gamesLimit</key>
    <dict>
        <key>state</key>
        <string>always</string>
        <key>value</key>
        <integer>300</integer>
    </dict>

您必须仔细研究它才能找出相应的值(例如 300 == 12 岁以上)