プライベート API を使用せずに、[ネットワーク] 設定ペインで「場所」の値をプログラムで設定する方法はありますか?
これは、Mac App Store で受け入れられる方法で行う必要があります。
プライベート API を使用せずに、[ネットワーク] 設定ペインで「場所」の値をプログラムで設定する方法はありますか?
これは、Mac App Store で受け入れられる方法で行う必要があります。
networksetup
私の知る限り、これを確実に達成するライブラリ関数はありませんが、ツールを実行できます。
/usr/sbin/networksetup -switchtolocation $LOCATION
残念ながら、これが MAS アプリで許可されているかどうかはわかりません。確実に知る唯一の方法は、いつものように試してみることです。
実際には、あなたが探していることを実行できる公開および利用可能な API があります。
システム構成フレームワークを見てください。新しい場所を設定する独自のコードで使用する実際の呼び出し (ユーザーはそれが起こっていることを完全に認識しています) はSCNetworkSetSetCurrent
.
とはいえ、独自のコードでこれを実行できない理由は 2 つあります。
番号 1) @gcbrueckmann が言ったように (そして彼がそう言ったことに対して +1)、Mac App Store で販売されているサンドボックス化されたアプリでこれを行うことは、間違いなくノーノーです。
番号 2) システム レベルの設定を変更するシステム構成の設定を変更する場合は、特権 (つまり、管理者またはルートとして実行) ツールまたはアプリから行う必要があります。
scselect は機能し、管理者権限は必要ありません。
scselect $LOCATION
ただし、サンドボックスからは使用できない場合があります。
AppleScript を使用して変更することもできますが、やはりサンドボックスからは問題が発生する可能性があります。