Come autenticare la domanda di fusione 4D

Tradotto automaticamente da Deepl

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

Thomas Maul
• VP of Strategy, 4D Product Line • When 4D's German subsidiary was created in 1988, Thomas joined the company as a Technical Director, helping to build the 4D developer community in both Germany and Austria. After many years supporting customers with technical problems and being increasingly involved in sales and management issues, he was promoted to Managing Director for 4D Germany in 1999. As a member of the executive board since 2005, he became part of worldwide strategy of the company, leading to his current position as Vice President of Strategy, 4D Product Line, responsible for defining and executing the overall strategy for the 4D product line in relation to the Program, R&D, Sales and Marketing teams.