es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Compilando QZ Tray con ant usando un certificado autofirmado.

Estoy intentando compilar la aplicación QZ Tray con un certificado autofirmado usando la línea de comandos de ant en una Mac. He estado siguiendo la guía oficial.

Después de revisar el código, generé un certificado y una clave y usé el siguiente comando:

ant dmg -Dauthcert.use="cert.pem"

También probé con:

ant pkgbuild -Dauthcert.use="cert.pem"

La compilación tiene éxito sin errores y obtengo el instalador de ambos comandos mencionados anteriormente.

Los instaladores funcionan bien, pero al momento de instalar, el certificado que elegí en tiempo de compilación no está presente. En la captura de pantalla a continuación, espero que override.crt esté presente en los recursos. Ejecutar la aplicación instalada muestra que el gestor de sitios de QZ Tray está vacío. Agregar manualmente el mismo certificado en el gestor de sitios soluciona el problema.

Siguiendo la compilación exitosa, la carpeta out contiene una carpeta dist, que en realidad tiene override.crt. Ejecutar el archivo jar aquí funciona bien, el gestor de sitios de QZ Tray muestra el certificado.

¿Alguna idea de por qué el certificado no se coloca en los recursos del instalador dmg?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución para certificado faltante en la aplicación QZ Tray con certificado autofirmado durante la compilación usando la línea de comandos de ant

    El problema en este escenario es que el certificado autofirmado elegido durante la compilación no está incluido en los recursos del instalador dmg. Sin embargo, el certificado está presente en la carpeta out/dist/.

    Una solución posible es modificar el archivo build.xml para incluir el certificado en los recursos del instalador dmg. Esto se puede hacer agregando el siguiente código al archivo build.xml:

    <target name="bundle" depends="dmg">
        <echo message="Bundling QZ Tray with certificate"></echo>
        <copy file="${out.dir}/dist/override.crt" todir="${app.dir}/Contents/Resources"></copy>
        <codesign alias="${authcert.alias}" keychain="${user.home}/Library/Keychains/login.keychain" identity="${authcert.alias}"></codesign>
    </target>
    

    Este código copia el archivo de certificado desde la carpeta out/dist/ a la carpeta Resources del paquete de la aplicación QZ Tray y luego lo firma con el certificado especificado.

    Después de agregar este código al archivo build.xml, ejecute el siguiente comando para compilar la aplicación QZ Tray con el certificado autofirmado e incluirlo en los recursos del instalador dmg:

    ant bundle -Dauthcert.use="cert.pem"
    

    Esto debería resolver el problema del certificado faltante en la aplicación QZ Tray con certificado autofirmado durante la compilación usando la línea de comandos de ant en una Mac.

Comments are closed.