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.

To notarize an app, you must have a valid Apple Developer ID Certificate.

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

Install Xcode command line tools and open Xcode at least once or run the sudo xcodebuild -license accept command to accept license agreement.

To sign exported app

  • Select Xcode codesign in the Code Signing > Codesign option.

  • Set valid Apple ID certificate identity (certificate "Common Name") in the Code Signing > Identity section.

To notarize exported app

  • Select Xcode altool in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid Apple ID login / app. specific password or App Store Connect API UUID / Key in the Notarization section.

You can use the xcrun notarytool history command to check notarization status and use the xcrun notarytool log {ID} command to download the notarization log.

If you encounter notarization issues, see Resolving common notarization issues for more info.

After notarization is completed, staple the ticket to the exported project.

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

Installa PyOxidizer rcodesign e configura il percorso di rcodesign in Impostazioni dell'editor > Esporta > macOS > rcodesign.

To sign exported app

  • Seleziona PyOxidizer 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.

To notarize exported app

  • Select PyOxidizer rcodesign in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid App Store Connect API UUID / Key in the Notarization section.

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

After notarization is completed, use the rcodesign staple command to staple the ticket to the exported project.

If you do not have an Apple Developer ID Certificate

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

  • Select Disabled in the Notarization > Notarization option.

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]

Allows creating writable and executable memory for JIT code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation.

Consenti memoria eseguibile non firmata [4]

Allows creating writable and executable memory without JIT restrictions. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation.

Consenti variabili d'ambiente DYLD [4]

Allows app to uss 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

Allows app to load arbitrary libraries and frameworks. Enable it if you are using GDExtension add-ons or ad-hoc signing, or want to support user-provided external add-ons.

Ingresso audio

Abilita se hai bisogno di utilizzare il microfono o altre fonti di input audio, se è abilitato dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/microphone_usage_description.

Telecamera

Abilita se hai bisogno di usare la fotocamera, se è abilitata dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/camera_usage_description.

Posizione

Abilita se hai bisogno di usare le informazioni sulla posizione dai Servizi di localizzazione; se è abilitato, dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/location_usage_description.

Rubrica

[5] Abilita per consentire l'accesso ai contatti nella rubrica dell'utente; se abilitato, dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/address_book_usage_description.

Calendari

[5] Abilita per consentire l'accesso al calendario dell'utente, se abilitato dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/calendar_usage_description.

Libreria di foto

[5] Abilita per consentire l'accesso alla libreria Foto dell'utente; se è abilitato, dovresti anche fornire un messaggio di utilizzo nell'opzione privacy/photos_library_usage_description.

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.

Files Downloads [7]

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

Files Pictures [7]

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

Files Music [7]

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

Files Movies [7]

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

Files User Selected [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 al di fuori dell'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.