Pracuję nad aplikacją Mac OS X, która została opracowana dla Mountain Lion. Aplikacja wykonuje niektóre zadania konfiguracyjne przy pierwszym uruchomieniu. Następnie ustawia flagę w [NSUserDefaults standardUserDefaults]
; w kolejnych uruchomieniach aplikacja sprawdza, czy ta flaga jest ustawiona, i nie wykonuje tych pierwszych zadań konfiguracyjnych, jeśli jest ustawiona.Gdzie NSUserDefaults przechowuje dane w systemie Mac OS X?
Na Mountain Lion, udało mi się usunąć plik ~/Library/Preferences/bundleid.plist, aby wymazać wszystko przechowywane w NSUserDefaults przez aplikację. Jednak w nowszych wersjach systemu Mac OS X, gdy aplikacja działa, nawet nie tworzy tego pliku. Potwierdziłem, że zapisuje dane pomyślnie do NSUserDefaults, sprawdzając wartości powracające z [[NSUserDefaults standardUserDefaults] objectForKey:@"foo"]
w debugerze.
Czy ktoś może wskazać mi właściwy kierunek usuwania ustawień mojej aplikacji przechowywanych w NSUserDefaults?
Mavericks jest nadal objęty NDA, więc wątpię, czy ktoś może bezpośrednio odpowiedzieć na twoje pytanie. Powiedziałeś, czy próbowałeś użyć fs_usage (narzędzia dostępnego we wszystkich wersjach OS X), aby zobaczyć, gdzie aplikacja próbuje zapisać plik plist? – iccir
Ups, moje złe - usunąłem odniesienia do Mavericks. – Greg
Sądzę jednak, że jest to bezpieczne: https://devforums.apple.com/message/894120 –