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 configurar el 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 usando el comando predeterminado. 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
Este tipo de trabajo funciona porque modifica el archivo .plist correcto y actualiza las preferencias que le digo. Pero no parece ser compatible con el almacenamiento en caché que se usa en Yosemite. Tan pronto como la aplicación intenta leer la misma preferencia, vuelve a lo que se estableció anteriormente.
¿Hay alguna forma de hacer que esto funcione de manera confiable?