iOS、Mac Catalyst、macOS、および tvOS 用のビルド ターゲット

iOS、Mac Catalyst、macOS、および tvOS プロジェクト用の .NET では、次のビルド ターゲットが定義されています。

ビルド (既定)

プロジェクトとすべての依存関係内にソース コードをビルドします。

Clean

ビルド プロセスによって生成されたすべてのファイルを削除します。

コンピュートアベイラブルデバイス

dotnet runで使用できる iOS または tvOS デバイスとシミュレーターの一覧をクエリして返します。

このターゲットは、.NET SDK の dotnet run コマンドによって自動的に呼び出され、 --device オプションを使用したデバイスの選択がサポートされます。 各デバイスに次のメタデータがある @(Devices) 項目グループが返されます。

  • 説明: デバイスの名前 (シミュレーターの場合は "iPhone 16 - iOS 26.0"、物理デバイスの場合は "My iPhone 16" など)
  • 型: "Device" または "Simulator"
  • OSVersion: デバイスの OS バージョン
  • UDID: デバイスの UDID
  • RuntimeIdentifier: デバイスの RuntimeIdentifier

たとえば、使用可能なすべてのデバイスを一覧表示するには、次のようにします。

$ dotnet build -t:ComputeAvailableDevices

このターゲットは 、.NET SDK デバイスの選択仕様 の一部であり、次のようなコマンドを有効にします。

$ dotnet run --device UDID

.NET 11 で追加されました。

アプリケーション成果物を取得する

プロジェクトをビルドし、@(ApplicationArtifact) の項目グループを返します。 このターゲットは常に最初に Build を実行するため、カスタム メタデータ拡張ターゲットが実行される前に、プラットフォーム .app、.ipa、.pkg、.xcarchive のアーティファクトが生成および収集されます。 Publish ターゲットは、自身が生成したアーティファクトに対して、同じ項目グループを返します。

返された項目グループには、現在の呼び出しがビルドするように構成されている成果物が反映されます。以前のビルドによってディスクに残された .ipa、 .pkg、または .xcarchive ファイルはスキャンされません。 .app バンドルは常にアプリケーション プロジェクト (アプリ拡張機能と watch app プロジェクトを除く) に対して収集されますが、.ipa、.pkg、.xcarchiveの出力は、BuildIpa、CreatePackage、または ArchiveOnBuild (それぞれ) が同じ呼び出しで有効になっている場合にのみ収集されます。 Publish ターゲットでは、既定でBuildIpa (モバイル) またはCreatePackage (デスクトップ) が有効です。

$ dotnet build MyApp.csproj -t:GetApplicationArtifacts -getItem:ApplicationArtifact
$ dotnet build MyApp.csproj -t:Publish -getItem:ApplicationArtifact

サポートされているメタデータについては、 ApplicationArtifact を参照してください。

GetApplicationArtifacts または Publish が返される前に @(ApplicationArtifact) のメタデータを追加または更新する必要があるターゲットは、GetApplicationArtifactsDependsOn に追加できます。

[ファイル名を指定して実行]

プロジェクト内およびすべての依存関係内にソース コードをビルドし、既定のシミュレーター/デバイスでデプロイして実行します。 特定のデプロイ ターゲットは、$(Device) プロパティを使用して設定できます。

dotnet build -t:Run project.csproj -p:Device=<udid>