Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Esportazione per macOS

Vedi anche

Questa pagina descrive come esportare un progetto Godot per macOS. Se si desidera invece compilare i binari dell'editor o dei modelli di esportazione dal codice sorgente, consultare Compilare per macOS.

Le app per macOS esportate con i modelli di esportazione ufficiali sono esportate come un singolo file binario "Universal 2" in formato .app, una cartella con una struttura specifica che contiene l'eseguibile, le librerie e tutti i file di progetto. È possibile esportare questo file così com'è, compresso in un archivio ZIP o in un'immagine disco DMG (supportata solo all'esportazione da macOS). I file binari universali per macOS supportano entrambe le architetture Intel x86_64 e ARM64 (Apple Silicon).

Avvertimento

A causa delle limitazioni del file system, i pacchetti .app esportati da Windows non hanno il flag executable e non funzioneranno su macOS. I progetti esportati come .zip non hanno questo problema. Per eseguire i pacchetti .app esportati da Windows su macOS, trasferisci il file .app su un dispositivo con macOS o Linux e usa il comando da terminale chmod +x {nome_eseguibile} per aggiungere il permesso executable. L'eseguibile principale, situato nella sottocartella Contents/MacOS/, così come gli eseguibili ausiliari opzionali nella sottocartella Contents/Helpers/, devono avere il permesso executable affinché il pacchetto .app sia valido.

Requisiti

  • Scarica i modelli di esportazione di Godot. Usa il menu di Godot: Editor > Gestisci modelli di esportazione.

  • È necessario impostare un Bundle identifier valido e univoco nella sezione Application delle opzioni di esportazione.

Nota

Un ID pacchetto valido può contenere solo caratteri alfanumerici, trattini e punti (A-Z, a-z, 0-9, - e .). Apple consiglia di utilizzare il formato DNS inverso (ad esempio com.example.your-game) di un dominio proprio, in modo da garantire che l'ID pacchetto sia univoco. Gli ID pacchetto non fanno distinzione tra maiuscole e minuscole. Consultare CFBundleIdentifier.

Avvertimento

I progetti esportati senza firma del codice e autenticazione saranno bloccati da Gatekeeper se scaricati da sorgenti sconosciute. Consulta la pagina Esecuzione di app Godot su macOS per ulteriori informazioni.

Firma del codice e autorizzazione

Come predefinito, macOS eseguirà solo applicazioni firmate e autenticate. Se si utilizza un'altra configurazione di firma, consultare la documentazione Esecuzione di app Godot su macOS per trovare soluzioni alternative.

Per autenticare un'applicazione, è necessario avere un certificato Apple Developer ID valido.

Se hai un certificato Apple Developer ID e stai esportando da macOS

Installare gli strumenti da riga di comando Xcode e apri Xcode almeno una volta oppure eseguire il comando sudo xcodebuild -license accept per accettare il contratto di licenza.

Per firmare l'applicazione esportata

  • Selezionare Xcode codesign nell'opzione Code Signing > Codesign.

  • Impostare un'identità valida per il certificato Apple ID (certificato "Common Name") nella sezione Code Signing > Identity.

Per autenticare l'applicazione esportata

  • Selezionare Xcode notarytool nell'opzione Notarization > Notarization.

  • Disabilita il diritto Debugging.

  • Imposta un login Apple ID valido / una password specifica per l'app o l'UUID / la chiave API di App Store Connect nella sezione Notarization.

È possibile usare il comando xcrun notarytool history per verificare lo stato dell'autenticazione e il comando xcrun notarytool log {ID} per scaricare il registro dell'autenticazione.

Se si riscontrano problemi di autenticazione, consultare Risoluzione dei problemi comuni di autenticazione per ulteriori informazioni.

Una volta completata l'autenticazione, allegare il ticket al progetto esportato.

Se hai un certificato Apple Developer ID e stai esportando da Linux o Windows

Installare rcodesign e configurare il percorso di rcodesign nell'opzione Impostazioni dell'editor > Esporta > macOS > rcodesign.

Per firmare l'applicazione esportata

  • Selezionare rcodesign nell'opzione Firma del codice > Codesign.

  • Imposta un file valido di certificato PKCS #12 per Apple ID, e la relativa password, nella sezione Firma del codice.

Per autenticare l'applicazione esportata

  • Selezionare rcodesign nell'opzione Autenticazione > Autenticazione.

  • Disabilita il diritto Debugging.

  • Inserire un UUID/chiave API valido per App Store Connect nella sezione Autenticazione.

È possibile utilizzare il comando rcodesign notary-log per verificare lo stato dell'autenticazione.

Una volta completata l'autenticazione, usare il comando rcodesign staple per allegare il documento al progetto esportato.

Se non si dispone di un certificato Apple Developer ID

  • Seleziona Built-in (ad-hoc only) nell'opzione Firma del codice > Codesign.

  • Selezionare Disabled nell'opzione Autenticazione > Autenticazione.

In questo caso Godot utilizzerà una firma ad hoc, che faciliterà l'esecuzione di un'app esportata per gli utenti finali. Consulta Esecuzione di app Godot su macOS per ulteriori informazioni.

Opzioni di firma

Opzione

Descrizione

Firma del codice

Strumento da utilizzare per firmare il codice.

Identità

Il "Nome completo" o "Nome comune" dell'identità firmataria, memorizzato nel keychain di macOS. [1]

File del certificato

Il file di certificato PKCS #12. [2]

Password del certificato

Password per il file di cerfiticato. [2]

Opzioni personalizzate

Array di argomenti della riga di comando passati allo strumento di firma del codice.

Opzioni di autenticazione

Opzione

Descrizione

Autenticazione

Strumento da utilizzare per l'autenticazione.

Nome Apple ID

Nome dell'account Apple ID (indirizzo e-mail) [3]

Password Apple ID

Password dell'ID Apple specifica per l'applicazione. Consulta Utilizzo delle password specifiche per le applicazioni per abilitare l'autenticazione a due fattori e creare una password per le applicazioni. [3]

ID Apple Team

ID Team ("Unità organizzativa"), se l'ID Apple appartiene a più team (facoltativo). [3]

UUID API

UUID di emittente dell'API dell'App Store Connect di Apple.

Chiave API

Chiave API dell'App Store Connect.

Nota

Dovresti impostare Nome/Password ID Apple oppure UUID/Chiave API di App Store Connect.

Consultare Notarizing macOS Software Before Distribution per maggiori informazioni.

Permessi

Diritti di esecuzione rafforzati

I diritti di esecuzione rafforzati (Hardened Runtime) gestiscono le opzioni di sicurezza e i criteri di accesso alle risorse. Consultare Hardened Runtime per maggiori informazioni.

Diritto

Descrizione

Consenti l'esecuzione di codice JIT [4]

Consente la creazione di memoria scrivibile ed eseguibile per il codice JIT. Se si utilizzano componenti aggiuntivi con codice nativo dinamico o automodificante, abilitarli in base alle istruzioni fornite nella documentazione del componente aggiuntivo.

Consenti memoria eseguibile non firmata [4]

Consente la creazione di memoria scrivibile ed eseguibile senza restrizioni JIT. Se si utilizzano componenti aggiuntivi con codice nativo dinamico o automodificante, abilitarli in base alle istruzioni fornite nella documentazione del componente aggiuntivo.

Consenti variabili d'ambiente DYLD [4]

Allows app to use dynamic linker environment variables to inject code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation.

Disabilita convalida libreria

Consente all'app di caricare librerie e framework arbitrari. Abilitarla se si utilizzano componenti aggiuntivi GDExtension o una firma ad hoc, oppure se si desidera supportare componenti aggiuntivi esterni forniti dall'utente.

Ingresso audio

Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the privacy/microphone_usage_description option.

Telecamera

Enable if you need to use the camera, if it's enabled you should also provide usage message in the privacy/camera_usage_description option.

Posizione

Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the privacy/location_usage_description option.

Rubrica

[5] Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the privacy/address_book_usage_description option.

Calendari

[5] Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the privacy/calendar_usage_description option.

Libreria di foto

[5] Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the privacy/photos_library_usage_description option.

Eventi Apple

[5] Abilita per consentire all'app di inviare eventi Apple ad altre app.

Debugging

[6] Puoi abilitare temporaneamente questo diritto per usare il debugger nativo (GDB, LLDB) con l'app esportata. Questo diritto dovrebbe essere disabilitato per l'esportazione in produzione.

Diritto di App Sandbox

L'App Sandbox limita l'accesso ai dati utente, alla rete e ai dispositivi. Le applicazioni in sandbox non possono accedere alla maggior parte del file system, non possono utilizzare finestre di dialogo personalizzate per i file né eseguire file binari (tramite OS.execute e OS.create_process) fuori dal pacchetto .app. Consultare App Sandbox per ulteriori informazioni.

Nota

Per distribuire un'applicazione attraverso l'App Store, è necessario abilitare l'App Sandbox.

Diritto

Descrizione

Abilitato

Abilita l'App Sandbox.

Server di rete

Abilita per consentire all'app di ascoltare le connessioni di rete in arrivo.

Client di rete

Abilita per consentire all'app di stabilire connessioni di rete in uscita.

Dispositivo USB

Abilita per consentire all'app di interagire con i dispositivi USB. Questo diritto è necessario per utilizzare i controller via cavo.

Dispositivo Bluetooth

Abilita per consentire all'app di interagire con i dispositivi Bluetooth. Questo diritto è necessario per utilizzare i controller wireless.

File in Download [7]

Consente l'accesso in lettura o scrittura alla cartella "Download" dell'utente.

File in Immagini [7]

Consente l'accesso in lettura o scrittura alla cartella "Immagini" dell'utente.

File in Musica [7]

Consente l'accesso in lettura o scrittura alla cartella "Musica" dell'utente.

File in Film [7]

Consente l'accesso in lettura o scrittura alla cartella "Film" dell'utente.

File in selezionati dall'utente [7]

Consente l'accesso in lettura o scrittura a una cartella arbitraria. Per ottenere l'accesso, l'utente deve selezionare una cartella dalla finestra di dialogo nativa dei file.

Eseguibile ausiliare

Elenco di helper eseguibili da incorporare nel pacchetto dell'app. Le app in sandbox sono limitate a eseguire solo questi eseguibili.

Nota

È possibile ignorare i diritti predefiniti selezionando il file dei diritti personalizzati; in questo caso tutti gli altri diritti saranno ignorati.

Variabili d'ambiente

È possibile utilizzare le seguenti variabili d'ambiente per impostare le opzioni di esportazione fuori dall'editor. Durante il processo di esportazione, queste variabili sovrascrivono i valori impostati nel menu di esportazione.

Variabili d'ambiente di esportazione per macOS

Opzioni di esportazione

Variabile d'ambiente

Crittografia / Chiave crittografica

GODOT_SCRIPT_ENCRYPTION_KEY

Opzioni / Firma del codice / File del certificato

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

Opzioni / Firma del codice / Password del certificato

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

Opzioni / Firma del codice / Profilo di provisioning

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

Opzioni / Autenticazione / UUID API

GODOT_MACOS_NOTARIZATION_API_UUID

Opzioni / Autenticazione / Chiave API

GODOT_MACOS_NOTARIZATION_API_KEY

Opzioni / Autenticazione / ID di chiave API

GODOT_MACOS_NOTARIZATION_API_KEY_ID

Opzioni / Autenticazione / Nome Apple ID

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

Opzioni / Autenticazione / Password Apple ID

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD

Opzioni di esportazione

È possibile trovare un elenco completo delle opzioni di esportazione disponibili nel riferimento alla classe EditorExportPlatformMacOS.