La firma de una aplicación que incluye Java falla

3

Intento firmar un paquete de aplicaciones que incluye Java Runtime Environment 8 (JRE).

Desde la línea de comandos ejecuto este comando:

codesign -s "Developer ID Application: My Company" /Development/MyApp.app

Obtengo esta salida:

MyApp.app: code object is not signed at all
In subcomponent: /Development/MyApp.app/Contents/PlugIns/jre8/Contents/Home/jre/COPYRIGHT

El resultado es que el paquete de aplicaciones no se firma como se esperaba.

¿Cómo soluciono esto?

    
pregunta Joachim Bratteli 12.11.2015 - 12:10

1 respuesta

1

firma de código

El sencillo manual sobre la firma de código dice que primero firme el subcomponente, luego intente nuevamente con su propia aplicación:

codesign dice que mi código no está firmado cuando intento firmarlo.

Asegúrese de que todo el código anidado ya esté firmado y que su firma sea válida. Xcode se encargará de esto si lo deja manejar sus tareas de firma de código.

Continúa diciendo que deja que Xcode se encargue de todas las firmas, lo que puede o no ser útil ya que ya estás eligiendo firmar las cosas desde la línea de comandos.

--deep

Para firmar todo el código anidado de una sola vez, agregue el argumento --deep a codesign :

codesign --deep -s "Developer ID Application: My Company" /Development/MyApp.app

shell script

Otra forma de hacer lo mismo es crear un script de shell que compruebe el estado de firma del código anidado y firme si falta. De esta manera, puede obtener más control sobre lo que está firmando dentro del paquete.

Ejemplo:

Un script bash llamado sign-unsigned.sh que verifica una entrada en el paquete y lo firma si no está firmado, se podría hacer de la siguiente manera:

#!/bin/bash
if codesign --verify $1 ; then 
   exit; 
else
   codesign --sign "$2" $1;
fi

Coloque el sign-unsigned.sh en /Development y haga esto en la línea de comando:

cd /Development/MyApp.app/
find . -exec ../sign-unsigned.sh {} "Developer ID Application: My Company" \;
codesign --sign "Developer ID Application: My Company" ../MyApp.app
    
respondido por el bmike 12.11.2015 - 12:44

Lea otras preguntas en las etiquetas