Desinstalar apps de Mac sin perder datos compartidos
Arrastrar una app autocontenida a la Papelera puede ser una desinstalación suficiente. Otras apps instalan helpers, controladores, extensiones del sistema, elementos de inicio, contenedores compartidos o grandes bases de datos de usuario. El objetivo no es borrar cada nombre de archivo que se parezca al del proveedor; es retirar el software sin eliminar documentos ni datos compartidos que otra app todavía use.
Aquí es donde se esconden, cómo limpiarlos a mano y la forma más rápida de encontrarlos todos sin adivinar.
Por qué arrastrar a la Papelera deja residuos
Una app de Mac es un paquete (el archivo .app), pero la mayoría también escribe datos fuera
de ese paquete la primera vez que se ejecuta: preferencias, cachés, archivos de soporte y a
veces un elemento de inicio o un agente en segundo plano. Borrar el .app elimina el
programa, no el rastro que dejó en tus carpetas Library. Ese rastro es lo que la gente llama
residuos o restos de apps.
En una app pequeña el resto puede ser un puñado de preferencias inofensivas. Un navegador, un juego, una herramienta de desarrollo o una app multimedia puede dejar gigabytes de datos controlados por el usuario. El tamaño por sí solo no distingue una caché desechable de perfiles, proyectos, mensajes, plug-ins o contenido descargado.
Usa primero el desinstalador del proveedor cuando la app modifica el sistema
Clientes VPN, herramientas antivirus, controladores de audio, software de virtualización, clientes de sincronización en la nube, herramientas de dispositivos de entrada y apps con extensiones del sistema deberían eliminarse con el desinstalador propio o el que proporciona el proveedor. Ese flujo puede desactivar extensiones, descargar servicios privilegiados y quitar recibos en un orden que Finder no puede inferir. Exporta ajustes o datos locales antes de empezar y comprueba si una suscripción o autorización de dispositivo debe liberarse por separado. La guía de desinstalación de Apple también prefiere el desinstalador propio de la app cuando existe, y señala que borrar una app no cancela su suscripción ni elimina los documentos creados con ella.
Dónde se esconden los residuos de las apps
Muchos residuos habituales por usuario viven dentro de tu carpeta Library de usuario, que
está oculta por defecto. El software integrado al sistema también puede instalar elementos
bajo /Library, y por eso conviene usar su desinstalador en lugar de buscar en todo el
sistema. En Finder, mantén Option y abre el menú Go para revelar Library. Las
ubicaciones de usuario habituales son:
~/Library/Application Support/: los datos de soporte principales de la app, a menudo el residuo más grande.~/Library/Caches/: archivos en caché que la app creó para ir más rápido.~/Library/Preferences/: los archivos de ajustes (.plist) de la app.~/Library/Containers/y~/Library/Group Containers/: datos de apps en sandbox.~/Library/Logs/: los archivos de registro de la app.~/Library/Saved Application State/: estado de ventanas y sesión.~/Library/LaunchAgents/: helpers en segundo plano que relanzan la app o sus servicios al iniciar sesión.
Las apps en sandbox pueden guardar datos en un contenedor y compartirlos mediante group containers. Nunca elimines un group container hasta haber identificado cada app y extensión que lo usa. Borrarlo por una app retirada puede borrar datos de otra app del mismo desarrollador.
Encuéntralos por identificador de bundle
Los residuos son difíciles de emparejar a simple vista porque macOS los nombra por el
bundle identifier de la app, una cadena reverse-DNS como com.spotify.client, no por el
nombre visible de la app. Obtén primero el identificador:
osascript -e 'id of app "Spotify"'
mdls -name kMDItemCFBundleIdentifier -r /Applications/Spotify.app
Luego usa el identificador y el nombre del proveedor como pistas de búsqueda:
find ~/Library -maxdepth 4 \( -iname "*spotify*" -o -iname "*com.spotify*" \) -print 2>/dev/null
Los resultados de búsqueda son candidatos, no pruebas. Inspecciona el contenido de cada ruta,
la app propietaria y su rol. Las preferencias se pueden consultar con defaults, pero borrar
un dominio de preferencias es opcional y quita la posibilidad de reinstalar con los ajustes
antiguos. Déjalo si el espacio es trivial o si una reinstalación futura es plausible.
Cómo eliminarlos a mano
- Exporta los datos únicos y confirma una copia de seguridad actual.
- Revisa las instrucciones de desinstalación del proveedor y úsalas para software con helpers, extensiones, controladores o estado de licencia.
- Cierra la app y su helper visible desde la app o Activity Monitor.
- Mueve un
.appsimple a la Papelera y revisa coincidencias exactas de bundle y proveedor en Library. Separa caché de perfiles, proyectos, bases de datos y contenedores compartidos. - Desactiva los elementos de inicio del proveedor que queden en System Settings > General > Login Items & Extensions. No adivines una etiqueta de launchd a partir del nombre de un plist.
- Reinicia solo cuando una extensión o un desinstalador del proveedor lo pida. Prueba apps relacionadas, tipos de archivo, dispositivos y sincronización antes de vaciar la Papelera.
Esto funciona, pero es lento y propenso a errores. Los nombres de la app y del desarrollador no siempre coinciden con los de las carpetas, los datos en sandbox están enterrados y es fácil borrar el archivo equivocado o pasar por alto el que importa.
La forma más rápida y segura
Un desinstalador dedicado puede resolver el bundle identifier y reunir las coincidencias probables en Library. Mole muestra esos candidatos y sus tamaños antes de eliminar, valida las rutas y usa la Papelera para los archivos ordinarios. Eso reduce el trabajo de búsqueda, pero no sustituye un desinstalador del proveedor ni convierte un contenedor compartido en algo desechable. La revisión sigue siendo parte de la desinstalación, no una pantalla de confirmación decorativa.
Bajo el capó: cómo funciona un desinstalador seguro
Se puede saltar, pero muestra por qué el orden y la validación importan aquí. La CLI y la app nativa usan implementaciones distintas, pero ambas dividen el trabajo en descubrimiento, revisión y ejecución confirmada. La secuencia de abajo sigue la ruta de la app nativa.
El bundle identifier solo se acepta en forma reverse-DNS antes de poder impulsar la
coincidencia derivada del bundle, de modo que una entrada malformada no pueda ampliar un
patrón de búsqueda. El escáner también lee identificadores de elementos de inicio embebidos
desde sus archivos Info.plist en lugar de adivinarlos por el nombre de archivo. Después de
que apruebes el plan completo, la app cierra el objetivo y detiene sus helpers exactos. Un
elemento de inicio solo se descarga después de que PathGuard lo apruebe, y
DeletionExecutor valida cada URL otra vez antes de llamar a la capa de Papelera. Las
rutas faltantes, protegidas o rechazadas se convierten en omisiones explícitas, no en
borrados silenciosos a medias.
Una regla segura de desinstalación
Usa el desinstalador del proveedor para software integrado al sistema. En una app simple, elimina el bundle y luego revisa los residuos exactos por identidad y tipo de dato. Conserva documentos, perfiles, bases de datos y group containers hasta que la propiedad quede demostrada. Deja lo eliminado en la Papelera mientras verificas apps y servicios relacionados, y vacíala solo cuando el Mac siga comportándose como esperas.