Qt WebEngine アプリケーションのデプロイ
アプリケーションをパッケージ化してデプロイする方法は、オペレーティング・システムによって異なります。Windows と macOS では、windeployqtとmacdeployqtがスタンドアロンのアプリケーションパッケージを生成する手順を自動化します。
Qt WebEngine に依存するアプリケーションを手動でデプロイする場合、アプリケーションの実行に必要なすべてのファイル(ライブラリ、QMLインポート、プラグイン、翻訳)を含める必要があります。
詳細はQt アプリケーションのデプロイ を参照してください。
ターゲットプラットフォーム
Qt WebEngine Qt では、Qt の すべてをサポートしようとしています。しかし、Chromium の要件が異なるため、必ずしも対応できるとは限りません。既知の制限は以下の通りです:Supported Platforms
- Qt WebEngine 現在、Windows、Linux、macOS のみをサポートしています。
- Windows では、Qt WebEngine は Windows Vista 以降をターゲットプラットフォームとしてサポートしています。Chromiumでは新しいAPIを使用しているため、Windows XPはサポートされていません。WinRTもサポートされていません。
- Windows では、Qt WebEngine アプリケーションを実行するには、Visual C++ Redistributable バージョン 14.28 以降が必要です。
アプリケーションの手動デプロイ
Qt WebEngine に依存するアプリケーションを手動でデプロイする場合、以下のファイルをデプロイする必要があります:
- ライブラリ
- QML インポート
- Qt WebEngine プロセス
- リソース
- 翻訳
- オーディオおよびビデオコーデック
ライブラリの配置
以下のライブラリは、Qt WebEngine に依存するアプリケーションと共にデプロイする必要があります:
- QtWebEngineCore ライブラリ
- QtWebEngineWidgets または ライブラリ(アプリケーションの種類によるQtWebEngine
QML インポートの配置
アプリケーションでQt Quick インテグレーションを使用する場合、QtWebEngine インポートディレクトリをデプロイする必要があります。
Qt WebEngine プロセスのデプロイ
Qt WebEngine は、Chromium プロジェクトが提供するマルチプロセスモデルを利用します。マルチプロセスモデルでは、 Process実行ファイルをアプリケーションと一緒にデプロイする必要があります。Qt WebEngine
WebEngine プロセスは、QWebEngineView またはWebEngineView インスタンスごとに実行されます。たとえば、2つのタブを開いているブラウザ・アプリケーションでは、2つのプロセスのインスタンスを実行する必要があります。これは、安定したブラウジング体験を提供するために、最近のほとんどのウェブ・エンジンで使われている一般的なアプローチです。
実行時にQt WebEngine は、QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath)が返すディレクトリからQtWebEngineProcess
の実行ファイルを探します。Qt インストールの場合、これはQTDIR/libexec
(Linux) またはQTDIR\bin
(Windows) です。このパスは、例えばqt.conf
ファイルを定義することで変更できます。あるいは、実行パスをQTWEBENGINEPROCESS_PATH
環境変数の値として設定することもできます。macOSの場合、Qt WebEngine は、.app/Helpers/QtWebEngineProcess
にある実行可能ファイルを探します。
リソースの配置
Qt WebEngine 以下のリソースファイルが必要です:
qtwebengine_resources.pak
Chromium が必要とするリソースが含まれています。qtwebengine_devtools_resources.pak
リモートデバッグ用のツールが含まれています。qtwebengine_resources_100p.pak
低解像度ディスプレイに適した画像が含まれています。qtwebengine_resources_200p.pak
高 DPI ディスプレイに適した画像が含まれています。icudtl.dat
International Components for Unicode(ICU)のサポートを提供します。これは Chromium 版の ICU であり、 がシステム ICU を使用するように設定されている場合は必要ありません。Qt WebEnginev8_context_snapshot.bin
初期化を高速化するために使用されるv8コンテキストのスナップショットが含まれています。デバッグビルドでは、 の代わりに というファイル名の拡張子を持つ別のスナップショットを使用します。macOS では、 や のように、各アーキテクチャに応じた名前のスナップショットがあります。.bin
.debug.bin
v8_context_snapshot.arm64.bin
v8_context_snapshot.arm64.debug.bin
リソースは以下の場所から検索されます:
- Linux および Windows の場合: QLibraryInfo::location(QLibraryInfo::DataPath) で指定されたディレクトリ内の
resources
ディレクトリ。 - macOS の場合:
.app/Content/Resources
- QCoreApplication::applicationDirPath() で指定されたアプリケーション・ディレクトリ
あるいは、リソース・ディレクトリのパスを環境変数QTWEBENGINE_RESOURCES_PATH
の値として設定することもできます。
翻訳
ロケールデータ(en-US.pak
など)は、以下の場所から検索されます:
- macOSの場合:
.app/Content/Resources
- Linux および Windows の場合: QLibraryInfo::location(QLibraryInfo::TranslationsPath) で指定されたディレクトリ内の
qtwebengine_locales
ディレクトリ。
あるいは、ロケール・ディレクトリのパスを環境変数QTWEBENGINE_LOCALES_PATH
の値として設定することもできます。
Qt リソースファイル内の JavaScript ファイル
WebEngine アプリケーションがQt Quick Compiler を使ってビルドされ、JavaScript ファイルが .qrc リソースに含まれていて、これらのファイルが HTML ページから読み込まれるようになっている場合は、プロジェクト内のQTQUICK_COMPILER_SKIPPED_RESOURCES
qmake 変数でリソースファイルを指定してください。こうすることで、Qt Quick Compiler が対応する JavaScript コードに対して C++ コードを生成しようとしたり、Qt リソースファイルから元の JavaScript コードを削除しようとして、HTML ページが壊れてしまうのを防ぐことができます。例えば
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc
macOS 特有のデプロイ手順
macOS 上でQt WebEngine アプリケーションをデプロイするには、QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/Resources/QtWebEngineProcess.entitlements に記載されているエンタイトルメントを少なくとも含むエンタイトルメントファイルでQt WebEngine プロセスが署名されていることを確認する必要があります。
macOS上でマイクやカメラにアクセスするQt WebEngine アプリケーションをデプロイするには、アプリケーションがカメラやマイクへのアクセス許可を求める理由を説明するために、ユーザーに表示するメッセージにテキストを用意する必要があります。これを行うには、以下に説明するキーを使用して、アプリケーションのInfo.plist
ファイルにテキストを追加します。
カメラ使用メッセージには、以下のキーを使用してテキストを指定します:
<key>NSCameraUsageDescription</key> <string>Your message text for camera usage.</string>
Appleのプロパティリストファイルのドキュメントも参照してください。
マイク使用メッセージには、以下のキーを使ってテキストを記述します:
<key>NSMicrophoneUsageDescription</key> <string>Your message text for microphone usage.</string>
Appleのプロパティリストファイルのドキュメントも参照してください。
カメラまたはマイクにアクセスするアプリケーションを公証するには、デプロイと公証に使用するアプリケーションのエンタイトルメントファイルに対応するキーを追加する必要があります。
カメラへのアクセスを有効にするには、次のように追加します:
<key>com.apple.security.device.camera</key> <true/>
Appleのカメラエンタイトルメントドキュメントも参照してください。
マイクへのアクセスを有効にするには、以下を追加します:
<key>com.apple.security.device.microphone</key> <true/>
© 2025 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.