私は環境設定エディタツール(http://www.tempel.org/PrefsEditorを参照)を作成しています。実質的にはdefaults
コマンドのGUIバージョンです。OS Xのdefaultsコマンドは、サンドボックスアプリケーションの設定にどのようにアクセスできますか?
私は、ランダムなサンドボックスアプリケーションの設定を読んでいません。例えば
、私は地図アプリのキーを取得しようとすると、私はNULLが返されます:
CFArrayRef prefs = CFPreferencesCopyKeyList (CFSTR("com.apple.Maps"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
をしかし、defaults
コマンドは、これらの環境設定を読み取ることができます:
defaults read com.apple.Maps
私はdefaultsコマンドがどのようにこれを達成し、私のツールで同じことをしようとしているか知りたい。
CFPropertyListRef prop = CFPreferencesCopyValue(CFSTR("ElementsVersion"),
CFSTR("/Users/karsten/Library/Containers/com.apple.Maps/Data/Library/Preferences/com.apple.Maps"),
CFSTR("kCFPreferencesCurrentUser"),
CFSTR("kCFPreferencesAnyHost"));
は、あなただけのバンドルID
サンドボックスされていないとしますか? – trojanfoe
@trojanfoeが正しいです。 OSビルドインコマンドはサンドボックス化されていないため、システムに無制限にアクセスできます。サンドボックス化されているので、あなたはアクセスできるデータに限られています。これは、UNIXの世界では 'chroot'のようなものです。 – Donovan
もちろん、ソリューションはサンドボックス環境で実行することはできません。もちろん、これはApp Storeからの除外を意味します。 – Donovan