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.
Checking the stable version of the documentation...
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 identifiervalido e univoco nella sezioneApplicationdelle 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 codesignnell'opzioneCode 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 notarytoolnell'opzioneNotarization > 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
rcodesignnell'opzioneFirma 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
rcodesignnell'opzioneAutenticazione > 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'opzioneFirma del codice > Codesign.Selezionare
Disablednell'opzioneAutenticazione > 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.
Queste opzioni appaiono solo autenticandosi con Xcode notarytool.
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 |
Telecamera |
Enable if you need to use the camera, if it's enabled you should also provide usage message in the |
Posizione |
Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the |
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 |
Calendari |
[5] Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the |
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 |
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. |
I diritti Consenti l'esecuzione di codice JIT, Consenti memoria eseguibile non firmata e Consenti variabili di ambiente DYLD sono sempre abilitati per le esportazioni Godot Mono e non sono visibili nelle opzioni di esportazione.
Queste funzionalità non sono supportate da Godot di subito: abilitarle solo se si utilizzano componenti aggiuntivi che le richiedono.
Per autenticare un'app, è necessario disattivare il diritto Debugging.
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. |
You can optionally provide usage messages for various folders in the privacy/*_folder_usage_description options.
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.
Opzioni di esportazione |
Variabile d'ambiente |
|---|---|
Crittografia / Chiave crittografica |
|
Opzioni / Firma del codice / File del certificato |
|
Opzioni / Firma del codice / Password del certificato |
|
Opzioni / Firma del codice / Profilo di provisioning |
|
Opzioni / Autenticazione / UUID API |
|
Opzioni / Autenticazione / Chiave API |
|
Opzioni / Autenticazione / ID di chiave API |
|
Opzioni / Autenticazione / Nome Apple ID |
|
Opzioni / Autenticazione / Password Apple ID |
|
Opzioni di esportazione
È possibile trovare un elenco completo delle opzioni di esportazione disponibili nel riferimento alla classe EditorExportPlatformMacOS.