La forma recomendada de instalar extensiones de Google Chrome en macOS es importar en una política macOS un Plist con la clave ExtensionInstallForcelist (payload com.google.Chrome), igual que se hace con la página de inicio de Chrome. Los scripts de Applivery sirven para verificar el resultado o como alternativa cuando no puedes usar una política.
Antes de empezar
Dispositivos macOS gestionados por Applivery, con Google Chrome instalado.
El ID de la extensión.
Acceso al panel de Applivery con permisos para editar políticas y, si usas scripts, la sección Recursos.
Cómo obtener el ID de una extensión
El ID es una cadena de 32 letras minúsculas (de la a a la p) que identifica de forma única la extensión. Puedes obtenerlo de tres maneras:
Desde Chrome Web Store. Abre la ficha de la extensión y copia el último fragmento de la URL:
https://chromewebstore.google.com/detail/nombre-de-la-extension/<ID>Desde
chrome://extensions. Activa el Modo desarrollador (esquina superior derecha). Cada extensión instalada muestra su ID bajo la descripción.Desde Terminal en un Mac con la extensión instalada. Los nombres de las carpetas de este directorio son los IDs:
ls ~/Library/Application\ Support/Google/Chrome/Default/Extensions/Si usas varios perfiles de Chrome, sustituye
Defaultpor el nombre del perfil (por ejemplo,Profile 1).
Para extensiones alojadas fuera de Chrome Web Store, el ID se obtiene igual, pero en el Plist debes usar la URL de actualización de tu propio servidor en lugar de https://clients2.google.com/service/update2/crx.
Método recomendado: política con Plist
Prepara el Plist
El siguiente payload fuerza la instalación de una extensión. Sustituye EXTENSION_ID por el ID de tu extensión:
PayloadContent
ExtensionInstallForcelist
EXTENSION_ID;https://clients2.google.com/service/update2/crx
PayloadDisplayName
Google Chrome - Extensiones
PayloadIdentifier
com.google.Chrome.extensions.REEMPLAZAR-UUID
PayloadType
com.google.Chrome
PayloadUUID
REEMPLAZAR-UUID
PayloadVersion
1
Cada elemento de la lista tiene el formato ID_DE_LA_EXTENSION;URL_DE_ACTUALIZACION. Para instalar varias extensiones, añade una <string> por extensión dentro del mismo <array>.
Qué poner en los marcadores REEMPLAZAR-UUID
Sustituye cada REEMPLAZAR-UUID por un UUID, un identificador único con este formato: 754C545B-75B5-4E50-927D-3BC06EBD47E0. Hay dos sitios:
PayloadUUID: un UUID completo.PayloadIdentifier:com.google.Chrome.extensions.seguido de un UUID. Puede ser el mismo que el dePayloadUUIDo uno distinto.
Para generar uno desde Terminal en un Mac (cada ejecución devuelve uno nuevo):
uuidgen
Por ejemplo, si uuidgen devuelve A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D:
<key>PayloadIdentifier</key>
<string>com.google.Chrome.extensions.A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D</string>
<key>PayloadUUID</key>
<string>A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D</string>
También sirve cualquier generador de UUID v4.
Cuándo generar un UUID nuevo
Situación | UUID |
|---|---|
Añadir más extensiones al mismo Plist | No cambian: añade una |
Editar un Plist que ya has importado | Mantén los mismos UUID |
Crear un Plist distinto (otra política u otro payload) | Genera UUID nuevos, para que dos configuraciones no compartan identificador |
No hace falta un Plist ni un UUID nuevo por cada extensión.
Incluye todas las extensiones forzadas en un único Plist y una única política. Si repartes la clave ExtensionInstallForcelist entre varias configuraciones que apliquen al mismo dispositivo, no se garantiza que Chrome las combine y puede quedar activa solo una de ellas.
Impórtalo en una política de Applivery
En el panel de Applivery, dirígete a cualquiera de tus Políticas 1 o crea una nueva.
Haz clic en el botón + Añadir configuración en el menú lateral izquierdo y después en + Importar 2.

Pega el Plist o usa el botón Subir XML para subir el archivo.

Guarda los cambios.
Verifica el resultado
Con la política sincronizada en el dispositivo, abre Chrome y comprueba:
chrome://policy→ haz clic en Recargar políticas y confirma que apareceExtensionInstallForcelistcon estado OK.chrome://extensions→ la extensión debe aparecer instalada y marcada como gestionada por la organización.
Si Chrome estaba abierto cuando se aplicó la política, reinícialo para verificar que la configuración se ha aplicado.
Fijar la extensión en la barra de herramientas
Una extensión instalada de forma forzosa queda disponible en el menú de extensiones de Chrome (el icono del puzle), pero no aparece fijada en la barra. Para que se muestre fijada desde el primer momento, usa la clave ExtensionSettings con la opción toolbar_pin.
ExtensionSettings agrupa en un diccionario toda la configuración de cada extensión, identificada por su ID. Con ella puedes forzar la instalación y fijarla en la barra en el mismo bloque, por lo que sustituye a ExtensionInstallForcelist para esas extensiones:
PayloadContent
ExtensionSettings
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
installation_mode
force_installed
update_url
https://clients2.google.com/service/update2/crx
toolbar_pin
force_pinned
PayloadDisplayName
Google Chrome - Extensiones
PayloadIdentifier
com.google.Chrome.extensions.REEMPLAZAR-UUID
PayloadType
com.google.Chrome
PayloadUUID
REEMPLAZAR-UUID
PayloadVersion
1
Clave | Valor | Efecto |
|---|---|---|
|
| Instala la extensión de forma forzosa |
| URL de actualización | Igual que en |
|
| Fija la extensión en la barra de herramientas |
Para configurar varias extensiones, añade dentro del diccionario ExtensionSettings una clave por cada ID, cada una con su propio <dict>. Importa el Plist en la política igual que con ExtensionInstallForcelist.
No declares la misma extensión a la vez en ExtensionInstallForcelist y en ExtensionSettings. Elige una de las dos claves para cada extensión.
Si solo quieres instalar la extensión y dejar que cada usuario decida si la fija, usa ExtensionInstallForcelist y omite toolbar_pin.
La extensión queda instalada y fijada en la barra de herramientas de Google Chrome.
Uso de scripts
Los scripts de Applivery (Bash en macOS) no son necesarios para instalar la extensión con el método anterior, pero resultan útiles en dos casos. Tienes más detalles en Scripts.
Script de verificación
Comprueba que el Plist con la extensión ha llegado al Mac. Pásale el ID de la extensión como argumento (entre comillas dobles).
#!/bin/bash
# Uso: el primer argumento es el ID de la extensión de Chrome
EXT_ID="$1"
PLIST="/Library/Managed Preferences/com.google.Chrome.plist"
if [ -z "$EXT_ID" ]; then
echo "Falta el ID de la extensión como argumento."
exit 2
fi
if [ ! -f "$PLIST" ]; then
echo "No existe $PLIST: la configuración de Chrome no está aplicada."
exit 1
fi
if /usr/libexec/PlistBuddy -c "Print :ExtensionInstallForcelist" "$PLIST" 2>/dev/null | grep -q "$EXT_ID"; then
echo "OK: la extensión $EXT_ID está en ExtensionInstallForcelist."
exit 0
else
echo "La extensión $EXT_ID NO figura en ExtensionInstallForcelist."
exit 1
fi
Script alternativo: instalación sin política (External Extensions)
Si no puedes usar un Plist, Chrome admite registrar extensiones de forma externa mediante un archivo JSON por extensión en una ruta del sistema. Este script lo crea:
#!/bin/bash
# Uso: el primer argumento es el ID de la extensión de Chrome
EXT_ID="$1"
DIR="/Library/Application Support/Google/Chrome/External Extensions"
if ! [[ "$EXT_ID" =~ ^[a-p]{32}$ ]]; then
echo "ID de extensión no válido: $EXT_ID"
exit 2
fi
mkdir -p "$DIR"
cat > "$DIR/$EXT_ID.json" <<EOF
{
"external_update_url": "https://clients2.google.com/service/update2/crx"
}
EOF
chmod 644 "$DIR/$EXT_ID.json"
echo "Registrada la extensión $EXT_ID. Reinicia Chrome para que la detecte."
Este método es menos robusto que la política: Chrome puede pedir al usuario que confirme o habilite la extensión, y el usuario puede desactivarla o eliminarla. Para un despliegue forzoso y no modificable, usa el método con Plist.
Resolución de problemas
Síntoma | Posible causa | Qué hacer |
|---|---|---|
| La política no se ha sincronizado o Chrome no se ha reiniciado | Comprueba que el dispositivo tiene la política asignada, fuerza la sincronización y reinicia Chrome |
La clave aparece con error | ID mal escrito o formato incorrecto del elemento | Revisa que sea |
Solo una de varias extensiones se instala | Claves repartidas en varias configuraciones | Reúne todas las extensiones en un único Plist |
El script de verificación indica que no existe el Plist | La configuración no ha llegado al Mac | Revisa la asignación de la política y el historial de ejecución del script |
La extensión aparece pero está deshabilitada | Instalación por External Extensions pendiente de confirmación del usuario | Pasa al método con política (Plist) |