[ビルド プロパティ]
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.InputStreamInvoker
と System.IO.Stream
または Android.Runtime.JavaDictionary
と System.Collections.IDictionary
)、例外を伝播する方法を指定する文字列値。
Java
: 元の Java 例外の種類は、そのまま反映されます。Java
は、たとえば、代わりにSystem.IO.IOException
からStream.Read()
スローされる可能性があるためJava.IO.IOException
、InputStreamInvoker
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 つの .apk
ABI をすべてサポートする代わりに作成する必要があります。
「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.Object
Java.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
が必要な場合には、この方法は機能しません。
そのような場合は、代わりに AndroidNativeLibrary
の Link
メタデータを使用して名前を指定できます。
<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
: XML コメント<exception/>
(, ,<param/>
,<returns/>
<summary/>
) のみを出力します。full
: 要素と、<remarks/>
<seealso/>
サポート可能なその他の要素を出力intellisense
します。
既定値は intellisense
です。
このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。
AndroidKeyStore
カスタム署名情報を使用する必要があるかどうかを示すブール値。 既定値は False
で、既定のデバッグ署名キーがパッケージの署名に使用されることを意味します。
AndroidLaunchActivity
起動する Android アクティビティ。
AndroidLinkMode
Android パッケージ内に含まれるアセンブリで実行する必要があるリンクの種類を指定します。 Android アプリケーション プロジェクトでのみ使用されます。 既定値は SdkOnly です。 有効な値は次のとおりです。
None: リンクは試行されません。
SdkOnly: リンクは基本クラス ライブラリでのみ実行され、ユーザーのアセンブリでは実行されません。
Full: リンクは基本クラス ライブラリとユーザーのアセンブリで実行されます。
Note
Full の
AndroidLinkMode
値を使用すると、多くの場合、特にリフレクションを使用している場合には、アプリが破損します。 何をしているかを十分に理解している場合を除き、使用しないでください。
<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 プロパティが設定されます。
$(AndroidUseAapt2)
がTrue
です。$(AndroidUseApkSigner)
がFalse
です。$(AndroidCreatePackagePerAbi)
がFalse
です。
このプロパティは、.net 6 では非推奨になります。 ユーザーは新しい AndroidPackageFormats
バージョンに切り替える必要があります。
AndroidPackageFormats
有効な値 apk
を持つセミコロンで区切られたプロパティです aab
。
Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します。 アプリ バンドルは、Google Play での送信を目的とした Release
ビルドの新しい形式です。
リリース ビルドをビルドするときは、さまざまなストアへの配布用とaab
apk
両方を生成する必要がある場合があります。
にaab;apk
設定AndroidPackageFormats
すると、両方が生成されます。 いずれかに設定AndroidPackageFormats
するかapk
aab
、1 つのファイルのみを生成します。
.net 6 AndroidPackageFormats
の場合はビルド専用にaab;apk
Release
設定されます。 デバッグのためだけに 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
キーストア ファイル内にあるキーのパスワードを指定します。 これは、keytool
が Enter 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 で追加されました。 AndroidUseAapt2
を false
に設定することは、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:versionCode
AndroidManifest.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 のバージョン コードの作成) を参照してください。
いくつかの例では、abi
が armeabi
でマニフェスト内の versionCode
が 123
の場合、$(AndroidCreatePackagePerAbi)
が True のときには {abi}{versionCode}
により 1123
の versionCode が生成され、それ以外のときは 123 の値が生成されます。
abi
が x86_64
でマニフェスト内の versionCode
は 44
です。 これにより、$(AndroidCreatePackagePerAbi)
が True の場合には 544
が生成され、それ以外の場合は 44
の値が生成されます。
versionCode
を 0
でレフト パディングしているため、レフト パディングの書式文字列 {abi}{versionCode:0000}
を含めると、50044
が生成されます。 または、 などの 10 進パディングを使用することもできます。{abi}{versionCode:D4}
これは前の例と同じです。
値は整数である必要があるため、'0' と 'Dx' のパディングの書式文字列のみがサポートされます。
事前定義済みのキー項目
abi – アプリの対象の abi を挿入します
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
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/@package
AndroidManifest.xml
として使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>
必要もあります。
これは、.NET 6 で今後の既定値になります。
の要件/manifest/@package
の詳細については、Android のドキュメントを参照してください。
このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。
ApplicationTitle
ファイル内の代替/manifest/application/@android:label
AndroidManifest.xml
として使用できる MSBuild プロパティ。 この機能をオプトインするには、有効にする <GenerateApplicationManifest>true</GenerateApplicationManifest>
必要もあります。
これは、.NET 6 で今後の既定値になります。
の要件/manifest/application/@android:label
の詳細については、Android のドキュメントを参照してください。
このプロパティのサポートは、Xamarin.Android 11.3 で追加されました。
ApplicationVersion
ファイル内の代替/manifest/@android:versionName
AndroidManifest.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
アクセス許可を付与して、デバッガーがプロセスにアタッチできるようにします。 DebugSymbols
が True
でDebugType
が空の文字列または 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
オプションでは java に 1G
の値が指定されます。 その他のプラットフォームに比べて、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 で追加されました。