Mac App Store 配布用の Mac Catalyst アプリの発行
Mac Catalyst アプリをユーザーに配布する最も一般的な方法は、Mac App Store を使用することです。 アプリは、App Store Connect というオンライン ツールを使用して Mac App Store に提出されます。 Apple Developer Program に加入している開発者のみが、このツールを利用できます。 Apple Developer Enterprise Program のメンバーはアクセスできません。 Mac App Store に提出されるすべてのアプリは、Apple の承認を受ける必要があります。
Mac Catalyst アプリを配布するには、プロビジョニング プロファイルを使用してアプリをプロビジョニングする必要があります。 プロビジョニング プロファイルは、コード署名情報だけでなく、アプリの ID と使用する配布メカニズムも含むファイルです。
.NET Multi-Platform App UI (.NET MAUI) Mac Catalyst アプリを配布するには、アプリに固有の配布プロビジョニング プロファイルを作成する必要があります。 このプロファイルにより、アプリにリリース用のデジタル署名を付けて Mac にインストールできるようになります。 配布プロビジョニング プロファイルには、アプリ ID と配布証明書が含まれています。 配布証明書がまだない場合は、自分自身または組織を識別するための配布証明書を作成する必要があります。 さらに、Mac App Store に提出するために、アプリのインストーラー パッケージに署名するための Mac インストーラー証明書も作成する必要があります。
Mac App Store を通じた配布用に .NET MAUI Mac Catalyst アプリをプロビジョニングするプロセスは、次のとおりです。
- 証明書署名要求を作成します。 詳細については、「証明書署名要求を作成する」を参照してください。
- 配布証明書を作成します。 詳細については、「配布証明書を作成する」をご覧ください。
- インストーラー証明書を作成します。 詳細については、「インストーラー証明書を作成する」をご覧ください。
- アプリ ID を作成します。 詳細については、「アプリ ID の作成」をご覧ください。
- アプリ ID を構成します。 詳細については、「アプリ ID を構成する」をご覧ください。
- プロビジョニング プロファイルを作成します。 詳細については、「プロビジョニング プロファイルの作成」をご覧ください。
- プロビジョニング プロファイルをダウンロードします。 詳細については、「Xcode でプロビジョニング プロファイルをダウンロードする」をご覧ください。
次に、プロビジョニングが完了したら、アプリを発行用に準備したあと、次のプロセスでアプリを発行する必要があります。
- アプリに必要なエンタイトルメントを追加します。 詳細については、「エンタイトルメントを追加する」をご覧ください。
- アプリの Info.plist ファイルを更新します。 詳細については、「Info.plist の更新」をご覧ください。
- コマンド ラインを使用してアプリを発行します。 詳細については、「コマンド ラインを使用して発行する」をご覧ください。
証明書署名要求を作成します。
配布証明書を作成する前に、まず Mac のキーチェーン アクセスで証明書署名要求 (CSR) を作成する必要があります。
お使いの Mac で、 Keychain Accessを起動します。
キーチェーン アクセスで、[キーチェーンアクセス] > [証明書アシスタント] > [証明機関に証明書を要求する...] メニュー項目を選択します。
[証明書アシスタント] ダイアログで、[ユーザーのメール アドレス] フィールドにメール アドレスを入力します。
[証明書アシスタント] ダイアログで、[共通名] フィールドにキーの名前を入力します。
[証明書アシスタント] ダイアログで、[CA メール アドレス] フィールドは空のままにします。
[証明書アシスタント] ダイアログで、[ディスクに保存] ラジオ ボタンを選択し、[続行] を選択します。
証明書署名要求を既知の場所に保存します。
[証明書アシスタント] ダイアログで、[完了] ボタンを選択します。
キーチェーン アクセスを閉じます。
配布証明書を作成する
CSR を使用すると、ID を確認する配布証明書を生成できます。 配布証明書は、Apple Developer アカウントの Apple ID を使用して作成する必要があります。
Web ブラウザーで、Apple 開発者アカウントにログインします。
Apple Developer アカウントで、[Certificates, IDs & Profiles] タブを選択します。
「Certificates, Identifiers & Profiles」ページで、+ ボタンを選択して新しい証明書を作成します。
[新しい証明書の作成] ページで、[Apple 配布] ラジオ ボタンを選択してから、[続行] ボタンを選択します。
[新しい証明書の作成] ページで、[ファイルの選択] を選択します。
[アップロードするファイルの選択] ダイアログで、以前に作成した証明書要求ファイル (
.certSigningRequest
ファイル拡張子を持つファイル) を選択し、[アップロード] を選択します。[新しい証明書の作成] ページで、[続行] ボタンを選択します。
[証明書のダウンロード]ページで、[ダウンロード] ボタンを選択します。
証明書ファイル(
.cer
拡張子を持つファイル)が、選択した場所にダウンロードされます。Mac で、ダウンロードした証明書ファイルをダブルクリックして、証明書をキーチェーンにインストールします。 証明書が [キーチェーン アクセス] の [個人用証明書] カテゴリに表示され、名称は Apple Distribution で始まります。
Note
キーチェーン アクセスの完全な証明書名を書き留めます。 アプリに署名するときに必要になります。
インストーラー証明書を作成する
CSR を使用すると、Mac App Store に提出するアプリのインストーラー パッケージに署名するために必要なインストーラー証明書を生成できます。 インストーラー証明書は、Apple Developer アカウントの Apple ID を使用して作成する必要があります。
Apple Developer アカウントで、[Certificates, IDs & Profiles] タブを選択します。
「Certificates, Identifiers & Profiles」ページで、+ ボタンを選択して新しい証明書を作成します。
[新しい証明書の作成] ページで、[Mac インストーラー配布] ラジオ ボタンを選択してから、[続行] ボタンを選択します。
[新しい証明書の作成] ページで、[ファイルの選択] を選択します。
[アップロードするファイルの選択] ダイアログで、以前に作成した証明書要求ファイル (
.certSigningRequest
ファイル拡張子を持つファイル) を選択し、[アップロード] を選択します。[新しい証明書の作成] ページで、[続行] ボタンを選択します。
[証明書のダウンロード]ページで、[ダウンロード] ボタンを選択します。
証明書ファイル(
.cer
拡張子を持つファイル)が、選択した場所にダウンロードされます。Mac で、ダウンロードした証明書ファイルをダブルクリックして、証明書をキーチェーンにインストールします。 証明書が [キーチェーン アクセス] の [個人用証明書] カテゴリに表示され、名称は 3rd Party Mac Developer Installer で始まります。
Note
キーチェーン アクセスの完全な証明書名を書き留めます。 アプリに署名するときに必要になります。
配布プロファイルを作成する
配布プロビジョニング プロファイルを使用すると、.NET MAUI Mac Catalyst アプリを、別の Mac にインストールできるようにリリース用にデジタル署名することができます。 Mac App Store 配布のプロビジョニング プロファイルには、アプリ ID と配布証明書が含まれています。
アプリ ID を作成する
配布するアプリを識別するには、アプリ ID が必要です。 アプリ ID は、アプリを一意に識別する逆引き DNS 文字列に似ており、アプリのバンドル識別子と同一である必要があります。 テスト用にアプリをデバイスにデプロイするときに使用したのと同じアプリ ID を使用できます。
アプリ ID には 2 種類あります。
- ワイルドカード。 ワイルドカード アプリ ID を使用すると、1 つのアプリ ID を使用して複数のアプリを照合でき、通常は
com.domainname.*
の形式を使用します。 ワイルドカード アプリ ID は複数のアプリを配布するために使用でき、アプリ固有の機能を有効にしないアプリに使用する必要があります。 - 明示。 明示的なアプリ ID は 1 つのアプリに固有であり、通常は
com.domainname.myid
の形式になります。 明示的なアプリ ID を使用すると、一致するバンドル識別子を持つ 1 つのアプリを配布できます。 明示的なアプリ ID は通常、Apple Pay や Game Center などのアプリ固有の機能を有効にするアプリに使用されます。 機能の詳細については、「機能」をご覧ください。
新しいアプリ ID を作成するには、次の手順を行います。
Apple Developer アカウントで、[証明書、ID、プロファイル] に移動します。
[証明書、ID、プロファイル] ページで、[識別子] タブを選択します。
[識別子] ページで、+ ボタンを選択して新しいアプリ ID を作成します。
[新しい ID の登録] ページで、[アプリ ID] ラジオ ボタンを選択してから、[続行] ボタンを選択します。
[新しい ID の登録] ページで、[アプリ] を選択してから、[続行] ボタンを選択します。
[アプリ ID の登録] ページで説明を入力し、[明示的] または [ワイルドカード] バンドル識別子ラジオ ボタンを選択します。 次に、アプリのバンドル識別子を逆 DS 形式で入力します。
重要
入力するバンドル識別子は、アプリ プロジェクトの Info.plist ファイル内のバンドル識別子に対応する必要があります。
.NET MAUI アプリのバンドル識別子は、アプリケーション ID プロパティとしてプロジェクト ファイルに格納されます。 Visual Studio では、ソリューション エクスプローラーで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[MAUI 共有 > 一般] タブに移動します。[アプリケーション ID] フィールドにはバンドル識別子がリストされます。
[アプリケーション ID] フィールドの値が更新されると、Info.plist 内のバンドル ID の値も自動的に更新されます。
[アプリ ID の登録]] ページで、アプリが使用する機能を選択します。 すべての機能は、このページとアプリ プロジェクトの Entitlements.plist ファイルの両方で構成する必要があります。 詳細については、「機能」と「エンタイトルメント」をご覧ください。
[アプリ ID の登録] ページで、[続行] ボタンを選択します。
[アプリ ID の確認] ページで、[登録] ボタンを選択します。
アプリ ID を構成する
既定では、Mac Catalyst アプリは iOS アプリと同じバンドル ID を使用するため、Mac App Store でユニバーサル購入としてアプリをまとめて提供できます。 または、一意のバンドル ID を指定して、アプリを別の製品として提供することもできます。
アプリ ID を構成するには、次の手順に従います。
Apple Developer アカウントで、[証明書、ID、プロファイル] に移動します。
[証明書、ID、プロファイル] ページで、[識別子] タブを選択します。
「識別子」ページで 、先ほど作成したアプリ ID を選択します。
「アプリ ID 構成の編集」ページで、ページの下部までスクロールし、Mac Catalyst 機能チェックボックスを有効にします。 続いて、[構成] ボタンを選択します。
[Mac Catalyst のバンドル ID の構成] ポップアップで、[既存の Mac アプリ ID を使用する] ラジオ ボタンを選択します。 [アプリ ID] ドロップダウンで、Mac Catalyst のパートナー iOS アプリのアプリ ID を選択するか、Mac Catalyst アプリを別の製品として提供する場合は作成したアプリ ID を選択します。 続いて、[保存] ボタンを選択します。
「アプリ ID 構成の編集」ページで、[保存] ボタンを選択します。
[アプリ機能の変更] ポップアップで、[確認] ボタンを選択します。
プロビジョニング プロファイルを作成する
アプリ ID を作成して構成したら、配布プロビジョニング プロファイルを作成する必要があります。 このプロファイルにより、アプリにリリース用のデジタル署名を付けて Mac にインストールできるようになります。
Mac App Store 配布プロビジョニング プロファイルを作成するに、次の手順に従います。
Apple Developer アカウントの [証明書、識別子、プロファイル] ページで、[プロファイル] タブを選択します。
[プロファイル] タブで、[+] ボタンをクリックして新しいプロファイルを作成します。
「新しいプロビジョニング プロファイルの登録」ページで、[続行] ボタンをクリックする前に [Mac App Store] ラジオ ボタンを選択します。
「プロビジョニング プロファイルの生成」ページで、[Mac] ラジオ ボタンを選択します。 次に、[アプリ ID] プルダウンで、以前に作成したアプリ ID を選択してから、[続行] ボタンをクリックします。
「プロビジョニング プロファイルの生成」ページで、配布証明書に対応するラジオ ボタンを選択してから、[続行] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、プロビジョニング プロファイルの名前を入力してから、[生成] ボタンをクリックします。
Note
アプリに署名するときに必要となるため、プロビジョニング プロファイル名をメモしておきます。
[プロビジョニング プロファイルの生成] ページで、必要に応じて [ダウンロード] ボタンをクリックしてプロビジョニング プロファイルをダウンロードします。
Note
プロビジョニング プロファイルを今すぐダウンロードする必要はありません。 代わりに、これを Xcode で実行します。
Xcode でプロビジョニング プロファイルをダウンロードする
Apple 開発者アカウントでプロビジョニング プロファイルを作成した後、Xcode はそれをダウンロードして、アプリの署名に使用できるようにします。
Mac で Xcode を起動します。
Xcode で、Xcode > Preferences... メニュー項目を選択します。
[Preferences] ダイアログで、[アカウント] タブを選択します。
[アカウント] タブで + ボタンをクリックして Apple 開発者アカウントを Xcode に追加します。
アカウントの種類のポップアップで、[Apple ID] を選択し、[続行] ボタンをクリックします。
サインイン ポップアップで Apple ID を入力し、[次へ] ボタンをクリックします。
サインイン ポップアップで、Apple ID のパスワードを入力し、[次へ] ボタンをクリックします。
[アカウント] タブで [証明書の管理...] ボタンをクリックして、配布証明書がダウンロードされていることを確認します。
[アカウント] タブで、[手動プロファイルのダウンロード] ボタンをクリックして、プロビジョニング プロファイルをダウンロードします。
ダウンロードが完了するまで待ってから、Xcode を閉じます。
エンタイトルメントの追加
Apple の アプリ サンドボックスは、Mac アプリのシステム リソースとユーザー データへのアクセスを制限し、アプリが侵害された場合の被害を食い止めます。 Mac App Store を通じて配布される Mac Catalyst アプリで有効にする必要があります。
これを実現するには、Entitlements.plist ファイルを .NET MAUI アプリ プロジェクトの Platforms/MacCatalyst フォルダーに追加します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
アプリ サンドボックスのエンタイトルメントは、boolean
型の com.apple.security.app-sandbox
キーを使用して定義されます。 アプリ サンドボックスの詳細については、developer.apple.com の「アプリ サンドボックスによるユーザー データの保護」をご覧ください。 アプリ サンドボックスのエンタイトルメントの詳細については、「アプリ サンドボックスのエンタイトルメント」をご覧ください。
アプリで送信ネットワーク接続を開く場合は、boolean
型の com.apple.security.network.client
キーを Entitlements.plist ファイルに追加する必要もあります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
送信ネットワーク接続のエンタイトルメントについては、developer.apple.com の「com.apple.security.network.client」をご覧ください。
Info.plist を更新する
アプリを公開する前に、その Info.plist ファイルを追加情報で更新して、アプリを Mac App Store にアップロードできるようにし、Mac App Store のレビュー プロセスをスムーズに行えるようにする必要があります。
ユーザー インターフェイスのイディオムを指定する
Mac Catalyst アプリは、iPad または Mac ユーザー インターフェイスのイディオムで実行できます。
- iPad のユーザー インターフェイスのイディオムは、iPad のような外観を維持しながら、Mac のディスプレイ環境に合わせてアプリのユーザー インターフェイスをスケールするように macOS に指示します。
- Mac ユーザー インターフェイスのイディオムは、Mac のディスプレイ環境に合わせてアプリのユーザー インターフェイスをスケーリングしません。 一部のコントロールはサイズや外観を変更し、それらの操作は
AppKit
コントロールと操作するのと同じように感じられます。
既定では、.NET MAUI Mac Catalyst アプリでは iPad ユーザー インターフェイスのイディオムが使用されます。 これが目的の動作である場合は、アプリの Info.plist ファイルで UIDeviceFamily
キーの値として 2 のみが指定されていることを確認してください。
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
Mac ユーザー インターフェイスのイディオムを採用するには、アプリの Info.plist ファイルを更新して、UIDeviceFamily
キーの 値として 6 を指定します。
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
Mac Catalyst ユーザー インターフェイスのイディオムの詳細については、「Mac Catalyst アプリの UI イディオムを指定する」をご覧ください。
アプリの既定の言語とリージョンを設定する
アプリの Info.plist の CFBundleDevelopmentRegion
キーを、ローカリゼーション ネイティブ開発リージョンを表す string
に設定します。
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
キーの値は言語指定子で、オプションで地域指定子も指定できます。 詳細については、developer.apple.com の「CFBundleDevelopmentRegion」をご覧ください。
著作権キーを設定する
アプリの Info.plist の NSHumanReadableCopyright
キーを、人が読めるアプリの著作権表示を表す string
に設定します。
<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>
詳細については、developer.apple.com の「NSHumanReadableCopyright」をご覧ください。
アプリ カテゴリを設定する
カテゴリは、ユーザーが Mac App Store でアプリを検出するのに役立ちます。 Info.plist ファイルでは、アプリのプライマリ カテゴリを設定できます。
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
詳細については、developer.apple.com の「LSApplicationCategoryType」をご覧ください。
Note
アプリのプライマリ カテゴリは、App Store Connect で設定したプライマリ カテゴリと一致している必要があります。
アプリによる暗号化の使用を宣言する
アプリで暗号化を使用していて、米国またはカナダの外部に配布する予定の場合は、米国の輸出コンプライアンス要件の対象となります。 App Store Connect にアプリのバージョンを送信するたびに、暗号化エクスポート規制のコンプライアンス レビューが行われます。 App Store Connect によるレビューを案内するための質問を避けるために、アプリの Info.plist ファイルに必要な情報を入力できます。
これを行うには、ITSAppUsesNonExemptEncryption
キーをアプリの Info.plist に追加し、アプリが暗号化を使用するかどうかを示す boolean
値を追加します。
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
詳細については、developer.apple.com の「暗号化エクスポート規制への準拠」をご覧ください。
コマンド ラインを使用して発行する
Mac のコマンド ラインから Mac Catalyst アプリを発行するには、ターミナルを開き、.NET MAUI アプリ プロジェクトのフォルダーに移動します。 次のパラメーターを指定して dotnet publish
コマンドを実行します。
パラメーター | 値 |
---|---|
-f または --framework |
ターゲットとなるフレームワークは net8.0-maccatalyst です。 |
-c または --configuration |
ビルド構成は、Release です。 |
-p:MtouchLink |
プロジェクトのリンク モード。None 、SdkOnly 、または Full です。 |
-p:CreatePackage |
true に設定すると、ビルドの最後にアプリのパッケージ (.pkg) が作成されます。 |
-p:EnableCodeSigning |
true に設定すると、コード署名が有効になります。 |
-p:EnablePackageSigning |
作成されたパッケージが署名されるように true に設定します。 |
-p:CodesignKey |
コード署名キーの名前。 キーチェーン アクセスに表示される配布証明書の名前に設定します。 |
-p:CodesignProvision |
アプリ バンドルに署名するときに使用するプロビジョニング プロファイル。 |
-p:CodesignEntitlements |
アプリに必要なエンタイトルメントを指定するエンタイトルメント ファイルへのパス。 Platforms\MacCatalyst\Entitlements.plist に設定します。 |
-p:PackageSigningKey |
パッケージの署名時に使用するパッケージ署名キー。 キーチェーン アクセスに表示されるインストーラー証明書の名前に設定します。 |
警告
.NET MAUI ソリューションを公開しようとすると、dotnet publish
コマンドがソリューション内の各プロジェクトを個別に公開しようとするため、他のプロジェクト タイプをソリューションに追加した場合に問題が発生する可能性があります。 したがって、dotnet publish
コマンドのスコープを .NET MAUI アプリ プロジェクトに限定する必要があります。
プロジェクト ファイルの <PropertyGroup>
で追加のビルド パラメーターが指定されていない場合は、コマンド ラインで追加のビルド パラメーターを指定できます。 次の表に、共通パラメーターをいくつか示します。
パラメーター | 値 |
---|---|
-p:ApplicationTitle |
ユーザーに表示されるアプリの名前。 |
-p:ApplicationId |
com.companyname.mymauiapp のようなアプリ固有の識別子。 |
-p:ApplicationVersion |
アプリのイテレーションを識別するビルドのバージョン。 |
-p:ApplicationDisplayVersion |
アプリのバージョン番号です。 |
ビルド プロパティの完全な一覧については、「プロジェクト ファイルのプロパティ」をご覧ください。
重要
これらのパラメーターの値はすべて、コマンド ラインで指定する必要はありません。 これらは、プロジェクト ファイルでも指定できます。 コマンド ラインとプロジェクト ファイルでパラメーターを指定すると、コマンド ライン パラメーターが優先されます。 プロジェクト ファイルでビルド プロパティを指定する方法の詳細については、「プロジェクト ファイルでビルド プロパティを定義する」をご覧ください。
たとえば、Mac App Store を介して配布するために、次のコマンドを使用して Mac で .pkg をビルドして署名します。
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"
Note
.NET 8 では、dotnet publish
コマンドの既定値は Release
構成になります。 したがって、コマンド ラインからビルド構成を省略できます。
ビルドの公開、署名、アプリのパッケージ化が行われ、.pkg が bin/Release/net8.0-maccatalyst/publish/ フォルダーにコピーされます。 1 つのアーキテクチャのみを使用してアプリを公開する場合は、bin/Release/net8.0-maccatalyst/{architecture}/publish/ フォルダーに公開されます。
署名プロセス中に、ログイン パスワードを入力し、codesign
と productbuild
の実行を許可する必要がある場合があります。
dotnet publish
コマンドの詳細については、「dotnet publish」をご覧ください。
プロジェクト ファイルでビルド プロパティを定義する
コマンド ラインでビルド パラメーターを指定する代わりに、<PropertyGroup>
のプロジェクト ファイルでビルド パラメーターを指定することもできます。 次の表は、一般的なビルド プロパティの一覧です。
プロパティ | 値 |
---|---|
<ApplicationTitle> |
ユーザーに表示されるアプリの名前。 |
<ApplicationId> |
com.companyname.mymauiapp のようなアプリ固有の識別子。 |
<ApplicationVersion> |
アプリのイテレーションを識別するビルドのバージョン。 |
<ApplicationDisplayVersion> |
アプリのバージョン番号です。 |
<CodesignKey> |
コード署名キーの名前。 キーチェーン アクセスに表示される配布証明書の名前に設定します。 |
<CodesignEntitlements> |
アプリに必要なエンタイトルメントを指定するエンタイトルメント ファイルへのパス。 Platforms\MacCatalyst\Entitlements.plist に設定します。 |
<CodesignProvision> |
アプリ バンドルに署名するときに使用するプロビジョニング プロファイル。 |
<CreatePackage> |
true に設定すると、ビルドの最後にアプリのパッケージ (.pkg) が作成されます。 |
<EnableCodeSigning> |
true に設定すると、コード署名が有効になります。 |
<EnablePackageSigning> |
作成されたパッケージが署名されるように true に設定します。 |
<MtouchLink> |
プロジェクトのリンク モード。None 、SdkOnly 、または Full です。 |
<PackageSigningKey> |
パッケージの署名時に使用するパッケージ署名キー。 キーチェーン アクセスに表示されるインストーラー証明書の名前に設定します。 |
ビルド プロパティの完全な一覧については、「プロジェクト ファイルのプロパティ」をご覧ください。
重要
これらのビルド プロパティの値は、プロジェクト ファイルで指定する必要はありません。 これらは、アプリを公開するときにコマンド ラインで指定することもできます。 これにより、プロジェクト ファイルから特定の値を省略できます。
次の例は、Mac App Store 配布用の Mac Catalyst アプリをビルドして署名するための一般的なプロパティ グループを示しています。
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</PropertyGroup>
この例 <PropertyGroup>
では条件チェックを追加し、条件チェックに合格しない限り設定が処理されないようにします。 条件チェックは、次の 2 つの項目を検索します。
- ビルド構成は
Release
に設定されています。 - ターゲット フレームワークは、
net8.0-maccatalyst
というテキストを含むものに設定されます。 - プラットフォームは
AnyCPU
に設定されています。
これらの条件のいずれかが失敗した場合、設定は処理されません。 さらに重要なのは、アプリが署名されるのを防ぐために、<CodesignKey>
、<CodesignProvision>
、<PackageSigningKey>
が設定されていないことです。
上記のプロパティ グループを追加した後、ターミナルを開いて .NET MAUI アプリ プロジェクトのフォルダーに移動することで、Mac 上のコマンド ラインからアプリを公開できます。 次に、次のコマンドを実行します。
dotnet build -f net8.0-maccatalyst -c Release
Note
.NET 8 では、dotnet publish
コマンドの既定値は Release
構成になります。 したがって、コマンド ラインからビルド構成を省略できます。
ビルドの公開、署名、アプリのパッケージ化が行われ、.pkg が bin/Release/net8.0-maccatalyst/publish/ フォルダーにコピーされます。
Mac App Store にアップロードする
Apple 配布証明書を使用してコード署名されたアプリは、ローカルで実行できません。 代わりに、ローカル実行を有効にするために再署名される App Store Connect にアップロードする必要があります。
Mac App Store または TestFlight を使用してアプリを配布するには、App Store Connect でアプリ レコードを作成する必要があります。 このレコードには、App Store に表示されるアプリに関するすべての情報と、配布プロセス全体を通じてアプリ管理に必要なすべての情報が含まれます。 詳細については、developer.apple.com の「Create an app record」をご覧ください。
トランスポーター を使用して、アプリを Mac App Store に送信できます。 また、正常な申請を停止するアプリ パッケージのエラーを特定するのにも役立ちます。
関連項目
- developer.apple.com のアプリの配布準備
.NET MAUI