[ビルド プロパティ]

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

AdbTarget

$(AdbTarget) プロパティは、Android パッケージのインストール先または削除元となる Android ターゲット デバイスを指定します。 このプロパティの値は、adb ターゲット デバイス オプションと同じです。

AfterGenerateAndroidManifest

このプロパティに一覧表示された MSBuild ターゲットは、$(IntermediateOutputPath)AndroidManifest.xml ファイルが生成される場所である内部の _GenerateJavaStubs ターゲットの直後に実行されます。 生成された AndroidManifest.xml ファイルに変更を加える場合、この拡張ポイントを使用して行うことができます。

Xamarin.Android 9.4 で追加されました。

AndroidAapt2CompileExtraArgs

Android アセットとリソースを処理するときに aapt2 コンパイル コマンドに渡すコマンド ライン オプションを指定します。

Xamarin.Android 9.1 で追加されました。

AndroidAapt2LinkExtraArgs

Android アセットとリソースを処理するときに aapt2 リンク コマンドに渡すコマンド ライン オプションを指定します。

Xamarin.Android 9.1 で追加されました。

AndroidAddKeepAlives

オブジェクトが早期に収集されないように、リンカーによってバインド プロジェクト内に GC.KeepAlive() 呼び出しを挿入するかどうかを制御するブール型プロパティ。

既定値はリリース True 構成ビルド用です。

このプロパティは、Xamarin.Android 11.2 で追加されました。

AndroidAotAdditionalArguments

いずれかの$(AndroidEnableProfiledAot)プロジェクトまたは$(AotAssemblies)設定trueされているプロジェクトのタスク中Aotに Mono コンパイラにオプションを渡すことができる文字列プロパティ。 Mono クロスコンパイラを呼び出すときに、プロパティの文字列値が応答ファイルに追加されます。

一般に、このプロパティは空白のままにしておく必要がありますが、特殊なシナリオでは、柔軟性が向上する場合があります。

プロパティは $(AndroidAotAdditionalArguments) 関連する $(AndroidExtraAotOptions) プロパティ $(AndroidAotAdditionalArguments) とは異なります。完全なスタンドアロンのスペース区切りオプション (AOT コンパイラなど --verbose ) を --debug 渡します $(AndroidExtraAotOptions) が、AOT コンパイラのオプションの --aot 一部であるコンマ区切り引数が含まれています。

AndroidAotCustomProfilePath

プロファイラー データを保持するために aprofutil が作成する必要があるファイル。

AndroidAotProfiles

開発者がコマンド ラインから AOT プロファイルを追加できるようにする文字列プロパティ。 これは、絶対パスのセミコロンまたはコンマ区切りのリストです。 Xamarin.Android 10.1 で追加されました。

AndroidAotProfilerPort

プロファイル データを取得するときに aprofutil が接続する必要があるポート。

AndroidAotEnableLazyLoad

起動時に事前に読み込むのではなく、AOT-d アセンブリの遅延 (遅延) 読み込みを有効にします。 既定値は、 True 任意の形式の AOT が有効なリリース ビルドの場合です。

.NET 6 で導入されました。

AndroidApkDigestAlgorithm

使用するダイジェスト アルゴリズムを指定する jarsigner -digestalg文字列値。

既定値は SHA-256 です。 Xamarin.Android 10.0 以前では、既定値は SHA1 でした。

Xamarin.Android 9.4 で追加されました。

AndroidApkSignerAdditionalArguments

開発者がツールに引数 apksigner を指定できるようにする文字列プロパティ。

Xamarin.Android 8.2 で追加されました。

AndroidApkSigningAlgorithm

使用する署名アルゴリズムを指定する jarsigner -sigalg文字列値。

既定値は SHA256withRSA です。 Xamarin.Android 10.0 以前では、既定値は md5withRSA でした。

Xamarin.Android 8.2 で追加されました。

AndroidApplication

プロジェクトが Android アプリケーション用 (True) か、または Android ライブラリ プロジェクト用 (False または存在しない) かを示すブール値。

<AndroidApplication>True</AndroidApplication> を持つプロジェクトは、Android パッケージ内に 1 つしか存在できない場合があります (残念ながら、この要件は検証されていないため、Android リソースに関する微妙で奇妙なエラーが発生する可能性があります)。

AndroidApplicationJavaClass

Android.App.Application からクラスを継承するときに、android.app.Application の代わりに使用する完全な Java クラス名。

プロパティは$(AndroidApplicationJavaClass)通常、MSBuild プロパティなどの他のプロパティによって設定されます$(AndroidEnableMultiDex)

Xamarin.Android 6.1 で追加されました。

AndroidBinUtilsPath

ld、ネイティブ リンカー、as、ネイティブ アセンブラーなどの Android binutils が格納されているディレクトリへのパス。 これらのツールは、Xamarin.Android のインストールに含まれています。

既定値は $(MonoAndroidBinDirectory)\binutils\bin\ です。

Xamarin.Android 10.0 で追加されました。

AndroidBoundExceptionType

Xamarin.Android が提供する型によって Java 型の観点から .NET の型またはインターフェイスが実装される場合に (たとえば、Android.Runtime.InputStreamInvokerSystem.IO.Stream または Android.Runtime.JavaDictionarySystem.Collections.IDictionary)、例外を伝播する方法を指定する文字列値。

  • Java: 元の Java 例外の種類は、そのまま反映されます。

    Javaは、たとえば、代わりにSystem.IO.IOExceptionからStream.Read()スローされる可能性があるためJava.IO.IOExceptionInputStreamInvoker API を適切に実装System.IO.Streamしないことを意味します。

    Java は、Xamarin.Android 13.0 を含む Xamarin.Android のすべてのリリースでの例外伝達動作です。

  • System: 元の Java 例外の種類がキャッチされ、適切な .NET 例外の種類でラップされます。

    Systemは、たとえば、適切に実装され、InputStreamInvokerインスタンスがスローJava.IO.IOExceptionされないことを意味Stream.Read()します。System.IO.Stream (代わりに、a を System.IO.IOException 含む Java.IO.IOException 値をスローする Exception.InnerException 場合があります)。

    System は .NET 6.0 の既定値です。

Xamarin.Android 10.2 で追加されました。

AndroidBoundInterfacesContainConstants

インターフェイスのバインド定数をサポートするか、クラスを作成する回避策を使用するかを決定する IMyInterfaceConsts ブール型プロパティ。

既定値は True .NET 6 であり、 False レガシ用です。

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

インターフェイスの既定のメンバーと静的メンバーをサポートするか、または静的メンバーを含む兄弟クラスを作成する以前の回避策をサポートするかを示す abstract class MyInterfaceブール型プロパティです。

既定値は True .NET 6 であり、 False レガシ用です。

AndroidBoundInterfacesContainTypes

インターフェイスで入れ子になった型がサポートされるかどうかを示すブール型プロパティ、または入れ子になっていない型を作成する回避策など IMyInterfaceMyNestedClassです。

既定値は True .NET 6 であり、 False レガシ用です。

AndroidBuildApplicationPackage

パッケージ (.apk) を作成して署名するかどうかを示すブール値。 この値の True 設定は、〘 SignAndroidPackage ビルド ターゲット。

このプロパティのサポートは、Xamarin.Android 7.1 以降で追加されました。

このプロパティは既定で False です。

AndroidBundleConfigurationFile

Android アプリ バンドルをビルドするときに bundletool構成ファイルとして使用するファイル名を指定します。 このファイルは、APK を生成するためのどのディメンションでバンドルを分割するかなど、バンドルから APK を生成する方法のいくつかの側面を制御します。 Xamarin.Android では、圧縮を解除したままにするファイル拡張子の一覧など、これらの設定の一部が自動的に構成されます。

このプロパティが意味をなすのは、$(AndroidPackageFormat)aab に設定されている場合のみです。

Xamarin.Android 10.3 で追加されました。

AndroidBundleToolExtraArgs

アプリ バンドルをビルドするときに bundletool コマンドに渡すコマンド ライン オプションを指定します。

このプロパティは Xamarin.Android 11.3 で追加されました。

AndroidClassParser

ファイルの解析方法 .jar を制御する文字列プロパティ。 使用可能な値 :

  • class-parse: JVM を利用せずに、class-parse.exe を使用して直接 Java バイトコードを解析します。

  • jar2xml: Java リフレクションを使用して .jar ファイルから型とメンバーを抽出するには、jar2xml.jar を使用します。

jar2xml よりも優れている class-parse の利点は次のとおりです。

  • class-parseは、デバッグ シンボル (でコンパイルされたバイトコード) を含む Java バイトコードからパラメーター名をjavac -g抽出できます。

  • class-parse は、解決できない型のメンバーを継承または含むクラスを "スキップ" しません。

Xamarin.Android 6.0 で追加されました。

既定値は、 jar2xml "レガシ" Xamarin.Android および class-parse .NET 6 以降にあります。

jar2xmlサポートは廃止されjar2xml、.NET 6 では削除されています。

AndroidCodegenTarget

コード生成ターゲット ABI を制御する文字列プロパティ。 使用可能な値 :

  • XamarinAndroid: Android 1.0 用 Mono 以降の JNI バインド API を使用します。 Xamarin.Android 5.0 以降でビルドされたバインドのアセンブリは、Xamarin.Android 5.0 以降 (API/ABI 追加機能) でないと実行できませんが、ソースは前の製品バージョンと互換性があります。

  • XAJavaInterop1: JNI の呼び出しに Java.Interop を使用します。 XAJavaInterop1 を使用したバインドのアセンブリは、Xamarin.Android 6.1 以降でのみビルドおよび実行できます。 Xamarin.Android 6.1 以降は、この値で Mono.Android.dll をバインドします。

XAJavaInterop1 には次の利点があります。

  • より小さなアセンブリ。

  • 継承階層の他のバインドの種類がすべて XAJavaInterop1 以降でビルドされる限り、base メソッドの呼び出しに jmethodID キャッシュを使用。

  • マネージド サブクラスに対して Java 呼び出し可能ラッパー コンストラクターに jmethodID キャッシュを使用。

既定値は XAJavaInterop1 です。

XamarinAndroid のサポートは廃止されており、.NET 6 の一環として XamarinAndroid のサポートは削除されます。

AndroidCreatePackagePerAbi

指定された ABI ごとに 1 つのファイルセットを作成$(AndroidSupportedAbis)するかどうかを決定するブール型プロパティ。1 つの 1 つの .apkABI をすべてサポートする代わりに作成する必要があります。

ABI 固有の APK のビルド」ガイドも参照してください。

AndroidCreateProguardMappingFile

ビルド プロセスの一部としてプロガード マッピング ファイルが生成されるかどうかを制御するブール型プロパティ。

csproj に以下を追加すると、ファイルが生成され、プロパティを AndroidProguardMappingFile 使用して最終的なマッピング ファイルの場所が制御されます。

<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>

ファイルを .aab 生成すると、マッピング ファイルがパッケージに自動的に含まれます。 Google Play ストアに手動でアップロードする必要はありません。 ファイルを使用 .apk する場合は、 AndroidProguardMappingFile 手動でアップロードする必要があります。

既定値は、 True =r8 を使用 $(AndroidLinkTool)する場合です。

Xamarin.Android 12.3 で追加されました。

AndroidDebugKeyAlgorithm

debug.keystore 用に使用する既定のアルゴリズムを指定します。 既定値は RSA です。

AndroidDebugKeyValidity

debug.keystore 用に使用する既定の有効性を指定します。 既定値は 10950 or 30 * 365 です 30 years

AndroidDebugStoreType

debug.keystore に使用するキー ストア ファイル形式を指定します。 既定値は pkcs12 です。

Xamarin.Android 10.2 で追加されました。

AndroidDeviceUserId

ゲストまたは職場のアカウントでアプリケーションを展開およびデバッグできるようにします。 値は、次の adb コマンドから取得した uid 値です。

adb shell pm list users

上記のコマンドは、次のデータを返します。

Users:
	UserInfo{0:Owner:c13} running
	UserInfo{10:Guest:404}

uid は最初の整数値です。 上記の出力では、それらは 0 .10

このプロパティは $(AndroidDeviceUserId) Xamarin.Android 11.2 で追加されました。

AndroidDexTool

dx または d8 の有効な値の列挙方式のプロパティ。 Xamarin.Android のビルド プロセス中に使用される Android の dex コンパイラを示します。 既定値は dx です。 D8 と R8 に関するドキュメントを参照してください。

AndroidEnableDesugar

desugar が有効かどうかを決定するブール型プロパティ。 Android では現在、すべての Java 8 機能がサポートされているわけではありません。既定のツールチェーンでは、コンパイラの出力に対してバイトコード変換 (呼び出し) desugarを実行することで、新しい言語機能が javac 実装されます。 既定値は、False使用している場合とTrue使用=$(AndroidDexTool)=dx$(AndroidDexTool)d8している場合です。

AndroidEnableGooglePlayStoreChecks

開発者が Google Play ストアのチェック XA1004、XA1005、XA1006 を無効にできる bool プロパティ。 これらのチェックを無効にすると、Google Play ストアをターゲットにせず、それらのチェックを実行したくない開発者に役立ちます。

Xamarin.Android 9.4 で追加されました。

AndroidEnableMultiDex

最終的な .apk で Multi-Dex サポートを使用するかどうかを決定するブール型プロパティ。

このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。

このプロパティは既定で False です。

AndroidEnablePreloadAssemblies

アプリケーション パッケージ内にバンドルされているすべてのマネージド アセンブリをプロセスの起動時に読み込むかどうかを制御するブール型プロパティ。

True に設定すると、アプリケーション コードが呼び出される前に、アプリケーション パッケージ内でバンドルされているすべてのアセンブリがプロセスの起動中に読み込まれます。 アセンブリの事前読み込みは、Xamarin.Android が行う処理です。

False に設定すると、アセンブリは必要な場合にのみ読み込まれます。 必要に応じてアセンブリを読み込むと、アプリケーションの起動速度が速くなり、デスクトップの .NET セマンティクスとの一貫性も向上します。 時間の短縮を確認したい場合は、timing を含めるよう debug.mono.log システム プロパティを設定して、adb logcat 内で Finished loading assemblies: preloaded メッセージを探します。

依存関係の挿入を使用するアプリケーションまたはライブラリでは、アセンブリが必要でない場合でも、アプリケーション バンドル内のすべてのアセンブリを返す必要AppDomain.CurrentDomain.GetAssemblies()がある場合に、このプロパティTrueが必要になる場合があります

既定では、この値は Xamarin.Android に設定 True され、.NET 6 以降のビルドに False 設定されます。

Xamarin.Android 9.2 で追加されました。

AndroidEnableProfiledAot

Ahead-of-Time コンパイル中に AOT プロファイルを使用するかどうかを決定するブール型プロパティ。

該当するプロファイルは、@(AndroidAotProfile) 項目グループ。 この項目グループには、既定のプロファイルが含まれています。 既存のものを削除し、独自の AOT プロファイルを追加することで上書きできます。

このプロパティのサポートは、Xamarin.Android 9.4 で追加されました。

このプロパティは既定で False です。

AndroidEnableSGenConcurrent

Mono の同時 GC コレクターを使用するかどうかを決定するブール型プロパティ。

このプロパティのサポートは、Xamarin.Android 7.2 で追加されました。

このプロパティは既定で False です。

AndroidErrorOnCustomJavaObject

型が継承または継承せずに実装Android.Runtime.IJavaObjectできるかどうかを決定するJava.Lang.ObjectJava.Lang.Throwableブール型プロパティ。

class BadType : IJavaObject {
    public IntPtr Handle {
        get {return IntPtr.Zero;}
    }

    public void Dispose()
    {
    }
}

True の場合、このような型は XA4212 エラーを生成し、それ以外の場合は XA4212 警告を生成します。

このプロパティのサポートは、Xamarin.Android 8.1 で追加されました。

このプロパティは既定で True です。

AndroidExplicitCrunch

Xamarin.Android 11.0 ではサポートされなくなりました。

AndroidExtraAotOptions

いずれかの$(AndroidEnableProfiledAot)プロジェクトまたは$(AotAssemblies)設定trueされているプロジェクトのタスク中Aotに Mono コンパイラにオプションを渡すことができる文字列プロパティ。 Mono クロスコンパイラを呼び出すときに、プロパティの文字列値が応答ファイルに追加されます。

一般に、このプロパティは空白のままにしておく必要がありますが、特殊なシナリオでは、柔軟性が向上する場合があります。

プロパティは $(AndroidExtraAotOptions) 、関連する $(AndroidAotAdditionalArguments) プロパティ $(AndroidAotAdditionalArguments) とは異なります。コンマ区切りの引数を Mono コンパイラのオプションに --aot 配置します。 $(AndroidExtraAotOptions) では代わりに、--verbose--debug など、完全なスタンドアロンのスペース区切りオプションがコンパイラに渡されます。

Xamarin.Android 10.2 で追加されました。

AndroidFastDeploymentType

$(EmbedAssembliesIntoApk) MSBuild プロパティが False の場合に、ターゲット デバイスの高速展開ディレクトリに展開できる型を制御する値の : (コロン) 区切りのリスト。 リソースが高速展開される場合、そのリソースが生成された .apk に埋め込まれないため、展開時間を短縮することができます (迅速にデプロイすればするほど、再構築する .apk 必要がある頻度が低くなり、インストール プロセスが高速になる可能性があります)。有効な値は次のとおりです。

  • Assemblies: アプリケーション アセンブリを展開します。
  • Dexes: .dex ファイル、ネイティブ ライブラリ、および typemap を展開します。 この値はDexes、Android 4.4 以降 (API-19) を実行しているデバイスでのみ使用できます

既定値は Assemblies です。

そのシステムを使用したリソースおよび資産の高速展開のサポートは、コミット f0d565fe で削除されました。 これは、非推奨の API を使用して作業する必要があったからです。

試験的です。 このプロパティは、Xamarin.Android 6.1 で追加されました。

AndroidFragmentType

レイアウト バインディング コードを生成するときに、すべての <fragment> レイアウト要素に使用される既定の完全修飾型を指定します。 既定値は、標準の Android Android.App.Fragment の種類です。

AndroidGenerateJniMarshalMethods

ビルド プロセスの一部として JNI マーシャリング メソッドを生成できるようにする bool プロパティ。 これにより、バインディング ヘルパー コードでの System.Reflection の使用量が大幅に削減されます。

既定値は False です。 開発者が新しい JNI マーシャリング メソッド機能を使用する場合は、

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

該当する .csproj 内に上の内容を設定できます。 または、コマンド ラインでプロパティを指定します。

/p:AndroidGenerateJniMarshalMethods=True

試験的です。 Xamarin.Android 9.2 で追加されました。 既定値は False です。

AndroidGenerateJniMarshalMethodsAdditionalArguments

呼び出しにパラメーター jnimarshalmethod-gen.exe を追加するために使用できる文字列プロパティ。デバッグに役立ちます。これにより、オプション ( -v. -d、、など) を --keeptemp 使用できます。

既定値は、空の文字列です。 これは、.csproj ファイルまたはコマンド ラインで設定できます。 次に例を示します。

<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>

または

/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"

Xamarin.Android 9.2 で追加されました。

AndroidGenerateLayoutBindings

true に設定されている場合はレイアウトのコードビハインドの生成を有効にし、false に設定されている場合は完全に無効にします。 既定値は false です。

AndroidGenerateResourceDesigner

既定値は true です。 に false設定すると、 Resource.designer.cs.

.NET 6 RC 1 で追加されました。 Xamarin.Android ではサポートされていません。

AndroidHttpClientHandlerType

既定の System.Net.Http.HttpClient コンストラクターによって使用される、既定の System.Net.Http.HttpMessageHandler の実装を制御します。 値は HttpMessageHandler サブクラスのアセンブリ修飾型名であり、System.Type.GetType(string) での使用に適しています。 このプロパティでは次の値が最も一般的です。

  • Xamarin.Android.Net.AndroidClientHandler: Android Java API を使用してネットワーク要求を実行します。 基になる Android バージョンで TLS 1.2 がサポートされている場合は、Java API を使用して TLS 1.2 URL にアクセスできます。 TLS 1.2 のサポートが Java を通じて確実に提供されるのは、Android 5.0 以降のみです。

    Visual Studio プロパティ ページの Android オプションと、 Visual Studio for Mac プロパティ ページの AndroidClientHandler オプションに対応します。

    Visual Studio で [最低限の Android バージョン][Android 5.0 (Lollipop)] 以上に構成されている、または Visual Studio for Mac で [ターゲット プラットフォーム][最新および最高] に設定されている場合、新しいプロジェクトのウィザードで、新しいプロジェクトに対してこのオプションが選択されます。

  • unset/empty 文字列。これは次と同じです。 System.Net.Http.HttpClientHandler, System.Net.Http

    Visual Studio プロパティ ページの [既定 ] オプションに対応します。

    Visual Studio で [最低限の Android バージョン][Android 4.4.87] 以下に構成されている、または Visual Studio for Mac で [ターゲット プラットフォーム][最新の開発] または [最大の互換性] に設定されている場合、新しいプロジェクトのウィザードで、新しいプロジェクトに対してこのオプションが選択されます。

  • System.Net.Http.HttpClientHandler, System.Net.Http: マネージド HttpMessageHandlerを使用します。

    Visual Studio プロパティ ページの [管理 ] オプションに対応します。

Note

TLS 1.2 のサポートがバージョン 5.0 より前の Android で必要な場合、"または" TLS 1.2 のサポートが System.Net.WebClient および関連する API で必要な場合、$(AndroidTlsProvider) を使用する必要があります。

Note

このプロパティのサポートは$(AndroidHttpClientHandlerType)、環境変数XA_HTTP_CLIENT_HANDLER_TYPE設定することで機能します。 $XA_HTTP_CLIENT_HANDLER_TYPEビルド アクションが指定されたファイル内の値@(AndroidEnvironment) が優先されます。

Xamarin.Android 6.1 で追加されました。

AndroidIncludeWrapSh

Android ラッパー スクリプト (wrap.sh) を APK にパッケージ化するかどうかを示すブール値。 既定値は、ラッパー スクリプトが false アプリケーションの起動方法と動作方法に大きな影響を与える可能性があるためです。スクリプトは、デバッグ時やアプリケーションの起動/ランタイム動作を変更する場合など、必要な場合にのみ含める必要があるためです。

スクリプトをプロジェクトに追加するには、@(AndroidNativeLibrary) ビルド アクションは、アーキテクチャ固有のネイティブ ライブラリと同じディレクトリに配置され、名前を付 wrap.shける必要があるためです。

wrap.sh スクリプトへのパスを指定する最も簡単な方法は、ターゲット アーキテクチャにちなんだ名前を付けたディレクトリにスクリプトを配置することです。 この方法は、アーキテクチャごとに wrap.sh が 1 つしかない場合に機能します。

<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />

ただし、さまざまな目的のためにアーキテクチャごとに複数の wrap.sh が必要な場合には、この方法は機能しません。 そのような場合は、代わりに AndroidNativeLibraryLink メタデータを使用して名前を指定できます。

<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
  <Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>

Link メタデータを使用する場合、その値に指定するパスは、APK ルート ディレクトリを基準とする有効なネイティブ アーキテクチャ固有のライブラリ パスである必要があります。 パスの形式は lib\ARCH\wrap.sh です。ARCH には次のいずれかを指定できます。

  • arm64-v8a
  • armeabi-v7a
  • x86_64
  • x86

AndroidJavadocVerbosity

バインド プロジェクト内で Javadoc ドキュメントをインポートする際に、"verbose" C# XML ドキュメント コメント を使用する方法を指定します。

を使用する必要があります。@(JavaSourceJar) ビルド アクション。

この $(AndroidJavadocVerbosity) プロパティは列挙型に似ていますが、可能な値は full 次のいずれかです intellisense

既定値は intellisense です。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AndroidKeyStore

カスタム署名情報を使用する必要があるかどうかを示すブール値。 既定値は False で、既定のデバッグ署名キーがパッケージの署名に使用されることを意味します。

AndroidLaunchActivity

起動する Android アクティビティ。

AndroidLinkMode

Android パッケージ内に含まれるアセンブリで実行する必要があるリンクの種類を指定します。 Android アプリケーション プロジェクトでのみ使用されます。 既定値は SdkOnly です。 有効な値は次のとおりです。

  • None: リンクは試行されません。

  • SdkOnly: リンクは基本クラス ライブラリでのみ実行され、ユーザーのアセンブリでは実行されません。

  • Full: リンクは基本クラス ライブラリとユーザーのアセンブリで実行されます。

    Note

    FullAndroidLinkMode 値を使用すると、多くの場合、特にリフレクションを使用している場合には、アプリが破損します。 何をしているかを十分に理解している場合を除き、使用しないでください。

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkResources

ビルド trueシステムは、すべてのアセンブリのResource.Designer.cs Resource クラスの入れ子になった型をリンクします。 これらの型を使用する IL コードは、フィールドにアクセスするのではなく、値を直接使用するように更新されます。

入れ子になった型をリンクすると、apk サイズの縮小に小さな影響を与える可能性があり、起動時のパフォーマンスにも役立ちます。 "リリース" ビルドのみがリンクされます。

試験的です。 次のようなコードでのみ動作するように設計されています。

var view = FindViewById(Resources.Ids.foo);

その他のシナリオ (リフレクションなど) はサポートされません。

Xamarin.Android 11.3 でこのプロパティのサポートが追加されました

AndroidLinkSkip

リンクしないアセンブリ名のセミコロン (;) で区切られたリストを、ファイル拡張子を使わずに指定します。 Android アプリケーション プロジェクト内でのみ使用されます。

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

proguard または r8 の有効な値の列挙方式のプロパティ。 Java コードに使用されるコード シュリンカーを示します。 既定値は空の文字列です。または proguard 、空の場合 $(AndroidEnableProguard)True. D8 と R8 に関するドキュメントを参照してください。

AndroidLintEnabled

開発者がパッケージ化プロセスの一部として Android lint ツールを実行できるようにする bool プロパティ。

$(AndroidLintEnabled)=True の場合、次のプロパティが使用されます。

次のビルド アクションを使用することもできます。

Android の lint ツールの詳細については、Lint のヘルプに関するページを参照してください。

AndroidLintEnabledIssues

有効にする lint の問題のコンマ区切りの一覧である文字列プロパティ。

=True の場合 $(AndroidLintEnabled)にのみ使用されます。

AndroidLintDisabledIssues

無効にする lint の問題のコンマ区切りのリストである文字列プロパティ。

=True の場合 $(AndroidLintEnabled)にのみ使用されます。

AndroidLintCheckIssues

チェックする lint の問題のコンマ区切りリストである文字列プロパティ。

=True の場合 $(AndroidLintEnabled)にのみ使用されます。

注: これらの問題のみがチェックされます。

AndroidManagedSymbols

ファイル名と行番号の情報を Release スタック トレースから抽出できるように、シーケンス ポイントを生成するかどうかを制御するブール型プロパティ。

Xamarin.Android 6.1 で追加されました。

AndroidManifest

アプリの AndroidManifest.xml のテンプレートとして使用するファイル名を指定します。 ビルド時に、実際の AndroidManifest.xml を生成するためにその他の必要な値がマージされます。 $(AndroidManifest) は、/manifest/@package 属性にパッケージ名を含める必要があります。

AndroidManifestMerger

AndroidManifest.xml ファイルをマージするための実装を指定します。 これは、legacy が元の C# の実装を選択し、manifestmerger.jar が Google の Java 実装を選択する列挙型のプロパティです。

現在の既定値は legacy です。 これは、Android Studio の動作に合わせるために、将来のリリースで manifestmerger.jar に変更されます。

Google のマージャーでは、Android ドキュメントに記載されている xmlns:tools="http://schemas.android.com/tools" のサポートが有効になります。

Xamarin.Android 10.2 で導入されました。

AndroidManifestMergerExtraArgs

Android ドキュメント ツールに引数を提供する文字列プロパティ。

ツールからの詳細な出力が必要な場合は、次のコマンドを .csproj追加できます。

<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>

Xamarin.Android 11.x で導入されました

AndroidManifestType

Xamarin または GoogleV2 の有効な値の列挙方式のプロパティ。 これにより、どのリポジトリが使用されているかが制御されます。InstallAndroidDependencies ターゲットを使用して、使用できる Android パッケージとパッケージのバージョンを決定し、インストールできます。

Xamarinは、Visual Studio SDK Manager 内の承認済みリスト (推奨) リポジトリです

GoogleV2は、Visual Studio SDK Manager 内の完全な一覧 (サポートされていない) リポジトリです

Xamarin.Android 13.0 で追加されました。 Xamarin.Android 13.0 では、設定されていない場合 $(AndroidManifestType) は使用 Xamarin されます。

Xamarin.Android 13.0 より前のバージョンでは、設定 $(AndroidManifestType) は影響を受けず、 GoogleV2 使用されます。

AndroidManifestPlaceholders

AndroidManifest.xml のキーと値の置換ペアのセミコロン区切りのリストです。各ペアの形式は key=value です。

たとえば、assemblyName=$(AssemblyName) のプロパティ値によって、AndroidManifest.xml に表示できる ${assemblyName} プレースホルダーが定義されます。

<application android:label="${assemblyName}"

これにより、ビルド プロセスから AndroidManifest.xml ファイルに変数を挿入することができます。

AndroidMultiDexClassListExtraArgs

開発者がファイルを生成multidex.keepするときに引数をcom.android.multidex.MainDexListBuilder渡す文字列プロパティ。

1 つの具体的なケースは、dx のコンパイル中に次のエラーが発生する場合です。

com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded

このエラーが発生している場合は、以下を .csproj に追加できます。

<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>

これにより、ステップが dx 成功します。

Xamarin.Android 8.3 で追加されました。

AndroidPackageFormat

apk または aab の有効な値の列挙方式のプロパティ。 Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します アプリ バンドルは、Google Play での送信を目的とした Release ビルドの新しい形式です。 既定値は apk です。

$(AndroidPackageFormat)aab に設定すると、Android アプリ バンドルに必要な他の MSBuild プロパティが設定されます。

このプロパティは、.net 6 では非推奨になります。 ユーザーは新しい AndroidPackageFormatsバージョンに切り替える必要があります。

AndroidPackageFormats

有効な値 apk を持つセミコロンで区切られたプロパティです aab。 Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します アプリ バンドルは、Google Play での送信を目的とした Release ビルドの新しい形式です。

リリース ビルドをビルドするときは、さまざまなストアへの配布用とaabapk両方を生成する必要がある場合があります。

aab;apk設定AndroidPackageFormatsすると、両方が生成されます。 いずれかに設定AndroidPackageFormatsするかapkaab、1 つのファイルのみを生成します。

.net 6 AndroidPackageFormats の場合はビルド専用にaab;apkRelease設定されます。 デバッグのためだけに apk 引き続き使用することをお勧めします。

従来の Xamarin.Android の場合、既定値は "". その結果、レガシ Xamarin.Android では、既定では両方がリリース ビルドの一部として生成されません。 ユーザーが両方の出力を生成する場合は、構成で Release 以下を定義する必要があります。

<AndroidPackageFormats>aab;apk</AndroidPackageFormats>

構成がある場合は、その構成の既存 AndroidPackageFormat のものを削除する必要もあります。

Xamarin.Android 11.5 で追加されました。

AndroidPackageNamingPolicy

生成された Java ソース コードの Java パッケージ名を指定するための列挙型スタイルのプロパティ。

Xamarin.Android 10.2 以降では、サポートされている値は LowercaseCrc64 のみです。

Xamarin.Android 10.1 では、暫定の LowercaseMD5 値も使用できました。これにより、Xamarin.Android 10.0 以前で使用されてた元の Java パッケージ名スタイルに戻すことができました。 このオプションは、FIPS 準拠が適用されたビルド環境との互換性を向上させるために、Xamarin.Android 10.2 で削除されました。

Xamarin.Android 10.1 で追加されました。

AndroidProguardMappingFile

r8-printmapping proguard ルールを指定します。 これは、mapping.txt ファイルが $(OutputPath) フォルダーに生成されることを意味します。 このファイルは、パッケージを Google Play ストアにアップロードするときに使用できます。

既定では、このファイルは使用 AndroidLinkTool=r8 すると自動的に生成され、次のファイル $(OutputPath)mapping.txtが生成されます。

このマッピング ファイルを生成しない場合は、プロパティを AndroidCreateProguardMappingFile 使用して作成を停止できます。 プロジェクトに次のコードを追加する

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

またはコマンド ラインで使用 -p:AndroidCreateProguardMappingFile=False します。

このプロパティは、Xamarin.Android 11.2 で追加されました。

AndroidR8IgnoreWarnings

r8-ignorewarnings proguard ルールを指定します。 これにより、特定の警告が発生した場合でも、r8 で Dex コンパイルを使用して続けることができます。 既定値は True、より厳密な動作を適用するように False 設定できます。 詳細については、ProGuard のマニュアルを参照してください。

Xamarin.Android 10.3 で追加されました。

AndroidR8JarPath

r8 dex コンパイラおよびシュリンカーで使用する r8.jar へのパス。 既定値は、Xamarin.Android インストールのパスです。 詳細については、D8 と R8 に関するドキュメントをご覧ください。

AndroidResgenExtraArgs

Android アセットとリソースを処理するときに aapt コマンドに渡すコマンド ライン オプションを指定します。

AndroidResgenFile

生成するリソース ファイルの名前を指定します。 既定のテンプレートでは、これは Resource.designer.cs に設定されます。

AndroidSdkBuildToolsVersion

Android SDK ビルド ツール パッケージは、特に、aapt および zipalign ツールを提供します。 複数の異なるバージョンのビルド ツール パッケージを同時にインストールすることができます。 パッケージ化するビルド ツール パッケージの選択は、"優先" ビルド ツールのバージョンをチェックして、ある場合はそれを使用して行われます。"優先" バージョンが "ない" 場合は、インストールされている最も高いバージョンのビルド ツール パッケージが使用されます。

$(AndroidSdkBuildToolsVersion) MSBuild プロパティには、優先ビルド ツールのバージョンが含まれています。 Xamarin.Android ビルド システムは Xamarin.Android.Common.targets に既定値を提供します。たとえば、最新の aapt がクラッシュして、前のバージョンの aapt が機能することがわかっている場合には、その既定値をプロジェクト ファイル内でオーバーライドして、別のビルド ツール バージョンを選択できます。

AndroidSigningKeyAlias

キーストア内のキーに別名を指定します。 これは、キーストアを作成するときに使用される keytool -alias 値です。

AndroidSigningKeyPass

キーストア ファイル内にあるキーのパスワードを指定します。 これは、keytoolEnter key password for $(AndroidSigningKeyAlias) ($(AndroidSigningKeyAlias) のキーのパスワードを入力) を求めたときに入力される値です。

Xamarin.Android 10.0 以前では、このプロパティはプレーンテキストのパスワードのみをサポートしています。

Xamarin.Android 10.1 以降では、このプロパティは、パスワードを格納する環境変数またはファイルを指定するために使用できる env: および file: プレフィックスもサポートします。 これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。

たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。

<PropertyGroup>
    <AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>

C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。

<PropertyGroup>
    <AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>

Note

env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。

AndroidSigningKeyStore

keytool で作成されたキーストア ファイルのファイル名を指定します。 これは、keytool -keystore オプションで指定された値に対応します。

AndroidSigningStorePass

$(AndroidSigningKeyStore) へのパスワードを指定します。 これは、キーストア ファイルを作成していて、Enter keystore password: (キーストア パスワードを入力) で求められたときに、keytool に指定する値です。

Xamarin.Android 10.0 以前では、このプロパティはプレーンテキストのパスワードのみをサポートしています。

Xamarin.Android 10.1 以降では、このプロパティは、パスワードを格納する環境変数またはファイルを指定するために使用できる env: および file: プレフィックスもサポートします。 これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。

たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。

<PropertyGroup>
    <AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>

C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。

<PropertyGroup>
    <AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>

Note

env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。

AndroidSigningPlatformKey

apk の署名に使用するキー ファイルを指定します。 これは、アプリケーションをビルド system する場合にのみ使用されます。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AndroidSigningPlatformCert

apk の署名に使用する証明書ファイルを指定します。 これは、アプリケーションをビルド system する場合にのみ使用されます。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AndroidSupportedAbis

.apk に含める必要がある ABI のセミコロン (;) で区切られたリストを含む文字列プロパティ。

サポートされている値は次のとおりです。

  • armeabi-v7a
  • x86
  • arm64-v8a: Xamarin.Android 5.1 以降が必要です。
  • x86_64: Xamarin.Android 5.1 以降が必要です。

AndroidTlsProvider

アプリケーションで使用する TLS プロバイダーを指定する文字列値。 次のいずれかの値になります。

  • Unset/the empty string: Xamarin.Android 7.3 以降では、これは btls.

    Xamarin.Android 7.1 では、これは legacy と同等です。

    これは、Visual Studio のプロパティ ページの既定の設定に対応しています。

  • btls: HttpWebRequest との TLS 通信に BoringSSL を使用します。

    これにより、Android のすべてのバージョンで TLS 1.2 を使用できます。

    これは、Visual Studio のプロパティ ページのネイティブ TLS 1.2+ の設定に対応しています。

  • legacy: Xamarin.Android 10.1 以前では、ネットワーク操作にマネージド SSL 実装の履歴を使用します。 これは TLS 1.2 をサポートしていません

    これは、Visual Studio のプロパティ ページのマネージド TLS 1.0 の設定に対応しています。

    Xamarin.Android 10.2 以降では、この値は無視され、btls 設定が使用されます。

  • default: この値は、Xamarin.Android プロジェクトで使用される可能性は低いです。 代わりに空の文字列を使用することをお勧めします。これは、Visual Studio のプロパティ ページの既定の設定に対応しています。

    default 値は、Visual Studio のプロパティ ページでは提供されません。

    これは現在、legacy と同じです。

Xamarin.Android 7.1 で追加されました。

AndroidUseAapt2

開発者がパッケージ化のためのツールの aapt2 使用を制御できるようにするブール型プロパティ。 既定では、これは False になり、Xamarin.Android では aapt が使用されます。 開発者が新しい aapt2 機能を使用することを望んでいる場合は、

<AndroidUseAapt2>True</AndroidUseAapt2>

該当する .csproj 内に上の内容を設定できます。 または、コマンド ラインでプロパティを指定します。

/p:AndroidUseAapt2=True

このプロパティは、Xamarin.Android 8.3 で追加されました。 AndroidUseAapt2false に設定することは、Xamarin Android 11.2 では非推奨とされます。

AndroidUseApkSigner

開発者がツールではなくjarsignerツールを使用apksignerできるようにする bool プロパティ。

Xamarin.Android 8.2 で追加されました。

AndroidUseDefaultAotProfile

開発者が既定の AOT プロファイルの使用を抑制できるようにするブール型プロパティ。

既定の AOT プロファイルを抑制するには、このプロパティを false に設定します。

Xamarin.Android 10.1 で追加されました。

AndroidUseInterpreter

通常の JIT ではなく、mono インタープリターを含めるブール型プロパティ.apk

試験的です。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AndroidUseLegacyVersionCode

開発者が versionCode 計算を Xamarin.Android 8.2 以前の動作に戻すブール型プロパティ。 これは、Google Play ストアに既存のアプリケーションがある開発者に向けてのみ使用する必要があります。 新しい $(AndroidVersionCodePattern) プロパティを使用することを強くお勧めします。

Xamarin.Android 8.2 で追加されました。

AndroidUseManagedDesignTimeResourceGenerator

デザイン時のビルドを切り替えて、マネージド リソース パーサーではなく aapt使用するブール型プロパティ。

Xamarin.Android 8.1 で追加されました。

AndroidUseSharedRuntime

ターゲット デバイスでアプリケーションを実行するために "共有ランタイム パッケージ" が必要かどうかを決定するブール型プロパティ。 共有ランタイム パッケージに依存することで、アプリケーション パッケージをより小型化し、パッケージの作成と展開プロセスを高速化できるため、ビルド/配置/デバッグのターンアラウンド サイクルの高速化が結果として得られます。

Xamarin Android 11.2 より前のバージョンでは、このプロパティは、デバッグ ビルドには True、リリース プロジェクトには False にする必要があります。

このプロパティは、Xamarin. Android 11.2 で "削除" されました。

AndroidVersionCode

ファイル内の代替/manifest/@android:versionCodeAndroidManifest.xmlとして使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>必要もあります。 これは、.NET 6 で今後の既定値になります。

このプロパティは、使用されている場合$(AndroidCreatePackagePerAbi)$(AndroidVersionCodePattern)は無視されます。

@android:versionCode は、Google Play リリースごとにインクリメントする必要がある整数値です。 の要件/manifest/@android:versionCode詳細については、Android のドキュメントを参照してください。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AndroidVersionCodePattern

開発者がマニフェスト内をカスタマイズ versionCode できるようにする文字列プロパティ。 versionCode の決定に関する情報は、「Creating the Version Code for the APK」 (APK のバージョン コードの作成) を参照してください。

いくつかの例では、abiarmeabi でマニフェスト内の versionCode123 の場合、$(AndroidCreatePackagePerAbi) が True のときには {abi}{versionCode} により 1123 の versionCode が生成され、それ以外のときは 123 の値が生成されます。 abix86_64 でマニフェスト内の versionCode44 です。 これにより、$(AndroidCreatePackagePerAbi) が True の場合には 544 が生成され、それ以外の場合は 44 の値が生成されます。

versionCode0 でレフト パディングしているため、レフト パディングの書式文字列 {abi}{versionCode:0000} を含めると、50044 が生成されます。 または、 などの 10 進パディングを使用することもできます。{abi}{versionCode:D4} これは前の例と同じです。

値は整数である必要があるため、'0' と 'Dx' のパディングの書式文字列のみがサポートされます。

事前定義済みのキー項目

  • abi – アプリの対象の abi を挿入します

    • 2 – armeabi-v7a
    • 3 – x86
    • 4 – arm64-v8a
    • 5 – x86_64
  • minSDK – サポートされている最小 Sdk 値を、定義されていない場合または11定義されていない場合にAndroidManifest.xml挿入します。

  • versionCode – から直接 Properties\AndroidManifest.xmlバージョン コードを使用します。

$(AndroidVersionCodeProperties) プロパティ (次で定義) を使用してカスタム項目を定義することができます。

既定では、値は {abi}{versionCode:D6} に設定されます。 開発者が古い動作を保持する必要がある場合は、$(AndroidUseLegacyVersionCode) プロパティを true に設定することで既定値をオーバーライドできます。

Xamarin.Android 7.2 で追加されました。

AndroidVersionCodeProperties

開発者が 〗〘で使用 $(AndroidVersionCodePattern)するカスタム項目を定義できるようにする文字列プロパティ。 これらは key=value ペアの形式です。 value 内のすべての項目は整数値である必要があります。 (例: screen=23;target=$(_AndroidApiLevel))。 ご覧のとおり、既存またはカスタムの MSBuild プロパティを文字列で利用することができます。

Xamarin.Android 7.2 で追加されました。

ApplicationId

ファイル内の代替/manifest/@packageAndroidManifest.xmlとして使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>必要もあります。 これは、.NET 6 で今後の既定値になります。

の要件/manifest/@package詳細については、Android のドキュメントを参照してください。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

ApplicationTitle

ファイル内の代替/manifest/application/@android:labelAndroidManifest.xmlとして使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>必要もあります。 これは、.NET 6 で今後の既定値になります。

の要件/manifest/application/@android:label詳細については、Android のドキュメントを参照してください。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

ApplicationVersion

ファイル内の代替/manifest/@android:versionNameAndroidManifest.xmlとして使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>必要もあります。 これは、.NET 6 で今後の既定値になります。

の要件/manifest/@android:versionName詳細については、Android のドキュメントを参照してください。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

AotAssemblies

アセンブリをネイティブ コードに Ahead-of-Time コンパイルして、.apk に含めるかどうかを決定するブール型プロパティ。

このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。

このプロパティは既定で False です。

AProfUtilExtraOptions

aprofutil に渡す追加のオプション。

BeforeGenerateAndroidManifest

このプロパティに一覧表示されている MSBuild ターゲットは、_GenerateJavaStubs の前に直接実行されます。

Xamarin.Android 9.4 で追加されました。

構成

使用するビルド構成 ("Debug" や "Release" など) を指定します。 Configuration プロパティは、ターゲットの動作を決定するその他のプロパティの既定値を決定するために使用されます。 追加の構成は、IDE 内で作成できます。

既定では、 Debug 構成によって Install そして SignAndroidPackage は、他のファイルやパッケージの存在を操作する必要がある、より小さな Android パッケージを作成することをターゲットとします。

既定 Release の構成では、Install そして SignAndroidPackageは、スタンドアロンであり、他のパッケージやファイルをインストールせずに使用できる Android パッケージを作成することをターゲットとします。

DebugSymbols

Android パッケージ がデバッグ可能かどうかをプロパティと組み合わせて決定する $(DebugType) ブール値。 デバッグ可能パッケージにはデバッグ シンボルが含まれており、属性true//application/@android:debuggable設定して、INTERNET アクセス許可を付与して、デバッガーがプロセスにアタッチできるようにします。 DebugSymbolsTrueDebugType が空の文字列または Full の場合、アプリケーションはデバッグ可能です。

DebugType

ビルドの一部として生成するためのデバッグ シンボルの型を指定します。これはアプリケーションがデバッグ可能かどうかにも影響します。 使用可能な値 :

  • Full: 完全なシンボルが生成されます。 DebugSymbols MSBuild プロパティも True、アプリケーション パッケージはデバッグ可能です。

  • PdbOnly: "PDB" シンボルが生成されます。 アプリケーション パッケージはデバッグ可能ではありません。

DebugType が設定されていないか、空の文字列の場合、DebugSymbols プロパティが、アプリケーションがデバッグ可能かどうかを制御します。

EmbedAssembliesIntoApk

アプリのアセンブリをアプリケーション パッケージに埋め込む必要があるかどうかを決定するブール型プロパティ。

このプロパティは、リリース ビルドには True、デバッグ ビルドには False にする必要があります。 高速展開でターゲット デバイスがサポートされない場合は、デバッグ ビルドでこのプロパティを True にする必要がある場合があります

このプロパティが次の場合、False$(AndroidFastDeploymentType) また、MSBuild プロパティは、デプロイと再構築の時間に影響を .apk与える可能性がある埋め込み内容を制御します。

EnableLLVM

アセンブリをネイティブ コードに Ahead-of-Time コンパイルするときに、LLVM を使用するかどうかを決定するブール型プロパティ。

このプロパティが有効になっているプロジェクトをビルドするには、Android NDK がインストールされている必要があります。

このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。

このプロパティは既定で False です。

$(AotAssemblies) MSBuild プロパティが True でない限り、このプロパティは無視されます。

EnableProguard

proguard を Java コードをリンクするパッケージ化プロセスの一部として実行するかどうかを決定するブール型プロパティ。

このプロパティのサポートは、Xamarin.Android 5.1 で追加されました。

このプロパティは既定で False です。

True の場合、@(ProguardConfiguration) ファイルは proguard の実行を制御するために使用されます。

GenerateApplicationManifest

最終的 AndroidManifest.xml なファイルの値を出力する次の MSBuild プロパティを有効または無効にします。

既定値 $(GenerateApplicationManifest)true .NET 6 と false "レガシ" Xamarin.Android にあります。

このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。

JavaMaximumHeapSize

.dex ファイルをパッケージ化プロセスの一部としてビルドする際に使用する java-Xmx パラメーター値を指定します。 指定されていない場合、-Xmx オプションでは java1G の値が指定されます。 その他のプラットフォームに比べて、Windows では一般的にこの値が必要なことがわかりました。

以下を変更することで値をカスタマイズします。

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

ファイルのビルド時に java に渡すコマンド ライン オプションを.dex指定します。

JarsignerTimestampAuthorityCertificateAlias

このプロパティを使用すると、タイムスタンプ機関のキーストアに別名を指定できます。 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。

<PropertyGroup>
    <JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>

JarsignerTimestampAuthorityUrl

このプロパティでは、タイムスタンプ機関サービスへの URL を指定できます。 これを使用して、.apk 署名に確実にタイムスタンプを含めるようにすることができます。 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。

<PropertyGroup>
    <JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>

LinkerDumpDependencies

リンカー依存関係ファイルの生成を可能にする bool プロパティ。 このファイルは、illinkanalyzer ツールに対する入力として使用できます。

linker-dependencies.xml.gz という名前の依存関係ファイルがプロジェクト ディレクトリに書き込まれます。 .NET5 または 6 では、obj/<Configuration>/android<ABI>/linked ディレクトリ内のリンク アセンブリの横に書き込まれます。

既定値は Falseです。

MandroidI18n

照合順序や並べ替えテーブルなど、アプリケーションに含まれる国際化サポートを指定します。 値は、次の大文字と小文字を区別しない値の 1 つ以上のコンマ区切りまたはセミコロン区切りのリストです。

  • None: 追加のエンコーディングは含まれません。

  • All: 利用可能なすべてのエンコーディングが含まれます。

  • CJK: 日本語 (EUC) [enc-jp, CP51932], 日本語 (Shift-JIS) [iso-2022-jp, shift_jis, CP932], 日本語 (JIS) [CP50220] などの中国語、日本語、および韓国語エンコードを含めます。 簡体字中国語 (GB2312) [gb2312,CP936]、韓国語 (UHC) [ks_c_5601-1987、CP949]、韓国語 (EUC) [euc-kr,CP51949]、繁体字中国語 (Big5) [big5、CP950]、および簡体字中国語 (GB18030) [GB18030, CP54936]。

  • MidEast: トルコ語 (Windows) [iso-8859-9, CP1254]、ヘブライ語 (Windows) [windows-1255,CP1255]、アラビア語 (Windows) [windows-1256、 CP1256]、アラビア語 (ISO) [iso-8859-6、CP28596]、ヘブライ語 (ISO) [iso-8859-8、CP28598]、ラテン 5 (ISO) [iso-8859-9、CP28599]、およびヘブライ語 (Iso 代替) [iso-8859-8,CP38598]。

  • その他: キリル文字 (Windows) [CP1251]、バルティック (Windows) [iso-8859-4、CP1257]、ベトナム語 (Windows) [CP1258]、キリル語 (KOI8-R) [koi8-r、CP1251]、ウクライナ語 (KOI8-U) [koi8-u、 CP1251]、 バルティック (ISO) [iso-8859-4, CP1257], キリル語 (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII ベンガル語 [x-iscii-be, CP57003], ISCII Tamil[x-iscii-ta, CP57004], ISCII テルグ [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007]、ISCII カンナダ [x-iscii-ka,CP57008]、ISCII マラヤーラム [x-iscii-ma, CP57009]、ISCII Gujarati [x-iscii-gu, CP57010]、ISCII Punjabi [x-iscii-pa, CP57011]、およびタイ語 (Windows) [CP874]。

  • レア: IBM EBCDIC (トルコ語) [CP1026]、IBM EBCDIC (Open Systems Latin 1) [CP1047]、IBM EBCDIC (US-Canada with Euro) [CP1140]IBM EBCDIC (ドイツユーロ) [CP1141]、IBM EBCDIC (デンマーク/ノルウェーユーロ) [CP1142]、IBM EBCDIC (フィンランド/スウェーデンユーロ) [CP1143]、IBM EBCDIC (イタリアとユーロ) [CP1144]、IBM EBCDIC (ラテン アメリカ/スペインユーロ) [CP1145]、 IBM EBCDIC (英国ユーロ) [CP1146]、IBM EBCDIC (フランスとユーロ) [CP1147]、IBM EBCDIC (ユーロ国際) [CP1148]、 IBM EBCDIC (ユーロ付きアイスランド語) [CP1149]、IBM EBCDIC (ドイツ) [CP20273]、IBM EBCDIC (デンマーク/ノルウェー) [CP20277]、IBM EBCDIC (フィンランド/スウェーデン)[CP20278]、IBM EBCDIC (イタリア) [CP20280]、IBM EBCDIC (ラテン アメリカ/スペイン) [CP20284]、 IBM EBCDIC (英国) [CP20285]、IBM EBCDIC (日本語カタカナ拡張) [CP20290]、IBM EBCDIC (フランス) [CP20297]、IBM EBCDIC (アラビア語) [CP20420]、 IBM EBCDIC (ヘブライ) [CP20424], IBM EBCDIC (アイスランド語) [CP20871], IBM EBCDIC (キリル語 - セルビア語, ブルガリア語) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (国際) [CP500], アラビア語 (ASMO 708) [CP708], 中央ヨーロッパ (DOS) [CP852]、キリル語 (DOS) [CP855]、 トルコ語 (DOS) [CP857]、西ヨーロッパ語 (DOS とユーロ) [CP858]、ヘブライ語 (DOS) [CP862]、アラビア語 (DOS) [CP864]、ロシア語 (DOS) [CP866]、ギリシャ語 (DOS) [CP869]、IBM EBCDIC (ラテン 2) [CP870]、および IBM EBCDIC (ギリシャ語) [CP875]。

  • 西: 西ヨーロッパ (Mac) [macintosh、CP10000]、アイスランド語 (Mac) [x-mac-アイスランド語、CP10079]、中央ヨーロッパ (Windows) [iso-8859-2、CP1250]、西ヨーロッパ (Windows) [iso-8859-1、 CP1252]、ギリシャ語 (Windows) [iso-8859-7、CP1253]、中央ヨーロッパ (ISO) [iso-8859-2、CP28592]、ラテン 3 (ISO) [iso-8859-3、CP28593]、ギリシャ語 (ISO) [iso-8859-7,CP28597]、ラテン 9 (ISO) [iso-8859-15, CP28605], OEM 米国 [CP437]、西ヨーロッパ (DOS) [CP850]、ポルトガル語 (DOS) [CP860]、アイスランド語 (DOS) [CP861]、フランス語カナダ (DOS) [CP863]、およびノルディック (DOS) [CP865]。

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

AndroidResource のビルド アクションで、ファイル名の先頭から削除される "パス プレフィックス" を指定します。 これにより、リソースがある場所を変更することができます。

既定値は Resources です。 Java プロジェクトの構造には、これを res に変更します。

MonoSymbolArchive

リリース スタック トレースから "実際の" ファイル名と行番号の情報を抽出するために、後でmono-symbolicateアーティファクトを作成するかどうかを.mSYM制御するブール型プロパティ。

デバッグ シンボルが有効になっている "Release" アプリの場合、これは既定で True です。 $(EmbedAssembliesIntoApk)$(DebugSymbols) は True で、〘 $(Optimize) は True です。

Xamarin.Android 7.1 で追加されました。