Mentre il link di RedYeti è utile, solo per salvare alcuni clic per gli altri, vorrei ricapitolare come generare un certificato di firma del codice e come usarlo per la (nuova) firma del codice:
Crea il tuo certificato di firma del codice:
In Accesso portachiavi, Accesso portachiavi> Assistente certificato> Crea un certificato. Questo avvia l'Assistente certificato:
Nome: inserisci qui una stringa arbitraria che puoi ricordare. Evita gli spazi, altrimenti dovrai sfuggire al nome del certificato quando lo usi codesign
dalla riga di comando.
Tipo di identità: radice autofirmata
Tipo di certificato: firma del codice
Seleziona la casella "Fammi sostituire le impostazioni predefinite", questo è abbastanza importante
Numero di serie: 1 (OK purché la combinazione nome certificato / numero di serie sia univoca)
Periodo di validità: 3650 (ti dà 10 anni)
Email, nome, ecc. Compila come desideri.
Informazioni sulla coppia di chiavi: impostato su RSA, 2048 bit. Non importa davvero l'IMHO.
Da "Estensione utilizzo chiave" fino a "Estensione nome alternativo soggetto": accetta le impostazioni predefinite.
Posizione: portachiavi di accesso.
Una volta creato, imposta "Fidati sempre" nel portachiavi di accesso: fai clic con il pulsante destro del mouse sul certificato, scegli "Ottieni informazioni" e, nella sezione "Affidabilità", imposta "Quando usi questo certificato" su "Fidati sempre".
Riscrivere un'app:
codesign -f --deep -s <certname> /path/to/app
Verifica che abbia funzionato:
codesign -dvvvv /path/to/app
Godere!
AGGIORNAMENTO: Le
persone mi hanno chiesto perché questo "non funziona" in macOS 10.14 "Mojave". Ora che ho finalmente aggiornato :-), ecco cosa ho imparato.
Fondamentalmente, non utilizzare un certificato autofirmato per la firma del codice. Genera invece un certificato utilizzando il tuo ID Apple in Xcode . Per riassumere brevemente i passaggi:
In Xcode> Preferenze> Account, seleziona il tuo ID sviluppatore Apple, fai clic su "Gestisci certificati", seleziona il "+" nell'angolo in basso a sinistra, ti offre l'opzione "Sviluppo Apple". Selezionalo, questo farà un certificato per te. Facendo clic con il tasto Ctrl sul nuovo certificato è possibile esportarlo (in .p12
formato) e open
inserendo quel .p12
file viene caricato nel portachiavi di accesso.
Vedrai che questo certificato è valido per un anno, "Rilasciato da: Apple Worldwide Developer Relations Certification Authority". Ho il sospetto che sia più affidabile di un certificato autofirmato.
Ora puoi firmare la tua app come prima con codesign -f -s <apple_ID> /path/to/prog
. L'ho provato con un semplice binario (compilato da hello.c
:-)), e potrebbe essere verificato con codesign -v
.
Non l'ho ancora provato con i pacchetti Python, quindi non ho consigli alle persone che hanno menzionato nei loro commenti che questo non può firmare "python.app".