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>
関連項目も参照:
- AlternateAppIcon 項目グループ。
- IncludeAllAppIcons プロパティです。
アプリケーションディスプレイバージョン
設定されている場合は、アプリ マニフェスト (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>
関連項目も参照:
- AlternateAppIcon 項目グループ。
- AppIcon プロパティ。
iOSMinimumVersion
アプリが実行できる最小 iOS バージョンを指定します。
iOS に適用されます。この値を設定すると、 iOS プロジェクトの SupportedOSPlatformVersion が設定されます (のみ)。
IPhoneResourcePrefix
リソースが格納されているディレクトリ (このプレフィックスは、リソースをアプリ バンドルにコピーするときに削除されます)。
iOS、tvOS、Mac Catalyst プロジェクトに適用できます。
MonoMacResourcePrefix と XamMacResourcePrefix も参照してください。
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
プロジェクトのリンク モード (None
、 SdkOnly
、または 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 プロジェクトにのみ適用されます。
IPhoneResourcePrefix と XamMacResourcePrefix も参照してください。
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
を設定する方法です。
UseInterpreter
とMtouchInterpreter
の両方が設定されている場合は、MtouchInterpreter
が優先されます。
iOS、tvOS、Mac Catalyst アプリ (NativeAOT を使用しない場合) に適用されます。
既定の動作では、インタープリターは有効になりません。
注
MAUI は、"Debug"
構成のUseInterpreter=true
を設定することで、既定値を変更します。
MtouchLink
プロジェクトのリンク モード (None
、 SdkOnly
、 Full
) を指定します。
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
:ObjectiveCClass
、Function
、または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 など) から取得される場合は、面倒な場合があります。
このような場合は、プロパティの RequireLinkWithAttributeForObjectiveCClassSearch
を true
に設定して、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 プロジェクトで実行する必要があります。 このため、 PublishTrimmed を false
に設定してトリミングを無効にすることは無効です。トリミングを無効にするには、代わりに TrimMode=copy
を設定します ( PublishTrimmed
が false
に設定されている場合、ビルド エラーが発生します)。
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 プロジェクトに適用されます。
IPhoneResourcePrefix と MonoMacResourcePrefix も参照してください。
ジップパス (ZipPath)
zip
コマンドライン ツールへの完全なパス。
既定の動作では、 xcrun zip
を使用します。