- Una pequeña utilidad en Go para gestionar perfiles de Claude Code fue fácil de distribuir como ejecutables estáticos para Linux y Windows, pero en macOS la cuarentena (quarantine) aplicada a los archivos descargados bloquea la ejecución y las instrucciones para quitarla manualmente perjudican la experiencia de usuario
- Intentó unirse al Apple Developer Program para firmar binarios de macOS, pero con un modelo de paga lo que quieras de unos 7 dólares y unas 12 a 24 descargas previstas, resulta difícil justificar el costo de la suscripción anual
- La verificación de identidad del Apple Developer Program no lograba reconocer bien el documento con la webcam de una MacBook y, tras varios fallos sin ofrecer subida de escaneo ni guía para usar la cámara del iPhone, en la app de iPhone funcionó al primer intento, dejando en evidencia la dependencia del equipo
- Aunque valora mucho el hardware de Apple y los chips de la serie M, para usar macOS necesita herramientas complementarias como AutoRaise, Rectangle y DiscreteScroll, y Finder, los atajos, el foco de ventanas y la forma de cerrar apps entorpecen su flujo de desarrollo
- La firma de código en Windows también es costosa: Certum Code Signing ronda los 209 euros al año y Azure Artifact Signing tiene restricciones por región y tipo de cuenta, por lo que todo el ecosistema de firma de código parece caro y poco accesible, como los certificados TLS antes de Let’s Encrypt
Barreras que aparecen al distribuir software para Mac
- Al crear una pequeña utilidad para desarrolladores que facilita la gestión de perfiles de Claude Code, pudo compilar fácilmente ejecutables estáticos para varias plataformas con la cadena de herramientas de Go
- La primera versión puede verse en ccode.kronis.dev y en la página de Itch.io, donde se pueden descargar o comprar binarios precompilados y revisar el código fuente
- Actualmente el código no está firmado y, como la utilidad está en una etapa inicial, se recomienda probarla gratis primero y pagar después si resulta útil
- En Linux la distribución funcionó sin problemas tras
chmod +x, y en Windows se puede generar un.exe, aunque la advertencia de SmartScreen puede sortearse desde la misma ventana emergente - En macOS se aplica cuarentena (quarantine) al software descargado y eso bloquea la ejecución; el mismo problema apareció incluso con archivos compartidos consigo mismo por Nextcloud
- Se puede indicar al usuario que quite la cuarentena manualmente desde la terminal, pero aunque un desarrollador pueda aceptarlo, no es una buena experiencia de usuario y puede generar desconfianza
Costo y viabilidad económica de unirse al Apple Developer Program
- Para resolver el problema intentó unirse al Apple Developer Program y así firmar el ejecutable, pero el costo anual de la suscripción no encajaba con la escala de distribución de una utilidad pequeña
- La utilidad que quería distribuir iba a ofrecerse en Itch.io con un modelo de paga lo que quieras (pay-what-you-want) de alrededor de 7 dólares, y esperaba como mucho entre 12 y 24 descargas
- Como la mayoría podría elegir pagar 0 dólares y, tras descontar VAT y la comisión de Itch.io, de unos 50 dólares de ingresos quedarían solo unos 25, eso apenas cubriría cerca de 3 meses del Apple Developer Program
- Que hacer distribución pública proporcionando binarios tenga costo perjudica a los desarrolladores aficionados y empuja la economía del desarrollo de software hacia una lógica centrada en la monetización
- Para software de escritorio existe Homebrew, pero usar esa ruta dificulta cobrar aunque sea unos pocos dólares, o bien obliga a poner instrucciones aparte como
mac-homebrew-install-instructions.txten la página de descarga de Itch.io, lo que se siente extraño - Reconoce que eliminar el costo podría traer otros problemas, como el spam, pero incluso para software privado o simplemente de código abierto, que la distribución de binarios tenga un costo sigue siendo una carga
Fricción en el proceso de verificación de identidad
- Durante el registro en el Apple Developer Program, entiende la necesidad de verificar la identidad, pero el gran problema fue que le exigieran fotografiar su documento de identidad con la webcam de la MacBook
- Con la cámara integrada de una M1 MacBook Air, aun cambiando la iluminación, la calidad de la foto no era suficiente y el documento no se reconocía correctamente pese a varios intentos
- Aunque había un iPhone conectado a la misma red local, no se le indicó que podía usarlo como cámara y siguió fallando durante unas 10 pruebas
- Después conectó su webcam principal e intentó de nuevo, pero al no tener autofoco para fotografiar documentos de cerca, tampoco fue suficiente
- No se ofrecía la opción de subir un documento escaneado y, cada vez que fallaba, aparecía un error genérico y a veces tenía que reiniciar el proceso de registro desde el principio
- Al instalar directamente la app en el iPhone, el primer intento funcionó, pero para usuarios sin iPhone o sin una webcam de alta gama eso puede convertirse en una barrera todavía mayor
- El pago se procesó correctamente y parecía que la cuenta de desarrollador pronto quedaría activada, pero la app mostraba que había que esperar un correo, mientras la app de escritorio no reconocía el intento de registro y pedía empezar el proceso otra vez
- Puede tratarse de procesamiento en segundo plano o de un problema de consistencia eventual, pero desde la perspectiva del usuario es un flujo frustrante en el que el estado del registro se ve distinto según la app
Molestias acumuladas con el ecosistema de Apple
- Valora mucho la calidad de construcción del hardware de Apple y los chips de la serie M, y para quien puede comprar modelos de gama alta pueden ser excelentes máquinas de desarrollo
- También quedó satisfecho con el iPhone SE 2022, pero como Apple eliminó la serie económica, la nueva serie e es más cara y además quitó el interruptor lateral de silencio y TouchID, eso le da motivos para volver a Android con su próximo teléfono
- Para usar macOS de la forma que quiere necesita herramientas como AutoRaise, Rectangle y DiscreteScroll
- Al mover el foco de ventanas entre varios monitores hace falta un clic adicional, y AutoRaise es útil pero puede comportarse de forma algo agresiva
- Finder no tiene opción de “Cut”, los atajos de teclado resultan extraños y la disposición de las teclas Control/Command incluso rompe el funcionamiento de software de escritorio remoto
- También le incomoda el enfoque según el cual cerrar un programa no significa que realmente se termine, y eso, sumado a tener que desarrollar dentro del ecosistema cerrado de Apple con una MacBook de 8 GB de RAM, aumenta la carga
- La mayor frustración viene de un flujo donde el desarrollo de apps queda atado al ecosistema de Apple, se exige pagar por la firma de software, la calidad de la cámara del hardware impide enviar documentos y, aun después de usar la app de iPhone, el estado del registro no se refleja con claridad
Mejores ejemplos de verificación de identidad y firma electrónica
- En una tienda de abarrotes local puede verificar identidad y edad en unos 20 segundos con SmartID al comprar una bebida energética
- Con eParaksts puede firmar digitalmente un documento en alrededor de 1 minuto usando una tarjeta de identidad emitida por el gobierno y un lector de tarjetas en una PC, o bien desde la app del teléfono
- El resultado es una firma criptográfica adecuada adjunta a un contenedor EDOC (ASIC-E) o incorporada directamente en un archivo PDF
- Es probable que en otros países existan servicios similares para verificación de identidad, verificación de edad, firma de documentos y servicios digitales, aunque no todos los países son iguales y también hay limitaciones en la infraestructura de pagos
- Aun así, cuesta aceptar que varios paquetes de software de la región báltica funcionen mejor que los procesos de una gran empresa tecnológica
Firma de código en Windows y el problema más amplio del costo
- No es un problema exclusivo de Apple; la firma de código en Windows también implica una carga económica importante
- Certum Code Signing parece ser una de las opciones relativamente más baratas, pero aun así requiere unos 209 euros al año
- Azure Artifact Signing parece mejor porque su nivel Basic cuesta 8.54 euros al mes, pero al intentar configurar una cuenta de Azure, las personas fuera de Estados Unidos y Canadá no pueden firmar certificados, y en la UE solo las organizaciones pueden hacer firma de código
- El espacio actual de la firma de código tiene precios excesivamente altos y se siente parecido a la época en que los certificados TLS costaban alrededor de 100 euros al año antes de Let’s Encrypt
- Let’s Encrypt reemplazó muchas estructuras extractivas, pero al no haber muchas alternativas ni competidores, también existe el riesgo de depender de un enorme punto único de falla
- La conclusión es que para la firma de código debería bastar con poder firmar usando una tarjeta de identidad emitida por el gobierno
1 comentarios
Comentarios en Hacker News
Si no te gusta Gatekeeper, puedes desactivarlo en 10 segundos ejecutando
sudo spctl —-master-disableen la terminalPuedes decir que es un martillo demasiado grande o que no es seguro, pero hay que decidir qué se quiere. Si quieres la fricción que crea Gatekeeper, lo dejas activado; si no, lo desactivas. El desarrollador no puede decidir por el usuario, y es el usuario quien debe decidir qué código ejecutar en su propio dispositivo. Que el valor predeterminado sea restrictivo también tiene sentido porque quien sabe lo que hace puede cambiarlo fácilmente
En iOS no hay ninguna forma de instalar software sin firmar, y dicen que en Android pronto ese proceso ya no tomará 10 segundos sino 24 horas; eso sí que le quita al usuario la capacidad de elegir, y es absurdo
Aun así, en las versiones recientes de macOS hay muchas otras restricciones que no se pueden desactivar, y eso sí es realmente molesto. No creo que Gatekeeper sea una de ellas. Desde Sequoia, después del comando en terminal hay que marcar una casilla en Configuración, así que puede tomar unos 30 segundos, pero tampoco me parece grave
Eso de “confía solo en Apple y en nadie más, ni siquiera en ti mismo, o si no confía literalmente en todos” no es una implementación bien intencionada. Apple es muy hábil para empujar narrativas con falsas equivalencias y falsos dilemas. En su momento, incluso el debate sobre arranque seguro terminó reducido por Apple a “o Apple tiene las claves de cifrado o no hay cifrado”, y la gente se olvidó de preguntar “¿por qué no puedo tener yo las claves de mi propio dispositivo?”
Y sin desactivar funciones de seguridad. Esta fricción extra me parece menos por mi seguridad y más una forma de obligar a los desarrolladores a pagarle a Apple una cuota anual para poder distribuir. No digo que no ayude en nada a la seguridad, pero creo que el peso está más en lo primero
Antes se podía hacer eso, pero Apple lo quitó y lo cambió por un proceso muy fastidioso donde hay que entrar siempre a Configuración del sistema
Así se mantendrían buenas prácticas de distribución y al mismo tiempo se ganaría buena voluntad en general
Bastaría con mostrar una advertencia y permitir ejecutarla solo esta vez, o autorizar que después ya se ejecute normalmente
Llevo 20 años desarrollando software indie para Mac y PC, y entiendo perfectamente cómo se siente el autor
Apple da la impresión de pensar que los desarrolladores deberían agradecerle que les deje hacer apps para su plataforma. El artículo no hablaba de la falta de respeto por la compatibilidad hacia atrás de Apple, pero a Apple le encanta bombardear periódicamente todo el sistema para desarrolladores y rehacerlo por completo. Si intentas correr en el macOS más reciente una app que hiciste hace 10 años, es muy probable que no funcione
Microsoft tiene mucha mejor compatibilidad hacia atrás y no obliga a inscribirse en un programa de desarrolladores, pero cada vez que renuevas un certificado digital Authenticode para Windows te saquean por completo. Solo el certificado digital ya cuesta más que 99 dólares al año; es un negocio redondo
Azure Artifact Signing de Microsoft cuesta parecido a la cuota anual de Apple, pero desde hace un mes los instaladores firmados con eso suelen activar advertencias de SmartScreen. Y eso que ambos sistemas los controla Microsoft
La opción de Store tampoco es gratis para organizaciones, y tiene una tarifa de registro única. Peor aún, obliga a un modelo simplificado de licencias y pruebas. Eso normalmente no encaja con software B2B que usa actualizaciones pagadas, contratos de soporte anual, actualizaciones controladas y periodos de prueba extendidos
https://github.com/Azure/artifact-signing-action/issues/128#...
En lugar de mantener estabilidad de ABI y API, Apple les impone a miles de desarrolladores una carga continua de mantenimiento para que las apps existentes no se rompan con cada nueva versión de iOS. Ese tiempo podría usarse en cosas más productivas, como corregir bugs, agregar funciones o crear apps nuevas. Si piensas en el efecto multiplicador que tiene la estabilidad en todo el ecosistema, parece una mala compensación
Casi da la impresión de que Apple quiere que las apps mueran para reducir el exceso de apps de baja calidad en la App Store, pero debería haber una mejor forma. Para exposición y descubrimiento de apps, lo único que todavía parece realmente confiable es la curaduría humana
La mayoría de las apps de iOS son juegos, pero a diferencia de otras plataformas de juegos, los desarrolladores de iOS tienen que actualizarlos cada año para que sigan funcionando. Apple mató sin problema los juegos de 32 bits tanto en iOS como en macOS, y muchos nunca lograron pasar a 64 bits. Contrasta con Nintendo DS/DSi/3DS, donde entre 2004 y 2020 los juegos siguieron funcionando en general a pesar de revisiones grandes y pequeñas de hardware y decenas de revisiones de firmware, y con Switch, donde desde 2017 los juegos han funcionado en general tanto en Switch 1 como en 2
Muchas de las apps empresariales que uso siguen siendo Intel, y están perdiendo bastante rendimiento. Cuando Rosetta desaparezca, al fin se verán obligadas a cambiar. Todas las apps open source que uso ya son nativas
Como autor del artículo, ya reflejé una actualización rápida en el texto
Siendo justos, al intentar firmar algo para Windows y ver precios de proveedores como Certum, quizá Apple no sea excepcionalmente caro. Todos parecen funcionar igual: https://www.certum.eu/en/code-signing-certificates/
Revisando más el lado de Windows, también vi Azure Artifact Signing, que parece barato con 8.54 euros al mes, pero no da soporte a usuarios individuales en la UE. Solo acepta individuos de Estados Unidos y Canadá; en la UE solo admite organizaciones. Aquí primero tendría que crear una SIA, equivalente a una Ltd., algo que estaba en mis planes a futuro, pero que es un obstáculo para usar Azure: https://azure.microsoft.com/en-us/products/artifact-signing
Puede que el tono haya sonado frustrado, pero sí quiero decir con claridad que la industria de la firma de código necesita de alguna forma su momento tipo Let’s Encrypt. Al menos algo generalizado, como intentó Azure Artifact Signing, y que funcione también para desarrolladores individuales en todas las plataformas. Pero no parece viable porque las plataformas son jardines amurallados a propósito. No es que odie la firma de código en sí; bien hecha, es una buena idea, como TLS en muchos sitios web
Incluso en una discusión de Stack Overflow de hace 8 años se decía que la única forma realmente segura de eliminar de inmediato y de manera permanente las advertencias de Microsoft SmartScreen era comprar un certificado EV de firma de código de una autoridad certificadora aprobada por Microsoft y firmar la app con eso
Estos certificados EV suelen costar entre 300 y 700 dólares al año, conviene comparar precios, y solo se emiten a negocios registrados. Si eres desarrollador independiente, necesitas ser autónomo o empresa registrada y tener un registro comercial válido
https://stackoverflow.com/questions/48946680/how-to-avoid-th...
Entonces moví el proceso de solicitud a una laptop Apple y caí en un agujero todavía más profundo. Seguí usando el mismo documento oficial, pero de alguna manera terminó dividido en dos solicitudes en competencia: una parecía haber salido bien y la otra parecía haber fallado. Lo bueno es que sí me cobraron; lo malo es que no me dieron lo que compré. Al final tuve que volver a subir mis datos personales durante semanas, y seguro eso jamás me va a causar problemas después. Todo para poder subir a mi teléfono el revoltijo de cosas hechas con vibe coding que yo mismo fabriqué
Sentí la misma frustración que el autor al intentar averiguar cómo distribuir este tipo de binarios a usuarios finales, y escribí una guía con el proceso exacto
La documentación de Apple era sorprendentemente mala y tampoco pude encontrar posts de blog relevantes, así que tuve que averiguar cómo funcionaba a base de prueba y error y observando proyectos open source populares en GitHub
https://ofek.dev/words/guides/2025-05-13-distributing-comman...
https://successfulsoftware.net/2018/11/16/how-to-notarize-yo...
https://successfulsoftware.net/2023/04/28/moving-from-altool...
Probablemente esta fue la razón principal por la que hace alrededor de un año me pasé por completo a Linux
Me cansé de no poder crear software y hacer que la gente lo use. La solución podría ser un diálogo tipo “confío en este autor” al estilo VS Code, aunque incluso eso se siente un poco fuera de lugar. Crear cosas en Linux sí da gusto, y casi no extraño nada de macOS. Lo que sí extraño, lo programo yo mismo y se lo doy a la gente [1][2]. Quién iba a pensar que algo así sería tan difícil
https://github.com/zackb/tether
https://github.com/zackb/hyprwat
No sé cómo alguien que se preocupe por el open source o por el desarrollo en un sentido más amplio puede ver esto y pensar “sí, este es el sistema operativo que quiero usar”
De verdad me cuesta entender por qué tantos desarrolladores están dispuestos a ceder tanto solo por una laptop delgada
He usado Mac como máquina principal de desarrollo desde la época de la G4 PowerBook, e intenté pasarme a Linux varias veces, pero siempre fue una experiencia peor. Luego leo historias como esta y me doy cuenta otra vez de que usamos las computadoras de formas muy distintas
Incompatibilidades raras de hardware, asperezas por todos lados, y demasiado tiempo dedicado a mantener la máquina en vez de trabajar. Tener que ejecutar de vez en cuando
xattr -d com.apple.quarantinepara descargar una app FOSS cualquiera con pocos usuarios no es nada comparado con lo que vive un usuario de LinuxSoy de los segundos más tercos entre mis amigos con este tema, pero después de pasar unos años usando solo desktop durante la pandemia y evitar laptops Mac por otros cinco años, fue realmente horrible. Al final me rendí al darme cuenta de que una nueva MacBook Air M5 probablemente sería más rápida para navegar por la web y extrañamente competitiva incluso compilando código frente a la monstruosa build Xeon de última generación que acabo de armar, y encima ni siquiera tiene ventilador
Para mí ya se acabó. Apple ganó en todo menos en la calidad de pantalla. Me da pena estar tan malacostumbrado al OLED, y en el fondo no estoy de acuerdo con la postura de Apple de no poner pantalla táctil en laptops. Desde que paso mucho tiempo con niños, pienso eso todavía más
En Linux se da por hecho que para ejecutar una herramienta haga falta
chmod +x, así que no sé si realmente da para escribir todo un post de blog quejándose de tener que usarxattren macOSLo pregunto en serio: ¿Windows 11 de verdad deja ejecutar un
.exeno confiable sin advertencias?Esta es una herramienta Claude Code para desarrolladores. Los posibles usuarios deberían ser perfectamente capaces de ejecutar el comando
xattr. Si no pueden, tal vez no deberían estar usando Claude Code. También hay un poco de “gatekeeping” de mi parte aquíPara este tipo de usuarios también podrías hacer un script
curl -sL [https://github.com/myrepo/installme.sh](<https://github.com/myrepo/installme.sh>) | bashque se encargue incluso del comandoxattrEl usuario final típico de macOS no usa herramientas de línea de comandos o usa algo como Homebrew. La forma correcta de distribuir un binario probablemente sea un instalador pkg
.exe/PE no confiables sin másMicrosoft Defender SmartScreen se encarga de eso y muestra un popup intimidante. Si nunca lo has hecho antes, el proceso de hacer clic para saltarte la advertencia y ejecutar el programa tampoco es muy intuitivo
Es suficiente para asustar a gente sin conocimientos profundos. Claro, todo esto se puede desactivar
Es mucho más fácil explicar y convencer a un usuario de que marque la casilla “permitir ejecutar el archivo como programa” que enseñarle un comando opaco de línea de comandos como
xattrAyer pasé por este proceso de verificación de identidad y creo que recién funcionó como al octavo intento
Es un diseño realmente terrible. Ahora además estoy intercambiando papeles con un tercero para vincular mi LLC con la cuenta. Ojalá uno pudiera simplemente escribir software y distribuirlo, pero como el monopolio de iOS es uno solo, no queda más que seguirle el juego
Hace un año habría estado de acuerdo, pero ahora me pondría del otro lado
La cantidad de malware que entra en el software hoy está creciendo de forma exponencial. Sí, es un impuesto doloroso que se aplica a todo el software, sea malicioso o no, pero hasta que encontremos un sistema mejor, esto hará que cierto porcentaje de actores maliciosos desista. Sobre todo el hecho de que haya que pagar una tarifa
Como usuario de Mac, me gusta saber que el desarrollador pagó una suma considerable para hacerme llegar este software. Para mí es una señal útil. Si no pagó el costo ni subió su pasaporte, quiero pensar con muchísimo cuidado qué riesgo estoy asumiendo al ejecutar eso
Nunca deberías subir tu identificación
Si eso significa no desarrollar para cierta plataforma, entonces simplemente no desarrolles para esa plataforma