Pruebas bajo una actualización completa de MacOS Mojave 10.14.6 con Safari 13.1.2 al alternar el Mostrar el menú Desarrollo en la barra de menús casilla de verificación en Safari > Preferencias > Avanzado hay dos PLISTAS archivos que se modifican. Un archivo teniendo uno clave modificado y el otro archivo teniendo tres llaves modificado, es decir:
- ~/Library/Preferences/com.apple.Safari.SandboxBroker.plist
- ~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist
- IncludeDevelopMenu
- WebKitDeveloperExtrasEnabledPreferenceKey
- WebKitPreferences.developerExtrasEnabled
El valor de los cuatro llaves son un booleano y cuando el Mostrar el menú Desarrollo en la barra de menús casilla de verificación se comprueba, el valor es sí , verdadero o 1 dependiendo de cómo se lea la configuración.
En Terminal el defaults read ...
comando devolverá 1
o 0
o si el clave no está presente, da un error con un mensaje.
El ejemplo shell script código más abajo, fue probado y funciona en circunstancias normales, sin embargo, puede no funcionar en un Mostrar el menú Desarrollo en la barra de menús casilla de verificación . Dicho esto, no tiene nada que perder más que unos minutos de tiempo para probarlo.
Notas:
- ¡Importante! Para que esto ejemplo shell script para que funcione tendrá que, al menos temporalmente, añadir Terminal a Preferencias del sistema > Seguridad y privacidad > Privacidad > Acceso total al disco y Terminal debe cerrarse cuando lo haga.
- Cuando el ejemplo shell script se ejecuta, Safari Sin embargo, también debería cerrarse, como codificado lo cerrará si está abierto. También la abrirá después de realizar los cambios.
- Debido a otros OS medidas de seguridad, ( sandboxing ), el com.apple.Safari.plist archivo debe copiarse en
/tmp/
, modificado allí, y luego trasladado de nuevo. El shell script , como codificado se encarga de esto. El com.apple.Safari.SandboxBroker.plist archivo se modifica en el lugar.
- Tal y como están codificados, los dos PLISTAS archivos se respaldan con un .bak extensión Sin embargo, el shell script sólo puede ejecutarse una vez, a menos que el
n
se retira de cp -avn
para ambos archivos que luego sobrescribir las copias de seguridad originales ¡!
- Tal y como se ha codificado, se emitirá información de depuración (
set -x
) y esto es en caso de que tenga un problema puede copiar y pegar el salida de Terminal para la resolución de problemas si es necesario. Por lo tanto, si hay un problema, no cierre el ventana hasta que se copie y pegue en otro lugar para que pueda verlo.
Para utilizar el ejemplo shell script código :
-
Abrir Terminal y ejecutar lo siguiente comando compuesto :
touch sdmcb; chmod u+x sdmcb; open -e sdmcb
-
Copiar y pegar el ejemplo shell script código en el abierto sdmcb documento y, a continuación, guárdelo y ciérrelo.
-
De vuelta en Terminal utilice lo siguiente comando para ejecutar el shell script :
./sdmcb
Ya está, esto funcionará o no, es lo único que se me ocurre probar, sans arrancar a Recuperación de MacOS y borrando los dos PLISTAS archivos que puede eliminar un ajuste que está causando que esté inactivo para empezar, si es que está en esos dos archivos .
Ejemplo shell script código :
#!/bin/bash
set -e
set -x
[[ $(ps x | grep '[S]afari.app') == "" ]] || killall Safari; sleep 2
cd "$HOME/Library/Containers/com.apple.Safari/Data/Library/Preferences/" || exit
cp -v 'com.apple.Safari.plist' '/tmp/' || exit
cp -avn 'com.apple.Safari.plist' 'com.apple.Safari.plist.bak' || exit
defaults write '/tmp/com.apple.Safari.plist' "IncludeDevelopMenu" -bool 'yes'
defaults write '/tmp/com.apple.Safari.plist' "WebKitDeveloperExtrasEnabledPreferenceKey" -bool 'yes'
defaults write '/tmp/com.apple.Safari.plist' "WebKitPreferences.developerExtrasEnabled" -bool 'yes'
mv -v '/tmp/com.apple.Safari.plist' .
cd "$HOME/Library/Preferences/" || exit
cp -avn 'com.apple.Safari.SandboxBroker.plist' 'com.apple.Safari.SandboxBroker.plist.bak' || exit
defaults write "$HOME/Library/Preferences/com.apple.Safari.SandboxBroker.plist" "ShowDevelopMenu" -bool 'yes'
killall cfprefsd
sleep 3
open -a "/Applications/Safari.app"