次の方法で共有


iOS、Mac Catalyst、macOS、および tvOS のビルド プロパティ

MSBuild プロパティは 、ターゲットの動作を制御します。 これらは、MSBuild PropertyGroup 内のプロジェクト ファイル ( MyApp.csproj など) 内で指定されます。

AltoolPath

altool ツールへの完全なパス。

既定の動作では、 xcrun altoolを使用します。

AppBundleDir

ビルドされたアプリ バンドルの場所。

App Bundle Extra オプション

アプリ バンドルを作成するための高度な追加引数。

引数の有効なセットは、プラットフォームによって異なります。

通常、これらは Microsoft エンジニアが指定しない限り使用しないでください。

アプリアイコン

AppIcon項目グループを使用して、アプリのアプリ アイコンを指定できます。

プロパティの値は、資産カタログ内の .appiconset (iOS、macOS、Mac Catalyst の場合) または .brandassets (tvOS の場合) イメージ リソースのファイル名を指す必要があります。

例:

<PropertyGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
    <AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>

関連項目も参照:

アプリケーションディスプレイバージョン

設定されている場合は、アプリ マニフェスト (Info.plist) でCFBundleShortVersionString値を指定します。

これは、.NET "Single Project" をサポートするプロパティです。

詳細については、 OneDotNetSingleProject を参照してください。

ApplicationId

設定されている場合は、アプリ マニフェスト (Info.plist) でCFBundleIdentifier値を指定します。

これは、.NET "Single Project" をサポートするプロパティです。

詳細については、 OneDotNetSingleProject を参照してください。

アプリケーション名

設定されている場合は、アプリ マニフェスト (Info.plist) のCFBundleDisplayNameを指定します。

これは、.NET "Single Project" をサポートするプロパティです。

詳細については、 OneDotNetSingleProject を参照してください。

アプリケーションバージョン

設定されている場合は、アプリ マニフェスト (Info.plist) のCFBundleVersionを指定します。

これは、.NET "Single Project" をサポートするプロパティです。

詳細については、 OneDotNetSingleProject を参照してください。

ArchiveBasePath

リモート ビルド用にアーカイブが Windows に格納されている場所。

既定値は次のとおりです。 %LocalAppData%\Xamarin\iOS\Archives

iOS プロジェクトにのみ適用されます (Windows からリモートでビルドできるのは iOS プロジェクトのみであるため)。

アーカイブオンビルド

ビルドの最後に Xcode アーカイブを作成する必要がある場合。

BGenEmitDebugInformation

bgen ツール (バインディング ジェネレーター) がデバッグ情報を出力する必要があるかどうか。

既定の動作は、Debug プロパティが true に設定されている場合にtrueされます。

BGenExtraArgs

bgen ツール (バインディング ジェネレーター) に対する追加の引数。

BGenToolExe

bgen実行可能ファイルの名前 (バインド プロジェクトがバインドを生成するために使用するツール)。

既定の動作では、ワークロードに付属の bgen ツールを使用します。

BGenToolPath

bgen (BGenToolExe) が配置されているディレクトリ。

既定の動作では、ワークロードに付属の bgen ツールを使用します。

BuildIpa

ビルドの最後にアプリ バンドルのパッケージ (.ipa) を作成する必要がある場合。

iOS および tvOS プロジェクトにのみ適用されます。

macOS および Mac Catalyst プロジェクトの CreatePackage を参照してください。

オリジナルリソースのバンドル

このプロパティは、リソースをライブラリ プロジェクトに埋め込む前にコンパイルするか、元の (コンパイルされていない) バージョンが埋め込まれているかを決定します。

これまで、リソースはライブラリ プロジェクトに埋め込まれる前にコンパイルされていましたが、これには Xcode を使用できる必要がありますが、これにはいくつかの欠点があります。

  • Windows でのリモート ビルドの速度が低下します。
  • Windows 上でローカルにビルドする場合は機能せず、macOS 以外の他のプラットフォームでも動作しません。
  • リソースは、現在使用可能な Xcode を使用してコンパイルされます。これは、問題のライブラリを使用するときに使用できる可能性のある新しい Xcode と同じ機能を持たない可能性があります。
  • 競合するリソースを検出するために必要なアプリをビルドするときに、すべてのリソースをプログラム全体で表示することは不可能になります。

そのため、元のリソースをライブラリに埋め込むためのサポートが追加されました。 これは .NET 9 ではオプトインされますが、.NET 10 以降ではオプトアウトされます。

このプロパティの既定値は.NET 9 で false され、.NET 10 以降では true されます。

この機能を無効にする必要がある場合は、今後無効にするオプションが削除される可能性があるため、問題を解決してください。

CodesignAllocate

codesign_allocate ツールへのパス。

既定では、この値は自動検出されます。

コード署名依存

これはビルドの拡張ポイントです。開発者はこのプロパティに任意のターゲットを追加して、アプリ バンドルが署名される前にそれらのターゲットを実行できます。

例:

<PropertyGroup>
  <CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
  <Exec Command="echo This is executed right before the app is signed." />
</Target>

CodesignEntitlements

アプリに必要な権利を指定するエンタイトルメント ファイルへのパス。

通常は "Entitlements.plist" です。

プロジェクトのルート ディレクトリにこのようなファイルが存在する場合は、これを自動的に "Entitlements.plist" に設定します。

これを防ぐには、 EnableDefaultCodesignEntitlements プロパティを falseに設定します。

CodesignExtraArgs

アプリ バンドルに署名するときに、'codesign' ツールに渡される追加の引数。

CodesignKey

アプリ バンドルに署名するときに使用するコード署名キーを指定します。

CodesignKeychain

コード署名時に使用するキーチェーン。

コード署名キー

アプリ バンドルに署名するときに使用するコード署名キーを指定します。

macOS および Mac Catalyst アプリにのみ適用されますが、代わりに CodesignKey プロパティを使用することをお勧めします (すべてのプラットフォームで動作します)。

CodesignProvision

アプリ バンドルに署名するときに使用するプロビジョニング プロファイルを指定します。

CodesignResourceRules

アプリ バンドルにコピーする ResourceRules.plist へのパス。

CodesignRequireProvisioningProfile

アプリ バンドルに署名するときにプロビジョニング プロファイルが必要かどうかを指定します。

既定では、次の場合にプロビジョニング プロファイルが必要です。

  • macOS、Mac Catalyst: プロビジョニング プロファイルが指定されました ( CodesignProvision プロパティを使用)。
  • iOS、tvOS、watchOS: デバイスまたはエンタイトルメント ファイルのビルドが指定されました ( CodesignEntitlements プロパティを使用)。

このプロパティを true または false に設定すると、既定のロジックがオーバーライドされます。

アプリバンドル生成依存関係

これはビルドの拡張ポイントです。開発者はこのプロパティに任意のターゲットを追加して、アプリ バンドルの作成時にそれらのターゲットを実行できます。

例:

<PropertyGroup>
  <CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
  <Exec Command="echo This is executed before the app bundle is created." />
</Target>

CreateIpaDependsOn

これはビルドの拡張ポイントです。開発者はこのプロパティに任意のターゲットを追加して、IPA の作成時にそれらのターゲットを実行できます。

IPA アーカイブ (現在は iOS および tvOS) を構築するすべてのプラットフォームに適用されます。

例:

<PropertyGroup>
  <CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
  <Exec Command="echo This is executed before the IPA is created." />
</Target>

パッケージ作成

ビルドの最後にアプリ バンドルのパッケージ (.pkg) を作成する必要がある場合。

macOS および Mac Catalyst プロジェクトにのみ適用されます。

iOS および tvOS プロジェクトの BuildIpa を参照してください。

デバイスごとのビルド

ビルドが選択したデバイスに固有である必要がある場合。

デバイス固有のビルド (現在は iOS および tvOS) をサポートするすべてのプラットフォームに適用されます。

デバイス固有の中間出力パス

デバイス固有のビルドが有効な場合に使用する中間出力パス。

デバイス固有のビルド (現在は iOS および tvOS) をサポートするすべてのプラットフォームに適用されます。

デバイス特有の出力パス

デバイス固有のビルドが有効な場合に使用する出力パス。

デバイス固有のビルド (現在は iOS および tvOS) をサポートするすべてのプラットフォームに適用されます。

DittoPath

ditto実行可能ファイルへの完全なパス。

既定の動作では、 /usr/bin/dittoを使用します。

オンデマンドリソースを埋め込む

オンデマンド リソースをアプリ バンドルに埋め込む必要がある場合。

既定値: true

EnableCodeSigning (コード署名の有効化)

コード署名が有効になっている場合。

通常、ビルドはコード署名が必要かどうかを自動的に決定します。この自動検出は、このプロパティでオーバーライドできます。

デフォルトのコードサイン権限を有効化する

CodesignEntitlements を参照してください。

オンデマンドリソースを有効化

オンデマンド リソースが有効になっている場合。

既定値: macOS の場合は false、他のすべてのプラットフォームでは true。

パッケージ署名を有効にする

作成された.pkg ( CreatePackage が有効な場合) に署名する必要がある場合。

macOS および Mac Catalyst にのみ適用されます。

EnableSGenConc

SGen ガベージ コレクターの同時実行モードを有効にします。

iOS、tvOS、Mac Catalyst にのみ適用されます (NativeAOT を使用しない場合)。

アプリケーションマニフェストを生成する

アプリケーション マニフェスト (Info.plist) を生成する必要がある場合。

既定値: true

GeneratedSourcesDir

ジェネレーターから生成されたソースが保存される場所。

すべてのアプリアイコンを含める

IncludeAllAppIcons プロパティを true に設定すると、アプリ内のすべての資産カタログのすべてのアプリ アイコンが自動的に含まれます。

例:

<PropertyGroup>
    <IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>

関連項目も参照:

iOSMinimumVersion

アプリが実行できる最小 iOS バージョンを指定します。

iOS に適用されます。この値を設定すると、 iOS プロジェクトの SupportedOSPlatformVersion が設定されます (のみ)。

IPhoneResourcePrefix

リソースが格納されているディレクトリ (このプレフィックスは、リソースをアプリ バンドルにコピーするときに削除されます)。

iOS、tvOS、Mac Catalyst プロジェクトに適用できます。

MonoMacResourcePrefixXamMacResourcePrefix も参照してください。

Ipaアートワークを含める

アートワークを IPA に含める必要がある場合。

iOS および tvOS プロジェクトにのみ適用されます。

IpaPackageName

IPA パッケージの作成時に 、結果の .ipa ファイルの名前 (パスなし) を指定します ( BuildIpa を参照)。 IpaPackagePath はこの値をオーバーライドします。

iOS および tvOS プロジェクトにのみ適用されます。

IpaPackageDir

IPA パッケージの作成時に、結果の .ipa ファイルのディレクトリを指定します ( BuildIpa を参照)。 IpaPackagePath はこの値をオーバーライドします。

iOS および tvOS プロジェクトにのみ適用されます。

IpaPackagePath

IPA パッケージの作成時に、結果の .ipa ファイルへのパスを指定します ( BuildIpa を参照)。

iOS および tvOS プロジェクトにのみ適用されます。

IsAppExtension

プロジェクトがアプリ拡張機能の場合。

IsBindingProject

プロジェクトがバインド プロジェクトの場合。

IsXPCService

macOS 拡張機能が xpc サービスの場合。

macOS プロジェクトにのみ適用されます。

LinkMode

プロジェクトのリンク モード (NoneSdkOnly 、または Full) を指定します。

macOS プロジェクトに適用できますが、このプロパティは非推奨です。代わりに TrimMode を 使用してください。

MtouchLink も参照してください。

LinkWithSwiftSystemLibraries

trueに設定すると、ビルドによって、Swift のシステム ライブラリを見つける場所がネイティブ リンカーに指示されます。

これは、ネイティブ ライブラリが何らかの方法で Swift を使用する場合に便利です。この場合、ネイティブ リンカーは Swift のシステム ライブラリを検索する場所を知る必要があります。

現在、これは、これらの引数がネイティブ リンカーに渡されることを意味します。

  • -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
  • -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDK/[platform].sdk/usr/lib/swift

引数の正確なセットは、将来変更される可能性があります。

MacCatalyst最小バージョン

アプリを実行できる Mac Catalyst (iOS) の最小バージョンを指定します。

Mac Catalyst に適用されます。この値を設定すると、Mac Catalyst プロジェクトの SupportedOSPlatformVersion が設定されます (のみ)。

(Note: Only make an improvement if the technical term is not meant to remain in English and has a known translation or needs context in Japanese.)

ビルド プロセスの拡張に使用できるセミコロンで区切られたプロパティ。 このプロパティに追加された MSBuild ターゲットは、アプリケーションとライブラリの両方のプロジェクトの種類に対してビルドの早い段階で実行されます。 既定では、このプロパティは空です。

例:

<PropertyGroup>
  <MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

このプロパティは .NET 9 で導入されました。

macOS最低バージョン

アプリが実行できる macOS の最小バージョンを指定します。

macOS に適用されます。この値を設定すると、 macOS プロジェクトの SupportedOSPlatformVersion が設定されます (のみ)。

MacOSXSdkVersion

ビルドに使用する macOS SDK のバージョン。

既定値: 選択した Xcode に付属する既定のバージョンに従って自動的に検出されます。

MtouchSdkVersion も参照してください。

マーシャルマネージド例外モード

マネージド例外の処理中にスタック アンワインド中にネイティブ フレームが発生したときにマネージド例外を処理する方法を選択します。

有効な値:

  • default: 現在、これは throwobjectivecexceptionです。
  • unwindnativecode: これは、CoreCLR ランタイムを使用している場合は使用できません。
  • throwobjectivecexception: マネージド例外をキャッチし、Objective-C 例外に変換します。
  • abort: プロセスを中止します。
  • disable: マネージド例外のインターセプト処理を無効にします。 MonoVM の場合、これは unwindnativecodeと同じです。CoreCLR の場合、これは abortと同じです。

詳細については、「 例外マーシャリング 」および「 MarshalObjectiveCExceptionMode」を参照してください。

MarshalObjectiveC例外モード

Objective-C 例外の処理中にスタック アンワインド中にマネージド フレームが発生したときに、Objective-C 例外を処理する方法を選択します。

有効な値:

  • default: 現在、これは throwmanagedexceptionです。
  • unwindmanagedcode: これは、CoreCLR ランタイムを使用している場合は使用できません。
  • throwmanagedexception: Objective-C 例外をキャッチし、マネージド例外に変換します。
  • abort: プロセスを中止します。
  • disable: Objective-C 例外のインターセプトを無効化する。

詳細については、「 例外マーシャリング 」および「 MarshalManagedExceptionMode」を参照してください。

MdimportPath

mdimport ツールへの完全なパス。

既定の動作では、 xcrun mdimportを使用します。

MetalLibPath

metallib ツール (メタル リンカー) への完全なパス。

既定の動作では、 xcrun metallibを使用します。

MetalPath

Metal コンパイラへの完全なパス。

既定の動作では、 xcrun metalを使用します。

MmpDebug

アプリ バンドル作成のデバッグ モードを有効にします。

macOS プロジェクトにのみ適用されます。

MtouchDebug も参照してください。

MonoBundlingExtraArgs

アプリ バンドルを作成する方法を指定する追加の引数。

macOS プロジェクトにのみ適用されます。

このプロパティは非推奨です。代わりに AppBundleExtraOptions を 使用してください。

MonoMacResourcePrefix

リソースが格納されているディレクトリ (このプレフィックスは、リソースをアプリ バンドルにコピーするときに削除されます)。

macOS プロジェクトにのみ適用されます。

IPhoneResourcePrefixXamMacResourcePrefix も参照してください。

MtouchDebug

アプリ バンドル作成のデバッグ モードを有効にします。

iOS、tvOS、Mac Catalyst プロジェクトに適用できます。

MmpDebug も参照してください。

MtouchEnableSGenConc

SGen ガベージ コレクターの同時実行モードを有効にします。

NativeAOT を使用しない場合は、iOS、tvOS、Mac Catalyst にのみ適用されます。

このプロパティは非推奨です。代わりに EnableSGenConc を 使用してください。

MtouchExtraArgs

アプリ バンドルを作成する方法を指定する追加の引数。

iOS、tvOS、Mac Catalyst プロジェクトにのみ適用されます。

このプロパティは非推奨です。代わりに AppBundleExtraOptions を 使用してください。

MtouchInterpreter

インタープリターを有効にし、必要に応じて解釈するアセンブリのコンマ区切りのリストを受け取ります (プレフィックスに負符号が付いている場合、アセンブリは代わりに AOT コンパイルされます)。 'all' を使用して、すべてのアセンブリを指定できます。 この引数は複数回指定できます。

例:

<PropertyGroup>
  <!-- interpret all assemblies -->
  <MtouchInterpreter>all</MtouchInterpreter>

  <!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
  <MtouchInterpreter>System</MtouchInterpreter>

  <!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
  <MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>

MtouchInterpreterの短縮形は、MtouchInterpreter=allと同じUseInterpreter=trueを設定する方法です。

UseInterpreterMtouchInterpreterの両方が設定されている場合は、MtouchInterpreterが優先されます。

iOS、tvOS、Mac Catalyst アプリ (NativeAOT を使用しない場合) に適用されます。

既定の動作では、インタープリターは有効になりません。

MAUI は、"Debug"構成のUseInterpreter=trueを設定することで、既定値を変更します。

プロジェクトのリンク モード (NoneSdkOnlyFull) を指定します。

iOS、tvOS、Mac Catalyst のプロジェクトに適用できますが、このプロパティは非推奨です。代わりに TrimMode を 使用してください。

LinkMode も参照してください。

MtouchSdkVersion

ビルドに使用する iOS または tvOS SDK のバージョン。

既定値: 選択した Xcode に付属する既定のバージョンに従って自動的に検出されます。

MacOSXSdkVersion も参照してください。

MtouchUseLlvm

LLVM を使用して AOT コンパイルを実行するかどうかを指定するブール型プロパティ。

iOS、tvOS、Mac Catalyst プロジェクトに適用できます。

既定値は

  • iOS および tvOS の場合: リリース ビルド ( Configuration="Release") が有効になっています。
  • Mac Catalyst の場合: 既定では有効になっていません。

NoBindingEmbedding

バインド プロジェクトのネイティブ ライブラリをマネージド アセンブリに埋め込むか、マネージド アセンブリの横の .resources ディレクトリに配置するかを指定するブール型プロパティ。

既定値は true です (つまり、ネイティブ ライブラリはマネージド アセンブリに埋め込 まれません )。

マネージド アセンブリ内に埋め込まれている場合 (このプロパティが trueされていない場合)、Xcframeworks は正しく機能しません。

NoDSymUtil

.dSYM 生成を無効にするかどうかを指定するブール型プロパティ。

既定値は

  • true シミュレーター用にビルドする場合は、iOS および tvOS 用です。
  • true アーカイブを作成しない限り、macOS および Mac Catalyst の場合 (ArchiveOnBuild=true)

これは、次の場合 (既定) に .dSYM アーカイブが生成されることを意味します。

  • デバイス用にビルドする場合の iOS および tvOS の場合。
  • macOSとMac Catalystを使ってアーカイブ(ArchiveOnBuild=true)を作成する際。

オンデマンドリソース初期インストールタグ

オンデマンド リソースの初期インストール タグを指定する文字列プロパティ。

OnDemandResourcesPrefetchOrder

オンデマンド リソースのプリフェッチ順序を指定する文字列プロパティ。

オンデマンドリソースURL

オンデマンド リソースのリソース URL を指定する文字列プロパティ。

OptimizePNGs (PNG最適化ツール)

png イメージを最適化するかどうかを指定するブール型プロパティ。

PNG画像最適化の依存関係

これはビルドの拡張ポイントです。開発者はこのプロパティに任意のターゲットを追加して、png イメージを最適化する前にそれらのターゲットを実行できます。

例:

<PropertyGroup>
  <OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

プロパティリストの最適化

プロパティ リスト (plists) を最適化するかどうかを指定するブール型プロパティ。

プロパティリストの依存関係を最適化する

これはビルドの拡張ポイントです。開発者はこのプロパティに任意のターゲットを追加して、プロパティ リスト (plists) が最適化される前にそれらのターゲットを実行できます。

例:

<PropertyGroup>
  <OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

パッケージ署名キー

macOS および Mac Catalyst プロジェクトの.pkgを作成するときにパッケージに署名するコード署名キーを指定します。

macOS および Mac Catalyst アプリにのみ適用されます。

PackagingExtraArgs

macOS および Mac Catalyst プロジェクトの.pkgを作成するときに、'productbuild' ツールに渡す追加の引数を指定します。

macOS および Mac Catalyst アプリにのみ適用されます。

Pkgパッケージパス

パッケージの作成時に、結果の.pkg ファイルへのパスを指定します ( CreatePackage を参照)。

macOS および Mac Catalyst アプリにのみ適用されます。

PlutilPath

plutil コマンドライン ツールへの完全なパス。

既定の動作では、 xcrun plutilを使用します。

PngCrushPath

pngcrush コマンドライン ツールへの完全なパス。

既定の動作では、 xcrun pngcrushを使用します。

ProcessEnums

バインドプロジェクトで列挙型をAPI定義として処理するかどうかを指定する論理型プロパティ。

ProductBuildPath

productbuild ツールへの完全なパス。

既定の動作では、 xcrun productbuildを使用します。

プロダクト定義

パッケージの作成時に製品ビルド ツールに渡す製品定義を作成するときに使用する製品定義テンプレート (.plist) (.pkg)。

macOS および Mac Catalyst アプリにのみ適用されます。

リファレンスネイティブシンボル

項目グループ ReferenceNativeSymbol を使用して、特定のネイティブ シンボルを処理する方法を指定できます。無視するか、ネイティブ リンカーに保持するように依頼します (シンボルを -u ... として渡すか、シンボル ファイル内でネイティブ リンカーに渡します)。

サポートされているメタデータには、次の 2 種類があります。

  • SymbolType: ObjectiveCClassFunction 、または Fieldのいずれか。 シンボルの完全なネイティブ名を計算するために使用されます。(たとえば、Objective-C クラスのネイティブシンボルMyClass_OBJC_CLASS_$_MyClassです。一方、関数の場合は単にMyFunction_MyFunctionです。)
  • SymbolMode: Ignore または設定されていません。 Ignore は、指定されたシンボルをネイティブ リンカーに渡さないことを意味します。既定では、これを行います。

SymbolType は必須ですが、 SymbolMode は必要ありません。

保持するシンボルの例:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>

無視するシンボルの例:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>

Objective-Cクラス検索の属性リンクを要求する

既存の Objective-C クラスにマップされるマネージド クラスのすべてのライブラリを自動的にスキャンし、それらの Objective-C クラスのビルド時にネイティブ参照を作成します。

このように、ネイティブ リンカーは、これらの Objective-C クラスは使用されていないと考えて削除しません。

ただし、マネージド クラスが存在しない Objective-C クラスを参照している場合は、この問題が発生する可能性があります。 これに対する適切な修正は、このようなマネージド クラスをビルドから削除することですが、特にマネージド クラスがバイナリ参照 (NuGet など) から取得される場合は、面倒な場合があります。

このような場合は、プロパティの RequireLinkWithAttributeForObjectiveCClassSearchtrue に設定して、Objective-C クラスの [LinkWith] 属性を持つライブラリのみをスキャンすることができます。

<PropertyGroup>
  <RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>

スキップスタティックライブラリバリデーション

ホット リスタートでは静的ライブラリとのリンクはサポートされていないため、ホット リスタートを使用するときにプロジェクトが静的ライブラリとリンクしようとすると、既定でエラーが表示されます。

ただし、このようなエラーを無視すると便利な場合もあります (たとえば、該当する静的ライブラリを必要としないアプリのコード パスをテストする場合など)、無視することができます。

有効な値は次のとおりです。

  • "true"、"disable": 検証を完全に無効にします。
  • "false"、"error"、空の文字列: 検証を有効にします (これが既定です)
  • "warn": 検証しますが、エラーではなく警告を表示します。

例:

<PropertyGroup>
  <SkipStaticLibraryValidation>warn</SkipStaticLibraryValidation>
</PropertyGroup>

これにより、プロジェクトがスタティック ライブラリにリンクしようとすると、エラーの代わりに警告が表示されます。

StripPath

strip コマンドライン ツールへの完全なパス。

既定の動作では、 xcrun stripを使用します。

SupportedOSPlatformVersion

アプリが実行できる OS の最小バージョンを指定します。

プラットフォーム固有のプロパティを使用することもできます。

TrimMode

トリミングの粒度を指定します。

有効なオプションは次のとおりです。

  • full: すべてのアセンブリをトリミングします。
  • partial: トリミングを選択したアセンブリをトリミングします。
  • copy: アセンブリをトリミングしません。

TrimMode プロパティの詳細については、「TrimMode」を参照してください。

技術的な理由から、アセンブリをトリミングしない場合でも、トリマーはすべての iOS、tvOS、macOS、Mac Catalyst プロジェクトで実行する必要があります。 このため、 PublishTrimmedfalse に設定してトリミングを無効にすることは無効です。トリミングを無効にするには、代わりに TrimMode=copy を設定します ( PublishTrimmedfalse に設定されている場合、ビルド エラーが発生します)。

TrimMode プロパティは、既存の MtouchLink (iOS、tvOS、Mac Catalyst の場合) プロパティと LinkMode (macOS の場合) プロパティと同じですが、有効なプロパティ値は異なります (セマンティクスは同じです)。

MtouchLink/LinkMode TrimMode
完全 一杯
SdkOnly パーシャル
無し コピー

今後、 MtouchLink プロパティと LinkMode プロパティは非推奨になります。代わりに TrimMode を使用してください。

既定のトリム モードは、さまざまな要因に依存し、今後も変更される可能性があります。

現在の (.NET 9 の時点) 既定値は次のとおりです。

  • iOS と iOS: デバイス用にビルドするときに partial 、シミュレーター用にビルドするときに copy
  • macOS: 常に copy
  • Mac Catalyst: "Release"構成用にビルドするとpartial、それ以外の場合はcopyします。

例外:

  • NativeAOT を使用してビルドする場合、既定値は常に full されます。
  • MAUI は、Debug構成用にビルドするときに既定値をcopyに変更、インタープリターは UseInterpreter を使用して有効になります (この設定は、"Debug"構成を使用する場合にも既定で有効になります)。

既定のトリミング モードは、今後変更される可能性があります。

tvOSMinimumVersion (tvOSの最小バージョン)

アプリが実行できる tvOS の最小バージョンを指定します。

tvOS に適用されます。この値を設定すると、 tvOS プロジェクトの SupportedOSPlatformVersion が設定されます (のみ)。

使用する強化された実行環境

強化されたランタイムが有効かどうかを指定するブール型プロパティ。

macOS および Mac Catalyst プロジェクトに適用できます。

インタープリターを使用する

(すべてのアセンブリに対して) インタープリターを有効にします。

これは、 MtouchInterpreter=allの設定と同じです。

iOS、tvOS、Mac Catalyst アプリ (NativeAOT を使用しない場合) に適用されます。

既定の動作では、インタープリターは有効になりません。

MAUI は、"Debug"構成のUseInterpreter=trueを設定することで、既定値を変更します。

詳細については、 MtouchInterpreter を参照してください。

UseNativeHttpHandler

ネイティブ http ハンドラーを既定の http ハンドラーにする必要があるかどうか。

既定値: macOS を除くすべてのプラットフォームで true。

権利を検証する

アプリ要求の権利を検証するかどうかを選択します。

このプロパティの有効な値:

  • disable: 検証が無効になっています。
  • warn: 検証エラーは警告として表示されます。
  • error: 検証エラーはエラーとして表示されます。 これが既定値です。

検証プロセスでは、すべての権利が検証されるわけではありません。また、過大評価されないことも保証されません。

実際に機能する権利の検証が失敗した場合は、新しい問題を提出してください。

XamMacResourcePrefix

リソースが格納されているディレクトリ (このプレフィックスは、リソースをアプリ バンドルにコピーするときに削除されます)。

macOS プロジェクトに適用されます。

IPhoneResourcePrefixMonoMacResourcePrefix も参照してください。

ジップパス (ZipPath)

zip コマンドライン ツールへの完全なパス。

既定の動作では、 xcrun zipを使用します。