iOS への移植

このセクションでは、既存の Qt アプリケーションをiOSに移植し、デバイスにデプロイします。

iOS でサポートされていない特定のハードウェアやソフトウェアの機能に依存していない限り、ほとんどの Qt アプリケーションは iOS に簡単に移植できるはずです。移植作業の大部分は、アプリケーションのすべてのアセット(例えば、QML ファイル、画像、アイコンなど)をデバイスに正しくデプロイすることです。

ほとんどの UI アプリケーションと同様に、Qt アプリケーションも画像、アイコン、翻訳ファイルなどのリソースに依存しています。これらのリソースは、アプリケーションが正しく機能するために必要なので、デバイス上で利用可能にする必要があります。

最も便利な方法は、リソースをqrcファイルにバンドルし、アプリケーションのバイナリに組み込むことです。この方法は移植の手間を大幅に削減し、リソースへのアクセスを高速化します。また、クロスプラットフォームなアプローチなので、他のプラットフォームへの移植も容易になります。

デフォルトでは、すべてのQtアプリケーションは":/"接頭辞またはURLスキームの接頭辞 "qrc: "を使用してqrcファイルの内容にアクセスできます。qrc ファイルの詳細とその扱い方については、Qt Resource System を参照してください。

以下のステップバイステップの手順は、qrc アプローチを使用して既存のQt Quick アプリケーションを iOS に移植するためのガイドです:

  1. 既存のプロジェクトをQt Creator で開き、iOSまたはiOS Simulatorkit で設定します。詳しくはQt Creator: Configuring Projects を参照してください。
  2. qml ファイル内のローカルディレクトリのインポートをすべて更新し、ローカルの名前空間を使用するようにします。例えば、main.qml に相対する "contents "ディレクトリにある QML ドキュメントをインポートするには、以下の import ステートメントを使用します:
    import "contents" as Contents
  3. アプリケーションで使用するすべてのリソースを特定し、それらを 1 つまたは複数の qrc ファイルに追加します。Qt Creator は、qmake プロジェクトファイルをRESOURCES 変数で更新し、追加した qrc ファイルのリストを表示します。
  4. C++ ファイルから qrc ファイル内のリソースをロードまたは参照するには、URL のプレフィックスに "qrc:" を使用します。例えば
    QQuickView viewer;
    viewer.setSource(QUrl("qrc:qml/main.qml"));
    viewer.show();

    注意: QML文書からリソースのファイルを参照するには、文書への相対パスを使用します。このような参照には "qrc:" や ":/" という接頭辞は必要ありません。

  5. Qt Creator の説明に従って、プロジェクトの "Run "設定を更新してください:プロジェクトの実行設定
  6. アプリケーションが特別な Qt モジュールに依存するインポートやプラグインを使用している場合、これらの Qt モジュールをビルド設定ファイルに追加する必要があります。例えば、アプリケーションがQMLのQt Multimedia インポートを使用する場合、.pro またはCMakeLists.txt ファイルに以下を追加してください:
    qmake#tab-qmakeQt for iOS では、すべての Qt モジュールがビルド設定ファイルに追加されています。
    find_package(Qt6 REQUIRED COMPONENTS Multimedia)
    target_link_libraries(my_project PRIVATE Qt6::Multimedia)
    QT += multimedia

    Qt for iOS では、すべてが静的にコンパイルされ、アプリケーションバンドルに配置されます。アプリケーションはバンドル内で "サンドボックス化 "され、共有オブジェクトファイルを使用することはできません。このため、Qt モジュールで使用されるプラグインも静的にリンクする必要があります。これを行うには、QTPLUGIN変数を使用して必要なプラグインを定義します。

  7. プロジェクトに変更を保存し、アプリケーションを実行します。

Qt Creator Xcode でデバイスが正しく検出され、設定されていれば、iOS デバイスにアプリケーションがデプロイされます。iOS Simulator でアプリケーションをテストすることも可能です。詳細については、iOS デバイスの接続 を参照してください。

Platform Notes - iOSも参照してください

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