This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
La creazione di bundle di giochi per iOS è disponibile solo nella versione per Mac dell’editor Defold.
iOS richiede che qualsiasi applicazione di cui crei una build e che vuoi eseguire sul tuo telefono o tablet debba essere firmata con un certificato e un profilo di provisioning rilasciati da Apple. Questo manuale spiega i passaggi necessari per creare un bundle del tuo gioco per iOS. Durante lo sviluppo, spesso è preferibile eseguire il gioco tramite l’applicazione di sviluppo, perché consente di ricaricare a caldo contenuti e codice direttamente sul dispositivo.
La sicurezza delle applicazioni iOS si basa su diversi componenti. Puoi accedere agli strumenti necessari iscrivendoti al programma iOS Developer Program di Apple. Una volta iscritto, accedi al Developer Member Center di Apple.

La sezione Certificates, Identifiers & Profiles contiene tutti gli strumenti necessari. Da qui puoi creare, eliminare e modificare:
some.prefix.*) utilizzabili con più applicazioni. Gli App ID possono contenere informazioni sui servizi dell’applicazione, ad esempio se l’applicazione abilita l’integrazione con Passbook, Game Center e così via. Questi App ID non possono essere identificatori con caratteri jolly. Perché i servizi dell’applicazione funzionino, l’identificatore del bundle della tua applicazione deve corrispondere all’App ID.Per firmare i tuoi giochi e le tue applicazioni in Defold, servono un certificato valido e un profilo di provisioning valido.
Alcune operazioni disponibili nella pagina iniziale del Member Center possono essere eseguite anche dall’ambiente di sviluppo Xcode, se lo hai installato.

Se non hai installato Xcode, puoi trovare l’identificatore in iTunes. Fai clic sull’icona dei dispositivi e seleziona il tuo dispositivo.

A partire da Xcode 7, chiunque può installare Xcode e sviluppare gratuitamente sul dispositivo. Non è necessario iscriversi all’iOS Developer Program. Xcode rilascerà automaticamente un certificato che ti identifica come sviluppatore (valido per 1 anno) e un profilo di provisioning per la tua applicazione (valido per una settimana) sul tuo specifico dispositivo.
Single View App.Team (creato automaticamente per te) e assegna un identificatore del bundle all’applicazione.Annota l’identificatore del bundle, perché dovrai usare lo stesso identificatore nel tuo progetto Defold.
Assicurati che Xcode abbia creato un Provisioning Profile e un Signing Certificate per l’applicazione.

Dopo aver verificato che l’applicazione funzioni, trovala sul disco. Puoi vedere il percorso della build nel report di build in Report Navigator.

Individua l’applicazione, fai clic con il pulsante destro e seleziona Show Package Contents.

embedded.mobileprovision in una posizione sul disco dove potrai ritrovarlo.
Questo file di provisioning può essere usato insieme alla tua identità di firma del codice per firmare applicazioni in Defold per una settimana.
Quando il profilo di provisioning scade, devi creare nuovamente la build dell’applicazione in Xcode e ottenere un nuovo file di provisioning temporaneo come descritto sopra.
Quando hai l’identità di firma del codice e il profilo di provisioning, puoi creare dall’editor un bundle di applicazione autonomo per il tuo gioco. Basta selezionare Project ▸ Bundle... ▸ iOS Application... dal menu.

Seleziona la tua identità di firma del codice, individua il file di provisioning mobile e scegli la variante (Debug o Release). Puoi deselezionare la casella Sign application per saltare il processo di firma e firmare manualmente in un secondo momento. Seleziona Simulator per creare un bundle arm64_sim-ios per il simulatore iOS anziché un bundle per dispositivo.
I bundle per simulatore funzionano solo nel simulatore iOS sui Mac con Apple Silicon. Non usano un’identità di firma né un profilo di provisioning, quindi le opzioni di firma, installazione e avvio vengono disabilitate quando Simulator è selezionato. Installa il bundle con xcrun simctl come descritto sotto.
Premi Create Bundle: ti verrà chiesto di specificare dove creare il bundle sul computer.

Specifica l’icona da usare per l’applicazione, lo storyboard della schermata di avvio e altre opzioni nel file delle impostazioni del progetto game.project, nella sezione iOS.
Il file Info.plist integrato per iOS contiene il servizio Bonjour e la descrizione dell’uso della rete locale necessari per il rilevamento automatico delle destinazioni da parte dell’editor nelle build che non sono di release. Un file Info.plist personalizzato sostituisce questo manifesto di base integrato. Se usi un manifesto personalizzato per una build di debug e hai bisogno del rilevamento delle destinazioni, della profilazione, dell’hot reload o dello streaming dei log sulla rete locale, includi queste voci:
{{^variant_release}}
<key>NSBonjourServices</key>
<array>
<string>_defold._tcp</string>
</array>
<key>NSLocalNetworkUsageDescription</key>
<string>Discover Defold targets on the local network.</string>
{{/variant_release}}
La condizione Mustache esclude le voci per il rilevamento dai bundle di release. La stringa che descrive l’utilizzo viene mostrata all’utente da iOS e può essere modificata o localizzata. Rimuovi la condizione solo se l’applicazione di release stessa usa lo stesso servizio Bonjour e le stesse funzionalità di rete locale.
Quando crei il bundle di un gioco, devi scegliere quale tipo di motore usare. Hai tre opzioni di base:
Queste diverse versioni sono anche indicate come Build variants
Quando scegli Project ▸ Build ottieni sempre la versione di debug.
Questo tipo di eseguibile viene generalmente usato durante lo sviluppo di un gioco perché include diverse funzionalità utili per il debug:
print() e dalle estensioni native che usano dmLogInfo(), dmLogError() e così via. Scopri come leggere questi log nel manuale sui log del gioco e del sistema.In questa variante le funzionalità di debug sono disabilitate. Scegli questa opzione quando il gioco è pronto per essere pubblicato in uno store di applicazioni o distribuito ai giocatori in altri modi. È sconsigliato pubblicare un gioco con le funzionalità di debug abilitate per diversi motivi:
Questo eseguibile funziona senza grafica né audio. Ciò significa che puoi eseguire i test unitari e gli smoke test del gioco su un server di integrazione continua (CI), o persino usarlo come server di gioco nel cloud.
Puoi installare e avviare il bundle creato usando le caselle Install on connected device e Launch installed app dell’editor nella finestra di dialogo Bundle:

Per usare questa funzionalità, devi avere installato lo strumento a riga di comando ios-deploy. Il modo più semplice per installarlo è usare Homebrew:
$ brew install ios-deploy
Se l’editor non riesce a rilevare il percorso di installazione dello strumento ios-deploy, dovrai specificarlo in Preferences.
Puoi creare un file storyboard usando Xcode. Avvia Xcode e crea un nuovo progetto. Seleziona iOS e Single View App:

Fai clic su Next e procedi alla configurazione del progetto. Inserisci un Product Name:

Fai clic su Create per completare il processo. Il progetto è stato creato e puoi procedere alla creazione dello storyboard:

Trascina e rilascia un’immagine per importarla nel progetto. Poi seleziona Assets.xcassets e rilascia l’immagine in Assets.xcassets:

Apri LaunchScreen.storyboard e fai clic sul pulsante più (+). Digita imageview nella finestra di dialogo per trovare il componente ImageView.

Trascina il componente Image View sullo storyboard:

Seleziona l’immagine che hai aggiunto in precedenza ad Assets.xcassets dal menu a discesa Image:

Posiziona l’immagine e apporta le altre modifiche necessarie, magari aggiungendo una Label o un altro elemento dell’interfaccia. Quando hai finito, imposta lo schema attivo su Any iOS Device (arm64) (o Generic iOS Device) e seleziona Product ▸ Build. Defold supporta iOS 15.0 e versioni successive sui dispositivi a 64 bit, quindi mantieni la versione minima di destinazione a 15.0 o successiva. Attendi il completamento del processo di build.
Se usi immagini nello storyboard, non verranno incluse automaticamente in LaunchScreen.storyboardc. Usa il campo Bundle Resources in game.project per includere le risorse.
Ad esempio, crea la cartella LaunchScreen nel progetto Defold e una cartella ios al suo interno (la cartella ios serve a includere questi file solo nei bundle per iOS), quindi inserisci i file in LaunchScreen/ios/. Aggiungi questo percorso in Bundle Resources.

L’ultimo passaggio consiste nel copiare il file compilato LaunchScreen.storyboardc nel progetto Defold. Apri Finder nel percorso seguente e copia il file LaunchScreen.storyboardc nel tuo progetto Defold:
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Intermediates.noindex/YOUR-PRODUCT-NAME.build/Debug-iphonesimulator/YOUR-PRODUCT-NAME.build/Base.lproj/LaunchScreen.storyboardc
L’utente del forum Sergey Lerg ha realizzato un tutorial video che illustra il processo.
Una volta ottenuto il file storyboard, puoi farvi riferimento da game.project.
Il catalogo di asset è il metodo consigliato da Apple per gestire le icone della tua applicazione. È infatti l’unico modo per fornire l’icona usata nella scheda dell’App Store. Puoi creare un catalogo di asset nello stesso modo di uno storyboard, usando Xcode. Avvia Xcode e crea un nuovo progetto. Seleziona iOS e Single View App:

Fai clic su Next e procedi alla configurazione del progetto. Inserisci un Product Name:
![]()
Fai clic su Create per completare il processo. Il progetto è stato creato e puoi procedere alla creazione del catalogo di asset:
![]()
Trascina e rilascia le immagini nei riquadri vuoti che rappresentano le diverse dimensioni di icona supportate:
![]()
Non aggiungere icone per Notifications, Settings o Spotlight.
Quando hai finito, imposta lo schema attivo su Build -> Any iOS Device (arm64)(o Generic iOS Device) e seleziona Product -> Build. Attendi il completamento del processo di build.
Assicurati di creare la build per Any iOS Device (arm64) o Generic iOS Device, altrimenti riceverai l’errore ERROR ITMS-90704 quando caricherai la build.
![]()
L’ultimo passaggio consiste nel copiare il file compilato Assets.car nel progetto Defold. Apri Finder nel percorso seguente e copia il file Assets.car nel tuo progetto Defold:
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Products/Debug-iphoneos/Icons.app/Assets.car
Una volta ottenuto il file del catalogo di asset, puoi farvi riferimento insieme alle icone da game.project:
![]()
Non è necessario fare riferimento all’icona dell’App Store da game.project. Viene estratta automaticamente dal file Assets.car durante il caricamento su iTunes Connect.
L’editor scrive un file .ipa, che è un bundle di applicazione iOS. Per installare il file sul dispositivo, puoi usare uno dei seguenti strumenti:
Devices and Simulatorsios-deployApple Configurator 2 dall’App Store di macOSPuoi anche usare lo strumento a riga di comando xcrun simctl per lavorare con i simulatori iOS disponibili tramite Xcode:
# show a list of available devices
xcrun simctl list
# boot an iPhone X simulator
xcrun simctl boot "iPhone X"
# install your.app to a booted simulator
xcrun simctl install booted your.app
# launch the simulator
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
Il manifesto sulla privacy è un elenco di proprietà che registra i tipi di dati raccolti dalla tua applicazione o da un SDK di terze parti e le API utilizzate dall’applicazione o dall’SDK per le quali è obbligatorio dichiarare una motivazione d’uso. Per ogni tipo di dato raccolto e per ogni categoria di API utilizzata che richiede una motivazione, l’applicazione o l’SDK di terze parti deve registrare le motivazioni nel file del manifesto sulla privacy incluso nel proprio bundle.
Defold fornisce un manifesto sulla privacy predefinito tramite il campo Privacy Manifest nel file game.project. Quando crei un bundle dell’applicazione, il manifesto sulla privacy viene unito agli eventuali manifesti sulla privacy presenti nelle dipendenze del progetto e incluso nel bundle dell’applicazione.
Per saperne di più sui manifesti sulla privacy, consulta la documentazione ufficiale di Apple.
Quando invii il tuo gioco all’App Store, ti verrà chiesto di fornire informazioni sulla conformità alle norme di esportazione relative all’uso della crittografia nel gioco. Apple spiega perché sono necessarie:
“Quando invii la tua applicazione a TestFlight o all’App Store, la carichi su un server negli Stati Uniti. Se distribuisci la tua applicazione al di fuori degli Stati Uniti o del Canada, l’applicazione è soggetta alle leggi statunitensi sull’esportazione, indipendentemente da dove ha sede la tua entità giuridica. Se la tua applicazione usa, accede a, contiene, implementa o incorpora la crittografia, ciò è considerato un’esportazione di software crittografico. Questo significa che la tua applicazione è soggetta ai requisiti statunitensi di conformità alle norme di esportazione, oltre che ai requisiti di conformità alle norme di importazione dei paesi in cui distribuisci l’applicazione.”
Il motore di gioco Defold usa la crittografia per i seguenti scopi:
Questi usi della crittografia nel motore Defold sono esenti dall’obbligo di presentare documentazione di conformità alle norme di esportazione secondo la legislazione degli Stati Uniti e dell’Unione europea. La maggior parte dei progetti Defold mantiene questa esenzione, ma l’aggiunta di altri metodi crittografici potrebbe modificarne lo stato. È tua responsabilità assicurarti che il progetto soddisfi i requisiti di queste leggi e le regole dell’App Store. Per ulteriori informazioni, consulta la panoramica sulla conformità alle norme di esportazione di Apple.
Se ritieni che il tuo progetto sia esente, imposta la chiave ITSAppUsesNonExemptEncryption su False nel file Info.plist del progetto; consulta Manifesti delle applicazioni per ulteriori dettagli.
R: Assicurati di usare nel progetto Defold lo stesso identificatore del bundle che hai usato nel progetto Xcode quando hai generato il profilo di provisioning mobile.
R: Da Controllare le autorizzazioni di un’app compilata:
codesign -d --ent :- /path/to/the.app
R: Da Controllare le autorizzazioni di un profilo:
security cms -D -i /path/to/iOSTeamProfile.mobileprovision