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 ldje nativní linker a asnativní 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.Streamnebo Android.Runtime.JavaDictionary a a .System.Collections.IDictionary

  • Java: Původní typ výjimky Java se rozšíří tak, jak je.

    Javaznamená, že například neimplementuje správně rozhraní API, InputStreamInvoker protože Java.IO.IOException může být vyvolána místo System.IO.IOExceptionStream.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.

    Systemznamená, InputStreamInvoker že například správně implementuje System.IO.Streama Stream.Read() nevyvolá Java.IO.IOException instance. (Místo toho může vyvolat System.IO.IOException obsahující hodnotu Java.IO.IOExceptionException.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 aabhodnotu .

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-parsejar2xml 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ří vazbu Mono.Android.dll s touto hodnotou.

Mezi výhody XAJavaInterop1 patří:

  • Menší sestavení.

  • jmethodID ukládání do mezipaměti pro base vyvolání metod, pokud jsou všechny ostatní typy vazeb v hierarchii dědičnosti sestaveny s nebo novějším XAJavaInterop1 .

  • 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 * 36530 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 desugarna 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.IJavaObjectbez 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 Falsevlastnost MSBuild . Pokud je prostředek rychle nasazený, není vložen do vygenerovaného .apkprostř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ů. Hodnotu Dexes 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 -vje , -dnebo --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 Androiduna 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 spravovanou HttpMessageHandler.

    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:

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ž truesysté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.xmlhodnoty . 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 .csprojná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.

Xamarinje úložiště Schválené seznamy (doporučeno) ve Správci sady Visual Studio SDK.

GoogleV2je ú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:

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 aabapk 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 LowercaseCrc64jediná 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.targetsa 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 aabhodnotu .

AndroidSigningKeyStore

Určuje název souboru úložiště klíčů, který keytoolvytvoř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 aabhodnotu .

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 falsehodnotu .

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:versionCodev 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í versionCodeo .

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 versionCodex86_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 versionCode0. 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
  • minSDK – vloží minimální podporovanou hodnotu sady SDK z AndroidManifest.xml definice nebo 11 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/@packagev 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:labelv 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:versionNamev 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 .apksouboru .

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 truea automaticky přidá INTERNET oprávnění, aby se ladicí program mohl připojit k procesu. Aplikace je laděná, pokud DebugSymbols je TrueaDebugType 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 Falsetato 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í Truevlastnost 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ž Truese 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.