Con Catalina (macOS 10.15), si consiglia vivamente di autenticare le applicazioni distribuite su una rete pubblica. Un numero significativo di sviluppatori trasferisce le proprie applicazioni utilizzando un dispositivo di archiviazione collegato o tramite la condivisione di file; l’autenticazione non è necessaria in questi casi in cui l’utente si fida già dello sviluppatore. Lo scopo dell’autenticazione è quello di assicurare agli utenti che l’applicazione non è dannosa ed è necessaria solo per le applicazioni scaricate da un sito web.
Se si utilizza la nostra funzione di firma integrata quando si creano le applicazioni con 4D v18, l’applicazione è pronta per essere autenticata. Questo processo si svolge al di fuori di 4D. Si tratta di aggiungere una firma elettronica alla domanda e di inviare la domanda firmata a un servizio di controllo automatico. Ecco tutto quello che c’è da sapere:
Prerequisiti
Xcode
La notarizzazione richiede Xcode 10 o successivo e macOS 10.13.6 o successivo.
Se sul Mac è installata più di una versione di Xcode, è possibile utilizzare l’utilità xcode-select per scegliere la versione appropriata:
sudo xcode-select -s /path/to/Xcode10.app
Autenticazione a due fattori
Dovrete anche aver attivato l’autenticazione a due fattori sul vostro ID Apple.
Se non siete sicuri di aver impostato l’autenticazione a due fattori, accedete alla pagina dell’account dell’ID Apple. Nella sezione Sicurezza, cercate l’opzione di autenticazione a due fattori e verificate se la funzione è attiva o meno.
password specifica per altool
Il caricamento di un’applicazione per l’autenticazione avviene tramite l’interfaccia della riga di comando per il plug-in del caricatore di applicazioni chiamato altool, fornito con Xcode.
Prima di autenticare la prima applicazione, è necessario generare una password specifica per altool.
Accedete alla pagina del vostro account ID Apple. Nella sezione Sicurezza, fate clic sull’opzione “Genera password” sotto l’opzione “Password specifiche per le app”, inserite un’etichetta di password come richiesto e fate clic sul pulsante “Crea”.
Ora è possibile memorizzare la password come elemento del portachiavi, utilizzando il proprio ID Apple e la password specifica dell’applicazione:
security add-generic-password -a "<apple_id>" -w "<password>" -s "altool"
Firmare l’applicazione con 4D
In 4D v18, lo script di firma integrato in 4D è stato aggiornato per soddisfare tutti i requisiti di Apple per l’autenticazione. 4D ora esegue una firma ricorsiva di tutti i contenuti del pacchetto e un timestamp sicuro è incluso nella firma. È stato abilitato il runtime protetto ed è stato fornito un file di diritti. Per evitare qualsiasi limitazione delle funzioni, tutte le funzionalità sono impostate su “true”.
Creare un archivio zip o un’immagine dmg
Poiché i bundle .app non possono essere caricati direttamente sul servizio notarile, è necessario creare un archivio compresso contenente l’applicazione firmata:
/usr/bin/ditto -c -k --keepParent "<path_to_app>" "<path_to_zip_archive>"
Si noti che si può anche caricare un’immagine .dmg invece di un archivio .zip.
Caricamento della domanda
A questo punto è possibile caricare l’applicazione per l’autenticazione notarile utilizzando il seguente comando:
xcrun altool --notarize-app --primary-bundle-id "<primary_bundle_identifier>" --username "<apple_id>" --password "@keychain:altool" --file path_to_zip_archive
Nota: è possibile utilizzare qualsiasi nome come identificatore primario del bundle, ma non deve contenere spazi, trattini bassi o altro che non siano lettere, numeri, trattini e punti.
Se il caricamento riesce, viene restituito un UID della richiesta. Conservarlo per utilizzarlo in seguito quando si controllerà lo stato della richiesta di notarizzazione.
Controllo dello stato di avanzamento della richiesta di notarizzazione
Il processo di autenticazione può durare fino a un’ora. Al termine, riceverete un’e-mail con l’indicazione dell’esito.
Poiché Apple ha alleggerito i prerequisiti per l’autenticazione fino a gennaio 2020, si consiglia di richiedere anche un rapporto dettagliato per verificare se contiene avvisi che potrebbero impedire l’autenticazione dopo gennaio 2020.
Un rapporto dettagliato può essere richiesto con il seguente comando, che restituirà uno stato e un URL del file di log:
xcrun altool --notarization-info <request_uid> -u "<apple_id>" -p "@keychain:altool"
Applicazione del biglietto alla vostra applicazione
Per assicurarsi che Gatekeeper sappia che la vostra applicazione è stata autenticata (anche quando non è disponibile una connessione di rete al primo avvio dell’applicazione), si consiglia di allegare il ticket prodotto dall’autenticazione alla vostra applicazione. Questo processo è chiamato “pinzatura”.
Se si è utilizzato un archivio .zip per l’autenticazione, si noti che lo strumento di pinzatura deve essere eseguito sul bundle .app originariamente aggiunto all’archivio zip, poiché non è possibile pinzare un archivio .zip. Se si utilizza un’immagine .dmg, è possibile pinzare direttamente l’immagine .dmg.
La pinzatura viene eseguita con il seguente comando:
xcrun stapler staple <your_app_or_dmg_file>
Una volta terminata la procedura, è possibile creare un nuovo archivio .zip contenente l’applicazione pinzata per la distribuzione.
Aggiornamento
Le versioni recenti di macOS (BigSur/xcode 12) potrebbero richiedere delle modifiche.
Apple consiglia ora di registrare la password utilizzando:
xcrun altool --store-password-in-keychain-item "altool" -u "<apple_id>" -p "password"
E di non specificare più il nome utente (apple_id) usando -u o –username quando si carica o si controlla l’applicazione.
Per gli ultimi aggiornamenti di xcrun altool aprite il vostro Terminale e inserite:
xcrun altool --help