7 votos

Menú para desarrolladores de Safari desactivado

¿Por qué mi opción "Mostrar el menú de desarrollo de Safari" está en gris y no se puede hacer clic? He tratado de encontrar los pasos para habilitarla, pero todos dicen simplemente que hay que hacer clic en la casilla de verificación. ¿Tengo que iniciar sesión y cambiar la configuración de los permisos en algún lugar?

Safari versión 13.1.2 (14609.3.5.1.5) en un Macbook Air MacOS Mojave versión 10.14.6 (18G6020)

enter image description here

3voto

user3439894 Puntos 5883

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
    • MostrarMenúDeDesarrollo
  • ~/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 , 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 :

  1. Abrir Terminal y ejecutar lo siguiente comando compuesto :

    touch sdmcb; chmod u+x sdmcb; open -e sdmcb
  2. Copiar y pegar el ejemplo shell script código en el abierto sdmcb documento y, a continuación, guárdelo y ciérrelo.

  3. 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"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X