code

Mac 애플리케이션의 NSUserDefaults 데이터는 어디에 저장됩니까?

codestyles 2020. 11. 26. 08:17
반응형

Mac 애플리케이션의 NSUserDefaults 데이터는 어디에 저장됩니까?


내 응용 프로그램에 일부 데이터를 저장하기 위해 NSUserDefaults를 사용하고 있습니다.

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

테스트를 위해 NSUserDefaults 데이터가 Mac에 저장되는 시스템 환경 설정 plist 파일을 확인해야합니다.

iOS 응용 프로그램 사용자 기본값이 어디에 저장되어 있는지 알고 있지만 Mac 응용 프로그램에 대해서는 모릅니다. Mac 애플리케이션의 NSUserDefaults 데이터는 어디에 저장됩니까?


둘 이상의 위치에서 찾을 수 있습니다.

~/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

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


(Xcode 7.3.1, macOS 10.11.6)

추가의 경우 앱 그룹을 사용하는 경우

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

plist 파일은 다음과 같습니다.

~ / 라이브러리 / 그룹 컨테이너 / 그룹. groupApps / Library / Preferences / group.groupApps.plist


Sierra에서 데이터를 찾았습니다 ~/Library/Application Support/..


플레이 그라운드에서 시도 할 때 이러한 데이터의 가능한 위치가 하나 더 있습니다. XCode 8.3 및 Swift 3을 사용하여 Playground에서 UserDefaults를 실험하고 있었고 결과 plist 파일을보고 싶었습니다. 몇 가지 조사 작업 (UserDefaults 파일에는 파일 이름에 번들 식별자가 있고 Playground에서 Bundle.main.bundleIdentifier를 호출하면 XCode 식별자가 제공됨) 후에 UserDefaults 데이터가 다음에 추가되었다는 사실을 알게되었습니다.

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

즉, 키와 값이 XCode 기본 설정 파일에 추가됩니다! 나는 키에 대한 가능성이 거의없는 문자열을 만들어 두 번 확인했고 실제로 거기에 추가되었습니다. XCode에서 이미 사용중인 키를 사용해 볼 용기가 없었지만 여기서는주의가 필요합니다.

참고 URL : https://stackoverflow.com/questions/7982740/where-is-a-mac-applications-nsuserdefaults-data-stored

반응형