デプロイとテスト
.NET マルチプラットフォーム アプリ UI (.NET MAUI) は、単一プロジェクト システムを使用してクロス プラットフォーム アプリの構成を管理します。 この構成には、各プラットフォームでのアプリのビルドとパッケージ化を制御するプロパティと設定が含まれます。 詳細については、「.NET MAUI アプリのプロジェクト構成」をご覧ください。
単体テストでは、アプリ内の各機能単位が期待どおりに実行されることを確認し、エラーがアプリ全体に伝達されないようにします。 単体テストでは、アプリの小さな単位 (通常はメソッド) を受け取り、コードの残りの部分から分離し、期待どおりに動作することを確認します。 詳細については、「単体テスト」を参照してください。
.NET MAUI アプリのパフォーマンスや体感的なパフォーマンスを向上させるための手法は数多くあります。 これらの手法をすべて使用することで、CPU で実行される作業量や、アプリで消費されるメモリ量を大幅に減らすことができます。 詳細については、「アプリのパフォーマンス向上」をご覧ください。
アプリをビルドするときに、.NET MAUI は ILLink と呼ばれるリンカーを使用して、トリミングと呼ばれる手法を使用してアプリの全体的なサイズを縮小できます。 ILLink は、コンパイラによって生成された中間コードを分析することで、サイズを小さくします。 使用されていないメソッド、プロパティ、フィールド、イベント、構造体、クラスを削除して、アプリの実行に必要なコードとアセンブリの依存関係のみを含むアプリを生成します。 詳細については、「.NET MAUI アプリをトリミングする」を参照してください。
Android
さまざまなデバイスをシミュレートするためにさまざまな構成で実行できる Android エミュレーター上でアプリをデバッグし、テストすることができます。 各構成は、仮想デバイスと呼ばれます。 エミュレーター上でアプリをデプロイしてテストする際には、Pixel スマートフォンなどの物理的な Android デバイスをシミュレートする、事前構成済みまたはカスタムの仮想デバイスを選択します。 詳細については、「Android エミュレーターでのデバッグ」をご覧ください。
Android エミュレーターを使用すると、アプリを迅速に開発してテストできますが、実際の Android デバイスでアプリをテストすることもできます。 デバイスで実行するには、デバイスで開発者モードを有効にして、開発用マシンに接続する必要があります。 詳細については、「デバッグ用に Android デバイスを設定する」をご覧ください。
Android 用の .NET MAUI アプリを配布する場合は、Android パッケージ (APK) または Android アプリ バンドル (AAB) ファイルを生成します。 APK は Android デバイスにアプリをインストールするために使用され、AAB は Android ストアにアプリを公開するために使用されます。 プロジェクトにわずかな構成変更を加えただけで、アプリを配布用にパッケージ化できます。 詳細については、「Android 用の .NET MAUI アプリを公開する」をご覧ください。
iOS
.NET MAUI を使用したネイティブ iOS アプリケーションのビルドには、Mac 上でのみ動作する Apple のビルド ツールにアクセスする必要があります。 このため、.NET MAUI iOS アプリをビルドするには、Visual Studio がネットワークにアクセス可能な Mac に接続されている必要があります。 Visual Studio の Mac とのペアリング機能は、Mac ビルド ホストの検出、接続、認証、記憶を行うため、Windows で生産的に作業できるようになります。 詳細については、「iOS 開発のために Mac とペアリングする」をご覧ください。
Mac とのペアリングと組み合わせることで、Windows 用のリモート iOS シミュレーターにより、Visual Studio とともに Windows に表示される iOS シミュレーター上でアプリをテストすることができます。 詳細については、「Windows 用リモート iOS シミュレーター」をご覧ください。
.NET MAUI iOS アプリを開発する場合、シミュレーターだけでなく、物理デバイスにもアプリをデプロイしてテストする必要があります。 メモリやネットワーク接続性などのハードウェアの制限があるため、アプリをデバイス上で実行すると、デバイスのみでバグやパフォーマンスの問題が発生することがあります。 物理デバイス上でアプリをテストするには、デバイスをプロビジョニングし、テストにデバイスが使用されることを Apple に通知する必要があります。 デバイス プロビジョニングの詳細については、「iOS 用のデバイス プロビジョニング」をご覧ください。
USB ケーブルを使用して iOS デバイスを Mac に接続し、.NET MAUI アプリをデプロイおよびデバッグする代わりに、Visual Studio では、.NET MAUI iOS アプリをデバイスにワイヤレスでデプロイおよびデバッグできます。 詳細については、「.NET MAUI iOS アプリのワイヤレス デプロイメント」をご覧ください。
または、ホット再起動により、Mac ビルド ホストを必要とせずに、Visual Studio から 64 ビットローカル デバイスに iOS アプリをすばやくデプロイできます。 また、ローカルに接続されている iOS デバイスの既存のアプリ バンドルに新しい変更を反映させることで、パッケージを完全に再構築する必要がなくなります。 コード ファイル、リソース、プロジェクト参照の変更をサポートしているため、開発中にアプリの変更をすばやくテストできます。 詳細については、「ホット再起動を使用して iOS アプリをローカル デバイスにデプロイする」をご覧ください。
iOS 用の .NET MAUI アプリを配布する場合は、.ipa ファイルを生成します。 .ipa ファイルは、iOS アプリを格納する iOS アプリ アーカイブ ファイルです。 iOS で .NET MAUI アプリを配布するには、プロビジョニング プロファイルを使用してアプリをプロビジョニングする必要があります。 プロビジョニング プロファイルは、コード署名情報だけでなく、アプリの ID と使用する配布メカニズムも含むファイルです。 iOS 用の .NET MAUI アプリの発行の詳細については、「iOS 用の .NET MAUI アプリを公開する」をご覧ください。
iOS では、.NET MAUI アプリはサンドボックスで実行されます。このサンドボックスでは、アプリとシステム リソースまたはユーザー データ間のアクセスを制限する一連の規則が提供されます。 Apple は、機能を拡張し、iOS アプリで実行可能な範囲を広げる手段として、アプリ サービスとしてよく知られる機能を提供しています。 機能はアプリのプロビジョニング プロファイルに追加され、アプリにコード署名するときに使用されます。 詳しくは、「Capabilities」をご覧ください。
Mac Catalyst
.NET MAUI Mac Catalyst アプリを配布するときは、.app または .pkg ファイルを生成します。 .app ファイルは、インストールなしで実行できる自己完結型アプリですが、.pkg はインストーラーにパッケージ化されたアプリです。 .NET MAUI Mac Catalyst アプリを配布するには、プロビジョニング プロフィールを使用してアプリをプロビジョニングする必要があります。 プロビジョニング プロファイルは、コード署名情報だけでなく、アプリの ID と使用する配布メカニズムも含むファイルです。 .NET MAUI Mac Catalyst アプリの発行の詳細については、「.NET MAUI Mac Catalyst アプリの発行」をご覧ください。
Mac Catalyst では、.NET MAUI アプリは、アプリとシステムリソースまたはユーザーデータ間のアクセスを制限する一連のルールを提供するサンドボックス内で実行されます。 Apple は、機能を拡張し、iOS アプリで実行可能な範囲を広げる手段として、アプリ サービスとしてよく知られる機能を提供しています。 機能はアプリのプロビジョニング プロファイルに追加され、アプリにコード署名するときに使用されます。 詳しくは、「Capabilities」をご覧ください。
Windows
開発者モードを有効にする必要があるローカル Windows マシンでアプリをテストおよびデバッグできます。 詳細については、「Windows での .NET MAUI アプリのデプロイとデバッグ」をご覧ください。
Windows 用の .NET MAUI アプリを配布する場合は、アプリとその依存関係を別のシステムに展開するためのフォルダーに発行できます。 アプリを MSIX パッケージにパッケージ化することもできます。MSIX パッケージには、アプリをインストールするユーザーにとって多くの利点があります。 詳細については、「Windows 用 .NET MAUI アプリを発行する」をご覧ください。
.NET MAUI