jueves, 12 de enero de 2023

Facturador Electrónico SRI Gratuito de Comprobantes Electrónicos (Ecuador) para Mac no funciona adecuadamente

 MacBook Pro M1 con macOS Ventura 13.0.1

El Facturador Electrónico Gratuito de Comprobantes Electrónicos es un aplicativo en Java desarrollado por el SRI en Ecuador.

Hasta aquí ha funcionado normalmente.

Luego de instalar Visual Studio, no me percaté que la aplicación dejó de funcionar bien.

Al tratar de generar una factura, el botón de "Guardar sin firmar" no hacia nada, así como "Guardar, Firmar y Enviar". 

De igual forma al tratar de firmar un .xml que hice manualmente, tampoco podia acceder a la firma electrónica, como antes. 

Después, analizando el proceso del "ComprobantesDesktop.jar", me di cuenta que no estaba usando el JRE de Java sino un JDK de Microsoft:

/Library/Java/JavaVirtualMachines/microsoft-11.jdk


Descargué el JDK de Oracle, asumiendo que eso resolvería el problema (por alguna incompatibilidad con el de Visual Studio). Al instalarlo, se configuró como el JDK default y la aplicación del SRI tuvo el mismo comportamiento que usando el JDK de Microsoft como default. 


En /usr/libexec está java_home que se debe ejecutar con ./java_home estando en ese directorio.

Al ejecutarlo, indicaba al JDK de Oracle como el default:

/Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home


El JRE estaba dentro del contenedor JavaApplentPlugin.plugin en:


/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin


La única forma de hacer que la app funcione totalmente funcional es lanzar desde Terminal estando en la carpeta

/Applications/ComprobantesElectronicosOffline


Y lanzar este comando:


"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" -jar ComprobantesDesktop.jar



Hice pruebas lanzando el java JRE apuntando al "/Applications/ComprobantesElectronicosOffline/ComprobantesDesktop.jar" pero la única funcionalidad que perdía era "Visualizar RIDE", que usa a su vez unas librerías internas para generar un PDF.

Para ahorrar tiempo lanzando el comando funcional, edité "run.sh" que se encuentra dentro de "/Applications/ComprobantesElectronicosOffline" y reemplacé el contenido por:

"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" -jar ComprobantesDesktop.jar

Y agregar permisos de ejecución al run.sh creado con el comando: 

chmod u=rx run.sh


No hay comentarios.:

Publicar un comentario