私は、plist ファイルを Dropbox に複製して、2 台のコンピューター間でその plist ファイルを同期できるようにする小さなユーティリティに取り組んでいます。10.9 では、環境設定への変更はキャッシュされ、アプリケーションまたは cfprefsd によって要求された場合にのみディスクに書き込まれます。
CFPreferencesAppSynchronize を使用して、任意のアプリケーションの新しいプレゼンスをディスクに書き込むようにシステムに指示することはできますか? たとえば、ファインダーの設定を同期したい場合、小さなアプリケーションでファインダー (com.apple.finder) に関して CFPreferencesAppSynchronize を呼び出すことができますか? 以下のコードは機能していないように見えますが、エラーはスローされません。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here..
NSString *stringApplicationID = @"com.apple.finder";
CFStringRef applicationIDfinder = (__bridge CFStringRef)stringApplicationID;
Boolean CFPreferencesSynchronize (
CFStringRef applicationIDfinder,
CFStringRef kCFPreferencesAnyUser,
CFStringRef kCFPreferencesAnyHost
);
return 0;
}
}