web-dev-qa-db-ja.com

MacアプリケーションのNSUserDefaultsデータはどこに保存されますか?

NSUserDefaultsを使用して、アプリケーションにデータを保存しています。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"dummy string" forKey:@"lastValue"];
[prefs synchronize];

テストのために、NSUserDefaultsデータがMacで保存されているSystem Preferences plistファイルを確認する必要があります。

IOSアプリケーションのユーザーデフォルトがどこに保存されているかは知っていますが、macアプリケーションについては知りません。 MacアプリケーションのNSUserDefaultsデータはどこに保存されますか?

60
ahmadbaig

それらは複数の場所で見つけることができます:

~/Library/Preferences/com.example.myapp.plist
~/Library/SyncedPreferences/com.example.myapp.plist

サンドボックス化されている場合

~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
~/Library/Containers/com.example.myapp/Data/Library/SyncedPreferences/com.example.myapp.plist
148
erkanyildiz

~/Library/Preferences/com.example.myapp.plist

20
duskwuff

(Xcode 7.3.1、macOS 10.11.6)

追加の場合、アプリグループを使用している場合

    if let prefs = NSUserDefaults(suiteName: "group.groupApps")  {
       ...
    }

plistファイルは次のとおりです。

〜/ライブラリ/ Group Containers/group。 groupApps/Library/Preferences/group.groupApps.plist

3
hstdt

Sierraでは、次のデータが見つかりました:~/Library/Application Support/

1
funroll

これらのデータのもう1つの可能な場所は、プレイグラウンドで物事を試すときに役立ちます。 XCode 8.3とSwift 3を使用して、プレイグラウンドでUserDefaultsを試していました。結果のplistファイルを確認したいと思いました。 PlaygroundのBundle.main.bundleIdentifierはXCode識別子を提供します)UserDefaultsデータが追加されたことに驚いたことに気付きました:

~/Library/Preferences/com.Apple.dt.Xcode

つまり、キーと値がXCode設定ファイルに追加されます!私は、キーの文字列が非常にありそうにないことを再確認し、実際に追加されました。 XCodeで既に使用されているいくつかのキーを使用しようとする勇気はありませんでしたが、ここでは注意が必要です。

0
M. van den Berg