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
Sviluppare applicazioni Defold per la piattaforma macOS è un processo semplice, con pochissimi aspetti da tenere in considerazione.
La configurazione dell’applicazione specifica per macOS si effettua nella sezione macOS del file delle impostazioni game.project.
L’icona dell’applicazione usata per un gioco macOS deve essere nel formato .icns. Puoi creare facilmente un file .icns a partire da un insieme di file .png raccolti in un .iconset. Segui le istruzioni ufficiali per creare un file .icns. Ecco una breve sintesi dei passaggi:
game.iconsetCopia i file delle icone nella cartella creata:
icon_16x16.pngicon_16x16@2x.pngicon_32x32.pngicon_32x32@2x.pngicon_128x128.pngicon_128x128@2x.pngicon_256x256.pngicon_256x256@2x.pngicon_512x512.pngicon_512x512@2x.png.iconset in un file .icns usando lo strumento a riga di comando iconutil:iconutil -c icns -o game.icns game.iconset
Puoi pubblicare la tua applicazione sul Mac App Store, tramite uno store o un portale di terze parti come Steam o itch.io, oppure autonomamente attraverso un sito web. Prima di pubblicare l’applicazione, devi prepararla per l’invio. I passaggi seguenti sono necessari indipendentemente da come intendi distribuire l’applicazione:
$ chmod +x Game.app/Contents/MacOS/Game
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
com.apple.security.cs.allow-jit - Indica se l’app può creare memoria scrivibile ed eseguibile usando il flag MAP_JITcom.apple.security.cs.allow-unsigned-executable-memory - Indica se l’app può creare memoria scrivibile ed eseguibile senza le restrizioni imposte dall’uso del flag MAP_JITcom.apple.security.cs.allow-dyld-environment-variables - Indica se l’app può essere influenzata dalle variabili d’ambiente del linker dinamico, che puoi usare per iniettare codice nel processo dell’appAlcune applicazioni potrebbero richiedere anche autorizzazioni aggiuntive. L’estensione Steamworks richiede questa autorizzazione aggiuntiva:
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
com.apple.security.cs.disable-library-validation - Indica se l’app può caricare plug-in o framework arbitrari, senza richiedere la firma del codice.Tutte le autorizzazioni che possono essere concesse a un’applicazione sono elencate nella documentazione ufficiale per sviluppatori Apple.
codesign:$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
Apple richiede che tutto il software distribuito al di fuori del Mac App Store sia autenticato da Apple per poter essere eseguito con le impostazioni predefinite di macOS Catalina. Consulta la documentazione ufficiale per scoprire come aggiungere l’autenticazione a un ambiente di build gestito da script al di fuori di Xcode. Ecco una breve sintesi dei passaggi:
Segui i passaggi precedenti per aggiungere i permessi e firmare l’applicazione.
Comprimi il gioco in un archivio ZIP e caricalo per l’autenticazione usando altool.
$ xcrun altool --notarize-app
--primary-bundle-id "com.acme.foobar"
--username "AC_USERNAME"
--password "@keychain:AC_PASSWORD"
--asc-provider <ProviderShortname>
--file Game.zip
altool[16765:378423] No errors uploading 'Game.zip'.
RequestUUID = 2EFE2717-52EF-43A5-96DC-0797E4CA1041
altool --notarize-app:$ xcrun altool --notarization-info 2EFE2717-52EF-43A5-96DC-0797E4CA1041
-u "AC_USERNAME"
success e allega il ticket di autenticazione al gioco:$ xcrun stapler staple "Game.app"
La procedura di pubblicazione sul Mac App Store è ben documentata nella documentazione per sviluppatori Apple. Assicurati di aggiungere i permessi e firmare l’applicazione con codesign come descritto sopra prima di inviarla.
Nota: non è necessario autenticare il gioco quando lo pubblichi sul Mac App Store.
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.