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 を参照してください:プロジェクトの設定」を参照してください。
  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 では、すべてのモジュールがビルド設定ファイルに追加されます。
    find_package(Qt6 REQUIRED COMPONENTS Multimedia)
    target_link_libraries(my_project PRIVATE Qt6::Multimedia)
    QT += multimedia

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

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

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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。