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...
Exportation de macOS
Voir aussi
Cette page explique comment exporter un projet Godot vers macOS. Si vous cherchez à compiler l’éditeur ou les binaires du modèle d'exportation depuis le code source, voyez plutôt Compiler pour macOS.
macOS apps exported with the official export templates are exported as a single "Universal 2" binary .app bundle, a folder with a specific structure which stores the executable, libraries and all the project files.
This bundle can be exported as is, packed in a ZIP archive, or packed in a DMG disk image (only supported when exporting from macOS).
Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple Silicon) architectures.
Avertissement
Due to file system limitations, .app bundles exported from Windows lack the
executable flag and won't run on macOS. Projects exported as .zip are not
affected by this issue. To run .app bundles exported from Windows on macOS,
transfer the .app to a device running macOS or Linux and use the
chmod +x {executable_name} terminal command to add the executable permission.
The main executable located in the Contents/MacOS/ subfolder, as well
as optional helper executables in the Contents/Helpers/ subfolder, should have
the executable permission for the .app bundle to be valid.
Pré-requis
Téléchargez les modèles d'exportation Godot. Utilisez le menu Godot :
Editor > Manage Export Templates.Un
Bundle identifiervalide et unique doit être défini dans la sectionApplicationdes options d'exportation.
Note
A valid bundle ID can only contain alphanumeric characters, hyphens, and periods (A-Z, a-z, 0-9, -, and .).
Apple recommends using reverse-DNS format (e.g. com.example.your-game) of a domain you own, so that your bundle ID is guaranteed to be unique.
Bundle IDs are case-insensitive. See CFBundleIdentifier.
Avertissement
Les projets exportés sans signature de code et sans notarisation seront bloqués par Gatekeeper s'ils sont téléchargés à partir de sources inconnues, voir la page Running Godot apps on macOS pour plus d'informations.
Signature et notarisation du code
Par défaut, macOS n'exécutera que les applications signées et notariées. Si vous utilisez une autre configuration de signature, consultez Exécuter des applications Godot sur macOS pour des solutions de contournement.
Pour certifier une application, vous devez disposer d'un Certificat d'identité de développeur Apple valide.
If you have an Apple Developer ID Certificate and exporting from macOS
Install Xcode command line tools and open Xcode at least once or run the sudo xcodebuild -license accept command to accept license agreement.
Pour signer l'application exportée
Select
Xcode codesignin theCode Signing > Codesignoption.Set valid Apple ID certificate identity (certificate "Common Name") in the
Code Signing > Identitysection.
Pour authentifier l'application exportée
Select
Xcode altoolin theNotarization > Notarizationoption.Disable the
Debuggingentitlement.Set valid Apple ID login / app. specific password or App Store Connect API UUID / Key in the
Notarizationsection.
Vous pouvez utiliser la commande xcrun notarytool history pour vérifier l'état de la notarisation et utiliser la commande xcrun notarytool log {ID} pour télécharger le journal de notarisation.
Si vous rencontrez des problèmes de notarisation, consultez Résolution des problèmes courants de notarisation pour plus d'informations.
Une fois la notarisation terminée, attachez le ticket au projet exporté.
If you have an Apple Developer ID Certificate and exporting from Linux or Windows
Install PyOxidizer rcodesign, and configure the path to rcodesign in the Editor Settings > Export > macOS > rcodesign.
Pour signer l'application exportée
Select
PyOxidizer rcodesignin theCode Signing > Codesignoption.Set valid Apple ID PKCS #12 certificate file and password in the
Code Signingsection.
Pour authentifier l'application exportée
Select
PyOxidizer rcodesignin theNotarization > Notarizationoption.Disable the
Debuggingentitlement.Set valid App Store Connect API UUID / Key in the
Notarizationsection.
You can use the rcodesign notary-log command to check notarization status.
After notarization is completed, use the rcodesign staple command to staple the ticket to the exported project.
Si vous ne disposez pas d'un Apple Developer ID Certificate
Select
Built-in (ad-hoc only)in theCode Signing > Codesignoption.Select
Disabledin theNotarization > Notarizationoption.
Dans ce cas Godot utilisera une signature ad-hoc, ce qui facilitera l'exécution d'une application exportée pour les utilisateurs finaux, voir Exécuter des applications Godot sur macOS pour plus d'information.
Options de signature
Option |
Description |
|---|---|
Codesign |
Tool to use for code signing. |
Identité |
The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. [1] |
Certificate File |
Le fichier de certificat PKCS #12. [2] |
Certificate Password |
Mot de passe pour le fichier de certificat. [2] |
Options personnalisées |
Array of command line arguments passed to the code signing tool. |
Options de notarisation
Option |
Description |
|---|---|
Certification |
Tool to use for notarization. |
Nom Apple ID |
Apple ID account name (email address). [3] |
Mot de passe Apple ID |
Mot de passe spécifique à l'application Apple ID. Voir Utilisation de mots de passe pour application pour activer l'authentification à deux facteurs et créer un mot de passe d'application. [3] |
Apple Team ID |
Team ID ("Organization Unit"), if your Apple ID belongs to multiple teams (optional). [3] |
API UUID |
UUID d’émetteur d'API de l'App Store Connect d'Apple. |
Clé API |
Clé d'API de l'App Store Connect d'Apple. |
Note
You should set either Apple ID Name/Password or App Store Connect API UUID/Key.
These options are visible only when notarizing with Xcode altool.
Voir Notarisation des logiciels macOS avant distribution pour plus d'informations.
Permissions
Droits d'exécution renforcés
Les droits Hardened Runtime gèrent les options de sécurité et la politique d'accès aux ressources. Voir Hardened Runtime pour plus d'informations.
Droit |
Description |
|---|---|
Allow JIT Code Execution [4] |
Permet de créer une mémoire inscriptible et exécutable pour le code JIT. Si vous utilisez des modules complémentaires avec du code natif dynamique ou auto-modifiant, activez-les conformément à la documentation du module complémentaire. |
Allow Unsigned Executable Memory [4] |
Permet de créer une mémoire inscriptible et exécutable sans restrictions JIT. Si vous utilisez des modules complémentaires avec du code natif dynamique ou auto-modifiant, activez-les conformément à la documentation du module complémentaire. |
Allow DYLD Environment Variables [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. |
Désactiver la validation des librairies |
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. |
Entrée Audio |
Activez cette option si vous avez besoin d'utiliser le microphone ou d'autres sources d'entrée audio. Si elle est activée, vous devez également fournir un message d'utilisation dans l'option privacy/microphone_usage_description. |
Caméra |
Activez si vous avez besoin d'utiliser la caméra, si c'est activé, vous devez également fournir un message d'utilisation dans l'option privacy/camera_usage_description. |
Localisation |
Activez cette option si vous avez besoin d'utiliser les informations de localisation des services de localisation. Si elle est activée, vous devez également fournir un message d'utilisation dans l'option privacy/location_usage_description. |
Carnet d'Adresses |
[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. |
Calendrier |
[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. |
Bibliothèque photos |
[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. |
Événements Apple |
[5] Enable to allow app to send Apple events to other apps. |
Débogage |
[6] You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export. |
Les droits Autoriser l'exécution de code JIT, Autoriser la mémoire exécutable non signée et Autoriser les variables d'environnement DYLD sont toujours activés pour les exportations Godot Mono et ne sont pas visibles dans les options d'exportation.
Ces fonctions ne sont pas prises en charge de base par Godot, ne les activez que si vous utilisez des modules complémentaires qui les nécessitent.
Pour authentifier une application, vous devez désactiver le droit Debugging.
Certificat de bac à sable (Sandbox)
L'App Sandbox restreint l'accès aux données, au réseau et aux périphériques de l'utilisateur. Les apps sandboxées ne peuvent pas accéder à la plupart du système de fichiers, ne peuvent pas utiliser les dialogues de fichiers personnalisés et exécuter des binaires (en utilisant OS.execute et OS.create_process) en dehors du bundle .app. Voir App Sandbox pour plus d'informations.
Note
Pour distribuer une application via l'App Store, vous devez activer l'App Sandbox.
Droit |
Description |
|---|---|
Activé |
Active l'App Sandbox. |
Serveur réseau |
Activez cette option pour permettre à l'application d'écouter les connexions réseau entrantes. |
Client réseau |
Activez pour permettre à l'application d'établir des connexions réseau sortantes. |
Périphérique USB |
Activer pour permettre à l'application d'interagir avec les périphériques USB. Ce droit est nécessaire pour utiliser des contrôleurs filaires. |
Périphérique Bluetooth |
Activer pour permettre à l'application d'interagir avec les périphériques Bluetooth. Ce droit est nécessaire pour utiliser les contrôleurs sans fil. |
Files Downloads [7] |
Autorise l'accès en lecture et écriture au dossier « Téléchargements » de l'utilisateur. |
Files Pictures [7] |
Autorise l'accès en lecture et écriture au dossier « Photos » de l'utilisateur. |
Files Music [7] |
Autorise l'accès en lecture et écriture au dossier « Musique » de l'utilisateur. |
Files Movies [7] |
Autorise l'accès en lecture et écriture au dossier « Films » de l'utilisateur. |
Files User Selected [7] |
Permet l'accès en lecture ou en écriture à un dossier arbitraire. Pour obtenir cet accès, l'utilisateur doit sélectionner un dossier dans la boîte de dialogue du fichier natif. |
Helper Executable |
Liste des exécutables d'aide à intégrer au paquet d'applications. Les applications sandboxées sont limitées à l'exécution de ces exécutables. |
Vous pouvez éventuellement fournir des messages d'utilisation pour divers dossiers dans les options privacy/*_folder_usage_description.
Note
Vous pouvez remplacer les droits par défaut en sélectionnant le fichier des droits personnalisés. Dans ce cas, tous les autres droits sont ignorés.
Variables d'environnement
You can use the following environment variables to set export options outside of the editor. During the export process, these override the values that you set in the export menu.
Options d'exportation |
Variable d'environnement |
|---|---|
Cryptage / Clé de cryptage |
|
Options / Codesign / Certificate File |
|
Options / Codesign / Certificate Password |
|
Options / Codesign / Provisioning Profile |
|
Options / Notarization / API UUID |
|
Options / Notarization / API Key |
|
Options / Notarization / API Key ID |
|
Options / Notarization / Apple ID Name |
|
Options / Notarization / Apple ID Password |
|
Options d'exportation
You can find a full list of export options available in the EditorExportPlatformMacOS class reference.