Estás aquí: Home > Gestión de Dispositivos > Apple > macOS > Scripts > Añadir apps al Dock

Añade apps al Dock de macOS con un script de Applivery

Añade apps al Dock de tus dispositivos macOS una sola vez con un script de Applivery, respetando el Dock de cada usuario y dejándolo totalmente editable.

7 min de lectura

TL;DR

Usa un script de Applivery en modo Bucle para añadir apps al Dock de macOS de cada usuario una sola vez, sin reemplazarlo ni bloquearlo.

Un Mac nuevo muestra el Dock predeterminado de Apple, y las apps que despliega tu organización no aparecen en él. Con este script, puedes añadir las apps que elijas al final del Dock de cada usuario, una sola vez. No reemplaza lo que ya hay ni bloquea nada: el usuario puede seguir reordenando, quitando o añadiendo elementos después.

Como es un script Bash, la política no gestiona el Dock. El script añade cada app una vez por usuario y después deja el Dock tranquilo.

Note

Si necesitas que la política defina el Dock, fijar apps para que no se puedan quitar o bloquear el Dock, usa la configuración del Dock de la política. Puedes obtener más información siguiendo este enlace.

Requisitos

  • Dispositivos macOS inscritos en Applivery y asignados a una política.

  • El agente MDM de Applivery activado en esa política. Es el agente quien ejecuta los scripts. Obtén más información sobre el agente macOS.

  • Las apps que quieras en el Dock desplegadas en los dispositivos. El script no instala apps, solo las añade al Dock.

  • El script add-dock-apps.sh, incluido al final de esta guía.

Cómo funciona el script

Cada vez que se ejecuta, el script hace lo siguiente:

  1. Busca el usuario con sesión iniciada en la consola del dispositivo. Si no hay ninguno (por ejemplo, en la pantalla de inicio de sesión), termina y lo vuelve a intentar en la siguiente ejecución.

  2. Recorre las apps de la lista y decide cuáles siguen pendientes para ese usuario:

    • Una app que ya se gestionó para ese usuario en una ejecución anterior se omite. Esto es lo que mantiene el Dock editable: si el usuario quitó la app, no vuelve a aparecer.

    • Una app que aún no está instalada en el dispositivo se omite y se vuelve a comprobar en la siguiente ejecución.

  3. Si no queda ninguna app pendiente, termina sin tocar el Dock.

  4. Espera hasta que el Dock de ese usuario esté en marcha y listo, durante un máximo de cinco minutos. Si para entonces no está listo, termina y lo vuelve a intentar en la siguiente ejecución, para no reemplazar nunca el Dock que macOS crea en el primer inicio de sesión.

  5. Para cada app pendiente:

    • Si el usuario ya la tiene en el Dock, no cambia nada.

    • Si no, la añade al final de la sección de apps del Dock.

  6. Registra cada app que ha gestionado para ese usuario en ~/Library/Application Support/AppliveryDockSetup, para no volver a gestionarla.

  7. Reinicia el Dock solo si ha añadido algo, para que aparezcan las nuevas apps. Cuando esto ocurre, el Dock parpadea un momento.

Note

El script solo usa herramientas incluidas en macOS. No necesitas instalar nada más en el dispositivo.

Elegir las apps

Abre add-dock-apps.sh en un editor de texto y edita la lista APPS con la ruta completa de cada app, una por línea y entre comillas dobles. Este ejemplo añade cuatro apps:

APPS=(
    "/Applications/Google Chrome.app"
    "/Applications/Microsoft Teams.app"
    "/Applications/Slack.app"
    "/Applications/Utilities/Adobe Creative Cloud/ACC/Creative Cloud.app"
)
Note

Las apps se añaden en el orden de la lista. Para obtener la ruta exacta de una app, selecciónala en el Finder, mantén pulsada la tecla Opción y elige Edición > Copiar como nombre de ruta (o pulsa Opción + Comando + C). Después pégala entre las comillas.

Subir el script a Applivery

Una vez en el panel de Applivery, ve a la sección Recursos 1. Selecciona la pestaña Scripts 2 y haz clic en el botón + Crear Script 3.

scripts

Rellena el formulario así:

  • Nombre: Add-DockApps-UserEditable (o el nombre que prefieras).

  • Descripción: opcional, por ejemplo Añade apps al Dock del usuario una vez y lo deja editable.

  • Lenguaje: Bash.

Después, haz clic en Cargar desde archivo y selecciona tu archivo add-dock-apps.sh, o pega el contenido del script directamente en el editor. Haz clic en Crear para guardar el script.

add-dock-apps-script-form

Añadir el script a tu política de macOS

A continuación, ve a la sección Políticas 1 y selecciona la política asignada a tus dispositivos macOS, o crea una nueva. En el menú de la izquierda, selecciona la sección Scripts 2.

Warning

Los scripts solo están disponibles para dispositivos macOS y necesitan que el agente MDM de Applivery esté activado en la política. Si aún no lo está, ve a la sección Agente de la política y actívalo antes de continuar.

Haz clic en el botón + Añadir Script 3.

add script to policy

En el modal, busca y selecciona el script Add-DockApps-UserEditable que creaste en el paso anterior. Elige Bucle como método de ejecución y haz clic en 1d junto al campo del intervalo. El campo se rellena con 86400 segundos, así que el script se ejecuta una vez al día. Deja los Argumentos vacíos y haz clic en Añadir.

add-dock-apps-add-script-loop
Note

Te recomendamos Bucle en lugar de Una vez. El script solo actúa sobre el usuario con sesión iniciada en la consola en el momento de ejecutarse, y solo sobre las apps que ya están instaladas. Ejecutarlo cada día recoge lo que una sola ejecución pasaría por alto: una app instalada más tarde, un dispositivo que estaba en la pantalla de inicio de sesión u otro usuario del mismo Mac. En los dispositivos que ya están configurados, la ejecución diaria no encuentra nada pendiente y termina al momento.

El script aparece ahora en la lista. Haz clic en Guardar cambios para publicar una nueva versión de la política. El script se envía a todos los dispositivos asignados a la política.

add-dock-apps-save-changes
Note

Antes de desplegarlo en todos tus dispositivos, añade el script a una política piloto con uno o dos dispositivos de prueba y comprueba el resultado como se explica más abajo.

Resultado en el dispositivo

Una vez ejecutado el script, el usuario encuentra las apps al final de la sección de apps del Dock, justo después de los elementos que ya tenía. No se quita ni se reordena nada.

A partir de ese momento, el Dock es del usuario. Puede reordenar las nuevas apps, quitarlas o añadir otras como siempre, y el script no deshará esos cambios en las siguientes ejecuciones.

Verificar la ejecución

Abre el dispositivo en el panel de Applivery, ve a la pestaña Scripts y haz clic en el botón del historial de ejecución para ver las ejecuciones del script. Puedes obtener más información en Scripts siguiendo este enlace.

Warning

Una ejecución termina correctamente aunque no se haya añadido nada, por ejemplo porque no había nadie con sesión iniciada o una app aún no estaba instalada. Lee la salida de la ejecución para saber qué ha pasado. El script solo falla cuando no ha podido escribir una app en el Dock.

Este es un ejemplo de la salida de una primera ejecución en un dispositivo donde Slack aún no está instalado:

2026-11-09 09:12:40 [Dock] Not installed yet, will retry on next run: /Applications/Slack.app
2026-11-09 09:12:40 [Dock] Added: /Applications/Google Chrome.app
2026-11-09 09:12:40 [Dock] Added: /Applications/Microsoft Teams.app
2026-11-09 09:12:40 [Dock] Added: /Applications/Utilities/Adobe Creative Cloud/ACC/Creative Cloud.app
2026-11-09 09:12:41 [Dock] Done for jane

Y este es un ejemplo de la siguiente ejecución en el mismo dispositivo, con Slack todavía sin instalar:

2026-11-10 09:12:38 [Dock] Handled before, left as the user has it: /Applications/Google Chrome.app
2026-11-10 09:12:38 [Dock] Handled before, left as the user has it: /Applications/Microsoft Teams.app
2026-11-10 09:12:38 [Dock] Not installed yet, will retry on next run: /Applications/Slack.app
2026-11-10 09:12:38 [Dock] Handled before, left as the user has it: /Applications/Utilities/Adobe Creative Cloud/ACC/Creative Cloud.app
2026-11-10 09:12:38 [Dock] Nothing to add for jane

Resolución de problemas

Salida

Causa

Qué hacer

No user logged in, will retry on next run

El script se ejecutó sin nadie con sesión iniciada en la consola: el dispositivo estaba en la pantalla de inicio de sesión o todavía en el Asistente de configuración.

Nada. Se aplica en una ejecución posterior con un usuario con sesión iniciada.

Not installed yet, will retry on next run

La app no está en la ruta indicada en la lista APPS.

Despliega la app en el dispositivo o corrige la ruta en el script.

Already in Dock

El usuario ya tenía la app en el Dock.

Nada. El Dock no cambia.

Handled before, left as the user has it

La app ya se gestionó para este usuario en una ejecución anterior.

Nada. Esto es lo que mantiene el Dock editable.

Nothing to add for <user>

No queda ninguna app pendiente para este usuario.

Nada.

Dock not ready yet, will retry on next run

El Dock del usuario no estaba en marcha o no estaba listo tras cinco minutos, normalmente durante un primer inicio de sesión.

Nada. Se aplica en la siguiente ejecución.

Could not add, will retry on next run

macOS rechazó el cambio en el Dock. La ejecución se marca como fallida.

Revisa el resto de la salida para ver el error. La app se reintenta en la siguiente ejecución.

Cambiar las apps más adelante

Para añadir más apps al Dock más adelante, crea un nuevo script con la lista APPS actualizada y sustituye el anterior en la política: en la sección Scripts, haz clic en Eliminar en el script antiguo, añade el nuevo con + Añadir Script y haz clic en Guardar cambios. Las apps que ya se gestionaron para un usuario se quedan como ese usuario las tiene, y solo se añaden las nuevas.

Para volver a añadir una app a un usuario que la quitó, borra su registro en ese dispositivo. El registro es un archivo con el nombre de la app dentro de la carpeta de inicio del usuario. Por ejemplo, ejecuta esto como ese usuario:

rm "$HOME/Library/Application Support/AppliveryDockSetup/Google Chrome.app"

La app se vuelve a añadir en la siguiente ejecución del script.

Script

#!/bin/bash
# Adds apps to the Dock of the user logged in at the console, once per user and app.
# Keeps the existing Dock and leaves it unmanaged, so the user can still reorder or remove anything.
# Deployed from Applivery (runs as root). Safe to run in Loop: an app already handled for a
# user is never added again, and an app that is not installed yet is retried on a later run.
set -uo pipefail

# Edit this list (full paths)
APPS=(
    "/Applications/Google Chrome.app"
    "/Applications/Microsoft Teams.app"
    "/Applications/Slack.app"
    "/Applications/Utilities/Adobe Creative Cloud/ACC/Creative Cloud.app"
)

log() { echo "$(date '+%F %T') [Dock] $*"; }

USER_=$(stat -f '%Su' /dev/console)
if [ -z "$USER_" ] || [ "$USER_" = "root" ] || [ "$USER_" = "loginwindow" ] || [ "$USER_" = "_mbsetupuser" ]; then
    log "No user logged in, will retry on next run"; exit 0
fi
UID_=$(id -u "$USER_")
# The non-root branch only exists so you can test the script by hand in your own session
as_user() { if [ "$(id -u)" -eq 0 ]; then launchctl asuser "$UID_" sudo -H -u "$USER_" "$@"; else "$@"; fi; }

# One marker per app in the user's home: this is what makes a removal by the user stick
MARKS="$(as_user sh -c 'echo "$HOME"')/Library/Application Support/AppliveryDockSetup"

# Apps still to handle for this user: no marker yet and installed on the device
PENDING=()
for app in "${APPS[@]}"; do
    if [ -e "$MARKS/$(basename "$app")" ]; then
        log "Handled before, left as the user has it: $app"
    elif [ ! -e "$app" ]; then
        log "Not installed yet, will retry on next run: $app"
    else
        PENDING+=("$app")
    fi
done
[ ${#PENDING[@]} -eq 0 ] && { log "Nothing to add for $USER_"; exit 0; }

# The Dock must be running and have its own list of apps. On a first login macOS is still
# building it, and writing at that point would replace the default Dock instead of adding to it.
CURRENT=""
for _ in $(seq 1 60); do
    pgrep -u "$UID_" -x Dock >/dev/null \
        && CURRENT=$(as_user defaults read com.apple.dock persistent-apps 2>/dev/null) \
        && [ -n "$CURRENT" ] && break
    CURRENT=""; sleep 5
done
[ -z "$CURRENT" ] && { log "Dock not ready yet, will retry on next run"; exit 0; }

as_user mkdir -p "$MARKS"
CHANGED=0
FAILED=0
for app in "${PENDING[@]}"; do
    if grep -qF "file://${app// /%20}" <<<"$CURRENT" || grep -qF "\"$app\"" <<<"$CURRENT"; then
        log "Already in Dock: $app"
    elif as_user defaults write com.apple.dock persistent-apps -array-add \
        "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>${app//&/&amp;}</string><key>_CFURLStringType</key><integer>0</integer></dict></dict><key>tile-type</key><string>file-tile</string></dict>"; then
        log "Added: $app"; CHANGED=1
    else
        log "Could not add, will retry on next run: $app"; FAILED=1; continue
    fi
    as_user touch "$MARKS/$(basename "$app")"
done

# The Dock only shows the new apps after it restarts (it blinks for a moment)
[ $CHANGED -eq 1 ] && as_user killall Dock
log "Done for $USER_"
exit $FAILED

Key Takeaways

  • El script añade apps al final del Dock una sola vez por usuario y app.
  • Nunca elimina, reordena ni bloquea nada del Dock.
  • Las apps que aún no están instaladas se reintentan en la siguiente ejecución.
  • El método de ejecución recomendado es Bucle, una vez al día.
  • Para gestionar o bloquear el Dock, usa la configuración del Dock de la política.

Añade las apps que elijas al final del Dock de cada usuario, una sola vez. No reemplaza el Dock actual ni bloquea nada, así que el usuario puede seguir reordenando, quitando o añadiendo elementos.

Usa el script cuando quieras añadir apps una vez y dejar que el usuario gestione su Dock. Si necesitas que la política defina el Dock, fije apps para que no se puedan quitar o bloquee el Dock, usa la configuración del Dock de la política.

Dispositivos macOS inscritos en Applivery y asignados a una política con el agente MDM de Applivery activado, y las apps que quieras en el Dock ya desplegadas en los dispositivos.

No. Solo añade apps que ya están instaladas. Si una app aún no está instalada, el script la omite y la vuelve a comprobar en la siguiente ejecución.

No. El script registra cada app que gestiona para cada usuario, así que una app que el usuario ha quitado no vuelve a aparecer.

El script solo actúa sobre el usuario con sesión iniciada en ese momento y sobre las apps ya instaladas. Ejecutarlo a diario recoge las apps instaladas más tarde, los dispositivos que estaban en la pantalla de inicio de sesión u otros usuarios del mismo Mac.

Abre el dispositivo en el panel de Applivery, ve a la pestaña Scripts y haz clic en el historial de ejecución. Lee la salida de cada ejecución, porque puede terminar correctamente aunque no se haya añadido nada.

Borra el registro de esa app en la carpeta ~/Library/Application Support/AppliveryDockSetup del usuario. La app se vuelve a añadir en la siguiente ejecución del script.

¿Te resultó útil esta página?

Última actualización: 12 de noviembre de 2026