{"code":"var Component=(()=>{var u=Object.create;var o=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var v=(i,a)=>()=>(a||i((a={exports:{}}).exports,a),a.exports),b=(i,a)=>{for(var n in a)o(i,n,{get:a[n],enumerable:!0})},l=(i,a,n,s)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let r of m(a))!f.call(i,r)&&r!==n&&o(i,r,{get:()=>a[r],enumerable:!(s=h(a,r))||s.enumerable});return i};var k=(i,a,n)=>(n=i!=null?u(g(i)):{},l(a||!i||!i.__esModule?o(n,\"default\",{value:i,enumerable:!0}):n,i)),q=i=>l(o({},\"__esModule\",{value:!0}),i);var d=v((z,c)=>{c.exports=_jsx_runtime});var y={};b(y,{default:()=>p});var e=k(d());function t(i){let a={a:\"a\",blockquote:\"blockquote\",code:\"code\",em:\"em\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",ul:\"ul\",...i.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(a.p,{children:[\"Haces doble clic en una app que acabas de descargar y, en lugar de abrirse, macOS te cierra la puerta en la cara: \",(0,e.jsx)(a.strong,{children:`\"'App' est\\xE1 da\\xF1ada y no se puede abrir. Deber\\xEDas moverla a la Papelera.\"`}),' Es uno de los cuadros de di\\xE1logo m\\xE1s frustrantes de todo macOS, precisamente porque casi siempre es una mentira. La app rara vez est\\xE1 da\\xF1ada. Lo que est\\xE1s viendo en realidad es Gatekeeper \\u2014 el sistema de verificaci\\xF3n de apps de Apple \\u2014 que se niega a ejecutar algo que no pudo verificar, y Tahoe 26.5 (lanzado el 11 de mayo de 2026) ha endurecido este control m\\xE1s que nunca. Si te has encontrado con el error \"la app est\\xE1 da\\xF1ada y no se puede abrir\" en macOS Tahoe, esta gu\\xEDa explica exactamente por qu\\xE9 ocurre y c\\xF3mo solucionarlo de forma segura, sin sacrificar la seguridad de tu Mac en el proceso.']}),`\n`,(0,e.jsx)(a.p,{children:(0,e.jsx)(a.img,{alt:\"Error de app da\\xF1ada en macOS Tahoe\",src:\"/images/blog/app-is-damaged-cant-be-opened-macos-tahoe-gatekeeper-quarantine-fix-2026/hero.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsxs)(a.p,{children:['Este no es un art\\xEDculo de \"simplemente ejecuta este comando\". Eliminar un indicador de cuarentena es una soluci\\xF3n de treinta segundos, pero hacerlo a ciegas es la manera en que la gente instala malware en equipos que eran perfectamente seguros un momento antes. As\\xED que lo vamos a hacer bien: entender el mecanismo, descifrar los tres tipos diferentes de di\\xE1logos de error que podr\\xEDas ver, determinar por qu\\xE9 una app leg\\xEDtima est\\xE1 siendo bloqueada y, a continuaci\\xF3n, aplicar la correcci\\xF3n menos agresiva que realmente funcione. Al final sabr\\xE1s no solo ',(0,e.jsx)(a.em,{children:\"qu\\xE9\"}),\" escribir, sino \",(0,e.jsx)(a.em,{children:\"si deber\\xEDas hacerlo\"}),\".\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"puntos-clave\",children:\"Puntos clave\"}),`\n`,(0,e.jsxs)(a.ul,{children:[`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:'\"La app est\\xE1 da\\xF1ada\" suele ser un problema de cuarentena y firma, no una corrupci\\xF3n real.'}),\" Tahoe aplica el atributo extendido \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\" a los archivos descargados y se niega a ejecutar apps cuya firma de c\\xF3digo o ticket de notarizaci\\xF3n no se pueda validar.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"Tres di\\xE1logos diferentes significan tres problemas diferentes.\"}),' \"Est\\xE1 da\\xF1ada\" (firma rota o ausente, o App Translocation), \"no se puede verificar al desarrollador\" (sin firma o sin notarizaci\\xF3n) y \"no se pudo verificar que est\\xE9 libre de malware\" (la verificaci\\xF3n de notarizaci\\xF3n no pudo completarse) tienen causas y soluciones distintas.']}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:'Prueba primero la ruta segura: Configuraci\\xF3n del sistema > Privacidad y seguridad > \"Abrir de todas formas\".'}),\" El antiguo truco de clic derecho \\u2192 Abrir fue eliminado en la generaci\\xF3n macOS 15/26; Apple ahora te dirige a esta \\xFAnica confirmaci\\xF3n deliberada.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsxs)(a.strong,{children:[\"Las soluciones por Terminal como \",(0,e.jsx)(a.code,{children:\"xattr -dr com.apple.quarantine\"}),\" funcionan, pero reducen la seguridad.\"]}),\" Solo elimina la cuarentena de apps en las que conf\\xEDes genuinamente y que hayas obtenido de una fuente confiable. Nunca ejecutes comandos gen\\xE9ricos contra \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\".\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"No desactives Gatekeeper globalmente como primer paso.\"}),\" \",(0,e.jsx)(a.code,{children:\"spctl --master-disable\"}),' ya no se comporta como afirman los tutoriales antiguos; la opci\\xF3n \"En cualquier lugar\" est\\xE1 oculta por defecto, y desactivar Gatekeeper en todo el Mac es un riesgo mucho mayor que aprobar una sola app.']}),`\n`]}),`\n`,(0,e.jsx)(a.h2,{id:\"qu\\xE9-son-realmente-gatekeeper-la-cuarentena-y-la-notarizaci\\xF3n\",children:\"Qu\\xE9 son realmente Gatekeeper, la cuarentena y la notarizaci\\xF3n\"}),`\n`,(0,e.jsx)(a.p,{children:\"Antes de poder corregir el error de forma inteligente, necesitas entender los tres sistemas superpuestos que lo generan. La gente usa estos t\\xE9rminos de forma intercambiable, pero son mecanismos distintos que por casualidad se activan todos al momento de abrir una app.\"}),`\n`,(0,e.jsx)(a.h3,{id:\"gatekeeper-el-portero-de-la-puerta\",children:\"Gatekeeper: el portero de la puerta\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Gatekeeper es el subsistema de macOS que decide si se permite ejecutar una aplicaci\\xF3n la primera vez que la abres. No es un esc\\xE1ner antivirus y no vigila tu app de forma continua. Piensa en \\xE9l como un portero que revisa la identificaci\\xF3n exactamente una vez. Cuando abres una app reci\\xE9n descargada, Gatekeeper hace dos preguntas: \",(0,e.jsx)(a.em,{children:\"\\xBFEst\\xE1 firmada esta app por un desarrollador que Apple reconoce?\"}),\" y \",(0,e.jsx)(a.em,{children:\"\\xBFHa sido notarizada esta app por Apple?\"}),\" Si la respuesta a ambas es s\\xED, la app se abre sin problemas. Si alguna respuesta es no, Gatekeeper bloquea el lanzamiento y muestra uno de los di\\xE1logos que detallaremos m\\xE1s adelante.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"La pol\\xEDtica de Gatekeeper la aplica un daemon y se expone mediante la herramienta de l\\xEDnea de comandos \",(0,e.jsx)(a.code,{children:\"spctl\"}),\" (security policy control), raz\\xF3n por la cual todos los tutoriales de soluci\\xF3n de problemas terminan recurriendo a \",(0,e.jsx)(a.code,{children:\"spctl\"}),\". Lo m\\xE1s importante que debes interiorizar es que Gatekeeper solo se preocupa por el \",(0,e.jsx)(a.em,{children:\"primer\"}),\" lanzamiento. Una vez que abres una app con \\xE9xito, macOS recuerda tu aprobaci\\xF3n y no vuelve a molestarte. Por eso la soluci\\xF3n siempre consiste en superar esa puerta inicial, no en cambiar permanentemente el comportamiento de la app.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"el-atributo-extendido-comapplequarantine\",children:\"El atributo extendido com.apple.quarantine\"}),`\n`,(0,e.jsxs)(a.p,{children:['Cuando descargas un archivo a trav\\xE9s de una aplicaci\\xF3n \"consciente de cuarentena\" \\u2014 Safari, Chrome, Mail, Mensajes, AirDrop, la mayor\\xEDa de navegadores y clientes de chat \\u2014 esa app etiqueta el archivo con un ',(0,e.jsx)(a.strong,{children:\"atributo extendido\"}),\" llamado \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\". Los atributos extendidos (xattrs) son fragmentos de metadatos que se asocian a un archivo en el sistema de archivos sin formar parte del contenido real del archivo. El xattr de cuarentena es una cadena corta que registra que el archivo provino de alg\\xFAn lugar externo a tu Mac, junto con un indicador, una marca de tiempo, el agente que lo descarg\\xF3 y un ID de evento \\xFAnico.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"Ese ID de evento est\\xE1 vinculado a la \",(0,e.jsx)(a.strong,{children:\"base de datos LSQuarantine\"}),\", un peque\\xF1o archivo SQLite en tu carpeta de inicio (hist\\xF3ricamente en \",(0,e.jsx)(a.code,{children:\"~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2\"}),') que registra el origen de cada elemento en cuarentena. Estos son los datos que aparecen en la frase \"descargaste esto el [fecha] desde [sitio web]\" en los avisos de Gatekeeper. La presencia del xattr de cuarentena es lo que le dice a Gatekeeper: \"este archivo viene del mundo exterior, exam\\xEDnalo antes de ejecutarlo\". Eliminar ese atributo hace que Gatekeeper trate la app como si siempre hubiera estado en tu Mac \\u2014 raz\\xF3n por la que eliminarlo es a la vez la soluci\\xF3n m\\xE1s r\\xE1pida y la que requiere m\\xE1s criterio.']}),`\n`,(0,e.jsx)(a.h3,{id:\"notarizaci\\xF3n-el-filtro-de-malware-de-apple\",children:\"Notarizaci\\xF3n: el filtro de malware de Apple\"}),`\n`,(0,e.jsxs)(a.p,{children:['La notarizaci\\xF3n es la pieza m\\xE1s reciente del rompecabezas y la mayor responsable de la ola moderna de problemas con \"est\\xE1 da\\xF1ada\". Desde macOS Catalina, Apple exige que el software distribuido fuera de la App Store sea ',(0,e.jsx)(a.strong,{children:\"notarizado\"}),\": el desarrollador sube su app firmada a Apple, el servicio automatizado de Apple la escanea en busca de malware conocido y verifica que est\\xE9 correctamente firmada y, si pasa las pruebas, Apple emite un \",(0,e.jsx)(a.strong,{children:\"ticket de notarizaci\\xF3n\"}),'. Ese ticket puede \"graparse\" a la app para que la prueba viaje con el archivo, o Gatekeeper puede descargarlo en l\\xEDnea al momento de abrir la app.']}),`\n`,(0,e.jsxs)(a.p,{children:[\"Cuando abres una app notarizada, Gatekeeper valida el ticket \\u2014 ya sea el grapado o uno que descarga de los servidores de Apple \\u2014 para confirmar que Apple ha revisado y aprobado exactamente esa versi\\xF3n. Si el ticket falta, si no se puede descargar (porque est\\xE1s sin conexi\\xF3n) o si la app fue modificada despu\\xE9s de la notarizaci\\xF3n (lo que invalida la firma que respalda el ticket), la verificaci\\xF3n falla y el acceso se bloquea. La notarizaci\\xF3n \",(0,e.jsx)(a.em,{children:\"no\"}),' es una revisi\\xF3n del App Store; Apple no est\\xE1 evaluando la calidad ni el prop\\xF3sito de la app. Es un filtro de malware previo m\\xE1s una garant\\xEDa de integridad de la firma. Entender esa distinci\\xF3n importa, porque un mensaje de \"no se pudo verificar que est\\xE9 libre de malware\" muchas veces significa \"no pude conectarme con Apple para verificar el ticket\", no \"esto es malware\".']}),`\n`,(0,e.jsx)(a.h2,{id:\"los-tres-di\\xE1logos-descifrados\",children:\"Los tres di\\xE1logos, descifrados\"}),`\n`,(0,e.jsx)(a.p,{children:\"Aqu\\xED est\\xE1 el elemento m\\xE1s \\xFAtil de este art\\xEDculo: las palabras exactas del di\\xE1logo te dicen qu\\xE9 est\\xE1 fallando. Lee el di\\xE1logo con atenci\\xF3n antes de hacer cualquier cosa, porque la soluci\\xF3n var\\xEDa seg\\xFAn el caso.\"}),`\n`,(0,e.jsx)(a.h3,{id:\"di\\xE1logo-1-app-est\\xE1-da\\xF1ada-y-no-se-puede-abrir-deber\\xEDas-moverla-a-la-papelera\",children:`Di\\xE1logo 1: \"'App' est\\xE1 da\\xF1ada y no se puede abrir. Deber\\xEDas moverla a la Papelera.\"`}),`\n`,(0,e.jsxs)(a.p,{children:[\"Es el que suena m\\xE1s alarmante y el m\\xE1s enga\\xF1oso. En la gran mayor\\xEDa de los casos la app \",(0,e.jsx)(a.strong,{children:\"no\"}),\" est\\xE1 da\\xF1ada. Este di\\xE1logo suele aparecer cuando:\"]}),`\n`,(0,e.jsxs)(a.ul,{children:[`\n`,(0,e.jsxs)(a.li,{children:[\"La app tiene el atributo \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\" \",(0,e.jsx)(a.strong,{children:\"y\"}),\" su firma de c\\xF3digo no puede validarse. Una firma puede fallar porque la app no est\\xE1 firmada, porque est\\xE1 firmada con un certificado revocado o \\u2014 lo m\\xE1s com\\xFAn en apps leg\\xEDtimas \\u2014 porque la app \",(0,e.jsx)(a.strong,{children:\"fue modificada despu\\xE9s de firmarse\"}),\". El culpable cl\\xE1sico es una herramienta de descompresi\\xF3n de terceros que no preserva correctamente los atributos extendidos y los enlaces simb\\xF3licos, corrompiendo sutilmente el paquete de la app de modo que la firma ya no coincide.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"App Translocation\"}),\" (tambi\\xE9n llamada Randomizaci\\xF3n de Ruta de Gatekeeper) se ha activado y adem\\xE1s ocurri\\xF3 algo m\\xE1s.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[\"La app presenta un \",(0,e.jsx)(a.strong,{children:\"desajuste de arquitectura\"}),\" \\u2014 por ejemplo, un binario exclusivo para Intel en un Mac con Apple Silicon donde Rosetta 2 no est\\xE1 (o ya no est\\xE1) disponible, o un binario universal corrompido.\"]}),`\n`]}),`\n`,(0,e.jsxs)(a.p,{children:[`La redacci\\xF3n de \"da\\xF1ada\" es el comod\\xEDn de Apple para decir \"esta app fall\\xF3 una verificaci\\xF3n de seguridad o integridad y no voy a ofrecerte un bot\\xF3n suave de 'abrir de todas formas' para ella\". Por eso, con este di\\xE1logo muchas veces `,(0,e.jsx)(a.em,{children:\"no\"}),\" aparece la opci\\xF3n de anulaci\\xF3n en Privacidad y seguridad y, en cambio, te empuja hacia Terminal.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"di\\xE1logo-2-app-no-se-puede-abrir-porque-el-desarrollador-no-puede-ser-verificado\",children:`Di\\xE1logo 2: \"'App' no se puede abrir porque el desarrollador no puede ser verificado.\"`}),`\n`,(0,e.jsxs)(a.p,{children:[\"Este es el hermano m\\xE1s amable y honesto. Significa que la app \",(0,e.jsx)(a.strong,{children:\"no est\\xE1 firmada o no est\\xE1 notarizada\"}),\" \\u2014 Apple no tiene registro de qui\\xE9n la hizo ni si ha pasado el filtro de malware. Lo importante es que este di\\xE1logo normalmente incluye un bot\\xF3n \",(0,e.jsx)(a.strong,{children:'\"Mover a la Papelera\"'}),\" y un bot\\xF3n \",(0,e.jsx)(a.strong,{children:'\"Cancelar\"'}),\", y la \",(0,e.jsx)(a.em,{children:\"verdadera\"}),' salida est\\xE1 en Configuraci\\xF3n del sistema en lugar del di\\xE1logo mismo. Este es el di\\xE1logo que ves m\\xE1s frecuentemente con herramientas de c\\xF3digo abierto, utilidades de nicho o software de desarrolladores peque\\xF1os que no tienen una cuenta de Apple Developer. Es el caso m\\xE1s f\\xE1cil de manejar de forma segura a trav\\xE9s del flujo oficial de \"Abrir de todas formas\", que cubrimos a continuaci\\xF3n.']}),`\n`,(0,e.jsx)(a.h3,{id:\"di\\xE1logo-3-apple-no-pudo-verificar-que-app-est\\xE9-libre-de-malware\",children:`Di\\xE1logo 3: \"Apple no pudo verificar que 'App' est\\xE9 libre de malware.\"`}),`\n`,(0,e.jsxs)(a.p,{children:[\"Esta redacci\\xF3n apareci\\xF3 en la generaci\\xF3n macOS 15/26 y es la m\\xE1s incomprendida. \",(0,e.jsx)(a.strong,{children:\"No\"}),\" significa que Apple encontr\\xF3 malware. Significa que Gatekeeper intent\\xF3 verificar el estado de notarizaci\\xF3n de la app y \",(0,e.jsx)(a.strong,{children:\"no pudo completar la verificaci\\xF3n\"}),\". Los motivos habituales son:\"]}),`\n`,(0,e.jsxs)(a.ul,{children:[`\n`,(0,e.jsxs)(a.li,{children:[\"Tu Mac est\\xE1 \",(0,e.jsx)(a.strong,{children:\"sin conexi\\xF3n o detr\\xE1s de un firewall o proxy restrictivo\"}),\", por lo que Gatekeeper no puede llegar a los servidores de notarizaci\\xF3n de Apple para validar el ticket.\"]}),`\n`,(0,e.jsx)(a.li,{children:\"La app est\\xE1 notarizada pero el ticket no est\\xE1 grapado, y la b\\xFAsqueda en l\\xEDnea agot\\xF3 el tiempo de espera.\"}),`\n`,(0,e.jsxs)(a.li,{children:[\"Tu \",(0,e.jsx)(a.strong,{children:\"reloj del sistema est\\xE1 mal configurado\"}),\" (explicamos esto m\\xE1s adelante), lo que rompe las verificaciones de validez temporal de certificados y tickets.\"]}),`\n`]}),`\n`,(0,e.jsxs)(a.p,{children:['Este di\\xE1logo tambi\\xE9n suele dirigirte a \"Abrir de todas formas\" en Privacidad y seguridad. Si lo ves y ',(0,e.jsx)(a.em,{children:\"s\\xED tienes\"}),\" conexi\\xF3n, lo inteligente es investigar por qu\\xE9 falla la verificaci\\xF3n antes de anularla \\u2014 una app notarizada deber\\xEDa pasar limpiamente.\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"por-qu\\xE9-una-app-leg\\xEDtima-muestra-est\\xE1-da\\xF1ada\",children:'Por qu\\xE9 una app leg\\xEDtima muestra \"est\\xE1 da\\xF1ada\"'}),`\n`,(0,e.jsx)(a.p,{children:\"Profundicemos en las razones espec\\xEDficas por las que una app perfectamente buena activa la alarma, porque conocer la causa te indica qu\\xE9 soluci\\xF3n usar.\"}),`\n`,(0,e.jsx)(a.h3,{id:\"el-propio-indicador-de-cuarentena\",children:\"El propio indicador de cuarentena\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Esta es la raz\\xF3n n\\xFAmero uno. Descargas una app totalmente leg\\xEDtima, el navegador la etiqueta con \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),' y, si la firma de la app tiene el m\\xEDnimo problema, Gatekeeper escala de \"no se puede verificar al desarrollador\" a \"est\\xE1 da\\xF1ada\". Puedes ver el indicador directamente:']}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xattr\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -l\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsx)(a.p,{children:\"Ejemplo de salida para una app en cuarentena:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(a.code,{children:[(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"com.apple.quarantine: 0083;6612a3b0;Safari;5F1B2C3D-7A8E-4F90-B1C2-D3E4F5061728\"})}),`\n`,(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"com.apple.macl: [binary data, 72 bytes]\"})})]})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"El primer campo (\",(0,e.jsx)(a.code,{children:\"0083\"}),\") es el valor del indicador de cuarentena, seguido de una marca de tiempo en hexadecimal, el agente que lo aplic\\xF3 (\",(0,e.jsx)(a.code,{children:\"Safari\"}),\") y el UUID del evento que se vincula a la base de datos LSQuarantine. Si ejecutas \",(0,e.jsx)(a.code,{children:\"xattr -l\"}),\" y no ves ninguna l\\xEDnea con \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\", la cuarentena no es tu problema y deber\\xEDas buscar problemas de firma o de arquitectura.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"app-translocation-randomizaci\\xF3n-de-ruta-de-gatekeeper\",children:\"App Translocation (Randomizaci\\xF3n de Ruta de Gatekeeper)\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Esta es la m\\xE1s sutil. Para prevenir una clase de ataques en los que una app maliciosa carga un archivo envenenado ubicado junto a ella, macOS \",(0,e.jsx)(a.strong,{children:\"trasloca\"}),\" una app en cuarentena: cuando la ejecutas desde una ubicaci\\xF3n de descarga (como tu carpeta Descargas o una imagen de disco montada) sin haberla arrastrado primero a \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\", macOS la lanza desde un punto de montaje temporal, de solo lectura y con ruta aleatoria, en lugar de su ubicaci\\xF3n real. La app ve una ruta diferente de donde realmente se encuentra.\"]}),`\n`,(0,e.jsxs)(a.p,{children:['Para la mayor\\xEDa de las apps esto es invisible. Pero las apps que esperan encontrar recursos relativos a su propia ubicaci\\xF3n, o que intentan actualizarse autom\\xE1ticamente en el mismo lugar, fallan de formas confusas \\u2014 a veces manifest\\xE1ndose como un error de \"da\\xF1ada\" o un cierre inesperado al lanzarse. ',(0,e.jsxs)(a.strong,{children:[\"La soluci\\xF3n para App Translocation es casi vergonzosamente simple: arrastra la app fuera de Descargas o del DMG y col\\xF3cala en la carpeta \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\", y luego \\xE1brela desde ah\\xED.\"]}),' Mover el paquete de la app elimina la translocaci\\xF3n para esa copia. Este \\xFAnico paso resuelve una cantidad sorprendente de reportes de \"da\\xF1ada\" de personas que ejecutan apps directamente desde una imagen de disco.']}),`\n`,(0,e.jsx)(a.p,{children:(0,e.jsx)(a.img,{alt:\"Privacidad y seguridad - Abrir de todas formas en macOS Tahoe\",src:\"/images/blog/app-is-damaged-cant-be-opened-macos-tahoe-gatekeeper-quarantine-fix-2026/content-1.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsx)(a.h3,{id:\"firmas-rotas-por-herramientas-de-descompresi\\xF3n-y-transferencia\",children:\"Firmas rotas por herramientas de descompresi\\xF3n y transferencia\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Una firma de c\\xF3digo es un hash criptogr\\xE1fico del contenido del paquete de la app, incluyendo su estructura de directorios, enlaces simb\\xF3licos y atributos extendidos. Si \",(0,e.jsx)(a.em,{children:\"cualquier cosa\"}),\" del paquete cambia despu\\xE9s de la firma, esta ya no coincide y la validaci\\xF3n falla. Varias operaciones cotidianas pueden corromper silenciosamente un paquete:\"]}),`\n`,(0,e.jsxs)(a.ul,{children:[`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"Utilidades de archivos de terceros\"}),\" que no preservan los enlaces simb\\xF3licos o que aplanan la estructura del paquete al descomprimir.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"Transferencias de archivos a trav\\xE9s de herramientas o sistemas de archivos\"}),\" (algunos recursos compartidos de red, ciertos clientes de sincronizaci\\xF3n en la nube, unidades USB con formato FAT/exFAT) que eliminan atributos extendidos o manipulan los enlaces simb\\xF3licos.\"]}),`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.strong,{children:\"Editar manualmente\"}),\" cualquier cosa dentro del paquete \",(0,e.jsx)(a.code,{children:\".app\"}),\", incluso renombrar un archivo.\"]}),`\n`]}),`\n`,(0,e.jsx)(a.p,{children:'Cuando esto ocurre, recibes el error \"est\\xE1 da\\xF1ada\" aunque la descarga original estuviera bien. La soluci\\xF3n aqu\\xED no es solo eliminar la cuarentena \\u2014 es volver a descargar la app desde la fuente oficial usando Safari (que maneja los paquetes correctamente) o, en el caso de compilaciones propias del desarrollador, volver a firmar localmente (cubierto m\\xE1s adelante, con advertencias).'}),`\n`,(0,e.jsx)(a.h3,{id:\"binarios-para-apple-silicon-vs-intel\",children:\"Binarios para Apple Silicon vs Intel\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si tienes un Mac con Apple Silicon (M1 hasta la \\xFAltima generaci\\xF3n M-series) e intentas ejecutar una app \",(0,e.jsx)(a.strong,{children:\"exclusiva para Intel\"}),\", macOS necesita Rosetta 2 para traducirla. En un sistema nuevo es posible que Rosetta no est\\xE9 instalado, y Apple ha se\\xF1alado que Rosetta 2 est\\xE1 llegando a su fin \\u2014 para la \\xE9poca de macOS 27, su disponibilidad cambia significativamente. Un binario Intel que no puede traducirse, o un binario universal da\\xF1ado al que le falta la porci\\xF3n arm64, puede manifestarse como un fallo de lanzamiento que parece corrupci\\xF3n. Puedes inspeccionar las arquitecturas que contiene un binario:\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"lipo\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -archs\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app/Contents/MacOS/ExampleApp\"})]})})})}),`\n`,(0,e.jsx)(a.p,{children:\"Salida para una app universal:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"x86_64 arm64\"})})})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si solo ves \",(0,e.jsx)(a.code,{children:\"x86_64\"}),\" en un Mac con Apple Silicon, necesitas Rosetta 2 (o una compilaci\\xF3n nativa). Si solo ves \",(0,e.jsx)(a.code,{children:\"arm64\"}),\" en un Mac Intel, esa compilaci\\xF3n simplemente no funcionar\\xE1 ah\\xED. Para el panorama m\\xE1s amplio sobre el retiro de Rosetta, consulta nuestra \",(0,e.jsx)(a.a,{href:\"/blog/rosetta-2-end-of-life-complete-guide-prepare-macos-27-2026\",children:\"gu\\xEDa completa sobre el fin de vida de Rosetta 2\"}),\".\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"un-reloj-incorrecto-rompe-la-notarizaci\\xF3n\",children:\"Un reloj incorrecto rompe la notarizaci\\xF3n\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Este punto sorprende a muchas personas. La validaci\\xF3n de certificados y las verificaciones de tickets de notarizaci\\xF3n son \",(0,e.jsx)(a.strong,{children:\"sensibles al tiempo\"}),' \\u2014 confirman que el certificado de firma era v\\xE1lido en un momento dado y que el ticket no ha expirado. Si la fecha y hora de tu Mac est\\xE1n muy equivocadas (una bater\\xEDa de reloj muerta en hardware antiguo, una fecha configurada manualmente de forma incorrecta o una configuraci\\xF3n de zona horaria mal hecha), estas verificaciones pueden fallar y producir \"no se pudo verificar que est\\xE9 libre de malware\" o incluso \"est\\xE1 da\\xF1ada\". Verifica siempre el reloj:']}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"date\"})})})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si la fecha est\\xE1 mal, corr\\xEDgela en \",(0,e.jsx)(a.strong,{children:\"Configuraci\\xF3n del sistema > General > Fecha y hora\"}),' y activa \"Establecer fecha y hora autom\\xE1ticamente\"; luego prueba abrir la app de nuevo. Parece trivial, pero es una causa genuina y reproducible.']}),`\n`,(0,e.jsx)(a.h2,{id:\"el-flujo-de-soluci\\xF3n-seguro-privacidad-y-seguridad-primero\",children:\"El flujo de soluci\\xF3n seguro: Privacidad y seguridad primero\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Aqu\\xED est\\xE1 la regla de oro: \",(0,e.jsx)(a.strong,{children:\"prueba el m\\xE9todo oficial y menos agresivo antes de tocar Terminal.\"}),' En Tahoe, eso significa el flujo de \"Abrir de todas formas\" en Configuraci\\xF3n del sistema. Aprueba exactamente una app, deja Gatekeeper completamente activo para todo lo dem\\xE1s, y crea un momento deliberado para que confirmes que conf\\xEDas en el software.']}),`\n`,(0,e.jsx)(a.h3,{id:\"paso-1-mueve-la-app-a-applications\",children:\"Paso 1: Mueve la app a /Applications\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si la app est\\xE1 en Descargas o se est\\xE1 ejecutando desde un DMG montado, arrastra el \",(0,e.jsx)(a.code,{children:\".app\"}),\" a tu carpeta \",(0,e.jsx)(a.code,{children:\"/Applications\"}),' primero. Esto por s\\xED solo elimina App Translocation y resuelve muchos casos de \"da\\xF1ada\" antes de que hagas cualquier otra cosa. Expulsa la imagen de disco despu\\xE9s.']}),`\n`,(0,e.jsx)(a.h3,{id:\"paso-2-intenta-abrirla-y-luego-abre-privacidad-y-seguridad\",children:\"Paso 2: Intenta abrirla y luego abre Privacidad y seguridad\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Haz doble clic en la app. Cuando aparezca el di\\xE1logo de bloqueo, haz clic en \",(0,e.jsx)(a.strong,{children:\"Cancelar\"}),' (no hagas clic en \"Mover a la Papelera\"). Luego ve a:']}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Configuraci\\xF3n del sistema > Privacidad y seguridad\"}),\", y despl\\xE1zate hacia abajo hasta la secci\\xF3n \",(0,e.jsx)(a.strong,{children:\"Seguridad\"}),\". Si macOS bloque\\xF3 recientemente la app, ver\\xE1s una l\\xEDnea como \",(0,e.jsx)(a.em,{children:`\"'ExampleApp' fue bloqueada para proteger tu Mac\"`}),\" con un bot\\xF3n \",(0,e.jsx)(a.strong,{children:'\"Abrir de todas formas\"'}),\" junto a ella.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"paso-3-haz-clic-en-abrir-de-todas-formas-y-autent\\xEDcate\",children:'Paso 3: Haz clic en \"Abrir de todas formas\" y autent\\xEDcate'}),`\n`,(0,e.jsxs)(a.p,{children:[\"Haz clic en \",(0,e.jsx)(a.strong,{children:\"Abrir de todas formas\"}),\". macOS te pedir\\xE1 que te autentiques con Touch ID o tu contrase\\xF1a y luego mostrar\\xE1 una confirmaci\\xF3n final. Conf\\xEDrmala y la app se abrir\\xE1. A partir de ese momento, esa app estar\\xE1 en tu lista de aprobadas y se abrir\\xE1 normalmente.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"Este es el flujo que reemplaz\\xF3 al antiguo truco de \",(0,e.jsx)(a.strong,{children:\"clic derecho \\u2192 Abrir\"}),\". En macOS 14 Sonoma y versiones anteriores, pod\\xEDas hacer clic secundario en una app, elegir Abrir y obtener un di\\xE1logo de omisi\\xF3n \\xFAnica. Apple elimin\\xF3 ese atajo a partir de la generaci\\xF3n macOS 15/26 espec\\xEDficamente para evitar que los usuarios omitieran Gatekeeper de forma irreflexiva. La ruta a trav\\xE9s de Privacidad y seguridad es intencionalmente m\\xE1s lenta \\u2014 esa fricci\\xF3n es una caracter\\xEDstica. Para conocer los cambios m\\xE1s amplios en la configuraci\\xF3n de seguridad de esta versi\\xF3n, nuestra \",(0,e.jsx)(a.a,{href:\"/blog/macos-tahoe-security-privacy-complete-guide-2025\",children:\"gu\\xEDa completa de seguridad y privacidad de macOS Tahoe\"}),\" detalla el panel redise\\xF1ado.\"]}),`\n`,(0,e.jsxs)(a.blockquote,{children:[`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Importante:\"}),' Si la app muestra el di\\xE1logo dr\\xE1stico de \"est\\xE1 da\\xF1ada\" y ',(0,e.jsx)(a.strong,{children:\"no\"}),' ves el bot\\xF3n \"Abrir de todas formas\" en Privacidad y seguridad, eso normalmente significa que la firma est\\xE1 genuinamente rota (no solo sin notarizar). En ese caso, vuelve a descargarla desde la fuente oficial primero; si sigue fallando, la secci\\xF3n de Terminal m\\xE1s abajo es tu siguiente paso.']}),`\n`]}),`\n`,(0,e.jsx)(a.h2,{id:\"las-soluciones-por-terminal-y-sus-costos-reales\",children:\"Las soluciones por Terminal (y sus costos reales)\"}),`\n`,(0,e.jsxs)(a.p,{children:['Cuando la ruta por interfaz gr\\xE1fica no produce el bot\\xF3n \"Abrir de todas formas\", Terminal es la siguiente herramienta. Todo lo que se describe a continuaci\\xF3n es seguro ',(0,e.jsx)(a.em,{children:\"solo\"}),\" cuando se aplica a una app espec\\xEDfica en la que conf\\xEDas y proveniente de una fuente en la que conf\\xEDas. Estos comandos reducen la seguridad para los objetivos a los que los apuntas \\u2014 ese es todo el punto, y todo el riesgo.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"inspecciona-antes-de-actuar\",children:\"Inspecciona antes de actuar\"}),`\n`,(0,e.jsx)(a.p,{children:\"Siempre mira antes de saltar. Lista los atributos extendidos:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xattr\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -l\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\" est\\xE1 presente, la cuarentena est\\xE1 contribuyendo al bloqueo. Si est\\xE1 ausente, eliminarlo no ayudar\\xE1 y el problema est\\xE1 en la firma o la arquitectura.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"elimina-el-atributo-de-cuarentena\",children:\"Elimina el atributo de cuarentena\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Para quitar la cuarentena de una sola app, eliminando (\",(0,e.jsx)(a.code,{children:\"-d\"}),\") el atributo de forma recursiva (\",(0,e.jsx)(a.code,{children:\"-r\"}),\") en todo el paquete:\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xattr\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -dr\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" com.apple.quarantine\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsx)(a.p,{children:\"No hay salida en caso de \\xE9xito. Ahora vuelve a abrir la app; en muchos casos se abre de inmediato porque Gatekeeper ya no la trata como un archivo externo. Puedes confirmar que el atributo desapareci\\xF3:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xattr\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -l\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"La l\\xEDnea \",(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),\" deber\\xEDa haber desaparecido.\"]}),`\n`,(0,e.jsx)(a.p,{children:(0,e.jsx)(a.img,{alt:\"Terminal eliminando el atributo de cuarentena\",src:\"/images/blog/app-is-damaged-cant-be-opened-macos-tahoe-gatekeeper-quarantine-fix-2026/content-2.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Qu\\xE9 hace realmente esto y por qu\\xE9 es arriesgado:\"}),' eliminar el xattr de cuarentena le dice a Gatekeeper que deje de examinar esta app como una descarga del mundo exterior. Para una app leg\\xEDtima que descargaste t\\xFA mismo, eso est\\xE1 bien \\u2014 simplemente est\\xE1s confirmando la decisi\\xF3n de confianza que ya tomaste. Pero si lo ejecutas a ciegas en algo que obtuviste de un sitio sospechoso, un enlace en un foro o una app \"crackeada\", acabas de desactivar la \\xFAnica verificaci\\xF3n que podr\\xEDa haber detectado el malware. ',(0,e.jsxs)(a.strong,{children:[\"Nunca ejecutes \",(0,e.jsx)(a.code,{children:\"xattr -dr com.apple.quarantine\"}),\" contra \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\" en su totalidad ni contra una app que no puedas garantizar.\"]}),\" La manera m\\xE1s com\\xFAn en que usuarios de Mac bienintencionados se infectan es copiando y pegando un comando de eliminaci\\xF3n de cuarentena de una p\\xE1gina de descarga que \",(0,e.jsx)(a.em,{children:\"quiere\"}),\" que desactives Gatekeeper.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"volver-a-firmar-un-paquete-roto-avanzado-con-grandes-advertencias\",children:\"Volver a firmar un paquete roto (avanzado, con grandes advertencias)\"}),`\n`,(0,e.jsx)(a.p,{children:\"Si el problema es una firma corrupta en lugar de cuarentena, eliminar el atributo por s\\xED solo no ayudar\\xE1 \\u2014 Gatekeeper sigue viendo una firma inv\\xE1lida. Algunas gu\\xEDas sugieren forzar una nueva firma de la app con una firma ad hoc:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"codesign\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --force\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --deep\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --sign\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" -\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.code,{children:\"--sign -\"}),\" significa una firma \",(0,e.jsx)(a.strong,{children:\"ad hoc\"}),\" (sin identidad real), \",(0,e.jsx)(a.code,{children:\"--force\"}),\" sobrescribe la firma existente y \",(0,e.jsx)(a.code,{children:\"--deep\"}),\" recurre en el c\\xF3digo anidado.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Ten mucho cuidado aqu\\xED.\"}),\" Esto es genuinamente avanzado y con frecuencia es la respuesta incorrecta:\"]}),`\n`,(0,e.jsxs)(a.ul,{children:[`\n`,(0,e.jsxs)(a.li,{children:[(0,e.jsx)(a.code,{children:\"--deep\"}),\" est\\xE1 obsoleto por Apple para la firma y puede producir resultados sutilmente rotos en apps complejas; fue dise\\xF1ado para la comodidad de la verificaci\\xF3n, no como una estrategia de firma adecuada.\"]}),`\n`,(0,e.jsx)(a.li,{children:\"La nueva firma ad hoc descarta por completo la firma real del desarrollador y la notarizaci\\xF3n. Est\\xE1s respaldando la app con la confianza de tu propio equipo, no con la de Apple.\"}),`\n`,(0,e.jsxs)(a.li,{children:['Si el paquete est\\xE1 corrompido (el escenario \"da\\xF1ada\" real), volver a firmar la corrupci\\xF3n no la repara. La soluci\\xF3n correcta es ',(0,e.jsx)(a.strong,{children:\"volver a descargar una copia limpia\"}),\" desde la fuente oficial.\"]}),`\n`]}),`\n`,(0,e.jsxs)(a.p,{children:[\"En la pr\\xE1ctica, volver a firmar es una herramienta para desarrolladores que depuran sus propias compilaciones, no un remedio para usuarios finales. Si te encuentras recurriendo a \",(0,e.jsx)(a.code,{children:\"codesign --force --deep --sign -\"}),\" en una app que no compilaste t\\xFA, detente y vuelve a descargarla.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"verifica-el-veredicto-de-gatekeeper-con-spctl\",children:\"Verifica el veredicto de Gatekeeper con spctl\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Para entender \",(0,e.jsx)(a.em,{children:\"por qu\\xE9\"}),\" Gatekeeper est\\xE1 molesto, preg\\xFAntale directamente. Eval\\xFAa una app espec\\xEDfica con verbosidad m\\xE1xima:\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"spctl\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -a\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -vvv\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications/ExampleApp.app\"})]})})})}),`\n`,(0,e.jsx)(a.p,{children:\"Una app notarizada y en buen estado devuelve algo como:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(a.code,{children:[(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"/Applications/ExampleApp.app: accepted\"})}),`\n`,(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"source=Notarized Developer ID\"})}),`\n`,(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"origin=Developer ID Application: Example Developer (AB12CD34EF)\"})})]})})}),`\n`,(0,e.jsx)(a.p,{children:\"Una app bloqueada podr\\xEDa devolver:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(a.code,{children:[(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"/Applications/ExampleApp.app: rejected\"})}),`\n`,(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"source=no usable signature\"})})]})})}),`\n`,(0,e.jsxs)(a.p,{children:[\"La l\\xEDnea \",(0,e.jsx)(a.code,{children:\"source=\"}),\" es valiosa \\u2014 \",(0,e.jsx)(a.code,{children:\"source=Notarized Developer ID\"}),\" significa que todo est\\xE1 bien, \",(0,e.jsx)(a.code,{children:\"source=no usable signature\"}),' indica que la firma est\\xE1 rota o ausente, y un rechazo con raz\\xF3n \"sin notarizar\" apunta a la notarizaci\\xF3n en lugar de a la cuarentena. Verifica el estado general de Gatekeeper con:']}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsxs)(a.span,{className:\"line\",children:[(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"spctl\"}),(0,e.jsx)(a.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --status\"})]})})})}),`\n`,(0,e.jsx)(a.p,{children:\"Que normalmente imprime:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(a.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(a.code,{children:(0,e.jsx)(a.span,{className:\"line\",children:(0,e.jsx)(a.span,{children:\"assessments enabled\"})})})})}),`\n`,(0,e.jsx)(a.h2,{id:\"manejo-de-apps-fuera-de-la-app-store\",children:\"Manejo de apps fuera de la App Store\"}),`\n`,(0,e.jsx)(a.p,{children:'La gran mayor\\xEDa de los reportes de \"est\\xE1 da\\xF1ada\" provienen de apps instaladas fuera de la Mac App Store, por lo que vale la pena dedicarle unas palabras. Las apps de la App Store pasan por revisi\\xF3n y est\\xE1n firmadas y notarizadas de extremo a extremo, por lo que pr\\xE1cticamente nunca activan estos di\\xE1logos. Las apps de la web abierta son donde Gatekeeper se gana su lugar.'}),`\n`,(0,e.jsxs)(a.p,{children:[\"Tus fuentes m\\xE1s seguras, en orden de confianza, son: la \",(0,e.jsx)(a.strong,{children:\"Mac App Store\"}),\", el \",(0,e.jsx)(a.strong,{children:\"sitio oficial del desarrollador\"}),\" con una descarga notarizada y gestores de paquetes reconocidos como \",(0,e.jsx)(a.strong,{children:\"Homebrew Cask\"}),' (que generalmente obtienen de fuentes oficiales). S\\xE9 mucho m\\xE1s cauteloso con los espejos de descarga aleatorios, versiones \"gratuitas\" de apps de pago y enlaces compartidos en foros o chats. El hecho de que una app ',(0,e.jsx)(a.em,{children:\"pueda\"}),\" ejecutarse eliminando la cuarentena no dice nada sobre si es \",(0,e.jsx)(a.em,{children:\"seguro\"}),\" ejecutarla.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"Un recordatorio aleccionador de que la notarizaci\\xF3n es un filtro, no una garant\\xEDa: el malware notarizado ocasionalmente pasa los controles automatizados de Apple. Nuestro an\\xE1lisis del \",(0,e.jsx)(a.a,{href:\"/blog/macsync-stealer-apple-notarized-malware-security-guide-2025\",children:\"ladr\\xF3n MacSync distribuido con notarizaci\\xF3n v\\xE1lida de Apple\"}),' muestra que incluso una app que pasa Gatekeeper limpiamente puede ser maliciosa. La lecci\\xF3n no es \"desconf\\xEDa de todo\" sino \"la fuente importa m\\xE1s que el di\\xE1logo\". Si no confiar\\xEDas en el sitio web, no conf\\xEDes en la descarga, sin importar lo limpiamente que se lance. Para una lista de verificaci\\xF3n de seguridad m\\xE1s completa, nuestra ',(0,e.jsx)(a.a,{href:\"/blog/mac-security-privacy-guide-2026\",children:\"gu\\xEDa de seguridad y privacidad en Mac\"}),\" cubre las herramientas que vale la pena usar junto con Gatekeeper.\"]}),`\n`,(0,e.jsx)(a.p,{children:(0,e.jsx)(a.img,{alt:\"Diagrama del flujo de notarizaci\\xF3n de Gatekeeper en macOS\",src:\"/images/blog/app-is-damaged-cant-be-opened-macos-tahoe-gatekeeper-quarantine-fix-2026/content-3.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsx)(a.h2,{id:\"c\\xF3mo-cambi\\xF3-esto-en-tahoe-respecto-a-versiones-anteriores-de-macos\",children:\"C\\xF3mo cambi\\xF3 esto en Tahoe respecto a versiones anteriores de macOS\"}),`\n`,(0,e.jsx)(a.p,{children:\"Si tu \\xFAltima batalla con este problema fue hace unos a\\xF1os, las reglas del juego han cambiado. Conocer las diferencias te ahorrar\\xE1 seguir tutoriales desactualizados.\"}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"El clic derecho \\u2192 Abrir ya no existe.\"}),' Hasta macOS 14 Sonoma, hacer clic secundario en una app y elegir Abrir te daba un di\\xE1logo de omisi\\xF3n \\xFAnica. Apple lo elimin\\xF3 en la generaci\\xF3n macOS 15/26, y Tahoe 26.5 contin\\xFAa esa tendencia. La \\xFAnica anulaci\\xF3n sancionada para una app bloqueada es el bot\\xF3n \"Abrir de todas formas\" en ',(0,e.jsx)(a.strong,{children:\"Configuraci\\xF3n del sistema > Privacidad y seguridad\"}),\". Los tutoriales que te indican hacer clic derecho y Abrir est\\xE1n desactualizados.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:'La opci\\xF3n \"En cualquier lugar\" est\\xE1 oculta.'}),' Las versiones antiguas de macOS permit\\xEDan configurar Gatekeeper para permitir apps \"En cualquier lugar\" en el panel de Seguridad y Privacidad. Ese bot\\xF3n de radio fue eliminado de la interfaz hace a\\xF1os y permanece oculto en Tahoe. A veces puedes acceder a un estado similar a trav\\xE9s de la l\\xEDnea de comandos, pero Apple ha hecho deliberadamente dif\\xEDcil alcanzar la postura de \"confiar en todo\" porque es peligrosa.']}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsxs)(a.strong,{children:[(0,e.jsx)(a.code,{children:\"spctl --master-disable\"}),\" ya no se comporta como se anuncia.\"]}),\" Muchas gu\\xEDas antiguas te dicen que ejecutes \",(0,e.jsx)(a.code,{children:\"sudo spctl --master-disable\"}),' para desactivar Gatekeeper por completo y que vuelva a aparecer la opci\\xF3n \"En cualquier lugar\". En macOS moderno, el efecto de este comando est\\xE1 limitado: puede reportar \\xE9xito pero las protecciones de Gatekeeper (especialmente los comportamientos de notarizaci\\xF3n y translocaci\\xF3n) no quedan completamente desactivadas como lo estaban en, digamos, macOS 10.14. La Protecci\\xF3n de Integridad del Sistema y la arquitectura de seguridad redise\\xF1ada significan que un solo comando ya no puede desactivar limpiamente todo el subsistema. ',(0,e.jsxs)(a.strong,{children:[\"Trata cualquier gu\\xEDa basada en \",(0,e.jsx)(a.code,{children:\"spctl --master-disable\"}),\" como obsoleta.\"]})]}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Mayor fricci\\xF3n deliberada en general.\"}),\" El hilo conductor del enfoque de Tahoe es la fricci\\xF3n intencional. Apple quiere que aprobar una app no verificada sea una decisi\\xF3n consciente y autenticada tomada en Configuraci\\xF3n del sistema, no un clic derecho reflejo. Para el panorama completo de seguridad y CVE de esta versi\\xF3n espec\\xEDfica, consulta nuestra \",(0,e.jsx)(a.a,{href:\"/blog/macos-tahoe-26-5-released-complete-update-guide-security-cve-roundup-2026\",children:\"gu\\xEDa completa de la actualizaci\\xF3n macOS Tahoe 26.5\"}),\".\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"notas-para-empresas-y-gesti\\xF3n-mdm\",children:\"Notas para empresas y gesti\\xF3n MDM\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Si administras Macs en una organizaci\\xF3n, tienes opciones que los usuarios finales no tienen, y no deber\\xEDas ense\\xF1arles a ejecutar comandos \",(0,e.jsx)(a.code,{children:\"xattr\"}),\". La Gesti\\xF3n de Dispositivos M\\xF3viles (MDM) te permite distribuir confianza a escala en lugar de hacerlo equipo por equipo. Puedes implementar un perfil de \",(0,e.jsx)(a.strong,{children:\"Privacy Preferences Policy Control (PPPC)\"}),\" y perfiles de configuraci\\xF3n relacionados con Gatekeeper para aprobar previamente identidades de desarrolladores espec\\xEDficas, de modo que las apps internas y las de terceros aprobadas se lancen sin avisos de Gatekeeper. Las \",(0,e.jsx)(a.strong,{children:\"compilaciones internas correctamente firmadas y notarizadas\"}),\" \\u2014 incluso para herramientas internas \\u2014 son la respuesta correcta a largo plazo; paga por un Developer ID, firma y notariza tus apps internas para que pasen Gatekeeper nativamente en lugar de pedirles a los empleados que lo desactiven.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"Evita la tentaci\\xF3n de enviar una desactivaci\\xF3n de Gatekeeper a toda la flota. Eso convierte cada Mac de tu organizaci\\xF3n en un objetivo f\\xE1cil y es exactamente la postura que los atacantes esperan encontrar. Si tambi\\xE9n gestionas qu\\xE9 se ejecuta al iniciar sesi\\xF3n en toda la flota, nuestra \",(0,e.jsx)(a.a,{href:\"/blog/macos-tahoe-login-items-background-apps-complete-management-guide-2025\",children:\"gu\\xEDa de gesti\\xF3n de elementos de inicio de sesi\\xF3n y apps en segundo plano de Tahoe\"}),\" complementa bien una pol\\xEDtica de Gatekeeper para controlar qu\\xE9 se ejecuta y cu\\xE1ndo.\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"soluci\\xF3n-de-problemas-comunes\",children:\"Soluci\\xF3n de problemas comunes\"}),`\n`,(0,e.jsx)(a.h3,{id:\"problema-el-bot\\xF3n-abrir-de-todas-formas-nunca-aparece-en-privacidad-y-seguridad\",children:'Problema: El bot\\xF3n \"Abrir de todas formas\" nunca aparece en Privacidad y seguridad'}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Soluci\\xF3n:\"}),' Esto casi siempre significa que el di\\xE1logo que recibiste fue la variante dr\\xE1stica de \"est\\xE1 da\\xF1ada\" (firma rota o ausente) en lugar del m\\xE1s suave de \"no se puede verificar al desarrollador\" \\u2014 y Apple no ofrece una anulaci\\xF3n por interfaz gr\\xE1fica para firmas genuinamente inv\\xE1lidas. Primero, mueve la app de Descargas o del DMG a ',(0,e.jsx)(a.code,{children:\"/Applications\"}),\" para descartar App Translocation y luego intenta abrirla de nuevo para que macOS registre un bloqueo nuevo. Si el bot\\xF3n sigue sin aparecer, vuelve a descargar la app desde el sitio oficial usando Safari. Si sigue descarg\\xE1ndose rota, puede que la propia compilaci\\xF3n del desarrollador sea el problema. Como \\xFAltimo recurso para una app en la que conf\\xEDas, usa \",(0,e.jsx)(a.code,{children:\"xattr -dr com.apple.quarantine\"}),\" sobre ella.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"problema-terminal-dice-operation-not-permitted-al-ejecutar-xattr\",children:'Problema: Terminal dice \"Operation not permitted\" al ejecutar xattr'}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Soluci\\xF3n:\"}),\" Este es un problema de permisos, no de sintaxis. macOS protege ciertas ubicaciones y es posible que tu aplicaci\\xF3n de Terminal no tenga \",(0,e.jsx)(a.strong,{children:\"Acceso total al disco\"}),\". Ve a \",(0,e.jsx)(a.strong,{children:\"Configuraci\\xF3n del sistema > Privacidad y seguridad > Acceso total al disco\"}),\", activa tu terminal (Terminal.app, iTerm, etc.), luego ci\\xE9rrala por completo y vuelve a abrirla. Tambi\\xE9n confirma que escribiste la ruta real \\u2014 arrastra la app a la ventana de Terminal para insertar su ruta exacta. Si la app vive en alg\\xFAn lugar protegido, copiarla primero a \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\" y trabajar desde ah\\xED evita la restricci\\xF3n.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"problema-la-app-se-abre-una-vez-luego-falla-o-se-da\\xF1a-de-nuevo-tras-una-actualizaci\\xF3n\",children:'Problema: La app se abre una vez, luego falla o \"se da\\xF1a\" de nuevo tras una actualizaci\\xF3n'}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Soluci\\xF3n:\"}),\" Esto apunta a una app con auto-actualizaci\\xF3n que choca con App Translocation o con una firma rota en su actualizador. Aseg\\xFArate de que la app est\\xE9 en \",(0,e.jsx)(a.code,{children:\"/Applications\"}),\" (no en Descargas), ya que los auto-actualizadores en el lugar funcionan mal cuando son traslocados. Si la app vuelve a ponerse en cuarentena despu\\xE9s de cada actualizaci\\xF3n, es posible que el actualizador la est\\xE9 descargando de nuevo mediante un mecanismo consciente de cuarentena. La soluci\\xF3n m\\xE1s limpia es eliminar la app, descargar una copia nueva desde la fuente oficial, arrastrarla a \",(0,e.jsx)(a.code,{children:\"/Applications\"}),', aprobarla una vez con \"Abrir de todas formas\" y dejar que las actualizaciones futuras se ejecuten desde ah\\xED.']}),`\n`,(0,e.jsx)(a.h3,{id:\"problema-no-se-pudo-verificar-que-est\\xE9-libre-de-malware-aunque-tengo-conexi\\xF3n\",children:'Problema: \"No se pudo verificar que est\\xE9 libre de malware\" aunque tengo conexi\\xF3n'}),`\n`,(0,e.jsxs)(a.p,{children:[(0,e.jsx)(a.strong,{children:\"Soluci\\xF3n:\"}),\" Primero verifica el reloj del sistema con \",(0,e.jsx)(a.code,{children:\"date\"}),\" \\u2014 una fecha incorrecta rompe la validaci\\xF3n de tickets. Luego confirma que no est\\xE1s detr\\xE1s de un proxy, VPN o firewall que bloquee los servidores de notarizaci\\xF3n de Apple; desactivar temporalmente una VPN restrictiva y volver a intentarlo suele resolverlo. Ejecuta \",(0,e.jsx)(a.code,{children:\"spctl -a -vvv /ruta/hacia/App.app\"}),\" para ver el veredicto preciso. Si \",(0,e.jsx)(a.code,{children:\"spctl\"}),\" reporta la app como aceptada/notarizada una vez restaurada la conectividad, el fallo original fue exclusivamente un problema de red o de reloj, no de la app.\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"preguntas-frecuentes\",children:\"Preguntas frecuentes\"}),`\n`,(0,e.jsx)(a.h3,{id:\"es-seguro-usar-xattr-para-eliminar-el-atributo-de-cuarentena\",children:\"\\xBFEs seguro usar xattr para eliminar el atributo de cuarentena?\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Es seguro \",(0,e.jsx)(a.em,{children:\"solo\"}),\" cuando se aplica a una app espec\\xEDfica en la que conf\\xEDas genuinamente y proveniente de una fuente en la que conf\\xEDas. El comando en s\\xED no da\\xF1a tu sistema; el riesgo est\\xE1 enteramente en \",(0,e.jsx)(a.em,{children:\"a qu\\xE9\"}),' lo apuntas. Eliminar la cuarentena desactiva la verificaci\\xF3n de Gatekeeper para esa app, as\\xED que ejecutarlo en software dudoso es la manera en que los Macs limpios se infectan. Una app de confianza desde el sitio del desarrollador: bien. Una descarga \"crackeada\" aleatoria: nunca.']}),`\n`,(0,e.jsx)(a.h3,{id:\"desactivar-gatekeeper-me-expondr\\xE1-a-malware\",children:\"\\xBFDesactivar Gatekeeper me expondr\\xE1 a malware?\"}),`\n`,(0,e.jsx)(a.p,{children:'Desactivar Gatekeeper en todo el sistema eleva dr\\xE1sticamente tu exposici\\xF3n, s\\xED. Gatekeeper bloquea la ruta m\\xE1s f\\xE1cil que usan los atacantes \\u2014 lograr que ejecutes c\\xF3digo sin firma y sin notarizar. Con \\xE9l desactivado, cada descarga se ejecuta sin verificaci\\xF3n. Casi nunca hay una buena raz\\xF3n para que un usuario individual lo desactive globalmente; aprobar una app a trav\\xE9s de \"Abrir de todas formas\" logra tu objetivo sin dejar la puerta abierta para todo lo dem\\xE1s. Mant\\xE9n Gatekeeper activo.'}),`\n`,(0,e.jsx)(a.h3,{id:\"por-qu\\xE9-terminal-dice-operation-not-permitted-cuando-ejecuto-xattr\",children:'\\xBFPor qu\\xE9 Terminal dice \"operation not permitted\" cuando ejecuto xattr?'}),`\n`,(0,e.jsx)(a.p,{children:\"Tu aplicaci\\xF3n de terminal no tiene Acceso total al disco, o est\\xE1s apuntando a una ubicaci\\xF3n protegida del sistema. Otorga acceso en Configuraci\\xF3n del sistema > Privacidad y seguridad > Acceso total al disco, activa tu terminal, luego ci\\xE9rrala y vuelve a abrirla. Verifica que la ruta sea correcta arrastrando la app a la ventana de Terminal. Esto es una protecci\\xF3n de privacidad de macOS funcionando correctamente, no un error en tu comando.\"}),`\n`,(0,e.jsx)(a.h3,{id:\"el-truco-del-clic-derecho-abrir-sigue-funcionando-en-tahoe\",children:'\\xBFEl truco del clic derecho \"Abrir\" sigue funcionando en Tahoe?'}),`\n`,(0,e.jsx)(a.p,{children:'No. Apple elimin\\xF3 la omisi\\xF3n \\xFAnica de clic derecho \\u2192 Abrir en la generaci\\xF3n macOS 15/26, y Tahoe 26.5 contin\\xFAa esa decisi\\xF3n. La \\xFAnica manera sancionada de abrir una app bloqueada es el bot\\xF3n \"Abrir de todas formas\" en Configuraci\\xF3n del sistema > Privacidad y seguridad, que requiere autenticaci\\xF3n. Cualquier gu\\xEDa que siga recomendando clic derecho \\u2192 Abrir est\\xE1 desactualizada.'}),`\n`,(0,e.jsx)(a.h3,{id:\"mi-app-funcionaba-ayer-y-ahora-dice-que-est\\xE1-da\\xF1ada-por-qu\\xE9\",children:\"Mi app funcionaba ayer y ahora dice que est\\xE1 da\\xF1ada. \\xBFPor qu\\xE9?\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"Varias causas encajan con este patr\\xF3n: el certificado de firma del desarrollador fue revocado, una actualizaci\\xF3n dentro de la app introdujo una compilaci\\xF3n rota o sin notarizar, la app se volvi\\xF3 a poner en cuarentena durante una actualizaci\\xF3n, o el reloj del sistema se desincroniz\\xF3 y rompi\\xF3 la validaci\\xF3n de tickets. Verifica \",(0,e.jsx)(a.code,{children:\"date\"}),\" primero, luego vuelve a descargar una copia nueva desde la fuente oficial y apru\\xE9bala una vez. Si sigue ocurriendo, rep\\xF3rtalo al desarrollador.\"]}),`\n`,(0,e.jsx)(a.h3,{id:\"app-translocation-es-lo-mismo-que-cuarentena\",children:\"\\xBFApp Translocation es lo mismo que cuarentena?\"}),`\n`,(0,e.jsxs)(a.p,{children:[\"No, aunque est\\xE1n relacionadas. La cuarentena es el atributo que marca un archivo como descargado. App Translocation es un comportamiento defensivo que macOS activa \",(0,e.jsx)(a.em,{children:\"porque\"}),\" una app est\\xE1 en cuarentena y se ejecuta desde una ubicaci\\xF3n de descarga \\u2014 la lanza desde una ruta aleatoria de solo lectura para frustrar los ataques de archivos cargados lateralmente. Mover la app a /Applications detiene la translocaci\\xF3n; eliminar el atributo de cuarentena detiene el marcado. Mecanismos diferentes, soluciones diferentes.\"]}),`\n`,(0,e.jsx)(a.h2,{id:\"conclusi\\xF3n\",children:\"Conclusi\\xF3n\"}),`\n`,(0,e.jsxs)(a.p,{children:['El error \"la app est\\xE1 da\\xF1ada y no se puede abrir\" en macOS Tahoe es abrumadoramente un problema de confianza, no de corrupci\\xF3n. Gatekeeper, el atributo ',(0,e.jsx)(a.code,{children:\"com.apple.quarantine\"}),' y la notarizaci\\xF3n trabajan juntos para evitar que tu Mac ejecute c\\xF3digo que no puede verificar \\u2014 y la mayor\\xEDa de las veces, una app leg\\xEDtima los activa debido a un indicador de cuarentena, App Translocation, una firma rota por una descompresi\\xF3n descuidada, un desajuste de arquitectura o un reloj incorrecto. Lee el di\\xE1logo para saber cu\\xE1l de los tres problemas tienes, prueba primero la ruta oficial de \"Abrir de todas formas\" en Privacidad y seguridad, y recurre a ',(0,e.jsx)(a.code,{children:\"xattr\"}),\", \",(0,e.jsx)(a.code,{children:\"spctl\"}),\" y \",(0,e.jsx)(a.code,{children:\"codesign\"}),\" solo cuando entiendas qu\\xE9 sacrifican. La \\xFAnica regla para recordar por encima de todo: la seguridad de una app viene de su \",(0,e.jsx)(a.em,{children:\"origen\"}),\", no de lo limpiamente que puedas forzarla a ejecutarse.\"]}),`\n`,(0,e.jsxs)(a.p,{children:[\"Para m\\xE1s informaci\\xF3n sobre c\\xF3mo proteger tu Mac de la manera correcta, contin\\xFAa con nuestra \",(0,e.jsx)(a.a,{href:\"/blog/mac-security-privacy-guide-2026\",children:\"gu\\xEDa de seguridad y privacidad en Mac para 2026\"}),\" y la \",(0,e.jsx)(a.a,{href:\"/blog/macos-tahoe-security-privacy-complete-guide-2025\",children:\"gu\\xEDa completa de seguridad y privacidad de macOS Tahoe\"}),\".\"]})]})}function p(i={}){let{wrapper:a}=i.components||{};return a?(0,e.jsx)(a,{...i,children:(0,e.jsx)(t,{...i})}):t(i)}return q(y);})();\n;return Component;","toc":[{"title":"Puntos clave","url":"#puntos-clave","depth":2},{"title":"Qué son realmente Gatekeeper, la cuarentena y la notarización","url":"#qué-son-realmente-gatekeeper-la-cuarentena-y-la-notarización","depth":2},{"title":"Gatekeeper: el portero de la puerta","url":"#gatekeeper-el-portero-de-la-puerta","depth":3},{"title":"El atributo extendido com.apple.quarantine","url":"#el-atributo-extendido-comapplequarantine","depth":3},{"title":"Notarización: el filtro de malware de Apple","url":"#notarización-el-filtro-de-malware-de-apple","depth":3},{"title":"Los tres diálogos, descifrados","url":"#los-tres-diálogos-descifrados","depth":2},{"title":"Diálogo 1: \"'App' está dañada y no se puede abrir. Deberías moverla a la Papelera.\"","url":"#diálogo-1-app-está-dañada-y-no-se-puede-abrir-deberías-moverla-a-la-papelera","depth":3},{"title":"Diálogo 2: \"'App' no se puede abrir porque el desarrollador no puede ser verificado.\"","url":"#diálogo-2-app-no-se-puede-abrir-porque-el-desarrollador-no-puede-ser-verificado","depth":3},{"title":"Diálogo 3: \"Apple no pudo verificar que 'App' esté libre de malware.\"","url":"#diálogo-3-apple-no-pudo-verificar-que-app-esté-libre-de-malware","depth":3},{"title":"Por qué una app legítima muestra \"está dañada\"","url":"#por-qué-una-app-legítima-muestra-está-dañada","depth":2},{"title":"El propio indicador de cuarentena","url":"#el-propio-indicador-de-cuarentena","depth":3},{"title":"App Translocation (Randomización de Ruta de Gatekeeper)","url":"#app-translocation-randomización-de-ruta-de-gatekeeper","depth":3},{"title":"Firmas rotas por herramientas de descompresión y transferencia","url":"#firmas-rotas-por-herramientas-de-descompresión-y-transferencia","depth":3},{"title":"Binarios para Apple Silicon vs Intel","url":"#binarios-para-apple-silicon-vs-intel","depth":3},{"title":"Un reloj incorrecto rompe la notarización","url":"#un-reloj-incorrecto-rompe-la-notarización","depth":3},{"title":"El flujo de solución seguro: Privacidad y seguridad primero","url":"#el-flujo-de-solución-seguro-privacidad-y-seguridad-primero","depth":2},{"title":"Paso 1: Mueve la app a /Applications","url":"#paso-1-mueve-la-app-a-applications","depth":3},{"title":"Paso 2: Intenta abrirla y luego abre Privacidad y seguridad","url":"#paso-2-intenta-abrirla-y-luego-abre-privacidad-y-seguridad","depth":3},{"title":"Paso 3: Haz clic en \"Abrir de todas formas\" y autentícate","url":"#paso-3-haz-clic-en-abrir-de-todas-formas-y-autentícate","depth":3},{"title":"Las soluciones por Terminal (y sus costos reales)","url":"#las-soluciones-por-terminal-y-sus-costos-reales","depth":2},{"title":"Inspecciona antes de actuar","url":"#inspecciona-antes-de-actuar","depth":3},{"title":"Elimina el atributo de cuarentena","url":"#elimina-el-atributo-de-cuarentena","depth":3},{"title":"Volver a firmar un paquete roto (avanzado, con grandes advertencias)","url":"#volver-a-firmar-un-paquete-roto-avanzado-con-grandes-advertencias","depth":3},{"title":"Verifica el veredicto de Gatekeeper con spctl","url":"#verifica-el-veredicto-de-gatekeeper-con-spctl","depth":3},{"title":"Manejo de apps fuera de la App Store","url":"#manejo-de-apps-fuera-de-la-app-store","depth":2},{"title":"Cómo cambió esto en Tahoe respecto a versiones anteriores de macOS","url":"#cómo-cambió-esto-en-tahoe-respecto-a-versiones-anteriores-de-macos","depth":2},{"title":"Notas para empresas y gestión MDM","url":"#notas-para-empresas-y-gestión-mdm","depth":2},{"title":"Solución de problemas comunes","url":"#solución-de-problemas-comunes","depth":2},{"title":"Problema: El botón \"Abrir de todas formas\" nunca aparece en Privacidad y seguridad","url":"#problema-el-botón-abrir-de-todas-formas-nunca-aparece-en-privacidad-y-seguridad","depth":3},{"title":"Problema: Terminal dice \"Operation not permitted\" al ejecutar xattr","url":"#problema-terminal-dice-operation-not-permitted-al-ejecutar-xattr","depth":3},{"title":"Problema: La app se abre una vez, luego falla o \"se daña\" de nuevo tras una actualización","url":"#problema-la-app-se-abre-una-vez-luego-falla-o-se-daña-de-nuevo-tras-una-actualización","depth":3},{"title":"Problema: \"No se pudo verificar que esté libre de malware\" aunque tengo conexión","url":"#problema-no-se-pudo-verificar-que-esté-libre-de-malware-aunque-tengo-conexión","depth":3},{"title":"Preguntas frecuentes","url":"#preguntas-frecuentes","depth":2},{"title":"¿Es seguro usar xattr para eliminar el atributo de cuarentena?","url":"#es-seguro-usar-xattr-para-eliminar-el-atributo-de-cuarentena","depth":3},{"title":"¿Desactivar Gatekeeper me expondrá a malware?","url":"#desactivar-gatekeeper-me-expondrá-a-malware","depth":3},{"title":"¿Por qué Terminal dice \"operation not permitted\" cuando ejecuto xattr?","url":"#por-qué-terminal-dice-operation-not-permitted-cuando-ejecuto-xattr","depth":3},{"title":"¿El truco del clic derecho \"Abrir\" sigue funcionando en Tahoe?","url":"#el-truco-del-clic-derecho-abrir-sigue-funcionando-en-tahoe","depth":3},{"title":"Mi app funcionaba ayer y ahora dice que está dañada. ¿Por qué?","url":"#mi-app-funcionaba-ayer-y-ahora-dice-que-está-dañada-por-qué","depth":3},{"title":"¿App Translocation es lo mismo que cuarentena?","url":"#app-translocation-es-lo-mismo-que-cuarentena","depth":3},{"title":"Conclusión","url":"#conclusión","depth":2}],"estimatedTime":30}