Wails v2.11.0: compilación cruzada para Linux y Windows, pero con obstáculos

Fuentes: Wails v2.11.0 cross-compilation: Linux/Windows succeed, arm64 and Mac stumble

Wails v2.11.0, el framework para aplicaciones de escritorio con Go y un frontend web, permite generar en una sola orden ejecutables e instaladores para Linux y Windows desde una máquina amd64 con Ubuntu 24 y Go 1.25.5. Un único comando produce archivos para linux/amd64, windows/amd64, windows/arm64 y windows/386, incluyendo instaladores NSIS. En cambio, macOS queda fuera: Apple no autoriza la compilación cruzada y Wails lo omite con un aviso.

El análisis con ldd y file revela que los binarios Windows y sus instaladores son estáticos, mientras que el ejecutable Linux es dinámico (depende de libglib-2.0, libwebkit2gtk-4.0 y libgtk-3). Forzar el enlace estático en Linux con -ldflags '-extldflags "-static"' falla por las restricciones de glibc con getaddrinfo.

La compilación hacia linux/arm64 también falla: el ensamblador del runtime de cgo arroja errores de instrucciones ARM64, un problema conocido y sin solución alternativa. El autor probó las versiones de Go 1.24.11 y 1.23.12 con el mismo resultado.

Sobre la GitHub Action dAppServer/wails-build-action, el ejemplo oficial falla con un error de ruta en macOS; los parches llevan cinco meses sin revisión, la licencia es copyleft y parte de la documentación fue generada por un modelo de lenguaje. GoReleaser no logró integrarse con Wails en las pruebas realizadas.