Bagikan melalui


Properti Build

Properti MSBuild mengontrol perilaku target. Mereka ditentukan dalam file proyek, misalnya MyApp.csproj, dalam MSBuild PropertyGroup.

AdbTarget

Properti $(AdbTarget) menentukan perangkat target Android tempat paket Android dapat diinstal atau dihapus. Nilai properti ini sama dengan adb opsi Perangkat Target.

AfterGenerateAndroidManifest

Target MSBuild yang tercantum dalam properti ini akan berjalan langsung setelah target internal _GenerateJavaStubs , yang merupakan tempat AndroidManifest.xml file dihasilkan di $(IntermediateOutputPath). Jika Anda ingin melakukan modifikasi pada file yang dihasilkan AndroidManifest.xml , Anda dapat melakukannya menggunakan titik ekstensi ini.

Ditambahkan dalam Xamarin.Android 9.4.

AndroidAapt2CompileExtraArgs

Menentukan opsi baris perintah untuk diteruskan ke perintah kompilasi aapt2 saat memproses aset dan sumber daya Android.

Ditambahkan dalam Xamarin.Android 9.1.

AndroidAapt2LinkExtraArgs

Menentukan opsi baris perintah untuk diteruskan ke perintah tautan aapt2 saat memproses aset dan sumber daya Android.

Ditambahkan dalam Xamarin.Android 9.1.

AndroidAddKeepAlives

Properti boolean yang mengontrol apakah linker akan menyisipkan GC.KeepAlive() pemanggilan dalam proyek pengikatan untuk mencegah pengumpulan objek prematur.

Nilai defaultnya adalah True untuk build konfigurasi Rilis.

Properti ini ditambahkan di Xamarin.Android 11.2.

AndroidAotAdditionalArguments

Properti string yang memungkinkan opsi meneruskan ke pengkompilasi Mono selama Aot tugas untuk proyek yang memiliki $(AndroidEnableProfiledAot) atau $(AotAssemblies) diatur ke true. Nilai string properti ditambahkan ke file respons saat memanggil pengkompilasi silang Mono.

Secara umum, properti ini harus dibiarkan kosong, tetapi dalam skenario khusus tertentu mungkin memberikan fleksibilitas yang berguna.

Properti $(AndroidAotAdditionalArguments) berbeda dari properti terkait $(AndroidExtraAotOptions) ; $(AndroidAotAdditionalArguments) meneruskan opsi terpisah ruang mandiri penuh seperti --verbose atau --debug ke pengkompilasi AOT, sementara $(AndroidExtraAotOptions) berisi argumen yang dipisahkan koma yang merupakan bagian --aot dari opsi pengkompilasi AOT.

AndroidAotCustomProfilePath

File yang aprofutil harus dibuat untuk menyimpan data profiler.

AndroidAotProfiles

Properti string yang memungkinkan pengembang untuk menambahkan profil AOT dari baris perintah. Ini adalah daftar jalur absolut yang dipisahkan titik koma atau koma. Ditambahkan dalam Xamarin.Android 10.1.

AndroidAotProfilerPort

Port yang aprofutil harus tersambung saat mendapatkan data pembuatan profil.

AndroidAotEnableLazyLoad

Aktifkan pemuatan rakitan AOT-d malas (tertunda), alih-alih memuatnya di startup. Nilai defaultnya adalah True untuk Build rilis dengan bentuk AOT apa pun yang diaktifkan.

Diperkenalkan dalam .NET 6.

AndroidApkDigestAlgorithm

Nilai string yang menentukan algoritma hash untuk digunakan dengan jarsigner -digestalg.

Nilai defaultnya adalah SHA-256. Di Xamarin.Android 10.0 dan yang lebih lama, nilai defaultnya adalah SHA1.

Ditambahkan dalam Xamarin.Android 9.4.

AndroidApkSignerAdditionalArguments

Properti string yang memungkinkan pengembang untuk memberikan argumen ke apksigner alat.

Ditambahkan dalam Xamarin.Android 8.2.

AndroidApkSigningAlgorithm

Nilai string yang menentukan algoritma penandatanganan untuk digunakan dengan jarsigner -sigalg.

Nilai defaultnya adalah SHA256withRSA. Di Xamarin.Android 10.0 dan yang lebih lama, nilai defaultnya adalah md5withRSA.

Ditambahkan dalam Xamarin.Android 8.2.

AndroidApplication

Nilai boolean yang menunjukkan apakah proyek tersebut untuk Aplikasi Android (True) atau untuk Proyek Pustaka Android (False atau tidak ada).

Hanya satu proyek dengan <AndroidApplication>True</AndroidApplication> yang mungkin ada dalam paket Android. (Sayangnya persyaratan ini tidak diverifikasi, yang dapat mengakibatkan kesalahan halus dan aneh mengenai sumber daya Android.)

AndroidApplicationJavaClass

Nama kelas Java lengkap untuk digunakan sebagai pengganti android.app.Application saat kelas mewarisi dari Android.App.Application.

Properti $(AndroidApplicationJavaClass) umumnya diatur oleh properti lain , seperti $(AndroidEnableMultiDex) properti MSBuild.

Ditambahkan di Xamarin.Android 6.1.

AndroidBinUtilsPath

Jalur ke direktori yang berisi binutil Android seperti ld, linker asli, dan as, perakit asli. Alat-alat ini disertakan dalam penginstalan Xamarin.Android.

Nilai defaultnya adalah $(MonoAndroidBinDirectory)\binutils\bin\.

Ditambahkan dalam Xamarin.Android 10.0.

AndroidBoundExceptionType

Nilai string yang menentukan bagaimana pengecualian harus disebarluaskan ketika jenis yang disediakan Xamarin.Android mengimplementasikan jenis atau antarmuka .NET dalam hal jenis Java, misalnya Android.Runtime.InputStreamInvoker dan System.IO.Stream, atau Android.Runtime.JavaDictionary dan System.Collections.IDictionary.

  • Java: Jenis pengecualian Java asli disebarluaskan apa adanya.

    Java berarti bahwa, misalnya, InputStreamInvoker tidak mengimplementasikan System.IO.Stream API dengan benar karena Java.IO.IOException dapat dilemparkan dari Stream.Read() bukan System.IO.IOException.

    Java adalah perilaku penyebaran pengecualian di semua rilis Xamarin.Android, termasuk Xamarin.Android 13.0.

  • System: Jenis pengecualian Java asli ditangkap dan dibungkus dalam jenis pengecualian .NET yang sesuai.

    Systemberarti bahwa, misalnya, InputStreamInvoker mengimplementasikan System.IO.Stream, dan Stream.Read() tidak akan melemparkan Java.IO.IOException instans dengan benar. (Ini dapat melemparkan yang System.IO.IOException berisi Java.IO.IOException sebagai Exception.InnerException nilai.)

    System adalah nilai default dalam .NET 6.0.

Ditambahkan dalam Xamarin.Android 10.2.

AndroidBoundInterfacesContainConstants

Properti boolean yang menentukan apakah konstanta pengikatan pada antarmuka akan didukung, atau solusi pembuatan IMyInterfaceConsts kelas akan digunakan.

Nilai default berada True di .NET 6 dan False untuk warisan.

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Properti boolean yang apakah anggota default dan statis pada antarmuka akan didukung, atau solusi lama untuk membuat kelas saudara yang berisi anggota statis seperti abstract class MyInterface.

Nilai default berada True di .NET 6 dan False untuk warisan.

AndroidBoundInterfacesContainTypes

Properti boolean yang apakah jenis yang disarangkan dalam antarmuka akan didukung, atau solusi pembuatan jenis yang tidak berlapis seperti IMyInterfaceMyNestedClass.

Nilai default berada True di .NET 6 dan False untuk warisan.

AndroidBuildApplicationPackage

Nilai boolean yang menunjukkan apakah akan membuat dan menandatangani paket (.apk). Mengatur nilai ini ke True setara dengan menggunakan SignAndroidPackage target build.

Dukungan untuk properti ini ditambahkan setelah Xamarin.Android 7.1.

Properti ini secara False default.

AndroidBundleConfigurationFile

Menentukan nama file yang akan digunakan sebagai filebundletool konfigurasi saat membuat Android App Bundle. File ini mengontrol beberapa aspek tentang bagaimana APK dihasilkan dari bundel, seperti pada dimensi apa bundel dibagi untuk menghasilkan APK. Xamarin.Android mengonfigurasi beberapa pengaturan ini secara otomatis, termasuk daftar ekstensi file agar tidak dikompresi.

Properti ini hanya relevan jika $(AndroidPackageFormat) diatur ke aab.

Ditambahkan dalam Xamarin.Android 10.3.

AndroidBundleToolExtraArgs

Menentukan opsi baris perintah untuk diteruskan ke perintah bundletool saat membuat bundel aplikasi.

Properti ini ditambahkan di Xamarin.Android 11.3.

AndroidClassParser

Properti string yang mengontrol cara .jar file diurai. Nilai yang mungkin termasuk:

  • class-parse: Menggunakan class-parse.exe untuk mengurai bytecode Java secara langsung, tanpa bantuan JVM.

  • jar2xml: Gunakan jar2xml.jar untuk menggunakan refleksi Java untuk mengekstrak jenis dan anggota dari .jar file.

Keuntungan dari class-parse lebih jar2xml adalah:

  • class-parse dapat mengekstrak nama parameter dari bytecode Java yang berisi simbol debug (bytecode yang dikompilasi dengan javac -g).

  • class-parse tidak "melompati" kelas yang mewarisi dari atau berisi anggota dari jenis yang tidak dapat diselesaikan.

Ditambahkan dalam Xamarin.Android 6.0.

Nilai defaultnya ada jar2xml di "warisan" Xamarin.Android dan class-parse di .NET 6 dan yang lebih tinggi.

Dukungan untuk jar2xml sudah usang, dan jar2xml dihapus di .NET 6.

AndroidCodegenTarget

Properti string yang mengontrol ABI target pembuatan kode. Nilai yang mungkin termasuk:

  • XamarinAndroid: Menggunakan API pengikatan JNI yang ada sejak Mono untuk Android 1.0. Rakitan pengikatan yang dibangun dengan Xamarin.Android 5.0 atau yang lebih baru hanya dapat berjalan di Xamarin.Android 5.0 atau yang lebih baru (penambahan API/ABI), tetapi sumbernya kompatibel dengan versi produk sebelumnya.

  • XAJavaInterop1: Gunakan Java.Interop untuk pemanggilan JNI. Rakitan pengikatan menggunakan XAJavaInterop1 hanya dapat membangun dan mengeksekusi dengan Xamarin.Android 6.1 atau yang lebih baru. Xamarin.Android 6.1 dan yang lebih baru mengikat Mono.Android.dll dengan nilai ini.

Manfaatnya XAJavaInterop1 meliputi:

  • Rakitan yang lebih kecil.

  • jmethodID penembolokan untuk base pemanggilan metode, selama semua jenis pengikatan lainnya dalam hierarki warisan dibangun dengan XAJavaInterop1 atau lebih baru.

  • jmethodID penembolokan konstruktor Java Callable Wrapper untuk subkelas terkelola.

Nilai defaultnya adalah XAJavaInterop1.

Dukungan untuk XamarinAndroid sudah usang, dan dukungan untuk XamarinAndroid akan dihapus sebagai bagian dari .NET 6.

AndroidCreatePackagePerAbi

Properti boolean yang menentukan apakah sekumpulan file--satu per ABI yang ditentukan dalam $(AndroidSupportedAbis)--harus dibuat alih-alih memiliki dukungan untuk semua ABI dalam satu .apk.

Lihat juga panduan Membangun APK Khusus ABI.

AndroidCreateProguardMappingFile

Properti boolean yang mengontrol apakah file pemetaan proguard dihasilkan sebagai bagian dari proses build.

Menambahkan hal berikut ke csproj Anda akan menyebabkan file dibuat, dan menggunakan AndroidProguardMappingFile properti untuk mengontrol lokasi file pemetaan akhir.

<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>

Saat memproduksi .aab file, file pemetaan secara otomatis disertakan dalam paket Anda. Tidak perlu mengunggahnya ke Google Play Store secara manual. Saat menggunakan .apk file, AndroidProguardMappingFile file harus diunggah secara manual.

Nilai defaultnya adalah True saat menggunakan $(AndroidLinkTool)=r8.

Ditambahkan dalam Xamarin.Android 12.3.

AndroidDebugKeyAlgorithm

Menentukan algoritma default yang akan digunakan untuk debug.keystore. Nilai defaultnya adalah RSA.

AndroidDebugKeyValidity

Menentukan validitas default yang akan digunakan untuk debug.keystore. Nilai defaultnya adalah 10950 atau 30 * 365 atau 30 years.

AndroidDebugStoreType

Menentukan format file penyimpanan kunci yang akan digunakan untuk debug.keystore. Ini default ke pkcs12.

Ditambahkan dalam Xamarin.Android 10.2.

AndroidDeviceUserId

Memungkinkan penyebaran dan penelusuran kesalahan aplikasi di bawah akun tamu atau kantor. Nilainya adalah nilai yang uid Anda dapatkan dari perintah adb berikut:

adb shell pm list users

Perintah di atas akan mengembalikan data berikut:

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

adalah uid nilai bilangan bulat pertama. Dalam output di atas, mereka 0 dan 10.

Properti $(AndroidDeviceUserId) ditambahkan di Xamarin.Android 11.2.

AndroidDexTool

Properti bergaya enum dengan nilai dx atau d8. Menunjukkan compiler Dex Android mana yang digunakan selama proses build Xamarin.Android. Nilai defaultnya adalah dx. Lihat dokumentasi kami tentang D8 dan R8.

AndroidEnableDesugar

Properti boolean yang menentukan apakah desugar diaktifkan. Android saat ini tidak mendukung semua fitur Java 8, dan toolchain default mengimplementasikan fitur bahasa baru dengan melakukan transformasi bytecode, yang disebut desugar, pada output javac pengkompilasi. Nilai defaultnya adalah False jika menggunakan $(AndroidDexTool)=dx dan True jika menggunakan $(AndroidDexTool)=d8.

AndroidEnableGooglePlayStoreChecks

Properti bool yang memungkinkan pengembang menonaktifkan pemeriksaan Google Play Store berikut: XA1004, XA1005, dan XA1006. Menonaktifkan pemeriksaan ini berguna bagi pengembang yang tidak menargetkan Google Play Store dan tidak ingin menjalankan pemeriksaan tersebut.

Ditambahkan dalam Xamarin.Android 9.4.

AndroidEnableMultiDex

Properti boolean yang menentukan apakah dukungan multi-deks akan digunakan di final .apkatau tidak.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 5.1.

Properti ini secara False default.

AndroidEnablePreloadAssemblies

Properti boolean yang mengontrol apakah semua rakitan terkelola yang dibundel dalam paket aplikasi dimuat selama startup proses atau tidak.

Ketika diatur ke True, semua rakitan yang dibundel dalam paket aplikasi akan dimuat selama startup proses, sebelum kode aplikasi dipanggil. Rakitan pramuat adalah apa yang dilakukan Xamarin.Android.

Ketika diatur ke False, rakitan hanya akan dimuat sesuai kebutuhan. Memuat rakitan sesuai kebutuhan memungkinkan aplikasi untuk diluncurkan lebih cepat, dan juga lebih konsisten dengan semantik .NET desktop. Untuk melihat penghematan waktu, atur debug.mono.log Properti Sistem untuk menyertakan timing, dan cari pesan dalam Finished loading assemblies: preloadedadb logcat.

Aplikasi atau pustaka, yang menggunakan injeksi dependensi mungkin mengharuskan properti True ini jika pada gilirannya mengharuskan mengembalikan AppDomain.CurrentDomain.GetAssemblies() semua rakitan dalam bundel aplikasi, bahkan jika rakitan tidak akan diperlukan.

Secara default nilai ini akan diatur ke True untuk Xamarin.Android, dan akan diatur ke False untuk build .NET 6+.

Ditambahkan dalam Xamarin.Android 9.2.

AndroidEnableProfiledAot

Properti boolean yang menentukan apakah profil AOT digunakan selama kompilasi Ahead-of-Time atau tidak.

Profil tercantum dalam @(AndroidAotProfile) grup item. ItemGroup ini berisi profil default. Ini dapat ditimpa dengan menghapus yang ada dan menambahkan profil AOT Anda sendiri.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 9.4.

Properti ini secara False default.

AndroidEnableSGenConcurrent

Properti boolean yang menentukan apakah pengumpul GC bersamaan Mono akan digunakan atau tidak.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 7.2.

Properti ini secara False default.

AndroidErrorOnCustomJavaObject

Properti boolean yang menentukan apakah jenis dapat diterapkan Android.Runtime.IJavaObjecttanpa juga mewarisi dari Java.Lang.Object atau Java.Lang.Throwable:

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

    public void Dispose()
    {
    }
}

Ketika True, jenis tersebut akan menghasilkan kesalahan XA4212, jika tidak, peringatan XA4212 akan dihasilkan.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 8.1.

Properti ini secara True default.

AndroidExplicitCrunch

Tidak lagi didukung di Xamarin.Android 11.0.

AndroidExtraAotOptions

Properti string yang memungkinkan opsi meneruskan ke pengkompilasi Mono selama Aot tugas untuk proyek yang memiliki $(AndroidEnableProfiledAot) atau $(AotAssemblies) diatur ke true. Nilai string properti ditambahkan ke file respons saat memanggil pengkompilasi silang Mono.

Secara umum, properti ini harus dibiarkan kosong, tetapi dalam skenario khusus tertentu mungkin memberikan fleksibilitas yang berguna.

Properti $(AndroidExtraAotOptions) berbeda dari properti terkait $(AndroidAotAdditionalArguments) ; $(AndroidAotAdditionalArguments) menempatkan argumen yang dipisahkan koma ke dalam --aot opsi pengkompilasi Mono. $(AndroidExtraAotOptions) sebaliknya meneruskan opsi terpisah spasi mandiri penuh seperti --verbose atau --debug ke pengkompilasi.

Ditambahkan dalam Xamarin.Android 10.2.

AndroidFastDeploymentType

: Daftar nilai yang dipisahkan titik dua (titik dua) untuk mengontrol jenis apa yang dapat disebarkan ke direktori Penyebaran Cepat pada perangkat target saat $(EmbedAssembliesIntoApk) properti MSBuild adalah False. Jika sumber daya disebarkan dengan cepat, sumber daya tidak disematkan ke dalam yang dihasilkan .apk, yang dapat mempercepat waktu penyebaran. (Semakin cepat yang disebarkan, maka semakin jarang .apk kebutuhan untuk dibangun kembali, dan proses penginstalan bisa lebih cepat.) Nilai yang valid meliputi:

  • Assemblies: Menyebarkan rakitan aplikasi.
  • Dexes: Menyebarkan .dex file, pustaka asli, dan typemaps. Nilai Dexes hanya dapat digunakan pada perangkat yang menjalankan Android 4.4 atau yang lebih baru (API-19).

Nilai defaultnya adalah Assemblies.

Dukungan untuk sumber daya dan aset Penyebaran Cepat melalui sistem tersebut dihapus dalam penerapan f0d565fe. Ini karena diperlukan penggunaan API yang tidak digunakan lagi untuk bekerja.

Eksperimental. Properti ini ditambahkan di Xamarin.Android 6.1.

AndroidFragmentType

Menentukan jenis default yang sepenuhnya memenuhi syarat untuk digunakan untuk semua <fragment> elemen tata letak saat membuat kode pengikatan tata letak. Nilai defaultnya adalah jenis Android Android.App.Fragment standar.

AndroidGenerateJniMarshalMethods

Properti bool yang memungkinkan pembuatan metode marshal JNI sebagai bagian dari proses build. Ini sangat mengurangi System.Reflection penggunaan dalam kode pembantu pengikatan.

Nilai defaultnya adalah False. Jika pengembang ingin menggunakan fitur metode marshal JNI baru, mereka dapat mengatur

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

dalam ..csproj Atau sediakan properti pada baris perintah melalui

/p:AndroidGenerateJniMarshalMethods=True

Eksperimental. Ditambahkan dalam Xamarin.Android 9.2. Nilai defaultnya adalah False.

AndroidGenerateJniMarshalMethodsAdditionalArguments

Properti string yang dapat digunakan untuk menambahkan parameter ke jnimarshalmethod-gen.exe pemanggilan, dan berguna untuk penelusuran kesalahan, sehingga opsi seperti -v, -d, atau --keeptemp dapat digunakan.

Nilai defaultnya adalah string kosong. Ini dapat diatur dalam .csproj file atau pada baris perintah. Contohnya:

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

atau:

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

Ditambahkan dalam Xamarin.Android 9.2.

AndroidGenerateLayoutBindings

Memungkinkan pembuatan kode tata letak di belakang jika diatur ke true atau menonaktifkannya sepenuhnya jika diatur ke false. Nilai defaultnya adalah false.

AndroidGenerateResourceDesigner

Nilai defaultnya adalah true. Ketika diatur ke false, menonaktifkan pembuatan Resource.designer.cs.

Ditambahkan dalam .NET 6 RC 1. Tidak didukung di Xamarin.Android.

AndroidHttpClientHandlerType

Mengontrol implementasi default System.Net.Http.HttpMessageHandler yang akan digunakan oleh System.Net.Http.HttpClient konstruktor default. Nilainya adalah nama jenis subkelas yang HttpMessageHandler memenuhi syarat rakitan, cocok untuk digunakan dengan System.Type.GetType(string). Nilai yang paling umum untuk properti ini adalah:

  • Xamarin.Android.Net.AndroidClientHandler: Gunakan API Android Java untuk melakukan permintaan jaringan. Menggunakan API Java memungkinkan akses URL TLS 1.2 saat versi Android yang mendasar mendukung TLS 1.2. Hanya Android 5.0 dan yang lebih baru yang memberikan dukungan TLS 1.2 dengan andal melalui Java.

    Sesuai dengan opsi Android di halaman properti Visual Studio dan opsi AndroidClientHandler di halaman properti Visual Studio untuk Mac.

    Wizard proyek baru memilih opsi ini untuk proyek baru saat Versi Android Minimum dikonfigurasi ke Android 5.0 (Lollipop) atau yang lebih tinggi di Visual Studio atau saat Platform Target diatur ke Terbaru dan Terbesar di Visual Studio untuk Mac.

  • Unset/string kosong, yang setara dengan System.Net.Http.HttpClientHandler, System.Net.Http

    Sesuai dengan opsi Default di halaman properti Visual Studio.

    Wizard proyek baru memilih opsi ini untuk proyek baru saat Versi Android Minimum dikonfigurasi ke Android 4.4.87 atau yang lebih rendah di Visual Studio atau saat Platform Target diatur ke Pengembangan Modern atau Kompatibilitas Maksimum di Visual Studio untuk Mac.

  • System.Net.Http.HttpClientHandler, System.Net.Http: Gunakan terkelola HttpMessageHandler.

    Sesuai dengan opsi Terkelola di halaman properti Visual Studio.

Catatan

Jika dukungan TLS 1.2 diperlukan pada versi Android sebelum 5.0, atau jika dukungan TLS 1.2 diperlukan dengan System.Net.WebClient API terkait dan , maka $(AndroidTlsProvider) harus digunakan.

Catatan

Dukungan untuk $(AndroidHttpClientHandlerType) properti berfungsi dengan mengatur XA_HTTP_CLIENT_HANDLER_TYPE variabel lingkungan. Nilai $XA_HTTP_CLIENT_HANDLER_TYPE yang ditemukan dalam file dengan tindakan Build @(AndroidEnvironment) akan diutamakan.

Ditambahkan di Xamarin.Android 6.1.

AndroidIncludeWrapSh

Nilai boolean yang menunjukkan apakah skrip pembungkus Android (wrap.sh) harus dikemas ke dalam APK. Nilai default adalah false karena skrip pembungkus dapat secara signifikan memengaruhi cara aplikasi dimulai dan berfungsi dan skrip harus disertakan hanya jika perlu, misalnya saat men-debug atau mengubah perilaku startup/runtime aplikasi.

Skrip ditambahkan ke proyek menggunakan @(AndroidNativeLibrary) build action, karena ditempatkan di direktori yang sama dengan pustaka asli khusus arsitektur, dan harus diberi nama wrap.sh.

Cara term mudah untuk menentukan jalur ke wrap.sh skrip adalah dengan memasukkannya ke direktori yang dinamai sesuai arsitektur target. Pendekatan ini akan berfungsi jika Anda hanya memiliki satu wrap.sh per arsitektur:

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

Namun, jika proyek Anda membutuhkan lebih dari satu wrap.sh per arsitektur, untuk tujuan yang berbeda, pendekatan ini tidak akan berfungsi. Sebagai gantinya, dalam kasus seperti itu nama dapat ditentukan menggunakan Link metadata dari AndroidNativeLibrary:

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

Link Jika metadata digunakan, jalur yang ditentukan dalam nilainya harus merupakan jalur pustaka khusus arsitektur asli yang valid, relatif terhadap direktori akar APK. Format jalur adalah lib\ARCH\wrap.sh di mana ARCH bisa menjadi salah satu dari:

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

AndroidJavadocVerbosity

Menentukan bagaimana "verbose" C# XML Documentation Comments harus ketika mengimpor dokumentasi Javadoc dalam proyek pengikatan.

Memerlukan penggunaan @(JavaSourceJar) build action.

Properti $(AndroidJavadocVerbosity) ini seperti enum, dengan kemungkinan nilai full atau intellisense:

Nilai defaultnya adalah intellisense.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AndroidKeyStore

Nilai boolean yang menunjukkan apakah informasi penandatanganan kustom harus digunakan. Nilai defaultnya adalah False, yang berarti bahwa kunci penandatanganan debug default akan digunakan untuk menandatangani paket.

AndroidLaunchActivity

Aktivitas Android untuk diluncurkan.

AndroidLinkMode

Menentukan jenis penautan mana yang harus dilakukan pada rakitan yang terkandung dalam paket Android. Hanya digunakan dalam proyek Aplikasi Android. Nilai defaultnya adalah SdkOnly. Nilai yang valid adalah:

  • Tidak ada: Tidak ada penautan yang akan dicoba.

  • SdkOnly: Penautan hanya akan dilakukan pada pustaka kelas dasar, bukan rakitan pengguna.

  • Penuh: Penautan akan dilakukan pada pustaka kelas dasar dan rakitan pengguna.

    Catatan

    AndroidLinkMode Menggunakan nilai Penuh sering menghasilkan aplikasi yang rusak, terutama ketika Refleksi digunakan. Hindari kecuali Anda benar-benar tahu apa yang Anda lakukan.

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkResources

Ketika true, sistem build akan menautkan Jenis Berlapis dari kelas Resource.Designer.cs Resource di semua rakitan. Kode IL yang menggunakan jenis tersebut akan diperbarui untuk menggunakan nilai secara langsung daripada mengakses bidang.

Menautkan jenis berlapis dapat berdampak kecil pada pengurangan ukuran apk, dan juga dapat membantu dengan performa startup. Hanya build "Rilis" yang ditautkan.

Eksperimental. Hanya dirancang untuk bekerja dengan kode seperti

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

Skenario lain (seperti refleksi) tidak akan didukung.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3

AndroidLinkSkip

Menentukan daftar nama rakitan yang dibatasi titik koma (;), tanpa ekstensi file, dari rakitan yang tidak boleh ditautkan. Hanya digunakan dalam proyek Aplikasi Android.

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

Properti bergaya enum dengan nilai proguard atau r8. Menunjukkan shrinker kode mana yang digunakan untuk kode Java. Nilai defaultnya adalah string kosong, atau proguard jika $(AndroidEnableProguard) adalah True. Lihat dokumentasi kami tentang D8 dan R8.

AndroidLintEnabled

Properti bool yang memungkinkan pengembang untuk menjalankan alat android lint sebagai bagian dari proses pengemasan.

Ketika $(AndroidLintEnabled)=True, properti berikut digunakan:

Tindakan build berikut juga dapat digunakan:

Lihat Bantuan Lint untuk detail selengkapnya tentang alat android lint .

AndroidLintEnabledIssues

Properti string yang merupakan daftar masalah lint yang dipisahkan koma untuk diaktifkan.

Hanya digunakan ketika $(AndroidLintEnabled)=True.

AndroidLintDisabledIssues

Properti string yang merupakan daftar masalah lint yang dipisahkan koma untuk dinonaktifkan.

Hanya digunakan ketika $(AndroidLintEnabled)=True.

AndroidLintCheckIssues

Properti string yang merupakan daftar masalah lint yang dipisahkan koma untuk diperiksa.

Hanya digunakan ketika $(AndroidLintEnabled)=True.

Catatan: hanya masalah ini yang akan diperiksa.

AndroidManagedSymbols

Properti boolean yang mengontrol apakah titik urutan dihasilkan sehingga informasi nama file dan nomor baris dapat diekstrak dari Release jejak tumpukan.

Ditambahkan di Xamarin.Android 6.1.

AndroidManifest

Menentukan nama file yang akan digunakan sebagai templat untuk aplikasi AndroidManifest.xml. Selama build, nilai lain yang diperlukan akan digabungkan ke dalam untuk menghasilkan aktual AndroidManifest.xml. $(AndroidManifest) harus berisi nama paket dalam /manifest/@package atribut .

AndroidManifestMerger

Menentukan implementasi untuk menggabungkan file AndroidManifest.xml . Ini adalah properti bergaya enum tempat legacy memilih implementasi C# asli dan manifestmerger.jar memilih implementasi Java Google.

Nilai default saat ini legacyadalah . Ini akan berubah menjadi manifestmerger.jar dalam rilis mendatang untuk menyelaraskan perilaku dengan Android Studio.

Penggabungan Google memungkinkan dukungan untuk xmlns:tools="http://schemas.android.com/tools" seperti yang dijelaskan dalam dokumentasi Android.

Diperkenalkan di Xamarin.Android 10.2

AndroidManifestMergerExtraArgs

Properti string untuk memberikan argumen ke alat dokumentasi Android.

Jika Anda menginginkan output terperinci dari alat ini, Anda dapat menambahkan yang berikut ke .csproj.

<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>

Diperkenalkan di Xamarin.Android 11.x

AndroidManifestType

Properti bergaya enum dengan nilai Xamarin atau GoogleV2. Ini mengontrol repositori mana yang digunakan oleh InstallAndroidDependencies target untuk menentukan paket Android dan versi paket mana yang tersedia dan dapat diinstal.

Xamarinadalah repositori Daftar yang Disetujui (Disarankan) dalam Visual Studio SDK Manager.

GoogleV2adalah repositori Daftar Lengkap (Tidak didukung) dalam Visual Studio SDK Manager.

Ditambahkan dalam Xamarin.Android 13.0. Di Xamarin.Android 13.0, jika $(AndroidManifestType) tidak diatur, maka Xamarin digunakan.

Sebelum Xamarin.Android 13.0, pengaturan $(AndroidManifestType) tidak berpengaruh, dan GoogleV2 digunakan.

AndroidManifestPlaceholders

Daftar pasangan pengganti nilai kunci yang dipisahkan titik koma untuk AndroidManifest.xml, di mana setiap pasangan memiliki format key=value.

Misalnya, nilai assemblyName=$(AssemblyName) properti menentukan ${assemblyName} tempat penampung yang kemudian dapat muncul di AndroidManifest.xml:

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

Ini menyediakan cara untuk menyisipkan variabel dari proses build ke dalam file AndroidManifest.xml .

AndroidMultiDexClassListExtraArgs

Properti string yang memungkinkan pengembang meneruskan argumen ke com.android.multidex.MainDexListBuilder saat membuat multidex.keep file.

Salah satu kasus tertentu adalah jika Anda mendapatkan kesalahan berikut selama dx kompilasi.

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

Jika Anda mendapatkan kesalahan ini, Anda dapat menambahkan yang berikut ini ke .csproj.

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

yang akan memungkinkan dx langkah untuk berhasil.

Ditambahkan di Xamarin.Android 8.3.

AndroidPackageFormat

Properti bergaya enum dengan nilai apk atau aab. Menunjukkan apakah Anda ingin mengemas aplikasi Android sebagai file APK atau Android App Bundle. App Bundles adalah format baru untuk Release build yang ditujukan untuk pengiriman di Google Play. Nilai defaultnya adalah apk.

Ketika $(AndroidPackageFormat) diatur ke aab, properti MSBuild lainnya diatur, yang diperlukan untuk Android App Bundles:

Properti ini tidak akan digunakan lagi untuk .net 6. Pengguna harus beralih ke yang lebih AndroidPackageFormatsbaru.

AndroidPackageFormats

Properti yang dibatasi titik koma dengan nilai apk dan aabyang valid. Menunjukkan apakah Anda ingin mengemas aplikasi Android sebagai file APK atau Android App Bundle. App Bundles adalah format baru untuk Release build yang ditujukan untuk pengiriman di Google Play.

Saat membuat build Rilis, Anda mungkin ingin menghasilkan dan aab dan apk untuk distribusi ke berbagai toko.

Pengaturan AndroidPackageFormats ke aab;apk akan mengakibatkan keduanya dihasilkan. Pengaturan AndroidPackageFormats ke salah satu aab atau apk hanya akan menghasilkan satu file.

Untuk .net 6 AndroidPackageFormats akan diatur ke untuk aab;apkRelease build saja. Disarankan agar Anda terus menggunakan hanya apk untuk penelusuran kesalahan.

Untuk Legacy Xamarin.Android Nilai defaultnya adalah "". Akibatnya Legacy Xamarin.Android TIDAK akan secara default menghasilkan keduanya sebagai bagian dari build rilis. Jika pengguna ingin menghasilkan kedua output, mereka harus menentukan hal berikut dalam konfigurasi mereka Release .

<AndroidPackageFormats>aab;apk</AndroidPackageFormats>

Anda juga perlu menghapus yang ada AndroidPackageFormat untuk konfigurasi tersebut jika Anda memilikinya.

Ditambahkan dalam Xamarin.Android 11.5.

AndroidPackageNamingPolicy

Properti bergaya enum untuk menentukan nama paket Java dari kode sumber Java yang dihasilkan.

Di Xamarin.Android 10.2 dan yang lebih baru, satu-satunya nilai yang didukung adalah LowercaseCrc64.

Di Xamarin.Android 10.1, nilai transisi LowercaseMD5 juga tersedia yang memungkinkan beralih kembali ke gaya nama paket Java asli seperti yang digunakan dalam Xamarin.Android 10.0 dan yang lebih lama. Opsi tersebut dihapus di Xamarin.Android 10.2 untuk meningkatkan kompatibilitas dengan lingkungan build yang telah memberlakukan kepatuhan FIPS.

Ditambahkan dalam Xamarin.Android 10.1.

AndroidProguardMappingFile

-printmapping Menentukan aturan proguard untuk r8. Ini berarti mapping.txt file akan diproduksi dalam $(OutputPath) folder . File ini kemudian dapat digunakan saat mengunggah paket ke Google Play Store.

Secara default file ini diproduksi secara otomatis saat menggunakan AndroidLinkTool=r8 dan akan menghasilkan file $(OutputPath)mapping.txtberikut .

Jika Anda tidak ingin menghasilkan file pemetaan ini, Anda dapat menggunakan AndroidCreateProguardMappingFile properti untuk berhenti membuatnya . Tambahkan yang berikut ini di proyek Anda

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

atau gunakan -p:AndroidCreateProguardMappingFile=False pada baris perintah.

Properti ini ditambahkan di Xamarin.Android 11.2.

AndroidR8IgnoreWarnings

-ignorewarnings Menentukan aturan proguard untuk r8. Ini memungkinkan r8 untuk melanjutkan kompilasi deks bahkan jika peringatan tertentu ditemui. Nilai defaultnya adalah True, tetapi dapat diatur ke untuk False memberlakukan perilaku yang lebih ketat. Lihat manual ProGuard untuk detailnya.

Ditambahkan dalam Xamarin.Android 10.3.

AndroidR8JarPath

Jalur untuk r8.jar digunakan dengan r8 dex-compiler dan shrinker. Nilai default adalah jalur dalam penginstalan Xamarin.Android. Untuk informasi lebih lanjut, lihat dokumentasi kami tentang D8 dan R8.

AndroidResgenExtraArgs

Menentukan opsi baris perintah untuk diteruskan ke perintah aapt saat memproses aset dan sumber daya Android.

AndroidResgenFile

Menentukan nama file Sumber Daya yang akan dihasilkan. Templat default mengatur ini ke Resource.designer.cs.

AndroidSdkBuildToolsVersion

Paket build-tools Android SDK menyediakan alat aapt dan zipalign , antara lain. Beberapa versi paket build-tools yang berbeda dapat diinstal secara bersamaan. Paket build-tools yang dipilih untuk pengemasan dilakukan dengan memeriksa dan menggunakan versi alat build "pilihan" jika ada; jika versi "pilihan" tidak ada, maka paket build-tools versi terinstal tertinggi digunakan.

Properti $(AndroidSdkBuildToolsVersion) MSBuild berisi versi build-tools pilihan. Sistem build Xamarin.Android menyediakan nilai default dalam Xamarin.Android.Common.targets, dan nilai default mungkin ditimpa dalam file proyek Anda untuk memilih versi build-tools alternatif, jika (misalnya) aapt terbaru mengalami crash saat versi aapt sebelumnya diketahui berfungsi.

AndroidSigningKeyAlias

Menentukan alias untuk kunci di keystore. Ini adalah nilai keytool -alias yang digunakan saat membuat keystore.

AndroidSigningKeyPass

Menentukan kata sandi kunci dalam file keystore. Ini adalah nilai yang dimasukkan saat keytool meminta Masukkan kata sandi kunci untuk $(AndroidSigningKeyAlias).

Di Xamarin.Android 10.0 dan yang lebih lama, properti ini hanya mendukung kata sandi teks biasa.

Di Xamarin.Android 10.1 dan yang lebih baru, properti ini juga mendukung env: dan file: awalan yang dapat digunakan untuk menentukan variabel lingkungan atau file yang berisi kata sandi. Opsi ini menyediakan cara untuk mencegah kata sandi muncul di log build.

Misalnya, untuk menggunakan variabel lingkungan bernama AndroidSigningPassword:

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

Untuk menggunakan file yang terletak di C:\Users\user1\AndroidSigningPassword.txt:

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

Catatan

env: Awalan tidak didukung ketika $(AndroidPackageFormat) diatur ke aab.

AndroidSigningKeyStore

Menentukan nama file file keystore yang dibuat oleh keytool. Ini sesuai dengan nilai yang disediakan untuk opsi keytool -keystore .

AndroidSigningStorePass

Menentukan kata sandi ke $(AndroidSigningKeyStore). Ini adalah nilai yang disediakan untuk keytool saat membuat file keystore dan diminta Masukkan kata sandi keystore:.

Di Xamarin.Android 10.0 dan yang lebih lama, properti ini hanya mendukung kata sandi teks biasa.

Di Xamarin.Android 10.1 dan yang lebih baru, properti ini juga mendukung env: dan file: awalan yang dapat digunakan untuk menentukan variabel lingkungan atau file yang berisi kata sandi. Opsi ini menyediakan cara untuk mencegah kata sandi muncul di log build.

Misalnya, untuk menggunakan variabel lingkungan bernama AndroidSigningPassword:

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

Untuk menggunakan file yang terletak di C:\Users\user1\AndroidSigningPassword.txt:

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

Catatan

env: Awalan tidak didukung ketika $(AndroidPackageFormat) diatur ke aab.

AndroidSigningPlatformKey

Menentukan file kunci yang akan digunakan untuk menandatangani apk. Ini hanya digunakan saat membangun system aplikasi.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AndroidSigningPlatformCert

Menentukan file sertifikat yang akan digunakan untuk menandatangani apk. Ini hanya digunakan saat membangun system aplikasi.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AndroidSupportedAbis

Properti string yang berisi daftar ABIs yang dibatasi titik koma (;) yang harus disertakan ke dalam .apk.

Nilai yang didukung mencakup:

  • armeabi-v7a
  • x86
  • arm64-v8a: Memerlukan Xamarin.Android 5.1 dan yang lebih baru.
  • x86_64: Memerlukan Xamarin.Android 5.1 dan yang lebih baru.

AndroidTlsProvider

Nilai string yang menentukan penyedia TLS mana yang harus digunakan dalam aplikasi. Kemungkinan nilai adalah:

  • Unset/string kosong: Di Xamarin.Android 7.3 dan yang lebih tinggi, ini setara dengan btls.

    Di Xamarin.Android 7.1, ini setara dengan legacy.

    Ini sesuai dengan pengaturan Default di halaman properti Visual Studio.

  • btls: Gunakan Boring SSL untuk komunikasi TLS dengan HttpWebRequest.

    Ini memungkinkan penggunaan TLS 1.2 di semua versi Android.

    Ini sesuai dengan pengaturan TLS 1.2+ Asli di halaman properti Visual Studio.

  • legacy: Di Xamarin.Android 10.1 dan yang lebih lama, gunakan implementasi SSL terkelola historis untuk interaksi jaringan. Ini tidak mendukung TLS 1.2.

    Ini sesuai dengan pengaturan TLS Terkelola 1.0 di halaman properti Visual Studio.

    Di Xamarin.Android 10.2 dan yang lebih baru, nilai ini diabaikan dan btls pengaturan digunakan.

  • default: Nilai ini tidak mungkin digunakan dalam proyek Xamarin.Android. Nilai yang direkomendasikan untuk digunakan sebagai gantinya adalah string kosong, yang sesuai dengan pengaturan Default di halaman properti Visual Studio.

    Nilai default tidak ditawarkan di halaman properti Visual Studio.

    Ini saat ini setara legacydengan .

Ditambahkan dalam Xamarin.Android 7.1.

AndroidUseAapt2

Properti boolean yang memungkinkan pengembang mengontrol penggunaan alat untuk pengemasan aapt2 . Secara default, ini adalah False dan Xamarin.Android akan menggunakan aapt. Jika pengembang ingin menggunakan fungsionalitas baru aapt2 , tambahkan:

<AndroidUseAapt2>True</AndroidUseAapt2>

dalam ..csproj Atau sediakan properti pada baris perintah:

/p:AndroidUseAapt2=True

Properti ini ditambahkan di Xamarin.Android 8.3. Pengaturan AndroidUseAapt2 ke false tidak digunakan lagi di Xamarin.Android 11.2.

AndroidUseApkSigner

Properti bool yang memungkinkan pengembang untuk menggunakan alat daripada apksignerjarsigner.

Ditambahkan dalam Xamarin.Android 8.2.

AndroidUseDefaultAotProfile

Properti bool yang memungkinkan pengembang untuk menekan penggunaan profil AOT default.

Untuk menekan profil AOT default, atur properti ke false.

Ditambahkan dalam Xamarin.Android 10.1.

AndroidUseInterpreter

Properti boolean yang menyebabkan .apk mengandung interpreter mono, dan bukan JIT normal.

Eksperimental.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AndroidUseLegacyVersionCode

Properti boolean yang memungkinkan pengembang mengembalikan perhitungan versionCode kembali ke perilaku lama sebelum Xamarin.Android 8.2. Ini hanya boleh digunakan untuk pengembang dengan aplikasi yang ada di Google Play Store. Sangat disarankan agar properti baru $(AndroidVersionCodePattern) digunakan.

Ditambahkan dalam Xamarin.Android 8.2.

AndroidUseManagedDesignTimeResourceGenerator

Properti boolean yang akan mengalihkan build waktu desain untuk menggunakan pengurai sumber daya terkelola daripada aapt.

Ditambahkan dalam Xamarin.Android 8.1.

AndroidUseSharedRuntime

Properti boolean yang menentukan apakah paket runtime bersama diperlukan untuk menjalankan Aplikasi pada perangkat target. Mengandalkan paket runtime bersama memungkinkan paket Aplikasi menjadi lebih kecil, mempercepat proses pembuatan dan penyebaran paket, menghasilkan siklus penyelesaian build/deploy/debug yang lebih cepat.

Sebelum Xamarin.Android 11.2, properti ini harus True untuk build Debug, dan False untuk proyek Rilis.

Properti ini dihapus di Xamarin.Android 11.2.

AndroidVersionCode

Properti MSBuild yang dapat digunakan sebagai alternatif /manifest/@android:versionCode dalam AndroidManifest.xml file. Untuk memilih fitur ini, Anda juga harus mengaktifkan <GenerateApplicationManifest>true</GenerateApplicationManifest>. Ini akan menjadi default ke depannya di .NET 6.

Properti ini diabaikan jika $(AndroidCreatePackagePerAbi) dan $(AndroidVersionCodePattern) digunakan.

@android:versionCode adalah nilai bilangan bulat yang harus ditahapkan untuk setiap rilis Google Play. Lihat dokumentasi Android untuk detail lebih lanjut tentang persyaratan untuk /manifest/@android:versionCode.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AndroidVersionCodePattern

Properti string yang memungkinkan pengembang untuk menyesuaikan versionCode dalam manifes. Lihat Membuat Kode Versi untuk APK untuk informasi tentang memutuskan versionCode.

Beberapa contoh, jika abi adalah armeabi dan versionCode dalam manifes adalah 123, {abi}{versionCode} akan menghasilkan versionCode kapan $(AndroidCreatePackagePerAbi)1123 True, jika tidak, akan menghasilkan nilai 123. Jika abi adalah x86_64 dan versionCode dalam manifes adalah 44. Ini akan menghasilkan 544 kapan $(AndroidCreatePackagePerAbi) True, jika tidak akan menghasilkan nilai 44.

Jika kita menyertakan string {abi}{versionCode:0000}format padding kiri , itu akan menghasilkan 50044 karena kita dibiarkan mengayuh versionCode dengan 0. Atau, Anda dapat menggunakan padding desimal seperti {abi}{versionCode:D4} yang melakukan hal yang sama seperti contoh sebelumnya.

Hanya string format padding '0' dan 'Dx' yang didukung karena nilai HARUS berupa bilangan bulat.

Item kunci yang telah ditentukan sebelumnya

  • abi – Menyisipkan abi yang ditargetkan untuk aplikasi

    • 2 – armeabi-v7a
    • 3 – x86
    • 4 – arm64-v8a
    • 5 – x86_64
  • minSDK – Menyisipkan nilai Sdk minimum yang didukung dari AndroidManifest.xml atau 11 jika tidak ada yang ditentukan.

  • versionCode – Menggunakan kode versi langsung dari Properties\AndroidManifest.xml.

Anda dapat menentukan item kustom menggunakan $(AndroidVersionCodeProperties) properti (ditentukan berikutnya).

Secara default, nilai akan diatur ke {abi}{versionCode:D6}. Jika pengembang ingin mempertahankan perilaku lama, Anda dapat mengambil alih default dengan mengatur properti ke $(AndroidUseLegacyVersionCode)true

Ditambahkan dalam Xamarin.Android 7.2.

AndroidVersionCodeProperties

Properti string yang memungkinkan pengembang menentukan item kustom untuk digunakan dengan $(AndroidVersionCodePattern). Mereka dalam bentuk sepasang key=value . Semua item dalam harus berupa nilai bilangan value bulat. Misalnya: screen=23;target=$(_AndroidApiLevel). Seperti yang Anda lihat, Anda dapat menggunakan properti MSBuild yang ada atau kustom dalam string.

Ditambahkan dalam Xamarin.Android 7.2.

ApplicationId

Properti MSBuild yang dapat digunakan sebagai alternatif /manifest/@package dalam AndroidManifest.xml file. Untuk memilih fitur ini, Anda juga harus mengaktifkan <GenerateApplicationManifest>true</GenerateApplicationManifest>. Ini akan menjadi default ke depannya di .NET 6.

Lihat dokumentasi Android untuk detail lebih lanjut tentang persyaratan untuk /manifest/@package.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

ApplicationTitle

Properti MSBuild yang dapat digunakan sebagai alternatif /manifest/application/@android:label dalam AndroidManifest.xml file. Untuk memilih fitur ini, Anda juga harus mengaktifkan <GenerateApplicationManifest>true</GenerateApplicationManifest>. Ini akan menjadi default ke depannya di .NET 6.

Lihat dokumentasi Android untuk detail lebih lanjut tentang persyaratan untuk /manifest/application/@android:label.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

ApplicationVersion

Properti MSBuild yang dapat digunakan sebagai alternatif /manifest/@android:versionName dalam AndroidManifest.xml file. Untuk memilih fitur ini, Anda juga harus mengaktifkan <GenerateApplicationManifest>true</GenerateApplicationManifest>. Ini akan menjadi default ke depannya di .NET 6.

Lihat dokumentasi Android untuk detail lebih lanjut tentang persyaratan untuk /manifest/@android:versionName.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

AotAssemblies

Properti boolean yang menentukan apakah rakitan akan dikompilasi ke dalam kode asli atau tidak dan disertakan dalam .apk.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 5.1.

Properti ini secara False default.

AProfUtilExtraOptions

Opsi tambahan untuk diteruskan ke aprofutil.

BeforeGenerateAndroidManifest

Target MSBuild yang tercantum dalam properti ini akan berjalan langsung sebelum _GenerateJavaStubs.

Ditambahkan dalam Xamarin.Android 9.4.

Konfigurasi

Menentukan konfigurasi build yang akan digunakan, seperti "Debug" atau "Rilis". Properti Konfigurasi digunakan untuk menentukan nilai default untuk properti lain yang menentukan perilaku target. Konfigurasi tambahan dapat dibuat dalam IDE Anda.

Secara default, Debug konfigurasi akan menghasilkan Install Dan SignAndroidPackage target membuat paket Android yang lebih kecil yang memerlukan kehadiran file dan paket lain untuk beroperasi.

Konfigurasi default Release akan menghasilkan Install Dan SignAndroidPackage menargetkan pembuatan paket Android yang berdiri sendiri, dan dapat digunakan tanpa menginstal paket atau file lain.

DebugSymbols

Nilai boolean yang menentukan apakah paket Android dapat di-debug, dalam kombinasi dengan $(DebugType) properti . Paket yang dapat di-debug berisi simbol debug, mengatur //application/@android:debuggable atribut ke true, dan secara otomatis menambahkan INTERNET izin sehingga debugger dapat melampirkan ke proses. Aplikasi dapat di-debug jika DebugSymbols adalah TruedanDebugType merupakan string kosong atau Full.

DebugType

Menentukan jenis simbol debug yang akan dihasilkan sebagai bagian dari build, yang juga berdampak pada apakah Aplikasi dapat di-debug. Nilai yang mungkin termasuk:

  • Penuh: Simbol lengkap dihasilkan. Jika DebugSymbols Properti MSBuild juga True, maka paket Aplikasi dapat di-debug.

  • PdbOnly: Simbol "PDB" dihasilkan. Paket Aplikasi tidak dapat di-debug.

Jika DebugType tidak diatur atau merupakan string kosong, maka DebugSymbols properti mengontrol apakah Aplikasi dapat di-debug atau tidak.

EmbedAssembliesIntoApk

Properti boolean yang menentukan apakah rakitan aplikasi harus disematkan ke dalam paket Aplikasi atau tidak.

Properti ini harus True untuk build Rilis dan False untuk build Debug. Ini mungkin perlu berada True di build Debug jika Penyebaran Cepat tidak mendukung perangkat target.

Ketika properti ini adalah False, maka $(AndroidFastDeploymentType) Properti MSBuild juga mengontrol apa yang akan disematkan ke dalam .apk, yang dapat memengaruhi penyebaran dan waktu pembangunan ulang.

EnableLLVM

Properti boolean yang menentukan apakah LLVM akan digunakan atau tidak saat rakitan kompilasi Ahead-of-Time ke dalam kode asli.

Android NDK harus diinstal untuk membuat proyek yang mengaktifkan properti ini.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 5.1.

Properti ini secara False default.

Properti ini diabaikan kecuali $(AotAssemblies) properti MSBuild adalah True.

EnableProguard

Properti boolean yang menentukan apakah proguard dijalankan atau tidak sebagai bagian dari proses pengemasan untuk menautkan kode Java.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 5.1.

Properti ini secara False default.

Ketika Truefile , @(ProguardConfiguration) akan digunakan untuk mengontrol proguard eksekusi.

GenerateApplicationManifest

Mengaktifkan atau menonaktifkan properti MSBuild berikut yang memancarkan nilai dalam file akhir AndroidManifest.xml :

Nilai $(GenerateApplicationManifest) defaultnya ada true di .NET 6 dan false dalam "warisan" Xamarin.Android.

Dukungan untuk properti ini ditambahkan di Xamarin.Android 11.3.

JavaMaximumHeapSize

Menentukan nilai parameter java-Xmx yang akan digunakan saat membangun .dex file sebagai bagian dari proses pengemasan. Jika tidak ditentukan, maka opsi memasok -Xmxjava dengan nilai 1G. Ini ditemukan umumnya diperlukan pada Windows dibandingkan dengan platform lain.

Sesuaikan nilai dengan mengubah:

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

Menentukan opsi baris perintah untuk diteruskan ke java saat membangun .dex file.

JarsignerTimestampAuthorityCertificateAlias

Properti ini memungkinkan Anda menentukan alias di keystore untuk otoritas tanda waktu. Lihat dokumentasi Dukungan Tanda Waktu Tanda Tangan Java untuk detail selengkapnya.

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

JarsignerTimestampAuthorityUrl

Properti ini memungkinkan Anda menentukan URL ke layanan otoritas tanda waktu. Ini dapat digunakan untuk memastikan tanda tangan Anda .apk menyertakan tanda waktu. Lihat dokumentasi Dukungan Tanda Waktu Tanda Tangan Java untuk detail selengkapnya.

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

LinkerDumpDependencies

Properti bool yang memungkinkan pembuatan file dependensi linker. File ini dapat digunakan sebagai input untuk alat illinkanalyzer .

File dependensi bernama linker-dependencies.xml.gz ditulis ke direktori proyek. Pada. NET5/6 ditulis di samping rakitan yang ditautkan dalam obj/<Configuration>/android<ABI>/linked direktori.

Nilai defaultnya adalah False.

MandroidI18n

Menentukan dukungan internasionalisasi yang disertakan dengan Aplikasi, seperti tabel kolase dan pengurutan. Nilainya adalah daftar yang dipisahkan koma atau titik koma dari satu atau beberapa nilai yang tidak peka huruf besar/kecil berikut:

  • Tidak ada: Sertakan tidak ada pengodean tambahan.

  • Semua: Sertakan semua pengodean yang tersedia.

  • CJK: Termasuk pengodean Cina, Jepang, dan Korea seperti Jepang (EUC) [enc-jp, CP51932], Jepang (Shift-JIS) [iso-2022-jp, shift_jis, CP932], Jepang (JIS) [CP50220], Chinese Simplified (GB2312) [gb2312, CP936], Korea (UHC) [ks_c_5601-1987, CP949], Korea (EUC) [euc-kr, CP51949], Chinese Traditional (Big5) [big5, CP950], dan Chinese Simplified (GB18030) [GB18030, CP54936].

  • MidEast: Sertakan pengodean Timur Tengah seperti Turki (Windows) [iso-8859-9, CP1254], Ibrani (Windows) [windows-1255, CP1255], Arab (Windows) [windows-1256, CP1256], Bahasa Arab (ISO) [iso-8859-6, CP28596], Ibrani (ISO) [iso-8859-8, CP28598], Latin 5 (ISO) [iso-8859-9, CP28599], dan Ibrani (Alternatif Iso) [iso-8859-8, CP38598].

  • Lainnya: Sertakan pengodean lain seperti Sirilik (Windows) [CP1251], Baltik (Windows) [iso-8859-4, CP1257], Vietnam (Windows) [CP1258], Sirilik (KOI8-R) [koi8-r, CP1251], Ukraina (KOI8-U) [koi8-u, CP1251], Baltik (ISO) [iso-8859-4, CP1257], Sirilik (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Malayalam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011], dan Thai (Windows) [CP874].

  • Langka: Sertakan pengodean langka seperti IBM EBCDIC (Turki) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (AS-Kanada dengan Euro) [CP1140], IBM EBCDIC (Jerman dengan Euro) [CP1141], IBM EBCDIC (Denmark/Norwegia dengan Euro) [CP1142], IBM EBCDIC (Finlandia/Swedia dengan Euro) [CP1143], IBM EBCDIC (Italia dengan Euro) [CP1144], IBM EBCDIC (Amerika Latin/Spanyol dengan Euro) [CP1145], IBM EBCDIC (Inggris Raya dengan Euro) [CP1146], IBM EBCDIC (Prancis dengan Euro) [CP1147], IBM EBCDIC (Internasional dengan Euro) [CP1148], IBM EBCDIC (Islandia dengan Euro) [CP1149], IBM EBCDIC (Jerman) [CP20273], IBM EBCDIC (Denmark/Norwegia) [CP20277], IBM EBCDIC (Finlandia/Swedia) [CP20278], IBM EBCDIC (Italia) [CP20280], IBM EBCDIC (Amerika Latin/Spanyol) [CP20284], IBM EBCDIC (Inggris Raya) [CP20285], IBM EBCDIC (Japanese Katakana Extended) [CP20290], IBM EBCDIC (Prancis) [CP20297], IBM EBCDIC (Arab) [CP20420], IBM EBCDIC (Ibrew) [CP20424], IBM EBCDIC (Islandia) [CP20871], IBM EBCDIC (Sirilik - Serbia, Bulgaria) [CP21025], IBM EBCDIC (AS-Kanada) [CP37], IBM EBCDIC (Internasional) [CP500], Arab (ASMO 708) [CP708], Eropa Tengah (DOS) [CP852], Sirilik (DOS) [CP855], Turki (DOS) [CP857], Eropa Barat (DOS dengan Euro) [CP858], Ibrani (DOS) [CP862], Arab (DOS) [CP864], Rusia (DOS) [CP866], Yunani (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870], dan IBM EBCDIC (Yunani) [CP875].

  • Barat: Sertakan pengodean Barat seperti Eropa Barat (Mac) [macintosh, CP10000], Islandia (Mac) [x-mac-icelandic, CP10079], Eropa Tengah (Windows) [iso-8859-2, CP1250], Eropa Barat (Windows) [iso-8859-1, CP1252], Yunani (Windows) [iso-8859-7, CP1253], Eropa Tengah (ISO) [iso-8859-2, CP28592], Latin 3 (ISO) [iso-8859-3, CP28593], Yunani (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM Amerika Serikat [CP437], Eropa Barat (DOS) [CP850], Portugis (DOS) [CP860], Islandia (DOS) [CP861], Kanada Prancis (DOS) [CP863], dan Nordik (DOS) [CP865].

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

Menentukan awalan jalur yang dihapus dari awal nama file dengan tindakan Build .AndroidResource Ini untuk memungkinkan perubahan di mana sumber daya berada.

Nilai defaultnya adalah Resources. Ubah ini menjadi res untuk struktur proyek Java.

MonoSymbolArchive

Properti boolean yang mengontrol apakah .mSYM artefak dibuat untuk digunakan nanti dengan mono-symbolicate, untuk mengekstrak nama file "nyata" dan informasi nomor baris dari pelacakan tumpukan Rilis.

Ini True secara default untuk aplikasi "Rilis" yang mengaktifkan simbol debugging: $(EmbedAssembliesIntoApk) adalah True, $(DebugSymbols) adalah True, dan $(Optimize) adalah Benar.

Ditambahkan dalam Xamarin.Android 7.1.