Eliminazione delle impostazioni predefinite dell'utente in Mac OS X 10.10.3


9

Da poco tempo (suppongo * da Mac OS X 10.10.2) sono stato in grado di cancellare le mie impostazioni in NSUserDefaultsvia

defaults delete ~/Library/Preference/<my app>.plist

Ma all'improvviso non funziona e le mie impostazioni sembrano essere super persistenti. Ho anche cancellato manualmente qualsiasi cosa in "Impostazioni salvate" ed emesso il comando sopra per "Contenitori" (anche se il sandboxing è stato disattivato per i test comunque).

Cos'altro può contenere le mie impostazioni? Immagino che il prossimo riavvio potrebbe cancellarlo, ma voglio evitare il riavvio in futuro.

PS Le impostazioni sono sopravvissute al riavvio :-(


Quella directory nel percorso dovrebbe essere "Preferenze" plurale.
Spiff

@Spiff, Sì. È un refuso
qwerty_so

Risposte:


17

In primo luogo, quando si utilizza defaults, è necessario lasciare fuori .plistdal nome del file - lo aggiunge sempre, quindi se lo si fornisce anche defaultstenterà di eliminare "<la mia app> .plist.plist".

In secondo luogo, penso che quando si specifica l'intero percorso del file delle preferenze si ignora cfprefsd, che (tra le altre cose) memorizza nella cache le preferenze utilizzate di recente. Dovresti semplicemente utilizzare defaults delete <my app>o eseguire killall cfprefsdprima di eliminare le preferenze (ma dopo aver chiuso l'app).

Nota che se l'app è in modalità sandbox, defaultsè il modo sbagliato di eliminare le preferenze: basta uccidere cfprefsd, quindi utilizzare rmper eliminare l'intero contenitore sandbox dell'app ( rm ~/Library/Containers/<my app>) o solo il suo file delle preferenze ( rm ~/Library/Containers/<my app>/Data/Library/Preferences/<my app>.plist)


OH MIO DIO. Ero assolutamente sicuro di averlo usato sempre con il plist. Una volta non ho usato il suffisso ha funzionato. Grazie! Inoltre, non sapevo di poter (dovrebbe) lasciare il percorso completo. Funziona anche (o forse meglio) senza il percorso. Grazie una seconda volta :-)
qwerty_so

1

Il check-in ~/Library/Containers/.

Penso che le app in modalità sandbox (App Store) debbano archiviare le loro cose ora.


Come triste: non è sandbox e ho cancellato anche quello.
qwerty_so

Grazie. questo mi ha aiutato! Mi chiedevo perché i miei valori predefiniti vengano ripristinati anche dopo aver eliminato l'app e reinstallato su MacOS.
Vikram Rao,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.