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