Vlastnosti sestavení
Vlastnosti nástroje MSBuild řídí chování cílů. Zadají se v souboru projektu, například MyApp.csproj, v rámci skupiny PropertyGroup nástroje MSBuild.
AdbTarget
Vlastnost $(AdbTarget)
určuje cílové zařízení s Androidem, do které se balíček Androidu může nainstalovat nebo z ní odebrat.
Hodnota této vlastnosti je stejná jako adb
možnost Cílové zařízení.
AfterGenerateAndroidManifest
Cíle nástroje MSBuild uvedené v této vlastnosti se spustí přímo za interním _GenerateJavaStubs
cílem, což je místo AndroidManifest.xml
, kde je soubor generován v souboru $(IntermediateOutputPath)
. Pokud chcete vygenerovaný AndroidManifest.xml
soubor upravit, můžete to udělat pomocí tohoto bodu rozšíření.
Přidáno v Xamarin.Android 9.4.
AndroidAapt2CompileExtraArgs
Určuje možnosti příkazového řádku, které se mají předat příkazu kompilace aapt2 při zpracování prostředků a prostředků Androidu.
Přidáno v Xamarin.Android 9.1.
AndroidAapt2LinkExtraArgs
Určuje možnosti příkazového řádku, které se mají předat příkazu odkazu aapt2 při zpracování prostředků a prostředků Androidu.
Přidáno v Xamarin.Android 9.1.
AndroidAddKeepAlives
Logická vlastnost, která určuje, zda linker vloží GC.KeepAlive()
vyvolání v rámci vazeb projektů, aby se zabránilo předčasné kolekci objektů.
Výchozí hodnota je True
pro sestavení konfigurace vydané verze.
Tato vlastnost byla přidána v Xamarin.Android 11.2.
AndroidAotAdditionalArguments
Řetězcová vlastnost, která umožňuje předávání možností mono kompilátoru během Aot
úkolu pro projekty, které jsou buď $(AndroidEnableProfiledAot)
nebo $(AotAssemblies)
nastaveny na true
.
Řetězcová hodnota vlastnosti se přidá do souboru odpovědi při volání mono křížového kompilátoru.
Obecně platí, že tato vlastnost by měla zůstat prázdná, ale v určitých speciálních scénářích může poskytovat užitečnou flexibilitu.
Vlastnost $(AndroidAotAdditionalArguments)
se liší od související $(AndroidExtraAotOptions)
vlastnosti; $(AndroidAotAdditionalArguments)
předá úplné samostatné možnosti oddělené mezerami, jako --verbose
je nebo --debug
kompilátor AOT, zatímco $(AndroidExtraAotOptions)
obsahuje argumenty oddělené čárkami, které jsou součástí --aot
možnosti kompilátoru AOT.
AndroidAotCustomProfilePath
Soubor, který aprofutil
by měl obsahovat data profileru.
AndroidAotProfiles
Řetězcová vlastnost, která umožňuje vývojáři přidat profily AOT z příkazového řádku. Jedná se o středník nebo seznam absolutních cest oddělených čárkami. Přidáno v Xamarin.Android 10.1.
AndroidAotProfilerPort
Port, ke kterému aprofutil
se má připojit při získávání dat profilace.
AndroidAotEnableLazyLoad
Povolte opožděné (zpožděné) načítání sestavení AOT-d místo jejich předběžného načtení při spuštění. Výchozí hodnota je True
pro buildy vydané verze s libovolnou formou povolené funkce AOT.
Představeno v .NET 6.
AndroidApkDigestAlgorithm
Řetězcová hodnota, která určuje algoritmus digest, který se má použít s jarsigner -digestalg
.
Výchozí hodnota je SHA-256
. V Xamarin.Android 10.0 a starší byla výchozí hodnota SHA1
.
Přidáno v Xamarin.Android 9.4.
AndroidApkSignerAdditionalArguments
Řetězcová vlastnost, která umožňuje vývojáři poskytnout nástroji argumenty apksigner
.
Přidáno v Xamarin.Android 8.2.
AndroidApkSigningAlgorithm
Řetězcová hodnota, která určuje podpisový algoritmus, který se má použít s jarsigner -sigalg
.
Výchozí hodnota je SHA256withRSA
. V Xamarin.Android 10.0 a starší byla výchozí hodnota md5withRSA
.
Přidáno v Xamarin.Android 8.2.
AndroidApplication
Logická hodnota, která označuje, jestli je projekt určen pro aplikaci pro Android (True
) nebo pro projekt knihovny androidu (False
nebo není k dispozici).
V balíčku pro Android může být pouze jeden projekt s <AndroidApplication>True</AndroidApplication>
balíčkem. (Tento požadavek bohužel není ověřený, což může vést k drobným a bizarním chybám v souvislosti s prostředky Androidu.)
AndroidApplicationJavaClass
Úplný název třídy Java, který se má použít místo android.app.Application
, když třída dědí z Android.App.Application.
Vlastnost $(AndroidApplicationJavaClass)
je obecně nastavena jinými vlastnostmi, například $(AndroidEnableMultiDex)
MSBuild vlastnost.
Přidáno v Xamarin.Android 6.1.
AndroidBinUtilsPath
Cesta k adresáři obsahujícímu binutily Androidu, jako ld
je nativní linker a as
nativní assembler. Tyto nástroje jsou součástí instalace Xamarin.Android.
Výchozí hodnota je $(MonoAndroidBinDirectory)\binutils\bin\
.
Přidáno v Xamarin.Android 10.0.
AndroidBoundExceptionType
Řetězcová hodnota, která určuje, jak se mají výjimky rozšířit, když typ poskytnutý Xamarin.Android implementuje typ nebo rozhraní .NET z hlediska typů Javy, například Android.Runtime.InputStreamInvoker
a , System.IO.Stream
nebo Android.Runtime.JavaDictionary
a a .System.Collections.IDictionary
Java
: Původní typ výjimky Java se rozšíří tak, jak je.Java
znamená, že například neimplementuje správně rozhraní API,InputStreamInvoker
protožeJava.IO.IOException
může být vyvolána místoSystem.IO.IOException
Stream.Read()
.System.IO.Stream
Java
je chování šíření výjimek ve všech verzích Xamarin.Android, včetně Xamarin.Android 13.0.System
: Původní typ výjimky Java je zachycen a zabalen do příslušného typu výjimky .NET.System
znamená,InputStreamInvoker
že například správně implementujeSystem.IO.Stream
aStream.Read()
nevyvoláJava.IO.IOException
instance. (Místo toho může vyvolatSystem.IO.IOException
obsahující hodnotuJava.IO.IOException
Exception.InnerException
.)System
je výchozí hodnota v .NET 6.0.
Přidáno v Xamarin.Android 10.2.
AndroidBoundInterfacesContainConstants
Logická vlastnost, která určuje, zda budou vazby konstanty v rozhraních podporovány, nebo alternativní řešení vytvoření IMyInterfaceConsts
třídy bude použito.
Výchozí hodnota je True
v .NET 6 a False
pro starší verzi.
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
Logická vlastnost, která zda výchozí a statické členy v rozhraních budou podporovány, nebo staré alternativní řešení vytvoření třídy na stejné úrovni obsahující statické členy jako abstract class MyInterface
.
Výchozí hodnota je True
v .NET 6 a False
pro starší verzi.
AndroidBoundInterfacesContainTypes
Logická vlastnost, která určuje, zda typy vnořené do rozhraní budou podporovány, nebo alternativní řešení pro vytvoření nenořeného typu, jako je IMyInterfaceMyNestedClass
.
Výchozí hodnota je True
v .NET 6 a False
pro starší verzi.
AndroidBuildApplicationPackage
Logická hodnota označující, jestli se má balíček vytvořit a podepsat (.apk). Nastavení této hodnoty na True
ekvivalent použití SignAndroidPackage
cíl sestavení.
Podpora této vlastnosti byla přidána po Xamarin.Android 7.1.
Tato vlastnost je False
ve výchozím nastavení.
AndroidBundleConfigurationFile
Určuje název souboru, který se má použít jako konfigurační soubor při bundletool
vytváření sady aplikací pro Android. Tento soubor řídí některé aspekty generování sad AKS ze sady, jako jsou například dimenze, které je sada rozdělena tak, aby vytvářela sady API.
Xamarin.Android nakonfiguruje některá z těchto nastavení automaticky, včetně seznamu přípon souborů, které se mají nechat nekomprimované.
Tato vlastnost je relevantní pouze v případě, že $(AndroidPackageFormat)
je nastavena na aab
hodnotu .
Přidáno v Xamarin.Android 10.3.
AndroidBundleToolExtraArgs
Určuje možnosti příkazového řádku, které se mají předat příkazu bundletool při sestavování sad aplikací.
Tato vlastnost byla přidána v Xamarin.Android 11.3.
AndroidClassParser
Řetězcová vlastnost, která řídí způsob .jar
analýzy souborů. Možné hodnoty zahrnují:
class-parse: Používá
class-parse.exe
k přímému parsování bajtového kódu Java bez pomoci JVM.jar2xml: Slouží k extrakci typů a členů ze
.jar
souboru pomocíjar2xml.jar
reflexe Jazyka Java.
Výhody oproti class-parse
jar2xml
tomu jsou:
class-parse
může extrahovat názvy parametrů z bajtového kódu Jazyka Java obsahující symboly ladění (bajtcode zkompilován pomocíjavac -g
).class-parse
nepřekočuje třídy, které dědí nebo obsahují členy nerozpoznatelných typů.
Přidáno v Xamarin.Android 6.0.
Výchozí hodnota je jar2xml
ve starší verzi Xamarin.Android a class-parse
v .NET 6 a vyšší.
jar2xml
Podpora je zastaralá a jar2xml
je odebrána v .NET 6.
AndroidCodegenTarget
Řetězcová vlastnost, která řídí cílovou ABI generování kódu. Možné hodnoty zahrnují:
XamarinAndroid: Používá rozhraní API vazby JNI od Mono pro Android 1.0. Vazbové sestavení sestavená pomocí Xamarin.Android 5.0 nebo novějšího se můžou spouštět pouze v Xamarin.Android 5.0 nebo novějších (přidání rozhraní API/ABI), ale zdroj je kompatibilní s předchozími verzemi produktu.
XAJavaInterop1: Pro vyvolání JNI použijte Java.Interop. Vazby sestavení, které používají
XAJavaInterop1
, lze sestavit a spustit pouze pomocí Xamarin.Android 6.1 nebo novější. Xamarin.Android 6.1 a novější vytvoří vazbuMono.Android.dll
s touto hodnotou.
Mezi výhody XAJavaInterop1
patří:
Menší sestavení.
jmethodID
ukládání do mezipaměti probase
vyvolání metod, pokud jsou všechny ostatní typy vazeb v hierarchii dědičnosti sestaveny s nebo novějšímXAJavaInterop1
.jmethodID
ukládání konstruktorů Callable Wrapper jazyka Java do mezipaměti pro spravované podtřídy
Výchozí hodnota je XAJavaInterop1
.
XamarinAndroid
Podpora je zastaralá a podpora XamarinAndroid
bude odebrána jako součást rozhraní .NET 6.
AndroidCreatePackagePerAbi
Logická vlastnost, která určuje, zda je sada souborů --1 na ABI zadaný v $(AndroidSupportedAbis)
--by měla být vytvořena místo podpory pro všechny ABI v jediné .apk
.
Projděte si také průvodce vytvářením sad ABI API specifických pro ABI.
AndroidCreateProguardMappingFile
Logická vlastnost, která řídí, zda je soubor mapování proguard generován jako součást procesu sestavení.
Přidáním následujícího příkazu do souboru csproj se vygeneruje soubor a vlastnost použije AndroidProguardMappingFile
k řízení umístění konečného souboru mapování.
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
Při vytváření .aab
souborů se soubor mapování automaticky zahrne do balíčku. Není nutné ho ručně nahrát do Obchodu Google Play. Pokud používáte .apk
soubory, bude potřeba je AndroidProguardMappingFile
nahrát ručně.
Výchozí hodnota je True
při použití $(AndroidLinkTool)
=r8.
Přidáno v Xamarin.Android 12.3.
AndroidDebugKeyAlgorithm
Určuje výchozí algoritmus, který se má použít pro debug.keystore
. Výchozí hodnota je RSA
.
AndroidDebugKeyValidity
Určuje výchozí platnost, která se má použít pro debug.keystore
. Výchozí hodnota je 10950
nebo 30 * 365
30 years
.
AndroidDebugStoreType
Určuje formát souboru úložiště klíčů, který se má použít pro soubor debug.keystore
. Výchozí hodnota je pkcs12
.
Přidáno v Xamarin.Android 10.2.
AndroidDeviceUserId
Umožňuje nasazení a ladění aplikace v rámci hosta nebo pracovních účtů. Hodnota je uid
hodnota, kterou získáte z následujícího příkazu adb:
adb shell pm list users
Výše uvedený příkaz vrátí následující data:
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
Jedná se uid
o první celočíselnou hodnotu. Ve výše uvedeném výstupu jsou 0
a 10
.
Vlastnost $(AndroidDeviceUserId)
byla přidána v Xamarin.Android 11.2.
AndroidDexTool
Vlastnost ve stylu výčtu s platnými hodnotami dx
nebo d8
. Označuje, který kompilátor Android dex se používá během procesu sestavení Xamarin.Android.
Výchozí hodnota je dx
. Viz naše dokumentace k D8 a R8.
AndroidEnableDesugar
Logická vlastnost, která určuje, zda desugar
je povolena. Android v současné době nepodporuje všechny funkce Javy 8 a výchozí sada nástrojů implementuje nové jazykové funkce provedením transformací bajtového kódu volaného desugar
na výstup kompilátoru javac
. Výchozí hodnota jeFalse
, pokud používáte $(AndroidDexTool)=dx
a True
pokud používáte=$(AndroidDexTool)
d8
.
AndroidEnableGooglePlayStoreChecks
Logická vlastnost, která vývojářům umožňuje zakázat následující kontroly obchodu Google Play: XA1004, XA1005 a XA1006. Zakázání těchto kontrol je užitečné pro vývojáře, kteří necílili na Google Play Store a nechtějí tyto kontroly spouštět.
Přidáno v Xamarin.Android 9.4.
AndroidEnableMultiDex
Logická vlastnost, která určuje, zda více-dex podpora bude použita v konečném .apk
.
Podpora této vlastnosti byla přidána v Xamarin.Android 5.1.
Tato vlastnost je False
ve výchozím nastavení.
AndroidEnablePreloadAssemblies
Logická vlastnost, která řídí, zda jsou všechna spravovaná sestavení seskupená v balíčku aplikace načtena během spouštění procesu, nebo ne.
Pokud je nastavena hodnota True
, budou všechna sestavení, která jsou součástí balíčku aplikace, načtena během spouštění procesu před vyvoláním kódu aplikace.
Předběžné načtení sestavení je to, co Xamarin.Android dělá.
Pokud je nastavena hodnota False
, sestavení budou načtena pouze podle potřeby.
Načítání sestavení podle potřeby umožňuje spouštění aplikací rychleji a je také konzistentnější s sémantikou .NET pro stolní počítače.
Pokud chcete zobrazit časové úspory, nastavte debug.mono.log
vlastnost Systému tak, aby zahrnovala timing
, a vyhledejte Finished loading assemblies: preloaded
zprávu v rámci adb logcat
.
Aplikace nebo knihovny, které používají injektáž závislostí, mohou vyžadovat , aby tato vlastnost byla True
nakonec vyžadována, aby AppDomain.CurrentDomain.GetAssemblies()
vrátila všechna sestavení v rámci sady aplikací, i když by jinak sestavení nebylo potřeba.
Ve výchozím nastavení se tato hodnota nastaví pro True
Xamarin.Android a nastaví se na False
buildy .NET 6 nebo novější.
Přidáno v Xamarin.Android 9.2.
AndroidEnableProfiledAot
Logická vlastnost, která určuje, zda se profily AOT používají během kompilace Ahead-of-Time.
Profily jsou uvedené v části @(AndroidAotProfile)
skupina položek. Tato skupina ItemGroup obsahuje výchozí profily. Můžete ho přepsat odebráním existujících profilů AOT a přidáním vlastních profilů AOT.
Podpora této vlastnosti byla přidána v Xamarin.Android 9.4.
Tato vlastnost je False
ve výchozím nastavení.
AndroidEnableSGenConcurrent
Logická vlastnost, která určuje, zda se bude používat souběžný kolektor uvolňování paměti Mono nebo ne.
Podpora této vlastnosti byla přidána v Xamarin.Android 7.2.
Tato vlastnost je False
ve výchozím nastavení.
AndroidErrorOnCustomJavaObject
Logická vlastnost, která určuje, zda typy mohou implementovat Android.Runtime.IJavaObject
bez dědění z Java.Lang.Object
nebo Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
Pokud ano, tyto typy vygenerují chybu XA4212, jinak se vygeneruje upozornění XA4212.
Podpora této vlastnosti byla přidána v Xamarin.Android 8.1.
Tato vlastnost je True
ve výchozím nastavení.
AndroidExplicitCrunch
Xamarin.Android 11.0 se už nepodporuje.
AndroidExtraAotOptions
Řetězcová vlastnost, která umožňuje předávání možností mono kompilátoru během Aot
úkolu pro projekty, které jsou buď $(AndroidEnableProfiledAot)
nebo $(AotAssemblies)
nastaveny na true
.
Řetězcová hodnota vlastnosti se přidá do souboru odpovědi při volání mono křížového kompilátoru.
Obecně platí, že tato vlastnost by měla zůstat prázdná, ale v určitých speciálních scénářích může poskytovat užitečnou flexibilitu.
Vlastnost $(AndroidExtraAotOptions)
se liší od související $(AndroidAotAdditionalArguments)
vlastnosti; $(AndroidAotAdditionalArguments)
umístí argumenty oddělené čárkami do --aot
možnosti mono kompilátoru. $(AndroidExtraAotOptions)
místo toho předá úplné samostatné možnosti oddělené mezerami, jako --verbose
je nebo --debug
kompilátor.
Přidáno v Xamarin.Android 10.2.
AndroidFastDeploymentType
Seznam :
hodnot oddělených dvojtečkami pro řízení typů, které lze nasadit do adresáře Rychlé nasazení na cílovém zařízení, když $(EmbedAssembliesIntoApk)
je False
vlastnost MSBuild . Pokud je prostředek rychle nasazený, není vložen do vygenerovaného .apk
prostředku, což může urychlit dobu nasazení. (Čím více je rychle nasazeno, tím méně často .apk
je potřeba znovu vytvořit a proces instalace může být rychlejší.) Mezi platné hodnoty patří:
Assemblies
: Nasaďte sestavení aplikace.Dexes
: Nasaďte.dex
soubory, nativní knihovny a mapování typů. HodnotuDexes
je možné použít jenom na zařízeních s Androidem 4.4 nebo novějším (API-19).
Výchozí hodnota je Assemblies
.
Podpora pro rychlé nasazování prostředků a prostředků prostřednictvím daného systému byla odebrána v commit f0d565fe. Důvodem bylo to, že vyžadovalo, aby fungovalo zastaralé rozhraní API.
Experimentální. Tato vlastnost byla přidána v Xamarin.Android 6.1.
AndroidFragmentType
Určuje výchozí plně kvalifikovaný typ, který se má použít pro všechny <fragment>
prvky rozložení při generování kódu vazby rozložení. Výchozí hodnota je standardní typ Androidu Android.App.Fragment
.
AndroidGenerateJniMarshalMethods
Logická vlastnost, která umožňuje generování metod zařazování JNI v rámci procesu sestavení. Tím se výrazně sníží System.Reflection
využití v pomocném kódu vazby.
Výchozí hodnota je False
. Pokud chtějí vývojáři používat novou funkci metod zařazování JNI, můžou nastavit
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
v jejich .csproj
. Alternativně zadejte vlastnost na příkazovém řádku prostřednictvím
/p:AndroidGenerateJniMarshalMethods=True
Experimentální. Přidáno v Xamarin.Android 9.2.
Výchozí hodnota je False
.
AndroidGenerateJniMarshalMethodsAdditionalArguments
Řetězcová vlastnost, která se dá použít k přidání parametrů do jnimarshalmethod-gen.exe
vyvolání, a je užitečná pro ladění, aby se mohly použít možnosti, jako -v
je , -d
nebo --keeptemp
lze použít.
Výchozí hodnota je prázdný řetězec. Dá se nastavit v .csproj
souboru nebo na příkazovém řádku. Příklad:
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
nebo:
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
Přidáno v Xamarin.Android 9.2.
AndroidGenerateLayoutBindings
Umožňuje generování kódu rozložení, pokud je nastaveno true
nebo zcela zakázáno, pokud je nastaveno na false
. Výchozí hodnota je false
.
AndroidGenerateResourceDesigner
Výchozí hodnota je true
. Pokud je nastavená hodnota false
, zakáže generování .Resource.designer.cs
Přidáno v .NET 6 RC 1. Xamarin.Android se nepodporuje.
AndroidHttpClientHandlerType
Řídí výchozí System.Net.Http.HttpMessageHandler
implementaci, která bude použita výchozím konstruktorem System.Net.Http.HttpClient
. Hodnota je název typu kvalifikovaného HttpMessageHandler
sestavení podtřídy vhodné pro použití s System.Type.GetType(string)
.
Nejběžnějšími hodnotami pro tuto vlastnost jsou:
Xamarin.Android.Net.AndroidClientHandler
: K provádění síťových požadavků použijte rozhraní API Pro Android Java. Použití rozhraní JAVA API umožňuje přístup k adresám URL protokolu TLS 1.2, pokud základní verze Androidu podporuje protokol TLS 1.2. Pouze Android 5.0 a novější spolehlivě poskytují podporu protokolu TLS 1.2 prostřednictvím Javy.Odpovídá možnosti Androidu na stránkách vlastností sady Visual Studio a možnost AndroidClientHandler na stránkách vlastností Visual Studio pro Mac.
Průvodce novým projektem vybere tuto možnost pro nové projekty, pokud je minimální verze Androidu nakonfigurovaná na Android 5.0 (Lollipop) nebo vyšší v sadě Visual Studio nebo když cílové platformy jsou v Visual Studio pro Mac nastaveny na Nejnovější a Nejlepší.
Zrušení nastavení nebo prázdného řetězce, který je ekvivalentní
System.Net.Http.HttpClientHandler, System.Net.Http
Odpovídá výchozí možnosti na stránkách vlastností sady Visual Studio.
Průvodce novým projektem vybere tuto možnost pro nové projekty, pokud je minimální verze Androidu nakonfigurovaná na Android 4.4.87 nebo nižší v sadě Visual Studio nebo když je cílové platformy nastavené na moderní vývoj nebo maximální kompatibilitu v Visual Studio pro Mac.
System.Net.Http.HttpClientHandler, System.Net.Http
: Použijte spravovanouHttpMessageHandler
.Odpovídá spravované možnosti na stránkách vlastností sady Visual Studio.
Poznámka:
Pokud je podpora protokolu TLS 1.2 vyžadována ve verzích Androidu starších než 5.0 nebo pokud se vyžaduje podpora protokolu TLS 1.2 s rozhraními System.Net.WebClient
API a souvisejícími rozhraními API, $(AndroidTlsProvider)
měla by se použít.
Poznámka:
$(AndroidHttpClientHandlerType)
Podpora vlastnosti funguje nastavením XA_HTTP_CLIENT_HANDLER_TYPE
proměnné prostředí.
Hodnota $XA_HTTP_CLIENT_HANDLER_TYPE
nalezená v souboru s akcí sestavení @(AndroidEnvironment)
bude mít přednost.
Přidáno v Xamarin.Android 6.1.
AndroidIncludeWrapSh
Logická hodnota, která označuje, zda se má obálkový skript androidu (wrap.sh
) zabalit do APK. Výchozí hodnota je false
, že skript obálky může významně ovlivnit způsob spuštění aplikace a funguje a skript by měl být zahrnut pouze v případě potřeby, například při ladění nebo jiné změně chování při spuštění/modulu runtime aplikace.
Skript se přidá do projektu pomocí @(AndroidNativeLibrary)
akce sestavení, protože je umístěna ve stejném adresáři jako nativní knihovny specifické pro architekturu a musí být pojmenována wrap.sh
.
Nejjednodušší způsob, jak zadat cestu ke wrap.sh
skriptu, je umístit ji do adresáře pojmenovaného po cílové architektuře. Tento přístup bude fungovat, pokud máte jenom jednu wrap.sh
architekturu:
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
Pokud ale váš projekt potřebuje více než jednu wrap.sh
architekturu pro různé účely, tento přístup nebude fungovat.
Místo toho lze v takových případech zadat název pomocí Link
metadat:AndroidNativeLibrary
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Link
Pokud se metadata používají, cesta zadaná v jeho hodnotě musí být platná cesta knihovny specifická pro nativní architekturu vzhledem ke kořenovému adresáři APK. Formát cesty je lib\ARCH\wrap.sh
místo, kde ARCH
může být jedna z těchto možností:
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
Určuje, jak se mají při importu dokumentace Javadoc v rámci vazeb projektů provádět podrobné komentáře dokumentace jazyka C# XML.
Vyžaduje použití @(JavaSourceJar)
akce sestavení.
Vlastnost $(AndroidJavadocVerbosity)
je výčtová, s možnými hodnotami full
nebo intellisense
:
intellisense
: Vygenerujte pouze komentáře XML:<exception/>
,<param/>
<returns/>
, ,<summary/>
.full
: Generovatintellisense
prvky, stejně<remarks/>
jako ,<seealso/>
a cokoli jiného, co je podporováno.
Výchozí hodnota je intellisense
.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AndroidKeyStore
Logická hodnota označující, jestli se mají použít vlastní podpisové informace. Výchozí hodnota je False
, což znamená, že výchozí ladicí klíč se použije k podepisování balíčků.
AndroidLaunchActivity
Aktivita Androidu, která se má spustit.
AndroidLinkMode
Určuje, jaký typ propojení se má provést u sestavení obsažených v balíčku Android. Používá se jenom v projektech aplikací pro Android. Výchozí hodnota je SdkOnly. Platné hodnoty jsou:
Žádné: Nepokusí se žádné propojení.
SdkOnly: Propojení se provede pouze v knihovnách základních tříd, nikoli v sestaveních uživatele.
Úplné: Propojení se provede v knihovnách základních tříd a uživatelských sestaveních.
Poznámka:
AndroidLinkMode
Použití hodnoty Full často vede k nefunkčním aplikacím, zejména při použití reflexe. Vyhněte se, pokud opravdu nevíte, co děláte.
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkResources
Když true
systém sestavení propojí vnořené typy Resource.Designer.cs Resource
třídy ve všech sestaveních. Kód IL, který tyto typy používá, se aktualizuje tak, aby místo přístupu k polím používal hodnoty přímo.
Propojení vnořených typů může mít malý dopad na snížení velikosti apk a může také pomoct s výkonem při spuštění. Propojené jsou pouze buildy Release.
Experimentální. Navržené pouze pro práci s kódem, jako je například
var view = FindViewById(Resources.Ids.foo);
Nebudou podporovány žádné jiné scénáře (například reflexe).
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3
AndroidLinkSkip
Určuje seznam názvů sestavení oddělených středníkem (;
) bez přípon souborů sestavení, která by neměla být propojena. Používá se jenom v rámci projektů aplikací pro Android.
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
Vlastnost ve stylu výčtu s platnými hodnotami proguard
nebo r8
. Určuje, který zmenšovač kódu se používá pro kód Java. Výchozí hodnota je prázdný řetězec, nebo proguard
pokud $(AndroidEnableProguard)
je True
. Viz naše dokumentace k D8 a R8.
AndroidLintEnabled
Logická vlastnost, která umožňuje vývojáři spustit nástroj android lint
jako součást procesu balení.
Pokud $(AndroidLintEnabled)
=True, použijí se následující vlastnosti:
Můžete také použít následující akce sestavení:
Další podrobnosti o nástrojích androidu najdete v nápovědě k Lintlint
.
AndroidLintEnabledIssues
Řetězcová vlastnost, která je seznamem problémů lint oddělených čárkami, které se mají povolit.
Používá se pouze v případech, kdy $(AndroidLintEnabled)
=True.
AndroidLintDisabledIssues
Řetězcová vlastnost, která je seznamem problémů lint oddělených čárkami, které se mají zakázat.
Používá se pouze v případech, kdy $(AndroidLintEnabled)
=True.
AndroidLintCheckIssues
Řetězcová vlastnost, která je čárkami oddělený seznam problémů lint ke kontrole.
Používá se pouze v případech, kdy $(AndroidLintEnabled)
=True.
Poznámka: Zkontroluje se pouze tyto problémy.
AndroidManagedSymbols
Logická vlastnost, která řídí, zda se generují sekvenční body, aby bylo možné extrahovat informace o názvu souboru a čísle řádku ze Release
trasování zásobníku.
Přidáno v Xamarin.Android 6.1.
AndroidManifest
Určuje název souboru, který se má použít jako šablona aplikace AndroidManifest.xml
.
Během sestavení se všechny ostatní nezbytné hodnoty sloučí do vytvoření skutečné AndroidManifest.xml
hodnoty .
Musí $(AndroidManifest)
obsahovat název balíčku v atributu /manifest/@package
.
AndroidManifestMerger
Určuje implementaci slučování AndroidManifest.xml souborů. Toto je vlastnost výčtu, kde legacy
vybere původní implementaci jazyka C# a manifestmerger.jar
vybere implementaci Javy Od Googlu.
Výchozí hodnota je nyní legacy
. To se změní na manifestmerger.jar
budoucí verzi, aby odpovídalo chování se sadou Android Studio.
Fúze Společnosti Google umožňuje podporu, xmlns:tools="http://schemas.android.com/tools"
jak je popsáno v dokumentaci k Androidu.
Představeno v Xamarin.Android 10.2
AndroidManifestMergerExtraArgs
Řetězcová vlastnost, která poskytuje argumenty nástroji pro dokumentaci pro Android.
Pokud chcete podrobný výstup z nástroje, můžete do tohoto .csproj
nástroje přidat následující .
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Představeno v Xamarin.Android 11.x
AndroidManifestType
Vlastnost ve stylu výčtu s platnými hodnotami Xamarin
nebo GoogleV2
.
Toto řízení, které úložiště používá InstallAndroidDependencies
cílem určit, které balíčky a verze balíčků Pro Android jsou k dispozici a které je možné nainstalovat.
Xamarin
je úložiště Schválené seznamy (doporučeno) ve Správci sady Visual Studio SDK.
GoogleV2
je úplné úložiště seznamu (nepodporované) ve Správci sady Visual Studio SDK.
Přidáno v Xamarin.Android 13.0. V Xamarin.Android 13.0, pokud $(AndroidManifestType)
není nastaven, se použije Xamarin
.
Před Xamarin.Android 13.0 $(AndroidManifestType)
nastavení nemá žádný vliv a GoogleV2
používá se.
AndroidManifestPlaceholders
Seznam párů nahrazení klíč-hodnota oddělený středníkem pro AndroidManifest.xml, kde má každý pár formát key=value
.
Například hodnota assemblyName=$(AssemblyName)
vlastnosti definuje ${assemblyName}
zástupný symbol, který se pak může zobrazit v AndroidManifest.xml:
<application android:label="${assemblyName}"
To poskytuje způsob, jak vložit proměnné z procesu sestavení do souboru AndroidManifest.xml .
AndroidMultiDexClassListExtraArgs
Řetězcová vlastnost, která vývojářům com.android.multidex.MainDexListBuilder
umožňuje předávat argumenty při generování multidex.keep
souboru.
Jedním konkrétním případem je, že se během dx
kompilace zobrazuje následující chyba.
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
Pokud se zobrazí tato chyba, můžete do souboru .csproj
.
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
což umožní dx
úspěšné dokončení kroku.
Přidáno v Xamarin.Android 8.3.
AndroidPackageFormat
Vlastnost ve stylu výčtu s platnými hodnotami apk
nebo aab
. Označuje, jestli chcete zabalit aplikaci pro Android jako soubor APK nebo sadu aplikací pro Android. Sady aplikací jsou nový formát buildů Release
, které jsou určené k odeslání na Google Play. Výchozí hodnota je apk
.
Pokud $(AndroidPackageFormat)
je nastavena hodnota aab
, jsou nastaveny další vlastnosti NÁSTROJE MSBuild, které jsou požadovány pro sady aplikací pro Android:
$(AndroidUseAapt2)
jeTrue
.$(AndroidUseApkSigner)
jeFalse
.$(AndroidCreatePackagePerAbi)
jeFalse
.
Tato vlastnost bude pro .net 6 zastaralá. Uživatelé by měli přepnout na novější AndroidPackageFormats
.
AndroidPackageFormats
Středník oddělená vlastnost s platnými hodnotami apk
a aab
.
Označuje, jestli chcete zabalit aplikaci pro Android jako soubor APK nebo sadu aplikací pro Android. Sady aplikací jsou nový formát buildů Release
, které jsou určené k odeslání na Google Play.
Při vytváření buildu vydané verze můžete chtít vygenerovat obojí i aab
apk
distribuci do různých úložišť.
Nastavení AndroidPackageFormats
tak, aby aab;apk
se vygenerovalo obojí. Nastavení AndroidPackageFormats
na jeden aab
nebo apk
vygeneruje pouze jeden soubor.
Pro .net 6 AndroidPackageFormats
bude nastavena aab;apk
pouze pro Release
sestavení. Doporučujeme používat pouze apk
pro ladění.
Pro starší verze Xamarin.Android Výchozí hodnota je ""
.
V důsledku toho starší verze Xamarin.Android ve výchozím nastavení nevygeneruje obě verze jako součást sestavení verze. Pokud chce uživatel vytvořit oba výstupy, bude muset v Release
konfiguraci definovat následující.
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
Pokud ji máte, budete také muset existující konfiguraci odebrat AndroidPackageFormat
.
Přidáno v Xamarin.Android 11.5.
AndroidPackageNamingPolicy
Vlastnost ve stylu výčtu pro zadání názvů balíčků Java vygenerovaného zdrojového kódu Java.
V Xamarin.Android 10.2 a novějších je LowercaseCrc64
jediná podporovaná hodnota .
V Xamarin.Android 10.1 byla k dispozici také přechodná LowercaseMD5
hodnota, která umožňovala přepnutí zpět na původní styl názvu balíčku Java, jak se používá v Xamarin.Android 10.0 a dřívějších verzích. Tato možnost byla odebrána v Xamarin.Android 10.2, aby se zlepšila kompatibilita s prostředími sestavení s vynuceným dodržováním předpisů FIPS.
Přidáno v Xamarin.Android 10.1.
AndroidProguardMappingFile
Určuje -printmapping
pravidlo strážce pro r8
. To znamená, mapping.txt
že se soubor vytvoří ve $(OutputPath)
složce. Tento soubor pak můžete použít při nahrávání balíčků do Obchodu Google Play.
Ve výchozím nastavení se tento soubor vytvoří automaticky při použití AndroidLinkTool=r8
a vygeneruje následující soubor $(OutputPath)mapping.txt
.
Pokud nechcete vygenerovat tento soubor mapování, můžete tuto vlastnost použít AndroidCreateProguardMappingFile
k zastavení jeho vytváření .
Přidejte do projektu následující:
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
nebo použijte -p:AndroidCreateProguardMappingFile=False
na příkazovém řádku.
Tato vlastnost byla přidána v Xamarin.Android 11.2.
AndroidR8IgnoreWarnings
Určuje -ignorewarnings
pravidlo strážce pro r8
. To umožňuje r8
pokračovat v kompilaci dex, i když jsou zjištěna určitá upozornění. Výchozí hodnota je True
, ale může být nastavena tak, aby False
vynucovat přísnější chování. Podrobnosti najdete v příručce ProGuard.
Přidáno v Xamarin.Android 10.3.
AndroidR8JarPath
Cesta k r8.jar
použití s kompilátorem r8 dex-compiler a zmenšení. Výchozí hodnota je cesta v instalaci Xamarin.Android. Další informace najdete v naší dokumentaci k D8 a R8.
AndroidResgenExtraArgs
Určuje možnosti příkazového řádku, které se mají předat příkazu aapt při zpracování prostředků a prostředků Androidu.
AndroidResgenFile
Určuje název souboru prostředků, který se má vygenerovat. Výchozí šablona tuto možnost nastaví na Resource.designer.cs
.
AndroidSdkBuildToolsVersion
Balíček nástrojů pro sestavení sady Android SDK nabízí mimo jiné nástroje aapt a zipalign . Současně může být nainstalováno několik různých verzí balíčku build-tools. Balíček build-tools zvolený pro balení se provádí kontrolou a použitím "upřednostňované" verze build-tools, pokud je k dispozici; pokud není k dispozici "upřednostňovaná" verze, použije se balíček build-tools s nejvyšší verzí.
Vlastnost $(AndroidSdkBuildToolsVersion)
MSBuild obsahuje upřednostňovanou verzi build-tools. Systém sestavení Xamarin.Android poskytuje výchozí hodnotu Xamarin.Android.Common.targets
a výchozí hodnota může být přepsána v souboru projektu a zvolit alternativní verzi build-tools, pokud (například) nejnovější verze aaptu dojde k chybovému ukončení, zatímco předchozí verze aaptu je známo, že funguje.
AndroidSigningKeyAlias
Určuje alias klíče v úložišti klíčů. Toto je hodnota aliasu keytool - alias použitá při vytváření úložiště klíčů.
AndroidSigningKeyPass
Určuje heslo klíče v souboru úložiště klíčů. Toto je hodnota zadaná při keytool
zadání hesla klíče pro $(AndroidSigningKeyAlias).
V Xamarin.Android 10.0 a starších verzích tato vlastnost podporuje pouze hesla ve formátu prostého textu.
V Xamarin.Android 10.1 a novějších podporuje tato vlastnost také env:
a file:
předpony, které lze použít k zadání proměnné prostředí nebo souboru, který obsahuje heslo. Tyto možnosti poskytují způsob, jak zabránit zobrazení hesla v protokolech sestavení.
Pokud například chcete použít proměnnou prostředí s názvem AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
Chcete-li použít soubor umístěný v C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Poznámka:
Předpona není podporována env:
, pokud $(AndroidPackageFormat)
je nastavena na aab
hodnotu .
AndroidSigningKeyStore
Určuje název souboru úložiště klíčů, který keytool
vytvořil . To odpovídá hodnotě poskytnuté parametru keytool -keystore .
AndroidSigningStorePass
Určuje heslo pro $(AndroidSigningKeyStore)
.
Toto je hodnota zadaná keytool
při vytváření souboru úložiště klíčů a požádala o zadání hesla úložiště klíčů:.
V Xamarin.Android 10.0 a starších verzích tato vlastnost podporuje pouze hesla ve formátu prostého textu.
V Xamarin.Android 10.1 a novějších podporuje tato vlastnost také env:
a file:
předpony, které lze použít k zadání proměnné prostředí nebo souboru, který obsahuje heslo. Tyto možnosti poskytují způsob, jak zabránit zobrazení hesla v protokolech sestavení.
Pokud například chcete použít proměnnou prostředí s názvem AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
Chcete-li použít soubor umístěný v C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Poznámka:
Předpona není podporována env:
, pokud $(AndroidPackageFormat)
je nastavena na aab
hodnotu .
AndroidSigningPlatformKey
Určuje soubor klíče, který se má použít k podepsání apk.
Používá se jenom při vytváření system
aplikací.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AndroidSigningPlatformCert
Určuje soubor certifikátu, který se má použít k podepsání apk.
Používá se jenom při vytváření system
aplikací.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AndroidSupportedAbis
Řetězcová vlastnost, která obsahuje středník (;
)oddělený seznam abI, které by měly být zahrnuty do .apk
.
Mezi podporované hodnoty patří:
armeabi-v7a
x86
arm64-v8a
: Vyžaduje Xamarin.Android 5.1 a novější.x86_64
: Vyžaduje Xamarin.Android 5.1 a novější.
AndroidTlsProvider
Řetězcová hodnota, která určuje, který zprostředkovatel TLS se má použít v aplikaci. Možné hodnoty jsou:
Unset/the empty string: In Xamarin.Android 7.3 and higher, this is equivalent to
btls
.V Xamarin.Android 7.1 je to ekvivalentní
legacy
.To odpovídá výchozímu nastavení na stránkách vlastností sady Visual Studio.
btls
: Použití boring SSL pro komunikaci TLS s HttpWebRequest.To umožňuje používat protokol TLS 1.2 ve všech verzích Androidu.
To odpovídá nativnímu nastavení TLS 1.2+ na stránkách vlastností sady Visual Studio.
legacy
: V Xamarin.Android 10.1 a starších použijte historickou spravovanou implementaci SSL pro interakci se sítí. To nepodporuje protokol TLS 1.2.To odpovídá nastavení spravovaného protokolu TLS 1.0 na stránkách vlastností sady Visual Studio.
V Xamarin.Android 10.2 a novějších verzích se tato hodnota ignoruje a použije se
btls
nastavení.default
: Tato hodnota není pravděpodobně použita v projektech Xamarin.Android. Doporučená hodnota, která se má použít místo toho, je prázdný řetězec, který odpovídá výchozímu nastavení na stránkách vlastností sady Visual Studio.Hodnota není nabízena
default
na stránkách vlastností sady Visual Studio.To je v současné době ekvivalentní
legacy
.
Přidáno v Xamarin.Android 7.1.
AndroidUseAapt2
Logická vlastnost, která umožňuje vývojáři řídit použití aapt2
nástroje pro balení.
Ve výchozím nastavení bude false a Xamarin.Android bude používat aapt
.
Pokud si vývojář přeje používat nové aapt2
funkce, přidejte:
<AndroidUseAapt2>True</AndroidUseAapt2>
v jejich .csproj
. Alternativně zadejte vlastnost na příkazovém řádku:
/p:AndroidUseAapt2=True
Tato vlastnost byla přidána v Xamarin.Android 8.3. Nastavení AndroidUseAapt2
je false
zastaralé v Xamarin.Android 11.2.
AndroidUseApkSigner
Logická vlastnost, která umožňuje vývojáři používat apksigner
nástroj místo jarsigner
.
Přidáno v Xamarin.Android 8.2.
AndroidUseDefaultAotProfile
Logická vlastnost, která umožňuje vývojáři potlačit použití výchozích profilů AOT.
Chcete-li potlačit výchozí profily AOT, nastavte vlastnost na false
hodnotu .
Přidáno v Xamarin.Android 10.1.
AndroidUseInterpreter
Logická vlastnost, která způsobí .apk
, že obsahuje mono interpret, a ne normální JIT.
Experimentální.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AndroidUseLegacyVersionCode
Logická vlastnost, která umožňuje vývojáři vrátit výpočet versionCode zpět na původní chování Xamarin.Android 8.2. Tato možnost by se měla používat jenom pro vývojáře s existujícími aplikacemi v Obchodě Google Play. Důrazně doporučujeme použít novou $(AndroidVersionCodePattern)
vlastnost.
Přidáno v Xamarin.Android 8.2.
AndroidUseManagedDesignTimeResourceGenerator
Logická vlastnost, která přepne sestavení času návrhu tak, aby používala analyzátor spravovaných prostředků místo aapt
.
Přidáno v Xamarin.Android 8.1.
AndroidUseSharedRuntime
Logická vlastnost, která určuje, zda jsou sdílené balíčky modulu runtime vyžadovány ke spuštění aplikace na cílovém zařízení. Spoléhání na balíčky sdíleného modulu runtime umožňuje, aby byl balíček aplikace menší a urychlil proces vytváření a nasazení balíčku, což vede k rychlejšímu cyklu sestavení, nasazení a ladění.
Před Xamarin.Android 11.2 by tato vlastnost měla být True
určena pro sestavení ladění a False
pro projekty vydaných verzí.
Tato vlastnost byla odebrána v Xamarin.Android 11.2.
AndroidVersionCode
Vlastnost MSBuild, kterou lze použít jako alternativu AndroidManifest.xml
k /manifest/@android:versionCode
souboru. Chcete-li se přihlásit k této funkci, musíte také povolit <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Toto bude výchozí nastavení v .NET 6.
Tato vlastnost je ignorována, pokud $(AndroidCreatePackagePerAbi)
a $(AndroidVersionCodePattern)
jsou použity.
@android:versionCode
je celočíselná hodnota, která se musí zvýšit pro každou verzi Google Play. Další podrobnosti o požadavcích najdete /manifest/@android:versionCode
v dokumentaci k Androidu.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AndroidVersionCodePattern
Řetězcová vlastnost, která umožňuje vývojáři přizpůsobit versionCode
v manifestu.
Viz Vytvoření kódu verze pro APK informace o rozhodování versionCode
o .
Některé příklady, pokud abi
je armeabi
a versionCode
v manifestu je 123
, {abi}{versionCode}
vytvoří kód verze 1123
, pokud $(AndroidCreatePackagePerAbi)
je True, jinak vytvoří hodnotu 123.
Pokud abi
je a versionCode
x86_64
v manifestu je 44
. Tato hodnota se vytvoří 544
, pokud $(AndroidCreatePackagePerAbi)
je True, jinak vytvoří hodnotu 44
.
Pokud zahrneme řetězec {abi}{versionCode:0000}
formátu levého odsazení , vytvoří 50044
se, protože jsme ponecháni odsazením versionCode
0
. Alternativně můžete použít odsazení desetinných míst, například {abi}{versionCode:D4}
což se shoduje s předchozím příkladem.
Podporují se pouze řetězce formátu odsazení 0 a Dx, protože hodnota musí být celé číslo.
Předdefinované klíčové položky
abi – vloží cílenou abi pro aplikaci.
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK – vloží minimální podporovanou hodnotu sady SDK z
AndroidManifest.xml
definice nebo11
pokud není definována žádná.versionCode – používá kód verze přímo z
Properties\AndroidManifest.xml
.
Vlastní položky můžete definovat pomocí $(AndroidVersionCodeProperties)
vlastnosti (definované dále).
Ve výchozím nastavení bude hodnota nastavena na {abi}{versionCode:D6}
. Pokud chce vývojář zachovat staré chování, můžete výchozí nastavení přepsat nastavením vlastnosti na $(AndroidUseLegacyVersionCode)
true
Přidáno v Xamarin.Android 7.2.
AndroidVersionCodeProperties
Řetězcová vlastnost, která umožňuje vývojáři definovat vlastní položky, které se mají použít s objektem $(AndroidVersionCodePattern)
.
Jsou ve formě páru key=value
. Všechny položky v celé hodnotě value
by měly být celé číslo. Například: screen=23;target=$(_AndroidApiLevel)
. Jak vidíte, můžete použít existující nebo vlastní vlastnosti MSBuild v řetězci.
Přidáno v Xamarin.Android 7.2.
ApplicationId
Vlastnost MSBuild, kterou lze použít jako alternativu AndroidManifest.xml
k /manifest/@package
souboru. Chcete-li se přihlásit k této funkci, musíte také povolit <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Toto bude výchozí nastavení v .NET 6.
Další podrobnosti o požadavcích najdete /manifest/@package
v dokumentaci k Androidu.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
ApplicationTitle
Vlastnost MSBuild, kterou lze použít jako alternativu AndroidManifest.xml
k /manifest/application/@android:label
souboru. Chcete-li se přihlásit k této funkci, musíte také povolit <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Toto bude výchozí nastavení v .NET 6.
Další podrobnosti o požadavcích najdete /manifest/application/@android:label
v dokumentaci k Androidu.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
ApplicationVersion
Vlastnost MSBuild, kterou lze použít jako alternativu AndroidManifest.xml
k /manifest/@android:versionName
souboru. Chcete-li se přihlásit k této funkci, musíte také povolit <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Toto bude výchozí nastavení v .NET 6.
Další podrobnosti o požadavcích najdete /manifest/@android:versionName
v dokumentaci k Androidu.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
AotAssemblies
Logická vlastnost, která určuje, zda sestavení budou před časem zkompilována do nativního kódu a zahrnuta v .apk
souboru .
Podpora této vlastnosti byla přidána v Xamarin.Android 5.1.
Tato vlastnost je False
ve výchozím nastavení.
AProfUtilExtraOptions
Další možnosti pro předání aprofutil
.
BeforeGenerateAndroidManifest
Cíle nástroje MSBuild uvedené v této vlastnosti budou spuštěny přímo před _GenerateJavaStubs
.
Přidáno v Xamarin.Android 9.4.
Konfigurace
Určuje konfiguraci sestavení, která se má použít, například Ladit nebo Release. Vlastnost Configuration slouží k určení výchozích hodnot pro jiné vlastnosti, které určují chování cíle. V integrovaném vývojovém prostředí (IDE) se můžou vytvořit další konfigurace.
Ve výchozím nastaveníDebug
bude výsledkem konfiguraceInstall
a SignAndroidPackage
cílí na vytvoření menšího balíčku Pro Android, který vyžaduje, aby byly k provozu přítomny další soubory a balíčky.
Výchozí Release
konfigurace bude mít za následek Install
a SignAndroidPackage
cílí na vytvoření balíčku pro Android, který je samostatný a může být použit bez instalace jiných balíčků nebo souborů.
DebugSymbols
Logická hodnota, která určuje, zda je balíček Androidu laditelný v kombinaci s $(DebugType)
vlastností.
Laditelný balíček obsahuje symboly ladění, nastaví //application/@android:debuggable
atribut na true
a automaticky přidá INTERNET
oprávnění, aby se ladicí program mohl připojit k procesu. Aplikace je laděná, pokud DebugSymbols
je True
a DebugType
je buď prázdný řetězec, nebo Full
.
DebugType
Určuje typ symbolů ladění, které se mají vygenerovat jako součást sestavení, což má vliv také na to, jestli je aplikace laditelná. Možné hodnoty zahrnují:
Úplné: Vygenerují se úplné symboly. Pokud
DebugSymbols
Vlastnost MSBuild je takéTrue
, pak je balíček aplikace laděný.PdbOnly: Symboly PDB se generují. Balíček aplikace není možné ladit.
Pokud DebugType
není nastaven nebo je prázdný řetězec, vlastnost DebugSymbols
určuje, zda je aplikace laděná.
EmbedAssembliesIntoApk
Logická vlastnost, která určuje, zda mají být sestavení aplikace vložena do balíčku aplikace.
Tato vlastnost by měla být True
určena pro buildy vydané verze a False
pro sestavení ladění. Pokud rychlé nasazení nepodporuje cílové zařízení, může být potřeba v True
buildech ladění.
Pokud je False
tato vlastnost , pak $(AndroidFastDeploymentType)
Vlastnost MSBuild také řídí, co bude vloženo do .apk
, což může mít vliv na nasazení a opětovné sestavení časy.
EnableLLVM
Logická vlastnost, která určuje, zda llVM se použije při kompilaci sestavení předem do nativního kódu.
Aby bylo možné vytvořit projekt, který má tuto vlastnost povolenou, je nutné nainstalovat sadu Android NDK.
Podpora této vlastnosti byla přidána v Xamarin.Android 5.1.
Tato vlastnost je False
ve výchozím nastavení.
Tato vlastnost je ignorována, pokud $(AotAssemblies)
není True
vlastnost MSBuild .
EnableProguard
Logická vlastnost, která určuje, zda je proguard spuštěn jako součást procesu balení pro propojení kódu Java.
Podpora této vlastnosti byla přidána v Xamarin.Android 5.1.
Tato vlastnost je False
ve výchozím nastavení.
Když True
se k řízení proguard
provádění použijí soubory @(ProguardConfiguration).
GenerateApplicationManifest
Povolí nebo zakáže následující vlastnosti nástroje MSBuild, které generují hodnoty v konečném AndroidManifest.xml
souboru:
Výchozí hodnota $(GenerateApplicationManifest)
je true
v .NET 6 a false
ve starší verzi Xamarin.Android.
Podpora této vlastnosti byla přidána v Xamarin.Android 11.3.
JavaMaximumHeapSize
Určuje hodnotu hodnoty parametru Java-Xmx
, která se má použít při sestavování .dex
souboru v rámci procesu balení. Pokud není zadáno, -Xmx
pak možnost poskytuje javu s hodnotou 1G
. V porovnání s jinými platformami se zjistilo, že se to v systému Windows běžně vyžaduje.
Upravte hodnotu změnou:
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOptions
Určuje možnosti příkazového řádku, které se mají při sestavování .dex
souboru předat javě.
JarsignerTimestampAuthorityCertificateAlias
Tato vlastnost umožňuje zadat alias v úložišti klíčů pro autoritu časového razítka. Další podrobnosti najdete v dokumentaci podpory časového razítka podpisu Java.
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
Tato vlastnost umožňuje zadat adresu URL služby autority časového razítka. Můžete ho použít k zajištění toho, aby podpis .apk
obsahoval časové razítko.
Další podrobnosti najdete v dokumentaci podpory časového razítka podpisu Java.
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
Logická vlastnost, která umožňuje generování souboru závislostí linkeru. Tento soubor lze použít jako vstup pro nástroj illinkanalyzer .
Soubor závislostí s názvem linker-dependencies.xml.gz
je zapsán do adresáře projektu. Na. NET5/6 se zapíše vedle propojených sestavení v obj/<Configuration>/android<ABI>/linked
adresáři.
Výchozí hodnota je False.
MandroidI18n
Určuje podporu internacionalizace, která je součástí aplikace, například kolace a řazení tabulek. Hodnota je čárkami nebo středníkem odděleným seznamem jedné nebo více z následujících hodnot bez rozlišování velkých a malých písmen:
Žádné: Nezahrňte žádné další kódování.
Vše: Zahrňte všechny dostupné kódování.
CJK: Zahrnuje čínské, japonské a korejské kódování, jako je japonština (EUC) [enc-jp, CP51932], japonština (Shift-JIS) [iso-2022-jp, shift_jis, CP932], japonština (JIS) [CP50220], zjednodušená čínština (GB2312) [gb2312, CP936], korejština (UHC) [ks_c_5601-1987, CP949], korejština (EUC) [euc-kr, CP51949], tradiční čínština (Big5) [big5, CP950] a zjednodušená čínština (GB18030) [GB18030, CP54936].
MidEast: Zahrnout kódování blízkého východu, jako je turečtina (Windows) [iso-8859-9, CP1254], hebrejština (Windows) [windows-1255, CP1255], arabština (Windows) [windows-1256, CP1256], arabština (ISO) [iso-8859-6, CP28596], hebrejština (ISO) [iso-8859-8, CP28598], latinka 5 (ISO) [iso-8859-9, CP28599] a hebrejština (alternativní iso) [iso-8859-8, CP38598].
Jiné: Zahrnout jiné kódování, jako je cyrilice (Windows) [CP1251], Baltic (Windows) [iso-8859-4, CP1257], Vietnamština (Windows) [CP1258], cyrilice (KOI8-R) [koi8-r, CP1251], ukrajinština (KOI8-U) [koi8-u, CP1251], Baltic (ISO) [iso-8859-4, CP1257], cyrilice (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil 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] a Thai (Windows) [CP874].
Vzácné: Zahrnout vzácné kódování, jako je IBM EBCDIC (turečtina) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada with Euro) [CP1140], IBM EBCDIC (Německo s Euro) [CP1141], IBM EBCDIC (Dánsko/Norsko s euro) [CP1142], IBM EBCDIC (Finsko/Švédsko s euro) [CP1143], IBM EBCDIC (Itálie s Euro) [CP1144], IBM EBCDIC (Latin America/Spain with Euro) [CP1145], IBM EBCDIC (Spojené království s Euro) [CP1146], IBM EBCDIC (Francie s Euro) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Islandic with Euro) [CP1149], IBM EBCDIC (Ibm EBCDIC) [CP1149], IBM EBCDIC (International with Euro)DIC (Německo) [CP20273], IBM EBCDIC (Dánsko/Norsko) [CP20277], IBM EBCDIC (Finsko/Švédsko) [CP20278], IBM EBCDIC (Itálie) [CP20280], IBM EBCDIC (Latin America/Spain) [CP20284], IBM EBCDIC (United Kingdom) [CP20285], IBM EBCDIC (Japanese Katakana Extended) [CP20290], IBM EBCDIC (France) [CP20297], IBM EBCDIC (Arabic) [CP20420], IBM EBCDIC (Hebrejština) [CP20424], IBM EBCDIC (Islandic) [CP20871], IBM EBCDIC (Cyrillic - Srbština, Srbština, Bulharština) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (International) [CP500], arabština (ASMO 708) [CP708], [CP708], Středoevropský (DOS) [CP852], Cyrilice (DOS) [CP855], turečtina (DOS) [CP857], západní Evropa (DOS s euro) [CP858], hebrejština (DOS) [CP862], arabština (DOS) [CP8) [CP864], ruština (DOS) [CP866], řečtina (DOS) [CP869], IBM EBCDIC (latinka 2) [CP870] a IBM EBCDIC (řečtina) [CP875].
Západ: Zahrnout západní kódování, jako je západní Evropa (Mac) [macintosh, CP10000], islandský (Mac) [x-mac-islandský, CP10079], středoevropský (Windows) [iso-8859-2, CP1250], západní Evropa (Windows) [iso-8859-1, CP1252], řečtina (Windows) [iso-8859-7, CP1253], středoevropská (ISO) [iso-8859-2, CP28592], latinka 3 (ISO) [iso-8859-3, CP28593], řečtina (ISO) [iso-8859-7, CP28597], latinka 9 (ISO) [iso-8859-15, CP28605], OEM USA [CP437], Západní Evropa (DOS) [CP850], portugalština (DOS) [CP860], islandština (DOS) [CP861], francouzská kanadská (DOS) [CP863] a nordic (DOS) [CP865].
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
Určuje předponu cesty, která se odebere ze začátku názvů souborů pomocí akce Sestavení .AndroidResource
To umožňuje změnu umístění prostředků.
Výchozí hodnota je Resources
. Změňte tuto možnost na res
strukturu projektu Java.
MonoSymbolArchive
Logická vlastnost, která řídí, zda .mSYM
jsou artefakty vytvořeny pro pozdější použití s mono-symbolicate
, extrahovat "skutečný" název souboru a číslo řádku informace z trasování zásobníku vydané verze.
Tato hodnota je ve výchozím nastavení true pro aplikace vydané verze, které mají povolené symboly ladění: $(EmbedAssembliesIntoApk)
je True, $(DebugSymbols)
je True a $(Optimize)
je pravda.
Přidáno v Xamarin.Android 7.1.