iOS への移植
このセクションでは、既存の Qt アプリケーションをiOSに移植し、デバイスにデプロイします。
iOS でサポートされていない特定のハードウェアやソフトウェアの機能に依存していない限り、ほとんどの Qt アプリケーションは iOS に簡単に移植できるはずです。移植作業の大部分は、アプリケーションのすべてのアセット(例えば、QML ファイル、画像、アイコンなど)がデバイスに正しくデプロイされるようにすることです。
ほとんどの UI アプリケーションと同様に、Qt アプリケーションも画像、アイコン、翻訳ファイルなどのリソースに依存しています。これらのリソースは、アプリケーションが正しく機能するために必要なので、デバイス上で利用可能にする必要があります。
最も便利な方法は、リソースをqrcファイルにバンドルし、アプリケーションのバイナリに組み込むことです。この方法は移植の手間を大幅に削減し、リソースへのアクセスを高速化します。また、クロスプラットフォームなアプローチなので、他のプラットフォームへの移植も容易になります。
デフォルトでは、すべてのQtアプリケーションは":/"接頭辞またはURLスキームの接頭辞 "qrc: "を使用してqrcファイルのコンテンツにアクセスできます。qrc ファイルの詳細とその扱い方については、Qt Resource System を参照してください。
以下のステップバイステップの手順では、qrc アプローチを使用して既存の Qt Quick アプリケーションを iOS に移植する方法を説明します:
- Qt Creator で既存のプロジェクトを開き、iOSまたはiOS SimulatorKit で設定します。詳細はQt Creator を参照してください:プロジェクトの設定」を参照してください。
qml
ファイル内のすべてのローカルディレクトリのインポートを更新して、ローカルの名前空間を使用するようにします。例えば、main.qml
に相対する "contents" ディレクトリにある QML ドキュメントをインポートするには、次の import ステートメントを使用します:import "contents" as Contents
- アプリケーションで使用するすべてのリソースを特定し、1 つ以上の qrc ファイルに追加します。Qt Creator は qmake プロジェクトファイルを
RESOURCES
変数で更新し、追加した qrc ファイルをリストアップします。 - C++ ファイルから qrc ファイル内のリソースをロードまたは参照するには、URL のプレフィックスに "
qrc:
" を使用します。例えばQQuickView viewer; viewer.setSource(QUrl("qrc:qml/main.qml")); viewer.show();
注意: QML文書からリソースのファイルを参照するには、文書への相対パスを使用します。このような参照には "
qrc:
" や ":/
" という接頭辞は必要ありません。 - Qt Creator の説明に従って、プロジェクトの "Run" 設定を更新してください:実行設定の指定
- アプリケーションが特別な Qt モジュールに依存するインポートやプラグインを使用する場合、これらの Qt モジュールをビルド設定ファイルに追加する必要があります。例えば、アプリケーションが QML の Qt Multimedia インポートを使用する場合、
.pro
またはCMakeLists.txt
ファイルに以下を追加する必要があります:
qmake#tab-qmakeQt for iOS では、すべてのモジュールがビルド設定ファイルに追加されます。find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(my_project PRIVATE Qt6::Multimedia)
QT += multimedia
Qt for iOS では、すべてが静的にコンパイルされ、アプリケーションバンドルに配置されます。アプリケーションはバンドル内で "サンドボックス化 "され、共有オブジェクトファイルを使用することはできません。このため、Qt モジュールで使用されるプラグインも静的にリンクする必要があります。これを行うには、QTPLUGIN変数を使用して必要なプラグインを定義します。
- プロジェクトに変更を保存し、アプリケーションを実行します。
Xcode でデバイスが正しく検出され、設定されていれば、Qt Creator は iOS デバイスにアプリケーションをデプロイします。iOS Simulator でアプリケーションをテストすることもできます。詳細については、iOS デバイスの接続を参照してください。
Platform Notes - iOSも参照してください 。
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。