有没有办法在不使用私有API的情况下以编程方式在“网络”偏好设置面板中设置“位置”值?
我需要以Mac App Store接受的方式执行此操作。
答案 0 :(得分:2)
AFAIK没有能够可靠地实现此功能的库函数,但您可以执行networksetup
工具:
/usr/sbin/networksetup -switchtolocation $LOCATION
唉,我不确定MAS应用是否允许这样做。确切知道的唯一方法就是一如既往地尝试。
答案 1 :(得分:2)
实际上,是公开&可用的API,可以做你想要的。
看看System Configuration framework。我在自己的代码中使用的实际调用设置了一个新位置(我的用户完全意识到它正在发生)是SCNetworkSetSetCurrent
。
也就是说,有两个原因导致您无法在自己的代码中执行此操作:
数字1)正如@gcbrueckmann所说的那样(并且为他这样说+1),在Mac App Store中出售的沙盒应用程序中执行此操作肯定是不行的。
数字2)如果您要处理修改系统级设置的系统配置设置,则需要从特权(即以管理员或root用户身份运行)工具或应用程序进行操作。
答案 2 :(得分:0)
scselect可以使用,不需要管理员权限。
scselect $LOCATION
但您可能无法在沙盒中使用它。
您也可以通过AppleScript进行更改,但同样,从沙盒中可能会出现问题。