iOS用Qt

QtのiOSポートにより、iPhone、iPad、iPod TouchなどのiOSデバイス上でQtアプリケーションを実行することができます。

サポートされる構成

以下の構成がサポートされています。

対象プラットフォームアーキテクチャビルド環境
iOS 16、17、18armv8 ( )arm64Xcode 15 (iOS 17 SDK)、Xcode 16(iOS 18 SDK)
自動テストで使用する対象デバイス
対象デバイスOSバージョンアーキテクチャフォームファクター
iPhone 12iOS 16armv8 (arm64)モバイル
iPhone 11iOS 16armv8(arm64)モバイル
iPad Pro、第3世代iOS 15armv8(arm64)タブレット
iPad、第6世代iOS 14armv8(arm64)タブレット

はじめに

Qt は iOS 用アプリケーションのビルド、テスト、デプロイをサポートします。Qt アプリケーションは通常、CMakeまたはqmakeビルドツールを使用して定義します。どちらのツールも、.xcodeproj ファイルを生成し、コマンドラインやXcodeからロードしてビルドすることができます。Qt Creatorは、iOS 用の CMake および qmake プロジェクトのビルド、実行、デバッグ、プロファイリングも直接サポートします。

Qt アプリケーションの最小デプロイメントターゲットはSupported Platforms で指定されています。

開発環境のセットアップ

Qt のインストーラーはDownloadsページからダウンロードできます。詳細については、「Qt を始める」を参照してください。

Qtをインストールする前に、まずXcodeをインストールする必要があります。Xcode は Mac App Store にあります

注意: Apple が推奨しているように、App Store 向けのアプリケーションをビルドする際には、常に最新の Xcode バージョンを使用する必要があります。実際には、Xcode のシステム要件により、Qt でアプリケーションを開発するには macOS の最新バージョンも必要です。

Mac または Xcode に付属するシミュレータで Qt アプリケーションを実行する場合は、これだけで十分です。しかし、モバイルデバイス上でアプリケーションを実行したり、App Store でアプリケーションを公開したりするには、Apple Developer Program に参加し、開発者証明書とプロビジョニングプロファイルを設定する必要があります。最も簡単な解決策は、任意のApp ID(* )を取るプロファイルを使用することです。

Qt アプリケーションをビルドする前に、Xcode が正しくセットアップされていることを、例えば、標準的な Xcode のアプリケーションテンプレートの一つをデバイス上で実行することで、テストする必要があります。

コマンドラインからのアプリケーションのビルド

iOS アプリケーションのビルド方法を定義するには、CMake または qmake を使用します。CMake と qmake の両方は、xcodeproj ファイルを生成し、コマンドラインからロードしてビルドすることができます。

CMakeを使う

<Qt-dir>/<version>/ios/bin/ にあるqt-cmake コンビニエンス・スクリプトが、ツールチェーンと正しいアーキテクチャのセットアップを行ってくれます。

qt-cmake コンビニエンス・スクリプトを使用する:

<Qt-dir>/<version>/ios/bin/qt-cmake <source-dir>

生成されたxcodeproj ファイルを使用して、Xcode を使用してアプリケーションをビルドするか、コマンドラインからxcodebuild を実行します。あなたのアプリケーションで利用可能なターゲットとスキームのリストについては、以下のコマンドを実行してください:

xcodebuild -list -project <your-app>.xcodeproj

そして、xcodebuild build を実行し、アプリケーションの詳細を渡します:

xcodebuild build -allowProvisioningUpdates -project <your-app>.xcodeproj -scheme <your-scheme> -configuration Debug -destination "generic/platform=iOS" -destination-timeout 1 ENABLE_ONLY_ACTIVE_RESOURCES=NO

qmakeを使う

まず、qmakeを使ってアプリケーションのビルド方法を定義します。次に、生成されたxcodeproj ファイルを使用して、Xcode またはコマンドラインからアプリケーションをビルドします。

qmake <your-app>.pro

qmakeは、xcodebuild を呼び出すラッパーのMakefileを作成するので、make を実行してアプリケーションをビルドすることができます:

make -j8

ソース・ファイルの追加や削除など、プロジェクトのセットアップが変更された場合は、再インポートする必要があることに注意してください。

Xcode プロジェクト設定のカスタマイズ

QMAKE_MAC_XCODE_SETTINGS qmake 変数は、例えば、Xcode の設定をカスタマイズするために使用することができます:

development_team.name = DEVELOPMENT_TEAM
development_team.value = <your-team-id>
QMAKE_MAC_XCODE_SETTINGS += development_team

他の qmake 変数も便利です:

QMAKE_TARGET_BUNDLE_PREFIX = com.<your-company>
QMAKE_BUNDLE = <your-app>

Qt Creator でアプリケーションをビルドする

Qt Creator のマニュアルには、Apple のモバイルデバイス用アプリケーションのセットアップ方法と実行方法が記載されています:

前述の通り、Xcode がインストールされている必要があります。

Xcodeでアプリケーションを実行する

qmakeとCMakeによって生成されたXcodeプロジェクトは、iOSデバイスとiOSシミュレータの両方でアプリケーションを実行することをサポートしています。

注意: Qt for iOS シミュレータライブラリのデフォルトアーキテクチャはx86_64 ですので、アプリケーションは Apple Silicon Mac 上の Rosetta で実行する必要があります。もし、Rosetta ベースの実行先が Xcode の実行先メニューに表示されていない場合は、Product > Destination > Destination Architectures メニューから有効にすることができます。

Qt アプリケーションで Objective-C コードを使用する

Apple プラットフォームのアプリケーションに使用されるコンパイラである Clang では、C++ と Objective-C のコードを混在させることができます。このモードを有効にするには、関連するソースファイルに.mm 拡張子を使用し、通常通りプロジェクトに追加します。

CMakeを使用します:

target_sources(myapp PRIVATE objc_code.mm)

qmakeの場合:

SOURCES += objc_code.mm

そうすれば、QtアプリケーションでAppleのDeveloper LibraryにあるObjective-Cフレームワークを使うことができます。

すべてのソースファイルの名前を変更することなく、アプリケーションの残りの部分に機能を公開するには、ヘッダーでヘルパー関数を宣言し、Objective-C++のソースファイルで機能を実装します:

// objc_code.h
QString localizedHostName();

// objc_code.mm
#include <Foundation/NSHost.h>
QString localizedHostName()
{
    return QString::fromNSString(NSHost.currentHost.localizedName);
}

iOSの例

Qt Creator では、iOS のテスト済みサンプルを検索できます。Qt Creator Welcome モードでサンプルを検索するには、ios キーワードを使用してください。いくつかのサンプルは機能が制限されている可能性があることに注意してください。

iOS デバイスで動作することが確認されているサンプルのリストについては、Qt for iOS Examples を参照してください。

Qt for iOS の詳細については、以下のトピックを参照してください:

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。