ドキュメント

iPad AppのMacバージョンの作成

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

最新の英語ドキュメント

Creating a Mac Version of Your iPad App

概要

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

AppをMac向けに構成

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

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

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

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

追加の構成

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

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

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

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

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

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

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


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

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

Mac向けにAppを最適化

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