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 mengimplementasikanSystem.IO.Stream
API dengan benar karenaJava.IO.IOException
dapat dilemparkan dariStream.Read()
bukanSystem.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.System
berarti bahwa, misalnya,InputStreamInvoker
mengimplementasikanSystem.IO.Stream
, danStream.Read()
tidak akan melemparkanJava.IO.IOException
instans dengan benar. (Ini dapat melemparkan yangSystem.IO.IOException
berisiJava.IO.IOException
sebagaiException.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 denganjavac -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 mengikatMono.Android.dll
dengan nilai ini.
Manfaatnya XAJavaInterop1
meliputi:
Rakitan yang lebih kecil.
jmethodID
penembolokan untukbase
pemanggilan metode, selama semua jenis pengikatan lainnya dalam hierarki warisan dibangun denganXAJavaInterop1
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 .apk
atau 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: preloaded
adb 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.IJavaObject
tanpa 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. NilaiDexes
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 terkelolaHttpMessageHandler
.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
:
intellisense
: Hanya memancarkan komentar XML:<exception/>
, ,<returns/>
<param/>
,<summary/>
.full
: Keluarkanintellisense
elemen, serta<remarks/>
, ,<seealso/>
dan hal lain yang dapat didukung.
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 legacy
adalah . 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.
Xamarin
adalah repositori Daftar yang Disetujui (Disarankan) dalam Visual Studio SDK Manager.
GoogleV2
adalah 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:
$(AndroidUseAapt2)
adalahTrue
.$(AndroidUseApkSigner)
adalahFalse
.$(AndroidCreatePackagePerAbi)
adalahFalse
.
Properti ini tidak akan digunakan lagi untuk .net 6. Pengguna harus beralih ke yang lebih AndroidPackageFormats
baru.
AndroidPackageFormats
Properti yang dibatasi titik koma dengan nilai apk
dan aab
yang 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;apk
Release
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.txt
berikut .
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
legacy
dengan .
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 apksigner
jarsigner
.
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
- 2 –
minSDK – Menyisipkan nilai Sdk minimum yang didukung dari
AndroidManifest.xml
atau11
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 True
danDebugType
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 jugaTrue
, 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 True
file , @(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 -Xmx
java 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.