Sur cette page

Déploiement des applications Qt WebEngine

La manière d'empaqueter et de déployer les applications varie d'un système d'exploitation à l'autre. Pour Windows et macOS, windeployqt et macdeployqt automatisent les étapes de génération d'un paquetage d'application autonome.

Lors du déploiement manuel d'applications dépendant de Qt WebEngine, tous les fichiers nécessaires à l'exécution de l'application doivent être inclus : bibliothèques, importations QML, plugins et traductions.

Pour plus d'informations, voir Déployer des applications Qt.

Plates-formes cibles

Qt WebEngine essaie de prendre en charge toutes les Supported Platforms de Qt. Cependant, en raison des différentes exigences de Chromium, cela n'est pas toujours possible. Les limitations connues sont les suivantes

  • Qt WebEngine ne prend actuellement en charge que Windows, Linux et macOS.
  • Sur Windows, Qt WebEngine ne prend en charge que Windows Vista ou une version plus récente comme plateforme cible. En raison de l'utilisation d'une API plus récente dans Chromium, Windows XP n'est pas pris en charge. WinRT n'est pas non plus pris en charge.
  • Sous Windows, la version 14.28 ou supérieure de Visual C++ Redistributable est nécessaire pour exécuter les applications Qt WebEngine.

Déploiement manuel d'applications

Lors du déploiement manuel d'applications qui dépendent de Qt WebEngine, il se peut que les fichiers suivants doivent être déployés :

  • Bibliothèques
  • Importations QML
  • Qt WebEngine processus
  • Ressources
  • Traductions
  • Codecs audio et vidéo

Déploiement des bibliothèques

Les bibliothèques suivantes doivent être déployées avec les applications qui dépendent de Qt WebEngine:

Déploiement des importations QML

Si l'intégration Qt Quick est utilisée dans l'application, le répertoire d'importation QtWebEngine doit être déployé.

Déploiement des processus Qt WebEngine

Qt WebEngine tire parti du modèle multiprocessus offert par le projet Chromium. Le modèle multiprocessus exige que l'exécutable du processus Qt WebEngine soit déployé avec votre application.

Le processus WebEngine est exécuté pour chaque instance QWebEngineView ou WebEngineView. Par exemple, une application de navigateur avec deux onglets ouverts devrait avoir deux instances distinctes du processus en cours d'exécution. Il s'agit d'une approche courante utilisée par la plupart des moteurs web modernes pour fournir une expérience de navigation stable.

Au moment de l'exécution, Qt WebEngine recherche l'exécutable QtWebEngineProcess dans le répertoire retourné par QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath). Pour les installations Qt, il s'agit de QTDIR/libexec (Linux) ou QTDIR\bin (Windows). Le chemin peut être modifié en définissant un fichier qt.conf, par exemple. Alternativement, un chemin d'accès à l'exécutable peut être défini comme une valeur de la variable d'environnement QTWEBENGINEPROCESS_PATH. Sur macOS, Qt WebEngine recherche l'exécutable dans .app/Helpers/QtWebEngineProcess.

Déploiement des ressources

Qt WebEngine Chromium nécessite les fichiers de ressources suivants :

  • qtwebengine_resources.pak contient les ressources nécessaires à Chromium.
  • qtwebengine_devtools_resources.pak contient des outils pour le débogage à distance.
  • qtwebengine_resources_100p.pak contient des images adaptées aux écrans à faible résolution.
  • qtwebengine_resources_200p.pak contient des images adaptées aux écrans à haute résolution.
  • icudtl.dat prend en charge les composants internationaux pour Unicode (ICU). Il s'agit de la version Chromium de ICU, qui n'est pas nécessaire si Qt WebEngine a été configuré pour utiliser le système ICU.
  • v8_context_snapshot.bin contient un instantané préalablement préparé d'un contexte v8 utilisé pour accélérer l'initialisation. Les versions de débogage utilisent des instantanés séparés avec l'extension de nom de fichier .debug.bin au lieu de .bin. Sur macOS, il y a un instantané pour chaque architecture nommée en conséquence, par exemple v8_context_snapshot.arm64.bin ou v8_context_snapshot.arm64.debug.bin.

Les ressources sont recherchées à partir des emplacements suivants :

Le chemin d'accès au répertoire des ressources peut également être défini en tant que valeur de la variable d'environnement QTWEBENGINE_RESOURCES_PATH ou via la ligne de commande :

--webEngineArgs --webengine-resources-path=<path>

Lorsqu'une dérogation est définie, l'application ne recherche des ressources que dans le répertoire fourni, et nulle part ailleurs.

Traductions

Les données locales (telles que en-US.pak) sont recherchées dans les emplacements suivants :

  • Sur macOS : .app/Content/Resources
  • Sous Linux et Windows : répertoire qtwebengine_locales dans le répertoire spécifié par QLibraryInfo::location(QLibraryInfo::TranslationsPath)

Il est également possible de définir un chemin d'accès au répertoire des locales en tant que valeur de la variable d'environnement QTWEBENGINE_LOCALES_PATH, ou par l'intermédiaire de la ligne de commande :

--webEngineArgs --webengine-locales-path=<path>

Lorsqu'une dérogation est définie, l'application ne recherche les locales que dans le répertoire fourni, et nulle part ailleurs.

Fichiers JavaScript dans les fichiers de ressources Qt

Si votre application WebEngine est construite à l'aide du Compilateur Qt Quick, et que l'application contient des fichiers JavaScript dans des ressources .qrc, et que ces fichiers sont censés être chargés à l'intérieur de pages HTML, assurez-vous de spécifier les fichiers de ressources dans une variable qmake QTQUICK_COMPILER_SKIPPED_RESOURCES à l'intérieur de votre projet. Cela empêche le Qt Quick Compiler d'essayer de générer du code C++ pour le code JavaScript correspondant, ainsi que de supprimer le code JavaScript original du fichier de ressources Qt, ce qui conduirait à des pages HTML cassées. Par exemple :

QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc

Étapes de déploiement spécifiques à macOS

Pour déployer une application Qt WebEngine sur macOS, vous devrez vous assurer que le processus Qt WebEngine est signé avec un fichier entitlements qui contient au moins les entitlements listés dans QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/Resources/QtWebEngineProcess.entitlements.

Pour déployer une application Qt WebEngine qui accède au microphone ou à la caméra sur macOS, vous devrez fournir des textes pour les messages qui seront affichés à l'utilisateur pour expliquer pourquoi l'application demande la permission d'accéder à la caméra ou au microphone. Pour ce faire, ajoutez les textes au fichier Info.plist de l'application en utilisant les clés décrites ci-dessous.

Pour le message d'utilisation de la caméra, fournissez un texte à l'aide de la clé suivante :

<key>NSCameraUsageDescription</key>
<string>Your message text for camera usage.</string>

Voir également la documentation du fichier de liste de propriétés d'Apple.

Pour le message d'utilisation du microphone, fournissez un texte à l'aide de la clé suivante : See also Apple's property list file documentation :

<key>NSMicrophoneUsageDescription</key>
<string>Your message text for microphone usage.</string>

Voir aussi la documentation du fichier de liste des propriétés d'Apple.

Pour authentifier une application qui accède à la caméra ou au microphone, vous devez ajouter les clés correspondantes au fichier de droits de votre application utilisé pour le déploiement et l'authentification.

Pour permettre l'accès à la caméra, ajoutez :

<key>com.apple.security.device.camera</key>
<true/>

Voir également la documentation sur les droits de l'appareil photo d'Apple.

Pour permettre l'accès au microphone, ajoutez :

<key>com.apple.security.device.microphone</key>
<true/>

Voir aussi la documentation sur les droits du microphone d'Apple.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.