Qt WebEngine アプリケーションのデプロイ

アプリケーションをパッケージ化してデプロイする方法は、オペレーティング・システムによって異なります。Windows と macOS では、windeployqtmacdeployqtがスタンドアロンのアプリケーションパッケージを生成する手順を自動化します。

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 に依存するアプリケーションと共にデプロイする必要があります:

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 WebEngine
  • v8_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/>

Apple's microphone entitlement documentationも参照してください。

© 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.