Propriétés de build
Les propriétés MSBuild contrôlent le comportement des cibles. Ils sont spécifiés dans le fichier projet, par exemple MyApp.csproj, dans un groupe de propriétés MSBuild.
AdbTarget
La $(AdbTarget)
propriété spécifie l’appareil cible Android sur lequel le package Android peut être installé ou supprimé.
La valeur de cette propriété est identique à l’option adb
Appareil cible.
AfterGenerateAndroidManifest
Les cibles MSBuild répertoriées dans cette propriété s’exécutent directement après la cible interne _GenerateJavaStubs
, qui est l’emplacement où le AndroidManifest.xml
fichier est généré dans le $(IntermediateOutputPath)
. Si vous souhaitez apporter des modifications au fichier généré AndroidManifest.xml
, vous pouvez le faire à l’aide de ce point d’extension.
Ajouté dans Xamarin.Android 9.4.
AndroidAapt2CompileExtraArgs
Spécifie les options de ligne de commande à passer à la commande de compilation aapt2 lors du traitement des ressources et ressources Android.
Ajouté dans Xamarin.Android 9.1.
AndroidAapt2LinkExtraArgs
Spécifie les options de ligne de commande à passer à la commande de lien aapt2 lors du traitement des ressources et ressources Android.
Ajouté dans Xamarin.Android 9.1.
AndroidAddKeepAlives
Propriété booléenne qui contrôle si l’éditeur de liens insère GC.KeepAlive()
des appels dans des projets de liaison pour empêcher la collecte d’objets prématuré.
La valeur par défaut est True
pour les builds de configuration Release.
Cette propriété a été ajoutée dans Xamarin.Android 11.2.
AndroidAotAdditionalArguments
Propriété de chaîne qui permet de transmettre des options au compilateur Mono pendant la tâche pour les projets dont l’une Aot
ou $(AotAssemblies)
l’autre est $(AndroidEnableProfiledAot)
définie true
sur .
La valeur de chaîne de la propriété est ajoutée au fichier réponse lors de l’appel du compilateur croisé Mono.
En règle générale, cette propriété doit être laissée vide, mais dans certains scénarios spéciaux, elle peut fournir une flexibilité utile.
La $(AndroidAotAdditionalArguments)
propriété est différente de la propriété associée $(AndroidExtraAotOptions)
; $(AndroidAotAdditionalArguments)
transmet des options --verbose
autonomes séparées par des espaces comme ou --debug
vers le compilateur AOT, tandis que $(AndroidExtraAotOptions)
contient des arguments séparés par des virgules qui font partie de l’option --aot
du compilateur AOT.
AndroidAotCustomProfilePath
Fichier qui aprofutil
doit être créé pour contenir les données du profileur.
AndroidAotProfiles
Propriété de chaîne qui permet au développeur d’ajouter des profils AOT à partir de la ligne de commande. Il s’agit d’une liste de chemins absolus séparés par des virgules ou des points-virgules. Ajouté dans Xamarin.Android 10.1.
AndroidAotProfilerPort
Port auquel aprofutil
se connecter lors de l’obtention des données de profilage.
AndroidAotEnableLazyLoad
Activez le chargement différé (différé) d’assemblys AOT-d, au lieu de les précharger au démarrage. La valeur par défaut est True
pour les builds Release avec n’importe quelle forme d’AOT activée.
Introduit dans .NET 6.
AndroidApkDigestAlgorithm
Valeur de chaîne qui spécifie l’algorithme digest à utiliser avec jarsigner -digestalg
.
La valeur par défaut est SHA-256
. Dans Xamarin.Android 10.0 et versions antérieures, la valeur par défaut était SHA1
.
Ajouté dans Xamarin.Android 9.4.
AndroidApkSignerAdditionalArguments
Propriété de chaîne qui permet au développeur de fournir des arguments à l’outil apksigner
.
Ajouté dans Xamarin.Android 8.2.
AndroidApkSigningAlgorithm
Valeur de chaîne qui spécifie l’algorithme de signature à utiliser avec jarsigner -sigalg
.
La valeur par défaut est SHA256withRSA
. Dans Xamarin.Android 10.0 et versions antérieures, la valeur par défaut était md5withRSA
.
Ajouté dans Xamarin.Android 8.2.
AndroidApplication
Valeur booléenne qui indique si le projet est destiné à une application Android (True
) ou pour un projet de bibliothèque Android (False
ou non présent).
Un seul projet avec <AndroidApplication>True</AndroidApplication>
peut être présent dans un package Android. (Malheureusement, cette exigence n’est pas vérifiée, ce qui peut entraîner des erreurs subtiles et bizarres concernant les ressources Android.)
AndroidApplicationJavaClass
Nom complet de la classe Java à utiliser à la place d’une android.app.Application
classe qui hérite d’Android.App.Application.
La $(AndroidApplicationJavaClass)
propriété est généralement définie par d’autres propriétés, telles que la $(AndroidEnableMultiDex)
propriété MSBuild.
Ajouté dans Xamarin.Android 6.1.
AndroidBinUtilsPath
Chemin d’accès à un répertoire contenant les binutils Android tels que ld
, l’éditeur de liens natif et as
, l’assembleur natif. Ces outils sont inclus dans l’installation de Xamarin.Android.
La valeur par défaut est $(MonoAndroidBinDirectory)\binutils\bin\
.
Ajouté dans Xamarin.Android 10.0.
AndroidBoundExceptionType
Valeur de chaîne qui spécifie la façon dont les exceptions doivent être propagées lorsqu’un type fourni par Xamarin.Android implémente un type ou une interface .NET en termes de types Java, par exemple Android.Runtime.InputStreamInvoker
et System.IO.Stream
, ou Android.Runtime.JavaDictionary
.System.Collections.IDictionary
Java
: le type d’exception Java d’origine est propagé tel qu’il est.Java
signifie que, par exemple,InputStreamInvoker
n’implémente pas correctement l’APISystem.IO.Stream
, carJava.IO.IOException
elle peut être levée à partir deStream.Read()
.System.IO.IOException
Java
est le comportement de propagation des exceptions dans toutes les versions de Xamarin.Android, y compris Xamarin.Android 13.0.System
: le type d’exception Java d’origine est intercepté et encapsulé dans un type d’exception .NET approprié.System
signifie que, par exemple,InputStreamInvoker
implémenteSystem.IO.Stream
correctement etStream.Read()
ne lèveJava.IO.IOException
pas d’instances. (Il peut à la place lever uneSystem.IO.IOException
valeur contenant uneJava.IO.IOException
Exception.InnerException
valeur.)System
est la valeur par défaut dans .NET 6.0.
Ajouté dans Xamarin.Android 10.2.
AndroidBoundInterfacesContainConstants
Propriété booléenne qui détermine si les constantes de liaison sur les interfaces seront prises en charge, ou la solution de contournement de la création d’une IMyInterfaceConsts
classe sera utilisée.
La valeur par défaut est True
dans .NET 6 et False
pour l’héritage.
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
Propriété booléenne qui indique si les membres par défaut et statiques sur les interfaces sont pris en charge ou une ancienne solution de contournement de la création d’une classe frère contenant des membres statiques comme abstract class MyInterface
.
La valeur par défaut est True
dans .NET 6 et False
pour l’héritage.
AndroidBoundInterfacesContainTypes
Propriété booléenne qui indique si les types imbriqués dans les interfaces sont pris en charge ou la solution de contournement de la création d’un type non imbriqué comme IMyInterfaceMyNestedClass
.
La valeur par défaut est True
dans .NET 6 et False
pour l’héritage.
AndroidBuildApplicationPackage
Valeur booléenne qui indique s’il faut créer et signer le package (.apk). La définition de cette valeur True
équivaut à l’utilisation de la SignAndroidPackage
cible de build.
La prise en charge de cette propriété a été ajoutée après Xamarin.Android 7.1.
Cette propriété est définie par défaut sur False
.
AndroidBundleConfigurationFile
Spécifie un nom de fichier à utiliser comme fichier de configuration pour bundletool
la création d’un bundle d’applications Android. Ce fichier contrôle certains aspects de la façon dont les API sont générées à partir de l’offre groupée, telles que les dimensions que le bundle est fractionnée pour produire des API.
Xamarin.Android configure automatiquement certains de ces paramètres, notamment la liste des extensions de fichier à laisser non compressées.
Cette propriété n’est pertinente que si $(AndroidPackageFormat)
elle est définie sur aab
.
Ajouté dans Xamarin.Android 10.3.
AndroidBundleToolExtraArgs
Spécifie les options de ligne de commande à passer à la commande bundletool lors de la génération d’ensembles d’applications.
Cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidClassParser
Propriété de chaîne qui contrôle la façon dont .jar
les fichiers sont analysés. Valeurs possibles :
class-parse : utilise
class-parse.exe
pour analyser le bytecode Java directement, sans l’aide d’une machine virtuelle Java.jar2xml : utilisez
jar2xml.jar
pour utiliser la réflexion Java pour extraire des types et des membres de réflexion d’un fichier.jar
.
Les avantages de class-parse
par rapport à jar2xml
sont :
class-parse
peut extraire des noms de paramètres du bytecode Java contenant des symboles de débogage (codés par octets compilés avecjavac -g
).class-parse
ne « ignore » pas les classes qui héritent ou contiennent des membres de types non résolus.
Ajouté dans Xamarin.Android 6.0.
La valeur par défaut est jar2xml
« legacy » Xamarin.Android et class-parse
dans .NET 6 et versions ultérieures.
jar2xml
La prise en charge est obsolète et jar2xml
est supprimée dans .NET 6.
AndroidCodegenTarget
Propriété de chaîne qui contrôle l’ABI cible de génération de code. Valeurs possibles :
XamarinAndroid : utilise l’API de liaison JNI présente depuis Mono pour Android 1.0. La liaison des assemblys générés avec Xamarin.Android 5.0 ou ultérieur peut s’exécuter seulement sur Xamarin.Android 5.0 ou ultérieur (ajouts d’API/ABI), mais la source est compatible avec les versions antérieures du produit.
XAJavaInterop1 : utilise Java.Interop pour les appels JNI. La liaison des assemblys avec
XAJavaInterop1
peut être générée et s’exécuter seulement avec Xamarin.Android 6.1 ou ultérieur. Xamarin.Android 6.1 et ultérieur effectue la liaison deMono.Android.dll
avec cette valeur.
Les avantages de XAJavaInterop1
sont :
Assemblys plus petits.
Mise en cache de
jmethodID
pour les appels de méthodebase
, dès lors que tous les autres types de liaison de la hiérarchie d’héritage sont générés avecXAJavaInterop1
ou ultérieur.Mise en cache de
jmethodID
pour les constructeurs de wrapper appelables par Java pour les sous-classes managées.
La valeur par défaut est XAJavaInterop1
.
XamarinAndroid
La prise en charge est obsolète et la prise en charge XamarinAndroid
sera supprimée dans le cadre de .NET 6.
AndroidCreatePackagePerAbi
Propriété booléenne qui détermine si un ensemble de fichiers- un par ABI spécifié dans $(AndroidSupportedAbis)
--doit être créé au lieu d’avoir la prise en charge de toutes les API dans un seul .apk
.
Consultez également le guide des API spécifiques à l’ABI.
AndroidCreateProguardMappingFile
Propriété booléenne qui contrôle si un fichier de mappage proguard est généré dans le cadre du processus de génération.
L’ajout des éléments suivants à votre csproj entraîne la génération du fichier et utilise la AndroidProguardMappingFile
propriété pour contrôler l’emplacement du fichier de mappage final.
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
Lors de la production .aab
de fichiers, le fichier de mappage est automatiquement inclus dans votre package. Il n’est pas nécessaire de le charger manuellement dans le Google Play Store. Lorsque vous utilisez .apk
des fichiers, vous AndroidProguardMappingFile
devez le charger manuellement.
La valeur par défaut est True
lors de l’utilisation $(AndroidLinkTool)
de =r8.
Ajouté dans Xamarin.Android 12.3.
AndroidDebugKeyAlgorithm
Spécifie l’algorithme par défaut à utiliser pour le debug.keystore
. La valeur par défaut est RSA
.
AndroidDebugKeyValidity
Spécifie la validité par défaut à utiliser pour le debug.keystore
. La valeur par défaut est 10950
ou 30 years
30 * 365
.
AndroidDebugStoreType
Spécifie le format de fichier de magasin de clés à utiliser pour le debug.keystore
fichier . Sa valeur par défaut est pkcs12
.
Ajouté dans Xamarin.Android 10.2.
AndroidDeviceUserId
Permet de déployer et de déboguer l’application sous des comptes invités ou professionnels. La valeur est la uid
valeur que vous obtenez à partir de la commande adb suivante :
adb shell pm list users
La commande ci-dessus retourne les données suivantes :
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
Il uid
s’agit de la première valeur entière. Dans la sortie ci-dessus, ils sont 0
et 10
.
La $(AndroidDeviceUserId)
propriété a été ajoutée dans Xamarin.Android 11.2.
AndroidDexTool
Propriété de style énumération avec des valeurs valides de dx
ou d8
. Indique le compilateur dex Android utilisé pendant le processus de génération de Xamarin.Android.
La valeur par défaut est dx
. Consultez notre documentation sur D8 et R8.
AndroidEnableDesugar
Propriété booléenne qui détermine si desugar
elle est activée. Android ne prend actuellement pas en charge toutes les fonctionnalités Java 8, et la chaîne d’outils par défaut implémente les nouvelles fonctionnalités de langage en effectuant des transformations bytecode appelées desugar
, sur la sortie du javac
compilateur. La valeur par défaut est si elle est utilisée et si elle est utilisée=$(AndroidDexTool)
d8
.True
$(AndroidDexTool)=dx
False
AndroidEnableGooglePlayStoreChecks
Propriété bool qui permet aux développeurs de désactiver les vérifications de Google Play Store suivantes : XA1004, XA1005 et XA1006. La désactivation de ces vérifications est utile pour les développeurs qui ne ciblent pas google Play Store et ne souhaitent pas exécuter ces vérifications.
Ajouté dans Xamarin.Android 9.4.
AndroidEnableMultiDex
Propriété booléenne qui détermine si la prise en charge multi-dex sera utilisée dans la version finale .apk
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.
Cette propriété est définie par défaut sur False
.
AndroidEnablePreloadAssemblies
Propriété booléenne qui contrôle si tous les assemblys managés regroupés dans le package d’application sont chargés pendant le démarrage du processus ou non.
Avec la valeur True
, tous les assemblys fournis dans le package d’application seront chargés lors du démarrage du processus, avant l’appel de tout code d’application.
Le préchargement des assemblys est ce que fait Xamarin.Android.
Avec la valeur False
, les assemblys seront uniquement chargés selon les besoins.
Le chargement d’assemblys en fonction des besoins permet aux applications de lancer plus rapidement et est également plus cohérent avec la sémantique .NET de bureau.
Pour visualiser le gain de temps obtenu, définissez la propriété système debug.mono.log
pour inclure timing
, puis recherchez le message Finished loading assemblies: preloaded
dans adb logcat
.
Les applications ou bibliothèques, qui utilisent l’injection de dépendances peuvent nécessiter que cette propriété soit True
si elle exige à son tour que AppDomain.CurrentDomain.GetAssemblies()
tous les assemblys au sein de l’ensemble d’applications, même si l’assembly n’aurait pas été nécessaire.
Par défaut, cette valeur sera définie True
sur Xamarin.Android et sera définie False
sur pour les builds .NET 6+.
Ajouté dans Xamarin.Android 9.2.
AndroidEnableProfiledAot
Propriété booléenne qui détermine si les profils AOT sont utilisés ou non pendant la compilation à l’avance.
Les profils sont répertoriés dans @(AndroidAotProfile)
groupe d’éléments. Ce groupe d’éléments contient le ou les profils par défaut. Il peut être substitué en supprimant le ou les fichiers existants et en ajoutant vos propres profils AOT.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 9.4.
Cette propriété est définie par défaut sur False
.
AndroidEnableSGenConcurrent
Propriété booléenne qui détermine si le collecteur GC simultané de Mono sera utilisé ou non.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 7.2.
Cette propriété est définie par défaut sur False
.
AndroidErrorOnCustomJavaObject
Propriété booléenne qui détermine si les types peuvent être implémentés sans hériter ou Java.Lang.Throwable
Java.Lang.Object
: Android.Runtime.IJavaObject
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
Lorsque la valeur est True, ces types génèrent une erreur XA4212, sinon un avertissement XA4212 est généré.
Ajouté dans Xamarin.Android 8.1.
Cette propriété est définie par défaut sur True
.
AndroidExplicitCrunch
Non pris en charge dans Xamarin.Android 11.0.
AndroidExtraAotOptions
Propriété de chaîne qui permet de transmettre des options au compilateur Mono pendant la tâche pour les projets dont l’une Aot
ou $(AotAssemblies)
l’autre est $(AndroidEnableProfiledAot)
définie true
sur .
La valeur de chaîne de la propriété est ajoutée au fichier réponse lors de l’appel du compilateur croisé Mono.
En règle générale, cette propriété doit être laissée vide, mais dans certains scénarios spéciaux, elle peut fournir une flexibilité utile.
La $(AndroidExtraAotOptions)
propriété est différente de la propriété associée $(AndroidAotAdditionalArguments)
; $(AndroidAotAdditionalArguments)
place les arguments séparés par des virgules dans l’option --aot
du compilateur Mono. $(AndroidExtraAotOptions)
Au lieu de cela, passe des options --verbose
autonomes séparées par des espaces comme ou --debug
au compilateur.
Ajouté dans Xamarin.Android 10.2.
AndroidFastDeploymentType
Liste :
(deux-points) séparée par des valeurs pour contrôler les types pouvant être déployés dans le répertoire Déploiement rapide sur l’appareil cible lorsque la $(EmbedAssembliesIntoApk)
propriété MSBuild est False
. Si une ressource est déployée via le déploiement rapide, elle n’est pas incorporée dans le fichier .apk
généré, ce qui peut accélérer les temps de déploiement. (Plus le déploiement rapide est rapide, puis le moins fréquemment le .apk
besoin d’être reconstruit, et le processus d’installation peut être plus rapide.) Les valeurs valides sont les suivantes :
Assemblies
: déployer les assemblys de l’application.Dexes
: Déployer des.dex
fichiers, des bibliothèques natives et des typesmaps. LaDexes
valeur ne peut être utilisée que sur les appareils exécutant Android 4.4 ou version ultérieure (API-19).
La valeur par défaut est Assemblies
.
Prise en charge des ressources et ressources de déploiement rapide via ce système a été supprimée dans la validation f0d565fe. Cela était dû au fait qu’il fallait utiliser les API dépréciées pour fonctionner.
Experimental. Cette propriété a été ajoutée dans Xamarin.Android 6.1.
AndroidFragmentType
Spécifie le type complet par défaut à utiliser pour tous les éléments de disposition <fragment>
pendant la génération du code des liaisons de disposition. La valeur par défaut est le type Android Android.App.Fragment
standard.
AndroidGenerateJniMarshalMethods
Propriété bool qui permet de générer des méthodes de marshalage JNI dans le cadre du processus de génération. Cela réduit considérablement l’utilisation System.Reflection
dans le code d’assistance de liaison.
La valeur par défaut est False
. Si les développeurs souhaitent utiliser la nouvelle fonctionnalité de marshalage JNI, ils peuvent définir
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
dans leur .csproj
. Vous pouvez également fournir la propriété sur la ligne de commande via
/p:AndroidGenerateJniMarshalMethods=True
Experimental. Ajouté dans Xamarin.Android 9.2.
La valeur par défaut est False
.
AndroidGenerateJniMarshalMethodsAdditionalArguments
Propriété de chaîne qui peut être utilisée pour ajouter des paramètres à l’appel et est utile pour le jnimarshalmethod-gen.exe
débogage, de sorte que les options telles que -v
, -d
ou --keeptemp
peuvent être utilisées.
La valeur par défaut est une chaîne vide. Il peut être défini dans le .csproj
fichier ou sur la ligne de commande. Par exemple :
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
ou :
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
Ajouté dans Xamarin.Android 9.2.
AndroidGenerateLayoutBindings
Active la génération de code-behind de disposition si elle est définie true
ou désactive complètement si elle est définie false
sur . La valeur par défaut est false
.
AndroidGenerateResourceDesigner
La valeur par défaut est true
. Lorsqu’il false
est défini sur , désactive la génération de Resource.designer.cs
.
Ajouté dans .NET 6 RC 1. Non pris en charge dans Xamarin.Android.
AndroidHttpClientHandlerType
Contrôle l’implémentation par défaut System.Net.Http.HttpMessageHandler
qui sera utilisée par le System.Net.Http.HttpClient
constructeur par défaut. Sa valeur est un nom de type qualifié d’assembly d’une sous-classe HttpMessageHandler
, utilisable avec System.Type.GetType(string)
.
Les valeurs les plus couramment utilisées pour cette propriété sont :
Xamarin.Android.Net.AndroidClientHandler
: Utilisez les API Java Android pour effectuer des requêtes réseau. L’utilisation des API Java permet d’accéder aux URL TLS 1.2 lorsque la version Android sous-jacente prend en charge TLS 1.2. Seuls Android 5.0 et les versions ultérieures gèrent TLS 1.2 de façon fiable avec Java.Correspond à l’option Android dans les pages de propriétés Visual Studio et à l’option AndroidClientHandler dans les pages de propriétés Visual Studio pour Mac.
L’Assistant Nouveau projet sélectionne cette option pour les nouveaux projets lorsque la Version minimale d’Android est configurée sur Android 5.0 (Lollipop) ou ultérieur dans Visual Studio, ou lorsque Plateformes cibles est défini sur Tout dernier dans Visual Studio pour Mac.
Annuler l’ensemble/la chaîne vide, qui est équivalente à
System.Net.Http.HttpClientHandler, System.Net.Http
Correspond à l’option Par défaut dans les pages de propriétés Visual Studio.
L’Assistant Nouveau projet sélectionne cette option pour les nouveaux projets lorsque la Version minimale d’Android est configurée sur Android 4.4.87 ou antérieur dans Visual Studio, ou lorsque Plateformes cibles est défini sur Développement moderne ou Compatibilité maximale dans Visual Studio pour Mac.
System.Net.Http.HttpClientHandler, System.Net.Http
: Utiliser le managéHttpMessageHandler
.Correspond à l’option Managée dans les pages de propriétés Visual Studio.
Remarque
Si la prise en charge de TLS 1.2 est requise sur les versions d’Android antérieures à 5.0, ou qu’elle est nécessaire avec System.Net.WebClient
et les API associées, il faut utiliser $(AndroidTlsProvider)
.
Remarque
La prise en charge de la $(AndroidHttpClientHandlerType)
propriété fonctionne en définissant la variable d’environnementXA_HTTP_CLIENT_HANDLER_TYPE
.
Valeur $XA_HTTP_CLIENT_HANDLER_TYPE
trouvée dans un fichier avec une action build de @(AndroidEnvironment)
est prioritaire.
Ajouté dans Xamarin.Android 6.1.
AndroidIncludeWrapSh
Valeur booléenne qui indique si le script wrapper Android (wrap.sh
) doit être empaqueté dans l’APK. La valeur par défaut est false
que le script wrapper peut influencer considérablement la façon dont l’application démarre et fonctionne et que le script doit être inclus uniquement si nécessaire, par exemple lors du débogage ou de la modification du comportement de démarrage/exécution de l’application.
Le script est ajouté au projet à l’aide du @(AndroidNativeLibrary)
action de génération, car elle est placée dans le même répertoire que les bibliothèques natives spécifiques à l’architecture et doit être nommée wrap.sh
.
Le moyen le plus simple de spécifier le chemin d’accès au wrap.sh
script consiste à le placer dans un répertoire nommé après l’architecture cible. Cette approche fonctionne si vous n’avez qu’une wrap.sh
seule architecture :
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
Toutefois, si votre projet a besoin de plus d’un wrap.sh
par architecture, à des fins différentes, cette approche ne fonctionnera pas.
Au lieu de cela, dans ce cas, le nom peut être spécifié à l’aide des Link
métadonnées du AndroidNativeLibrary
:
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Si les Link
métadonnées sont utilisées, le chemin spécifié dans sa valeur doit être un chemin de bibliothèque spécifique à l’architecture native valide, par rapport au répertoire racine APK. Le format du chemin d’accès peut lib\ARCH\wrap.sh
ARCH
être l’un des suivants :
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
Spécifie comment les commentaires de documentation XML C# « détaillé » doivent être lors de l’importation de la documentation Javadoc dans des projets de liaison.
Nécessite l’utilisation du @(JavaSourceJar)
action de génération.
La $(AndroidJavadocVerbosity)
propriété est enum-like, avec des valeurs possibles de full
ou intellisense
:
intellisense
: émettre uniquement les commentaires XML :<exception/>
,<param/>
,<returns/>
,<summary/>
.full
: Émettreintellisense
des éléments, ainsi que<remarks/>
,<seealso/>
et tout autre élément qui peut être pris en charge.
La valeur par défaut est intellisense
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidKeyStore
Valeur booléenne qui indique si les informations de signature personnalisées doivent être utilisées. La valeur par défaut est False
, qui signifie que la clé de signature de débogage par défaut est utilisée pour signer les packages.
AndroidLaunchActivity
Activité Android à lancer.
AndroidLinkMode
Spécifie le type de liaison à effectuer sur les assemblys contenus dans le package Android. Utilisé seulement dans les projets d’application Android. La valeur par défaut est SdkOnly. Les valeurs valides sont :
None : aucune liaison n’est tentée.
SdkOnly : la liaison est effectuée seulement sur les bibliothèques de classes de base, pas sur les assemblys de l’utilisateur.
Full : la liaison est effectuée seulement sur les bibliothèques de classes de base et sur les assemblys de l’utilisateur.
Remarque
L’utilisation de la valeur Full pour
AndroidLinkMode
aboutit généralement à des applications endommagées, en particulier quand la réflexion est utilisée. À éviter, sauf si vous savez vraiment ce que vous faites.
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkResources
Quand true
, le système de génération lie les types imbriqués de la classe Resource.Designer.cs Resource
dans tous les assemblys. Le code IL qui utilise ces types sera mis à jour pour utiliser les valeurs directement plutôt que d’accéder aux champs.
La liaison des types imbriqués peut avoir un faible impact sur la réduction de la taille de l’apk et peut également vous aider à améliorer les performances de démarrage. Seules les builds « Release » sont liées.
Experimental. Conçu uniquement pour fonctionner avec du code tel que
var view = FindViewById(Resources.Ids.foo);
Tous les autres scénarios (tels que la réflexion) ne seront pas pris en charge.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3
AndroidLinkSkip
Spécifie une liste délimitée par des points-virgules (;
) de noms d’assemblys, sans extensions de fichier, d’assemblys qui ne doivent pas être liés. Utilisé seulement dans les projets d’application Android.
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
Propriété de style énumération avec des valeurs valides de proguard
ou r8
. Indique le réducteur de code utilisé pour le code Java. La valeur par défaut est une chaîne vide, ou proguard
si c’est le cas $(AndroidEnableProguard)
True
. Consultez notre documentation sur D8 et R8.
AndroidLintEnabled
Propriété bool qui permet au développeur d’exécuter l’outil Android lint
dans le cadre du processus d’empaquetage.
Quand $(AndroidLintEnabled)
=True, les propriétés suivantes sont utilisées :
Les actions de génération suivantes peuvent également être utilisées :
Consultez l’aide de Lint pour plus d’informations sur l’outil lint
android.
AndroidLintEnabledIssues
Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à activer.
Utilisé uniquement lorsque $(AndroidLintEnabled)
=True.
AndroidLintDisabledIssues
Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à désactiver.
Utilisé uniquement lorsque $(AndroidLintEnabled)
=True.
AndroidLintCheckIssues
Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à vérifier.
Utilisé uniquement lorsque $(AndroidLintEnabled)
=True.
Remarque : Seuls ces problèmes sont vérifiés.
AndroidManagedSymbols
Propriété booléenne qui contrôle si les points de séquence sont générés afin que les informations de nom de fichier et de numéro de ligne puissent être extraites des traces de Release
pile.
Ajouté dans Xamarin.Android 6.1.
AndroidManifest
Spécifie un nom de fichier à utiliser comme modèle pour l’application AndroidManifest.xml
.
Lors de la génération, toutes les autres valeurs nécessaires y sont fusionnées pour produire le fichier AndroidManifest.xml
effectif.
$(AndroidManifest)
doit contenir le nom du package dans l’attribut /manifest/@package
.
AndroidManifestMerger
Spécifie l’implémentation de la fusion de fichiers AndroidManifest.xml . Il s’agit d’une propriété enum-style où legacy
sélectionne l’implémentation C# d’origine et manifestmerger.jar
sélectionne l’implémentation Java de Google.
La valeur par défaut est actuellement legacy
. Cela passera à manifestmerger.jar
une version ultérieure pour aligner le comportement avec Android Studio.
La fusion de Google permet la prise en charge comme xmlns:tools="http://schemas.android.com/tools"
décrit dans la documentation Android.
Introduit dans Xamarin.Android 10.2
AndroidManifestMergerExtraArgs
Propriété de chaîne pour fournir des arguments à l’outil de documentation Android.
Si vous souhaitez obtenir une sortie détaillée de l’outil, vous pouvez ajouter ce qui suit au .csproj
fichier .
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Introduit dans Xamarin.Android 11.x
AndroidManifestType
Propriété de style énumération avec des valeurs valides de Xamarin
ou GoogleV2
.
Ce contrôle le référentiel utilisé par le InstallAndroidDependencies
cible pour déterminer quels packages Et versions de package Android sont disponibles et peuvent être installés.
Xamarin
est le référentiel de liste approuvée (recommandé) dans le Gestionnaire du kit de développement logiciel (SDK) Visual Studio.
GoogleV2
est le référentiel Liste complète (non pris en charge) dans le Gestionnaire du Kit de développement logiciel (SDK) Visual Studio.
Ajouté dans Xamarin.Android 13.0. Dans Xamarin.Android 13.0, s’il $(AndroidManifestType)
n’est pas défini, il Xamarin
est utilisé.
Avant Xamarin.Android 13.0, le paramètre $(AndroidManifestType)
n’a aucun effet et GoogleV2
est utilisé.
AndroidManifestPlaceholders
Liste séparée par des points-virgules de paires de remplacement clé-valeur pour AndroidManifest.xml, où chaque paire a le format key=value
.
Par exemple, une valeur de propriété de assemblyName=$(AssemblyName)
définit un ${assemblyName}
espace réservé qui peut ensuite apparaître dans AndroidManifest.xml :
<application android:label="${assemblyName}"
Cela permet d’insérer des variables à partir du processus de génération dans le fichier AndroidManifest.xml .
AndroidMultiDexClassListExtraArgs
Propriété de chaîne qui permet aux développeurs de passer des arguments au moment de générer com.android.multidex.MainDexListBuilder
le multidex.keep
fichier.
Un cas spécifique est si vous obtenez l’erreur suivante durant la compilation dx
.
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
Si vous obtenez cette erreur, vous pouvez ajouter les éléments suivants au .csproj
fichier .
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
qui permettra à l’étape dx
de réussir.
Ajouté dans Xamarin.Android 8.3.
AndroidPackageFormat
Propriété de style énumération avec des valeurs valides de apk
ou aab
. Indique si vous souhaitez empaqueter l’application Android en tant que fichier APK ou Android App Bundle. Les bundles d’applications sont un nouveau format pour les builds Release
destinées à être envoyées à Google Play. La valeur par défaut est apk
.
Lorsque $(AndroidPackageFormat)
est défini sur aab
, d’autres propriétés MSBuild sont définies. Celles-ci sont nécessaires pour les bundles d’applications Android :
$(AndroidUseAapt2)
estTrue
.$(AndroidUseApkSigner)
estFalse
.$(AndroidCreatePackagePerAbi)
estFalse
.
Cette propriété sera déconseillée pour .net 6. Les utilisateurs doivent passer au plus récent AndroidPackageFormats
.
AndroidPackageFormats
Propriété délimitée par des points-virgules avec des valeurs valides de apk
et aab
.
Indique si vous souhaitez empaqueter l’application Android en tant que fichier APK ou Android App Bundle. Les bundles d’applications sont un nouveau format pour les builds Release
destinées à être envoyées à Google Play.
Lors de la génération d’une version Release, vous pouvez générer à la fois et aab
une apk
distribution vers différents magasins.
La définition AndroidPackageFormats
à aab;apk
laquelle générera les deux. Le paramètre AndroidPackageFormats
sur l’une aab
ou apk
l’autre génère un seul fichier.
Pour .net 6 AndroidPackageFormats
, aab;apk
la valeur est définie uniquement pour les Release
builds. Il est recommandé de continuer à utiliser uniquement apk
pour le débogage.
Pour la version héritée de Xamarin.Android, la valeur par défaut est ""
.
Par conséquent, la version héritée de Xamarin.Android ne produit pas par défaut les deux dans le cadre d’une build de mise en production. Si un utilisateur souhaite produire les deux sorties, il doit définir les éléments suivants dans sa Release
configuration.
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
Vous devez également supprimer l’existant AndroidPackageFormat
pour cette configuration si vous l’avez.
Ajouté dans Xamarin.Android 11.5.
AndroidPackageNamingPolicy
Propriété enum-style permettant de spécifier les noms de package Java du code source Java généré.
Dans Xamarin.Android 10.2 et versions ultérieures, la seule valeur prise en charge est LowercaseCrc64
.
Dans Xamarin.Android 10.1, une valeur transitionnelle LowercaseMD5
a également été disponible qui permettait de revenir au style de nom de package Java d’origine tel qu’utilisé dans Xamarin.Android 10.0 et versions antérieures. Cette option a été supprimée dans Xamarin.Android 10.2 pour améliorer la compatibilité avec les environnements de build dont la conformité FIPS est appliquée.
Ajouté dans Xamarin.Android 10.1.
AndroidProguardMappingFile
Spécifie la -printmapping
règle proguard pour r8
. Cela signifie que le mapping.txt
fichier sera généré dans le $(OutputPath)
dossier. Ce fichier peut ensuite être utilisé lors du chargement de packages dans le Google Play Store.
Par défaut, ce fichier est généré automatiquement lors de l’utilisation AndroidLinkTool=r8
et génère le fichier $(OutputPath)mapping.txt
suivant.
Si vous ne souhaitez pas générer ce fichier de mappage, vous pouvez utiliser la propriété pour arrêter de AndroidCreateProguardMappingFile
la créer.
Ajoutez ce qui suit dans votre projet
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
ou utiliser -p:AndroidCreateProguardMappingFile=False
sur la ligne de commande.
Cette propriété a été ajoutée dans Xamarin.Android 11.2.
AndroidR8IgnoreWarnings
Spécifie la -ignorewarnings
règle proguard pour r8
. Cela permet r8
de poursuivre la compilation de dex même si certains avertissements sont rencontrés. La valeur par défaut est True
, mais peut être définie pour False
appliquer un comportement plus strict. Pour plus d’informations, consultez le manuel ProGuard.
Ajouté dans Xamarin.Android 10.3.
AndroidR8JarPath
Chemin d’accès à r8.jar
utiliser avec le compilateur et le réducteur r8. La valeur par défaut est un chemin d’accès dans l’installation de Xamarin.Android. Pour plus d’informations, consultez notre documentation sur D8 et R8.
AndroidResgenExtraArgs
Spécifie les options de ligne de commande à passer à la commande aapt lors du traitement des ressources et ressources Android.
AndroidResgenFile
Spécifie le nom du fichier de ressources à générer. Le modèle par défaut définit cette valeur sur Resource.designer.cs
.
AndroidSdkBuildToolsVersion
Le package d’outils de build android SDK fournit les outils aapt et zipalign , entre autres. Plusieurs versions différentes du package d’outils de génération peuvent être installées en parallèle. Le package d’outils de génération choisi pour l’empaquetage est réalisé en recherchant et en utilisant, le cas échéant, une version « favorite » des outils de génération ; s’il n’en existe pas, le package d’outils de génération associé à la version la plus récente sera utilisé.
La propriété MSBuild $(AndroidSdkBuildToolsVersion)
contient la version préférée des outils de génération. Le système de génération de Xamarin.Android fournit une valeur par défaut dans Xamarin.Android.Common.targets
, et vous pouvez remplacer la valeur par défaut dans votre fichier projet et choisir une autre version des outils de génération, si (par exemple) la version la plus récente de aapt plante, alors qu’une version antérieure de aapt est connue pour fonctionner.
AndroidSigningKeyAlias
Spécifie l’alias de la clé dans le magasin de clés. Il s’agit de la valeur keytool -alias utilisée lors de la création du magasin de clés.
AndroidSigningKeyPass
Spécifie le mot de passe de la clé dans le fichier de magasin de clés. C’est la valeur entrée quand keytool
demande Entrez le mot clé pour $(AndroidSigningKeyAlias).
Dans Xamarin.Android 10.0 et versions antérieures, cette propriété prend uniquement en charge les mots de passe en texte brut.
Dans Xamarin.Android 10.1 et versions ultérieures, cette propriété prend également en charge env:
et file:
préfixes qui peuvent être utilisés pour spécifier une variable d’environnement ou un fichier qui contient le mot de passe. Ces options permettent d’empêcher l’affichage du mot de passe dans les journaux de génération.
Par exemple, pour utiliser une variable d’environnement nommée AndroidSigningPassword :
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
Pour utiliser un fichier situé à l’adresse C:\Users\user1\AndroidSigningPassword.txt
suivante :
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Remarque
Le env:
préfixe n’est pas pris en charge lorsqu’il $(AndroidPackageFormat)
est défini sur aab
.
AndroidSigningKeyStore
Spécifie le nom de fichier du magasin de clés créé par keytool
. Ceci correspond à la valeur fournie pour l’option keytool -keystore.
AndroidSigningStorePass
Spécifie le mot de passe à $(AndroidSigningKeyStore)
.
C’est la valeur fournie à keytool
lors de la création du fichier de magasin de clés et demandée avec Entrez le mot de passe du magasin de clés :.
Dans Xamarin.Android 10.0 et versions antérieures, cette propriété prend uniquement en charge les mots de passe en texte brut.
Dans Xamarin.Android 10.1 et versions ultérieures, cette propriété prend également en charge env:
et file:
préfixes qui peuvent être utilisés pour spécifier une variable d’environnement ou un fichier qui contient le mot de passe. Ces options permettent d’empêcher l’affichage du mot de passe dans les journaux de génération.
Par exemple, pour utiliser une variable d’environnement nommée AndroidSigningPassword :
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
Pour utiliser un fichier situé à l’adresse C:\Users\user1\AndroidSigningPassword.txt
suivante :
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Remarque
Le env:
préfixe n’est pas pris en charge lorsqu’il $(AndroidPackageFormat)
est défini sur aab
.
AndroidSigningPlatformKey
Spécifie le fichier de clé à utiliser pour signer l’apk.
Cela est utilisé uniquement lors de la création system
d’applications.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidSigningPlatformCert
Spécifie le fichier de certificat à utiliser pour signer l’apk.
Cela est utilisé uniquement lors de la création system
d’applications.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidSupportedAbis
Propriété de chaîne qui contient une liste délimitée par des points-virgules (;
)-délimitées par des ABIs qui doivent être incluses dans le .apk
.
Les valeurs prises en charge sont :
armeabi-v7a
x86
arm64-v8a
: nécessite Xamarin.Android 5.1 et ultérieur.x86_64
: nécessite Xamarin.Android 5.1 et ultérieur.
AndroidTlsProvider
Valeur de chaîne qui spécifie le fournisseur TLS à utiliser dans une application. Les valeurs possibles sont les suivantes :
Annuler/la chaîne vide : dans Xamarin.Android 7.3 et versions ultérieures, cela équivaut à
btls
.dans Xamarin.Android 7.1, équivaut à
legacy
.Cela correspond au paramètre Par défaut dans les pages de propriétés de Visual Studio.
btls
: utilise BoringSSL pour la communication TLS avec HttpWebRequest.Cela permet d’utiliser TLS 1.2 sur toutes les versions d’Android.
Cela correspond au paramètre TLS 1.2+ natif dans les pages de propriétés de Visual Studio.
legacy
: dans Xamarin.Android 10.1 et versions antérieures, utilisez l’implémentation SSL managée historique pour l’interaction réseau. Cela ne prend pas en charge TLS 1.2.Cela correspond au paramètre TLS 1.0 managé dans les pages de propriétés de Visual Studio.
Dans Xamarin.Android 10.2 et versions ultérieures, cette valeur est ignorée et le
btls
paramètre est utilisé.default
: cette valeur n’est pas susceptible d’être utilisée dans les projets Xamarin.Android. Dans ce cas, la valeur recommandée est une chaîne vide, qui correspond au paramètre Par défaut des pages de propriétés Visual Studio.La valeur
default
n’est pas disponible dans les pages de propriétés Visual Studio.Ceci équivaut à
legacy
.
Ajouté dans Xamarin.Android 7.1.
AndroidUseAapt2
Propriété booléenne qui permet au développeur de contrôler l’utilisation de l’outil pour l’empaquetage aapt2
.
Par défaut, cette valeur est False et Xamarin.Android utilise aapt
.
Si le développeur souhaite utiliser la nouvelle aapt2
fonctionnalité, ajoutez :
<AndroidUseAapt2>True</AndroidUseAapt2>
dans leur .csproj
. Fournissez également la propriété sur la ligne de commande :
/p:AndroidUseAapt2=True
Cette propriété a été ajoutée dans Xamarin.Android 8.3. La définition AndroidUseAapt2
à false
est déconseillée dans Xamarin.Android 11.2.
AndroidUseApkSigner
Propriété bool qui permet au développeur d’utiliser l’outil apksigner
plutôt que jarsigner
.
Ajouté dans Xamarin.Android 8.2.
AndroidUseDefaultAotProfile
Propriété bool qui permet au développeur de supprimer l’utilisation des profils AOT par défaut.
Pour supprimer les profils AOT par défaut, définissez la propriété sur false
.
Ajouté dans Xamarin.Android 10.1.
AndroidUseInterpreter
Propriété booléenne qui provoque le .apk
conteneur de l’interpréteur mono, et non le JIT normal.
Experimental.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidUseLegacyVersionCode
Propriété booléenne qui permet au développeur de rétablir le calcul versionCode à son ancien comportement pré Xamarin.Android 8.2. Elle est RÉSERVÉE aux développeurs possédant des applications dans Google Play Store. Il est fortement recommandé d’utiliser la nouvelle propriété $(AndroidVersionCodePattern)
.
Ajouté dans Xamarin.Android 8.2.
AndroidUseManagedDesignTimeResourceGenerator
Propriété booléenne qui basculera au fil du temps de conception pour utiliser l’analyseur de ressources managée plutôt que aapt
.
Ajouté dans Xamarin.Android 8.1.
AndroidUseSharedRuntime
Propriété booléenne qui détermine si les packages de runtime partagé sont requis pour exécuter l’application sur l’appareil cible. Le fait de s’appuyer sur les packages de runtime partagé permet de réduire la taille du package d’application, ce qui accélère le processus de création et de déploiement du package, aboutissant à un cycle de génération/déploiement/débogage plus rapide.
Avant Xamarin.Android 11.2, cette propriété doit être True
destinée aux builds Debug et False
aux projets Release.
Cette propriété a été supprimée dans Xamarin.Android 11.2.
AndroidVersionCode
Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionCode
AndroidManifest.xml
fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Il s’agit de la valeur par défaut de .NET 6.
Cette propriété est ignorée si $(AndroidCreatePackagePerAbi)
et $(AndroidVersionCodePattern)
sont utilisées.
@android:versionCode
est une valeur entière qui doit être incrémentée pour chaque version de Google Play. Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@android:versionCode
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AndroidVersionCodePattern
Propriété de chaîne qui permet au développeur de personnaliser le versionCode
manifeste.
Consultez Création de code de version pour APK pour plus d’informations sur le choix d’un versionCode
.
Voici des exemples : si abi
est armeabi
et si versionCode
dans le manifeste est 123
, {abi}{versionCode}
produit un code de version 1123
quand $(AndroidCreatePackagePerAbi)
a la valeur True ; sinon il produit la valeur 123.
Si abi
est x86_64
et versionCode
dans le manifeste est 44
. Ceci produit 544
quand $(AndroidCreatePackagePerAbi)
est True ; sinon, il produit la valeur 44
.
Si nous incluons une chaîne avec remplissage à gauche {abi}{versionCode:0000}
, ceci produit 50044
, car nous remplissons le versionCode
à gauche avec 0
. Vous pouvez également utiliser le remplissage décimal tel que {abi}{versionCode:D4}
qui fait la même chose que l’exemple précédent.
Seules les chaînes avec le format de remplissage « 0 » et « Dx » sont prises en charge, car la valeur DOIT être un entier.
Éléments clés prédéfinis
abi : insère l’abi ciblé pour l’application
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK : insère la valeur minimale prise en charge du Kit de développement logiciel (SDK) prise en charge à partir du
AndroidManifest.xml
ou11
si aucune valeur n’est définie.versionCode : utilise le code de version directement à partir de
Properties\AndroidManifest.xml
.
Vous pouvez définir des éléments personnalisés en utilisant la propriété $(AndroidVersionCodeProperties)
(définie ensuite).
La valeur par défaut est {abi}{versionCode:D6}
. Si un développeur souhaite conserver l’ancien comportement, vous pouvez la remplacer en définissant la propriété $(AndroidUseLegacyVersionCode)
sur true
.
Ajouté dans Xamarin.Android 7.2.
AndroidVersionCodeProperties
Propriété de chaîne qui permet au développeur de définir des éléments personnalisés à utiliser avec le $(AndroidVersionCodePattern)
.
Ils sont sous la forme d’une paire key=value
. Tous les éléments dans value
doivent être des valeurs entières. Par exemple : screen=23;target=$(_AndroidApiLevel)
. Vous constatez que vous pouvez utiliser des propriétés MSBuild existantes ou personnalisées dans la chaîne.
Ajouté dans Xamarin.Android 7.2.
ApplicationId
Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@package
AndroidManifest.xml
fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Il s’agit de la valeur par défaut de .NET 6.
Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@package
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
ApplicationTitle
Propriété MSBuild qui peut être utilisée comme alternative au /manifest/application/@android:label
AndroidManifest.xml
fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Il s’agit de la valeur par défaut de .NET 6.
Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/application/@android:label
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
ApplicationVersion
Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionName
AndroidManifest.xml
fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>
.
Il s’agit de la valeur par défaut de .NET 6.
Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@android:versionName
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
AotAssemblies
Propriété booléenne qui détermine si les assemblys seront compilés à l’avance dans le code natif et inclus dans le .apk
.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.
Cette propriété est définie par défaut sur False
.
AProfUtilExtraOptions
Options supplémentaires à passer à aprofutil
.
BeforeGenerateAndroidManifest
Les cibles MSBuild répertoriées dans cette propriété s’exécutent directement avant _GenerateJavaStubs
.
Ajouté dans Xamarin.Android 9.4.
Configuration
Spécifie la configuration de build à utiliser, telle que « Déboguer » ou « Release ». La propriété Configuration est utilisée pour déterminer les valeurs par défaut pour d’autres propriétés qui déterminent le comportement de la cible. Vous pouvez créer des configurations supplémentaires dans votre IDE.
Par défaut, la Debug
configuration entraîne la Install
etSignAndroidPackage
cible la création d’un package Android plus petit qui nécessite la présence d’autres fichiers et packages pour fonctionner.
La configuration par défaut Release
entraîne la Install
etSignAndroidPackage
cible la création d’un package Android autonome et peut être utilisée sans installer d’autres packages ou fichiers.
DebugSymbols
Valeur booléenne qui détermine si le package Android est débogueur, en combinaison avec la $(DebugType)
propriété.
Un package débogueur contient des symboles de débogage, définit l’attribut //application/@android:debuggable
true
sur et ajoute automatiquement leINTERNET
autorisation pour qu’un débogueur puisse s’attacher au processus. Une application est débogueur si DebugSymbols
elle est True
et DebugType
est la chaîne vide ou Full
.
DebugType
Spécifie le type de symboles de débogage à générer dans le cadre de la build, ce qui affecte également si l’application est débogueable. Valeurs possibles :
Full : des symboles complets sont générés. Si le
DebugSymbols
La propriété MSBuild est égalementTrue
, puis le package d’application est débogueur.PdbOnly: les symboles « PDB » sont générés. Le package d’application n’est pas débogueur.
Si DebugType
n’est pas défini ou est une chaîne vide, la propriété DebugSymbols
contrôle si l’application est ou non débogable.
EmbedAssembliesIntoApk
Propriété booléenne qui détermine si les assemblys de l’application doivent être incorporés ou non dans le package d’application.
Cette propriété doit être définie sur True
pour les versions Release, et sur False
pour les projets Debug. Sa valeur doit être True
dans les versions Debug si le déploiement rapide ne prend pas en charge l’appareil cible.
Lorsque cette propriété est False
, alors le $(AndroidFastDeploymentType)
La propriété MSBuild contrôle également ce qui sera incorporé dans le , ce qui peut avoir un impact sur les .apk
temps de déploiement et de reconstruction.
EnableLLVM
Propriété booléenne qui détermine si LLVM sera utilisée ou non lors de la compilation anticipée des assemblys dans du code natif.
Le kit de développement logiciel (NDK) Android doit être installé pour générer un projet sur lequel cette propriété est activée.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.
Cette propriété est définie par défaut sur False
.
Cette propriété est ignorée sauf si la propriété MSBuild $(AotAssemblies)
est définie sur True
.
EnableProguard
Propriété booléenne qui détermine si proguard est exécuté dans le cadre du processus d’empaquetage pour lier du code Java.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.
Cette propriété est définie par défaut sur False
.
Lorsque True
, les fichiers @(ProguardConfiguration) sont utilisés pour contrôler proguard
l’exécution.
GenerateApplicationManifest
Active ou désactive les propriétés MSBuild suivantes qui émettent des valeurs dans le fichier final AndroidManifest.xml
:
La valeur $(GenerateApplicationManifest)
par défaut est true
dans .NET 6 et false
dans « legacy » Xamarin.Android.
La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.
JavaMaximumHeapSize
Spécifie la valeur du paramètre Java-Xmx
à utiliser lors de la génération du .dex
fichier dans le cadre du processus d’empaquetage. Si non spécifié, l’option -Xmx
fournit java avec la valeur 1G
. Ceci est couramment requis sur Windows par rapport à d’autres plateformes.
Personnalisez la valeur en changeant :
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOptions
Spécifie les options de ligne de commande à passer à java lors de la génération du .dex
fichier.
JarsignerTimestampAuthorityCertificateAlias
Cette propriété vous permet de spécifier un alias dans le magasin de clés pour une autorité d’horodatage. Pour plus d’informations, consultez la documentation de prise en charge de l’horodatage de signature Java.
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
Cette propriété vous permet de spécifier une URL vers un service d’autorité d’horodatage. Cela peut être utilisé pour vous assurer que votre .apk
signature inclut un horodatage.
Pour plus d’informations, consultez la documentation de prise en charge de l’horodatage de signature Java.
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
Propriété bool qui permet de générer un fichier de dépendances de l’éditeur de liens. Ce fichier peut être utilisé en tant qu’entrée pour l’outil illinkanalyzer.
Le fichier de dépendances nommé linker-dependencies.xml.gz
est écrit dans le répertoire du projet. Sur. NET5/6 est écrit en regard des assemblys liés dans obj/<Configuration>/android<ABI>/linked
le répertoire.
La valeur par défaut est Faux.
MandroidI18n
Spécifie la prise en charge de l’internationalisation incluse dans l’application, comme le classement et le tri des tables. La valeur est une liste (délimitée par des virgules ou des points-virgules) d’une ou plusieurs des valeurs suivantes, qui ne respectent pas la casse :
None : n’inclure aucun encodage supplémentaire.
All : inclure tous les encodages disponibles.
CJK : Inclure des encodages chinois, japonais et coréens tels que japonais (EUC) [enc-jp, CP51932], japonais (Shift-JIS) [iso-2022-jp, shift_jis, CP932], japonais (JIS) [CP50220], chinois simplifié (GB2312) [gb2312, CP936], Coréen (UHC) [ks_c_5601-1987, CP949], Coréen (EUC) [euc-kr, CP51949], Chinois traditionnel (Big5) [big5, CP950] et Chinois simplifié (GB18030) [GB18030, CP54936].
MidEast : Inclure des encodages moyen-orientaux tels que turc (Windows) [iso-8859-9, CP1254], hébreu (Windows) [windows-1255, CP1255], arabe (Windows) [windows-1256, CP1256], arabe (ISO) [iso-8859-6, CP28596], hébreu (ISO) [iso-8859-8, CP28598], latin 5 (ISO) [iso-8859-9, CP28599] et hébreu (alternative Iso) [iso-8859-8, CP38598].
Autre : Inclure d’autres encodages tels que Cyrillique (Windows) [CP1251], Baltique (Windows) [iso-8859-4, CP1257], Vietnamien (Windows) [CP1258], Cyrillique (KOI8-R) [koi8-r, CP1251], Ukrainien (KOI8-U) [koi8-u, CP1251], Baltique (ISO) [iso-8859-4, CP1257], Cyrillique (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, ou, 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] et Thaï (Windows) [CP874].
Rare : Inclure des encodages rares tels qu’IBM EBCDIC (turc) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada avec Euro) [CP1140], IBM EBCDIC (Allemagne avec Euro) [CP1141], IBM EBCDIC (Danemark/Norvège avec Euro) [CP1142], IBM EBCDIC (Finlande/Suède avec Euro) [CP1143], IBM EBCDIC (Italie avec Euro) [CP1144], IBM EBCDIC (Amérique latine/Espagne avec Euro) [CP1145], IBM EBCDIC (Royaume-Uni avec Euro) [CP1146], IBM EBCDIC (France avec Euro) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Islandais avec Euro) [CP1149], IBM EBCDIC (Allemagne) [CP20273], IBM EBCDIC (Danemark/Norvège) [CP20277], IBM EBCDIC (Finlande/Suède) [CP20278], IBM EBCDIC (Italie) [CP20280], IBM EBCDIC (Amérique latine/Espagne) [CP20284], IBM EBCDIC (Royaume-Uni) [CP20285], IBM EBCDIC (Japonais Katakana Extended) [CP20290], IBM EBCDIC (France) [CP20297], IBM EBCDIC (Arabe) [CP20420], IBM EBCDIC (hébreu) [CP20424], IBM EBCDIC (Islande) [CP20871], IBM EBCDIC (Cyrillique - Serbe, Bulgare) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (International) [CP500], Arabe (ASMO 708) [CP708], Europe centrale (DOS) [CP852], Cyrillique (DOS) [CP855], Turc (DOS) [CP857], Europe occidentale (DOS avec Euro) [CP858], Hébreu (DOS) [CP862], Arabe (DOS) [CP88] [CP864], Russe (DOS) [CP866], Grec (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870] et IBM EBCDIC (Grec) [CP875].
Ouest : inclure des encodages occidentaux tels que l’Europe occidentale (Mac) [macintosh, CP10000], Islandais (Mac) [x-mac-islandais, CP10079], Europe centrale (Windows) [iso-8859-2, CP1250], Europe occidentale (Windows) [iso-8859-1, CP1252], Grec (Windows) [iso-8859-7, CP1253], Europe centrale (ISO) [iso-8859-2, CP28592], Latin 3 (ISO) [iso-8859-3, CP28593], Grec (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM États-Unis [CP437], Western European (DOS) [CP850], Portugais (DOS) [CP860], Islande (DOS) [CP861], French Canadian (DOS) [CP863] et Nordic (DOS) [CP865].
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
Spécifie un préfixe de chemin d’accès supprimé du début des noms de fichiers avec une action build de AndroidResource
. Ceci permet de changer l’emplacement où se trouvent les ressources.
La valeur par défaut est Resources
. Changez ceci en res
pour la structure de projet Java.
MonoSymbolArchive
Propriété booléenne qui contrôle si .mSYM
les artefacts sont créés pour une utilisation ultérieure avec mono-symbolicate
, afin d’extraire les informations de nom de fichier et de numéro de ligne « réels » des traces de la pile Release.
Cette valeur est True par défaut pour les applications « Release » qui ont activé les symboles de débogage : $(EmbedAssembliesIntoApk)
a la valeur True, $(DebugSymbols)
a la valeur True, et $(Optimize)
est Vrai.
Ajouté dans Xamarin.Android 7.1.