La firma di un'app che include Java non riesce

3

Provo a firmare un pacchetto di app che include Java Runtime Environment 8 (JRE).

Dalla riga di comando eseguo questo comando:

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

Ottengo questo risultato:

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

Il risultato è che l'App-bundle non viene firmato come previsto.

Come posso risolvere questo problema?

    
posta Joachim Bratteli 12.11.2015 - 12:10
fonte

1 risposta

1

firma codice

Il manuale amichevole sulla firma del codice dice di firmare prima il sottocomponente, quindi riprova con la tua app stessa:

codesign dice che il mio codice non è firmato quando tento di firmarlo.

Assicurati che tutto il codice annidato sia già firmato e che la sua firma sia valida. Xcode si prenderà cura di questo per te se gli permetti di gestire le tue attività di firma del codice.

Continua dicendo che Xcode gestirà tutte le firme, il che potrebbe essere utile o meno, dal momento che stai già scegliendo di firmare le cose dalla riga di comando.

- profonda

Per firmare tutto il codice annidato in una volta, aggiungi l'argomento --deep a codesign :

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

script di shell

Un altro modo di fare lo stesso è creare uno script di shell che controlli lo stato della firma del codice annidato e firma se manca. In questo modo puoi avere più controllo su ciò che stai firmando all'interno del pacchetto.

Esempio:

Uno script di bash chiamato sign-unsigned.sh che controlla una voce nel pacchetto e firma se non è già firmato potrebbe essere fatto in questo modo:

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

Inserisci sign-unsigned.sh in /Development e fallo nella riga di comando:

cd /Development/MyApp.app/
find . -exec ../sign-unsigned.sh {} "Developer ID Application: My Company" \;
codesign --sign "Developer ID Application: My Company" ../MyApp.app
    
risposta data 12.11.2015 - 12:44
fonte

Leggi altre domande sui tag