In OS X Yosemite è possibile avere preferenze condivise tra più app che si trovano nello stesso gruppo di app. Dal lato dello sviluppo delle cose, è semplice come impostare il gruppo di app e quindi usare [[NSUserDefaults alloc] initWithSuiteName:@"TEAMID.com.company.AppGroup"]
invece del solito [NSUserDefaults standardUserDefaults]
. Queste preferenze vengono memorizzate in ~/Library/Group\ Containers/TEAMID.com.company.AppGroup/Library/Preferences/TEAMID.com.company.AppGroup.plist
.
Quello che sto cercando di capire è come modificare quelle preferenze dall'esterno dell'app usando il comando defaults. Finora il migliore che ho trovato è questo:
defaults write ~/Library/Group\ Containers/TEAMID.com.company.AppGroup/Library/Preferences/TEAMID.com.company.AppGroup PreferenceName -bool YES
Questo tipo di funziona in quanto modifica il file .plist corretto e aggiorna le preferenze a cui le dico. Ma non sembra compatibile con la memorizzazione nella cache utilizzata in Yosemite. Non appena l'app tenta di leggere la stessa preferenza, ritorna a ciò che è stato impostato in precedenza.
C'è un modo per rendere questo lavoro affidabile?