ドキュメント

iPadアプリのMacバージョンの作成

Mac Catalystを使って、iPadアプリをmacOS向けにポーティングする方法を紹介します。

最新の英語ドキュメント

Creating a Mac Version of Your iPad App

概要

Xcode 11以降では、Mac Catalystを使って既存のiPadアプリのMacバージョンを作成できます。チェックボックスをクリックするだけでアプリをMac向けに構成できます。ただし、アプリが使用する機能やフレームワークによっては、さらにいくつかの手順が必要になる場合があります。

アプリをMac向けに構成

アプリにMacへの対応を追加するには、Xcodeプロジェクトを開き、構成したいiOSターゲットを選択します。「General(一般)」タブの「Deployment Info(配備情報)」で「Mac」チェックボックスを選択します(アプリがiPhoneにのみ対応している場合、このチェックボックスは利用できません)。

「Deployment Info(配備情報)」セクションでMacデバイスが選択されているXcodeのスクリーンショット。

Macへの対応を有効にすると、XcodeによってプロジェクトにApp Sandbox Entitlementが追加されます。Xcodeは、このエンタイトルメントをアプリのMacバージョンにのみ含めます。iOSバージョンには含まれません。また、対象デバイスのリストに「My Mac」が追加されます。XcodeからMacアプリを実行するには、この実行対象デバイスを選択します。

この時点で、既存アプリのMacバージョンをビルドし実行できる場合があります。これを確認するには、対象デバイスとして「My Mac」を選択し、プロジェクトを実行します。

追加の構成

以下の場合、上記の手順だけではアプリのMacバージョンがビルドされないことがあります。

  • プロジェクトに、互換性のないフレームワーク、ライブラリ、埋め込みコンテンツが含まれている場合。

  • ソースコードが、サポートされていないAPIを参照している場合。

Macへの対応を有効にすると、Xcodeは、プロジェクトのMacバージョンから互換性のないフレームワークや埋め込みコンテンツを可能な限り自動的に除外します。ただし、フレームワークやコンテンツによっては手動で除外する必要があります。

アイテムを手動で除外するには、iOSターゲットの「General(一般)」タブで「Frameworks, Libraries, and Embedded Content(フレームワーク、ライブラリ、埋め込みコンテンツ)」を開きます。次に、アイテムのプラットフォーム設定として「iOS」を選択します。この設定でアプリのMacバージョンからアイテムを除外します。

「SomeFramework」というフレームワークの対応プラットフォームとしてiOSが選択されているXcodeのスクリーンショット。

ソースコードで、アプリのMacバージョンで利用できないAPIを参照している場合、プラットフォーム条件targetEnvironment()を使用する条件付きコンパイルブロックにコードを含めます。


#if !targetEnvironment(macCatalyst)
// Code to exclude from Mac.
#endif

同じアプローチを使って、macOSでのみ利用可能なフレームワークおよびコードを含めることができます。フレームワークの場合、プラットフォーム設定で「macOS」を選択し、#if targetEnvironment(macCatalyst)文でコードを囲みます。

Mac向けにアプリを最適化

上記の手順を実施すれば、iPadアプリをMacでも実行できるようになります。ただし、ユーザー向けに新しいアプリを公開する前に、Macアプリとしてさらに最適なユーザー体験を実現できるよう、いくつかの変更を加える必要があります。詳しくは「iPadアプリをMac向けに最適化する」を参照してください。