En OS X Yosemite es posible tener preferencias que se comparten entre varias aplicaciones que están en el mismo grupo de aplicaciones. En el lado de desarrollo de las cosas es tan simple como la configuración del Grupo de Aplicaciones y luego usar [[NSUserDefaults alloc] initWithSuiteName:@"TEAMID.com.company.AppGroup"]
en lugar del habitual [NSUserDefaults standardUserDefaults]
. Estas preferencias se almacenan en ~/Library/Group\ Containers/TEAMID.com.company.AppGroup/Library/Preferences/TEAMID.com.company.AppGroup.plist
.
Lo que estoy tratando de averiguar es cómo modificar esas preferencias desde fuera de la aplicación utilizando el comando defaults. Hasta ahora lo mejor que he encontrado es esto:
defaults write ~/Library/Group\ Containers/TEAMID.com.company.AppGroup/Library/Preferences/TEAMID.com.company.AppGroup PreferenceName -bool YES
Esto funciona más o menos en el sentido de que modifica el archivo .plist correcto y actualiza las preferencias que le digo. Pero no parece ser compatible con el almacenamiento en caché que se utiliza en Yosemite. Tan pronto como la aplicación intenta leer la misma preferencia, vuelve a lo que estaba establecido anteriormente.
¿Hay alguna forma de hacer que esto funcione de forma fiable?