# Instalar extensiones de Chrome

> Fuerza la instalación de extensiones de Google Chrome en dispositivos macOS importando un Plist con ExtensionInstallForcelist o ExtensionSettings en una política de Applivery.

Source: https://docs.applivery.com/es/device-management/apple/macos/policies/install-chrome-extensions/  •  Last updated: 2026-10-16

**Key topics:** ID de una extensión de Chrome, Plist con ExtensionInstallForcelist, Fijar extensiones con ExtensionSettings, Scripts de verificación e instalación alternativa, Resolución de problemas, Applivery, Google Chrome, Chrome Web Store, macOS, Plist

---

**TL;DR:** Importa en una política macOS un Plist con la clave ExtensionInstallForcelist (payload com.google.Chrome). Los scripts de Applivery sirven para verificar el resultado o como alternativa cuando no puedes usar una política.

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](https://docs.applivery.com/es/device-management/apple/macos/policies/google-chrome-homepage-configuration/). 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](https://dashboard.applivery.io/) 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:

1.  **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/`
    
2.  **Desde** `chrome://extensions`**.** Activa el **Modo desarrollador** (esquina superior derecha). Cada extensión instalada muestra su **ID** bajo la descripción.
    
3.  **Desde Terminal en un Mac con la extensión instalada.** Los nombres de las carpetas de este directorio son los IDs:
    
    ```bash
    ls ~/Library/Application\ Support/Google/Chrome/Default/Extensions/
    ```
    
    Si usas varios perfiles de Chrome, sustituye `Default` por el nombre del perfil (por ejemplo, `Profile 1`).
    

:::info
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 de `PayloadUUID` o uno distinto.
    

Para generar uno desde Terminal en un Mac (cada ejecución devuelve uno nuevo):

```bash
uuidgen
```

Por ejemplo, si `uuidgen` devuelve `A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D`:

```xml
<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

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Situación</p></th><th colspan="1" rowspan="1"><p>UUID</p></th></tr><tr><td colspan="1" rowspan="1"><p>Añadir más extensiones al mismo Plist</p></td><td colspan="1" rowspan="1"><p>No cambian: añade una <code>&lt;string&gt;</code> más al <code>&lt;array&gt;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p>Editar un Plist que ya has importado</p></td><td colspan="1" rowspan="1"><p>Mantén los mismos UUID</p></td></tr><tr><td colspan="1" rowspan="1"><p>Crear un Plist distinto (otra política u otro payload)</p></td><td colspan="1" rowspan="1"><p>Genera UUID nuevos, para que dos configuraciones no compartan identificador</p></td></tr></tbody></table>

No hace falta un Plist ni un UUID nuevo por cada extensión.

:::warning
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

**Abre la política**

En el [**panel de Applivery**](https://dashboard.applivery.io/), dirígete a cualquiera de tus **Políticas** 1 o [crea una nueva](https://docs.applivery.com/es/device-management/general-settings/create-device-policies/).

**Importa el Plist**

Haz clic en el botón **\+ Añadir configuración** en el menú lateral izquierdo y después en **\+ Importar** 2.

![import](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/f3b41af3-190e-4361-9dfb-c0b1a568514a.png)

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

![plist](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/417c6f5d-ffc2-46b2-9108-07b0ffa2194a.png)

**Guarda**

Guarda los cambios.

### Verifica el resultado

Con la política sincronizada en el dispositivo, abre Chrome y comprueba:

1.  `chrome://policy` → haz clic en **Recargar políticas** y confirma que aparece `ExtensionInstallForcelist` con estado **OK**.
    
2.  `chrome://extensions` → la extensión debe aparecer instalada y marcada como gestionada por la organización.
    

:::info
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
	
```

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Clave</p></th><th colspan="1" rowspan="1"><p>Valor</p></th><th colspan="1" rowspan="1"><p>Efecto</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>installation_mode</code></p></td><td colspan="1" rowspan="1"><p><code>force_installed</code></p></td><td colspan="1" rowspan="1"><p>Instala la extensión de forma forzosa</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>update_url</code></p></td><td colspan="1" rowspan="1"><p>URL de actualización</p></td><td colspan="1" rowspan="1"><p>Igual que en <code>ExtensionInstallForcelist</code> (la de Chrome Web Store, salvo extensiones alojadas fuera de la tienda)</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>toolbar_pin</code></p></td><td colspan="1" rowspan="1"><p><code>force_pinned</code></p></td><td colspan="1" rowspan="1"><p>Fija la extensión en la barra de herramientas</p></td></tr></tbody></table>

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`.

:::warning
No declares la misma extensión a la vez en `ExtensionInstallForcelist` y en `ExtensionSettings`. Elige una de las dos claves para cada extensión.
:::
:::info
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](https://docs.applivery.com/es/device-management/apple/macos/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).

```bash
#!/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:

```bash
#!/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" <<colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Síntoma</p></th><th colspan="1" rowspan="1"><p>Posible causa</p></th><th colspan="1" rowspan="1"><p>Qué hacer</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>chrome://policy</code> no muestra <code>ExtensionInstallForcelist</code></p></td><td colspan="1" rowspan="1"><p>La política no se ha sincronizado o Chrome no se ha reiniciado</p></td><td colspan="1" rowspan="1"><p>Comprueba que el dispositivo tiene la política asignada, fuerza la sincronización y reinicia Chrome</p></td></tr><tr><td colspan="1" rowspan="1"><p>La clave aparece con error</p></td><td colspan="1" rowspan="1"><p>ID mal escrito o formato incorrecto del elemento</p></td><td colspan="1" rowspan="1"><p>Revisa que sea <code>ID;URL</code> y que el ID tenga 32 caracteres (<code>a</code>–<code>p</code>)</p></td></tr><tr><td colspan="1" rowspan="1"><p>Solo una de varias extensiones se instala</p></td><td colspan="1" rowspan="1"><p>Claves repartidas en varias configuraciones</p></td><td colspan="1" rowspan="1"><p>Reúne todas las extensiones en un único Plist</p></td></tr><tr><td colspan="1" rowspan="1"><p>El script de verificación indica que no existe el Plist</p></td><td colspan="1" rowspan="1"><p>La configuración no ha llegado al Mac</p></td><td colspan="1" rowspan="1"><p>Revisa la asignación de la política y el historial de ejecución del script</p></td></tr><tr><td colspan="1" rowspan="1"><p>La extensión aparece pero está deshabilitada</p></td><td colspan="1" rowspan="1"><p>Instalación por External Extensions pendiente de confirmación del usuario</p></td><td colspan="1" rowspan="1"><p>Pasa al método con política (Plist)</p></td></tr></tbody></table>
