Propriedades de build
As propriedades do MSBuild controlam o comportamento dos destinos. Eles são especificados no arquivo de projeto, por exemplo , MyApp.csproj, dentro de um MSBuild PropertyGroup.
AdbTarget
A $(AdbTarget)
propriedade especifica o dispositivo de destino Android no qual o pacote Android pode ser instalado ou removido.
O valor dessa propriedade é o mesmo que a adb
opção Dispositivo de destino.
AfterGenerateAndroidManifest
Os destinos do MSBuild listados nesta propriedade serão executados diretamente após o destino interno _GenerateJavaStubs
, que é onde o AndroidManifest.xml
arquivo é gerado no $(IntermediateOutputPath)
. Se você quiser fazer quaisquer modificações no arquivo gerado AndroidManifest.xml
, você pode fazer isso usando este ponto de extensão.
Adicionado no Xamarin.Android 9.4.
AndroidAapt2CompileExtraArgs
Especifica as opções de linha de comando a serem passadas para o comando aapt2 compile ao processar ativos e recursos do Android.
Adicionado no Xamarin.Android 9.1.
AndroidAapt2LinkExtraArgs
Especifica as opções de linha de comando a serem passadas para o comando aapt2 link ao processar ativos e recursos do Android.
Adicionado no Xamarin.Android 9.1.
AndroidAddKeepAlives
Uma propriedade booleana que controla se o vinculador inserirá GC.KeepAlive()
chamadas em projetos de vinculação para impedir a coleta prematura de objetos.
O valor padrão é True
para compilações de configuração de versão.
Esta propriedade foi adicionada em Xamarin.Android 11.2.
AndroidAotArgumentos Adicionais
Uma propriedade string que permite passar opções para o compilador Mono durante a Aot
tarefa para projetos que têm ou $(AndroidEnableProfiledAot)
$(AotAssemblies)
definido como true
.
O valor da cadeia de caracteres da propriedade é adicionado ao arquivo de resposta ao chamar o compilador cruzado Mono.
Em geral, essa propriedade deve ser deixada em branco, mas em determinados cenários especiais ela pode fornecer flexibilidade útil.
A $(AndroidAotAdditionalArguments)
propriedade é diferente da propriedade relacionada $(AndroidExtraAotOptions)
, $(AndroidAotAdditionalArguments)
passa opções separadas por espaço autônomas completas como --verbose
ou --debug
para o compilador AOT, enquanto $(AndroidExtraAotOptions)
contém argumentos separados por vírgulas --aot
que fazem parte da opção do compilador AOT.
AndroidAotCustomProfilePath
O arquivo que aprofutil
deve ser criado para armazenar dados do criador de perfil.
AndroidAotPerfis
Uma propriedade string que permite ao desenvolvedor adicionar perfis AOT a partir da linha de comando. É uma lista separada por ponto-e-vírgula ou vírgula de caminhos absolutos. Adicionado em Xamarin.Android 10.1.
AndroidAotProfilerPort
A porta à qual aprofutil
deve se conectar ao obter dados de criação de perfil.
AndroidAotEnableLazyLoad
Habilite o carregamento lento (atrasado) de assemblies AOT-d, em vez de pré-carregá-los na inicialização. O valor padrão é True
para compilações de versão com qualquer forma de AOT habilitada.
Introduzido no .NET 6.
AndroidApkDigestAlgorithm
Um valor de cadeia de caracteres que especifica o algoritmo de resumo a ser usado com jarsigner -digestalg
.
O valor padrão é SHA-256
. No Xamarin.Android 10.0 e versões anteriores, o valor padrão era SHA1
.
Adicionado no Xamarin.Android 9.4.
AndroidApkSignerAdditionalArguments
Uma propriedade string que permite ao desenvolvedor fornecer argumentos para a apksigner
ferramenta.
Adicionado no Xamarin.Android 8.2.
AndroidApkSigningAlgorithm
Um valor de cadeia de caracteres que especifica o algoritmo de assinatura a ser usado com jarsigner -sigalg
.
O valor padrão é SHA256withRSA
. No Xamarin.Android 10.0 e versões anteriores, o valor padrão era md5withRSA
.
Adicionado no Xamarin.Android 8.2.
Aplicativo Android
Um valor booleano que indica se o projeto é para um aplicativo Android (True
) ou para um projeto de biblioteca Android (False
ou não presente).
Apenas um projeto com <AndroidApplication>True</AndroidApplication>
pode estar presente em um pacote Android. (Infelizmente, esse requisito não é verificado, o que pode resultar em erros sutis e bizarros em relação aos recursos do Android.)
AndroidApplicationJavaClass
O nome completo da classe Java a ser usado no lugar de android.app.Application
quando uma classe herda de Android.App.Application.
A $(AndroidApplicationJavaClass)
propriedade geralmente é definida por outras propriedades, como a $(AndroidEnableMultiDex)
propriedade MSBuild.
Adicionado no Xamarin.Android 6.1.
AndroidBinUtilsPath
Um caminho para um diretório que contém os binutils do Android, como ld
, o vinculador nativo e as
, o assembler nativo. Essas ferramentas estão incluídas na instalação do Xamarin.Android.
O valor padrão é $(MonoAndroidBinDirectory)\binutils\bin\
.
Adicionado em Xamarin.Android 10.0.
AndroidBoundExceptionType
Um valor de cadeia de caracteres que especifica como as exceções devem ser propagadas quando um tipo fornecido pelo Xamarin.Android implementa um tipo ou interface .NET em termos de tipos Java, por exemplo Android.Runtime.InputStreamInvoker
e System.IO.Stream
, ou Android.Runtime.JavaDictionary
e System.Collections.IDictionary
.
Java
: O tipo de exceção Java original é propagado como está.Java
significa que, por exemplo,InputStreamInvoker
não implementa corretamente aSystem.IO.Stream
API porqueJava.IO.IOException
pode ser lançada de em vez deSystem.IO.IOException
Stream.Read()
.Java
é o comportamento de propagação de exceção em todas as versões do Xamarin.Android, incluindo Xamarin.Android 13.0.System
: O tipo de exceção Java original é capturado e encapsulado em um tipo de exceção .NET apropriado.System
significa que, por exemplo,InputStreamInvoker
implementaSystem.IO.Stream
corretamente eStream.Read()
não lançaJava.IO.IOException
instâncias. (Em vez disso, ele pode lançar umSystem.IO.IOException
contendo aJava.IO.IOException
como oException.InnerException
valor.)System
é o valor padrão no .NET 6.0.
Adicionado em Xamarin.Android 10.2.
AndroidBoundInterfacesContainConstants
Uma propriedade booleana que determina se as constantes de vinculação em interfaces serão suportadas ou a solução alternativa de criar uma IMyInterfaceConsts
classe será usada.
O valor padrão está True
no .NET 6 e False
para legado.
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
Uma propriedade booleana que terá suporte para membros padrão e estáticos em interfaces ou uma solução alternativa antiga de criação de uma classe irmã contendo membros estáticos como abstract class MyInterface
.
O valor padrão está True
no .NET 6 e False
para legado.
AndroidBoundInterfacesContainTypes
Uma propriedade booleana que terá suporte para tipos aninhados em interfaces ou a solução alternativa de criar um tipo não aninhado como IMyInterfaceMyNestedClass
.
O valor padrão está True
no .NET 6 e False
para legado.
AndroidBuildApplicationPackage
Um valor booleano que indica se o pacote deve ser criado e assinado (.apk). Definir esse valor como True
é equivalente a usar o SignAndroidPackage
construir alvo.
O suporte para essa propriedade foi adicionado após o Xamarin.Android 7.1.
Essa propriedade é False
por padrão.
AndroidBundleConfigurationFile
Especifica um nome de arquivo a ser usado como um arquivo de configuração para bundletool
ao criar um Android App Bundle. Esse arquivo controla alguns aspectos de como os APKs são gerados a partir do pacote, como em quais dimensões o pacote é dividido para produzir APKs.
O Xamarin.Android configura algumas dessas configurações automaticamente, incluindo a lista de extensões de arquivo a serem deixadas descompactadas.
Essa propriedade só será relevante se $(AndroidPackageFormat)
estiver definida como aab
.
Adicionado em Xamarin.Android 10.3.
AndroidBundleToolExtraArgs
Especifica as opções de linha de comando a serem passadas para o comando bundletool ao compilar pacotes de aplicativos.
Esta propriedade foi adicionada em Xamarin.Android 11.3.
AndroidClassParser
Uma propriedade string que controla como .jar
os arquivos são analisados. Entre os valores possíveis estão:
class-parse: usa
class-parse.exe
para analisar o código de bytes Java diretamente, sem a assistência de uma JVM.jar2xml: usar
jar2xml.jar
para usar a reflexão do Java para extrair tipos e membros de um arquivo.jar
.
As vantagens de class-parse
sobre jar2xml
são:
class-parse
pode extrair nomes de parâmetros do bytecode Java contendo símbolos de depuração (bytecode compilado comjavac -g
).class-parse
não "ignora" classes que herdam ou contêm membros de tipos insolúveis.
Adicionado no Xamarin.Android 6.0.
O valor padrão está jar2xml
em "legado" Xamarin.Android e class-parse
no .NET 6 e superior.
O suporte para jar2xml
é obsoleto e jar2xml
é removido no .NET 6.
AndroidCodegenTarget
Uma propriedade de cadeia de caracteres que controla a ABI de destino de geração de código. Entre os valores possíveis estão:
XamarinAndroid: Usa a API de vinculação JNI presente desde o Mono para Android 1.0. Assemblies de associação criados com Xamarin.Android 5.0 ou posterior podem ser executados apenas no Xamarin.Android 5.0 ou posterior (adições de API/ABI), mas o código-fonte é compatível com o das versões anteriores do produto.
XAJavaInterop1: usar Java.Interop para invocações de JNI. Assemblies de associação usando
XAJavaInterop1
só podem compilar e executar com o Xamarin.Android 6.1 ou posterior. O Xamarin.Android 6.1 e os posteriores associamMono.Android.dll
com esse valor.
Os benefícios de XAJavaInterop1
incluem:
Assemblies menores.
Cache em
jmethodID
para invocações de métodobase
, desde que todos os outros tipos de associação na hierarquia de herança sejam compilados com oXAJavaInterop1
ou posterior.Cache em
jmethodID
de construtores do Java Callable Wrapper para subclasses gerenciadas.
O valor padrão é XAJavaInterop1
.
O suporte para XamarinAndroid
é obsoleto e o suporte para XamarinAndroid
será removido como parte do .NET 6.
AndroidCreatePackagePerAbi
Uma propriedade booleana que determina se um conjunto de arquivos - um por ABI especificado em $(AndroidSupportedAbis)
-- deve ser criado em vez de ter suporte para todas as ABIs em um único .apk
.
Consulte também o guia Building ABI-Specific APKs .
AndroidCreateProguardMappingFile
Uma propriedade booleana que controla se um arquivo de mapeamento proguard é gerado como parte do processo de compilação.
Adicionar o seguinte ao csproj fará com que o arquivo seja gerado e usa a AndroidProguardMappingFile
propriedade para controlar o local do arquivo de mapeamento final.
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
Ao produzir .aab
arquivos, o arquivo de mapeamento é incluído automaticamente no pacote. Não há necessidade de enviá-lo para a Google Play Store manualmente. Ao usar .apk
arquivos, o AndroidProguardMappingFile
precisará ser carregado manualmente.
O valor padrão é True
ao usar $(AndroidLinkTool)
=r8.
Adicionado em Xamarin.Android 12.3.
AndroidDebugKeyAlgoritmo
Especifica o algoritmo padrão a ser usado para o debug.keystore
. O valor padrão é RSA
.
AndroidDebugKeyValidity
Especifica a validade padrão a ser usada para o debug.keystore
. O valor padrão é 10950
ou 30 * 365
ou 30 years
.
AndroidDebugStoreType
Especifica o formato de arquivo de armazenamento de chaves a ser usado para o debug.keystore
. O padrão é pkcs12
.
Adicionado em Xamarin.Android 10.2.
AndroidDeviceUserId
Permite implantar e depurar o aplicativo em contas de convidado ou de trabalho. O valor é o uid
valor que você obtém do seguinte comando adb:
adb shell pm list users
O comando acima retornará os seguintes dados:
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
O uid
é o primeiro valor inteiro. Na saída acima, eles são 0
e 10
.
A $(AndroidDeviceUserId)
propriedade foi adicionada em Xamarin.Android 11.2.
AndroidDexTool
Uma propriedade de estilo enum com valores válidos de dx
ou d8
. Indica qual compilador dex do Android é usado durante o processo de build do Xamarin.Android.
O valor padrão é dx
. Consulte nossa documentação sobre D8 e R8.
AndroidEnableDesugar
Uma propriedade booleana que determina se desugar
está habilitada. Atualmente, o Android não suporta todos os recursos do Java 8, e o toolchain padrão implementa os novos recursos de linguagem executando transformações de código de bytes, chamadas desugar
, na saída do javac
compilador. O valor padrão é False
if using $(AndroidDexTool)=dx
e True
if using $(AndroidDexTool)
=d8
.
AndroidAtivarGooglePlayStoreVerificações
Uma propriedade bool que permite aos desenvolvedores desativar as seguintes verificações da Google Play Store: XA1004, XA1005 e XA1006. Desativar essas verificações é útil para desenvolvedores que não estão segmentando a Google Play Store e não desejam executar essas verificações.
Adicionado no Xamarin.Android 9.4.
AndroidEnableMultiDex
Uma propriedade booleana que determina se o suporte multi-dex será ou não usado no ..apk
O suporte para essa propriedade foi adicionado no Xamarin.Android 5.1.
Essa propriedade é False
por padrão.
AndroidEnablePreloadAssemblies
Uma propriedade booleana que controla se todos os assemblies gerenciados agrupados no pacote do aplicativo são carregados durante a inicialização do processo ou não.
Quando definidos como True
, todos os assemblies agrupados dentro do pacote de aplicativos serão carregados durante a inicialização do processo, antes que qualquer aplicativo de código seja invocado.
Pré-carregar montagens é o que o Xamarin.Android faz.
Quando definido como False
, os assemblies somente serão carregados conforme necessário.
O carregamento de assemblies conforme necessário permite que os aplicativos sejam iniciados mais rapidamente e também é mais consistente com a semântica do .NET da área de trabalho.
Para ver a economia de tempo, defina a Propriedade do Sistema debug.mono.log
para incluir timing
e procure a mensagem Finished loading assemblies: preloaded
dentro de adb logcat
.
Aplicativos ou bibliotecas, que usam injeção de dependência, podem exigir que essa propriedade seja True
se, por sua vez, exigirem que retornem todos os assemblies dentro do pacote de aplicativos, mesmo que AppDomain.CurrentDomain.GetAssemblies()
o assembly não teria sido necessário de outra forma.
Por padrão, esse valor será definido como True
para Xamarin.Android e será definido como False
para compilações do .NET 6+.
Adicionado no Xamarin.Android 9.2.
AndroidEnableProfiledAot
Uma propriedade booleana que determina se os perfis AOT são ou não usados durante a compilação antecipada.
Os perfis estão listados em @(AndroidAotProfile)
grupo de itens. Este ItemGroup contém perfis padrão. Ele pode ser substituído removendo o(s) existente(s) e adicionando seus próprios perfis AOT.
O suporte para essa propriedade foi adicionado no Xamarin.Android 9.4.
Essa propriedade é False
por padrão.
AndroidEnableSGenConcurrent
Uma propriedade booleana que determina se o coletor GC simultâneo do Mono será ou não usado.
O suporte para essa propriedade foi adicionado no Xamarin.Android 7.2.
Essa propriedade é False
por padrão.
AndroidErrorOnCustomJavaObject
Uma propriedade booleana que determina se os tipos podem ser implementados Android.Runtime.IJavaObject
sem também herdar de Java.Lang.Object
ou Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
Quando True, esses tipos gerarão um erro XA4212, caso contrário, um aviso XA4212 será gerado.
O suporte para essa propriedade foi adicionado no Xamarin.Android 8.1.
Essa propriedade é True
por padrão.
AndroidExplicitCrunch
Não é mais suportado no Xamarin.Android 11.0.
AndroidExtraAotOptions
Uma propriedade string que permite passar opções para o compilador Mono durante a Aot
tarefa para projetos que têm ou $(AndroidEnableProfiledAot)
$(AotAssemblies)
definido como true
.
O valor da cadeia de caracteres da propriedade é adicionado ao arquivo de resposta ao chamar o compilador cruzado Mono.
Em geral, essa propriedade deve ser deixada em branco, mas em determinados cenários especiais ela pode fornecer flexibilidade útil.
A $(AndroidExtraAotOptions)
propriedade é diferente da propriedade relacionada $(AndroidAotAdditionalArguments)
, $(AndroidAotAdditionalArguments)
coloca argumentos separados por vírgulas --aot
na opção do compilador Mono. $(AndroidExtraAotOptions)
em vez disso, passa opções --verbose
separadas por espaço autônomas como ou --debug
para o compilador.
Adicionado em Xamarin.Android 10.2.
AndroidFastDeploymentType
Uma :
lista de valores separados por (dois pontos) para controlar quais tipos podem ser implantados no diretório de implantação rápida no dispositivo de destino quando a $(EmbedAssembliesIntoApk)
propriedade MSBuild é False
. Se um recurso é implantado por Fast Deployment, ele não é inserido no .apk
gerado, o que pode acelerar os tempos de implantação. (Quanto mais rápido for implantado, menos frequentemente será .apk
necessário recriar e o processo de instalação poderá ser mais rápido.) Os valores válidos incluem:
Assemblies
: implantar os assemblies do aplicativo.Dexes
: Implante.dex
arquivos, bibliotecas nativas e mapas tipográficos. ODexes
valor só pode ser usado em dispositivos com Android 4.4 ou posterior (API-19).
O valor padrão é Assemblies
.
O suporte para recursos e ativos de implantação rápida por meio desse sistema foi removido na confirmação f0d565fe. Isso porque era necessário o uso de APIs preteridas para funcionar.
Experimental. Esta propriedade foi adicionada no Xamarin.Android 6.1.
AndroidFragmentType
Especifica o tipo totalmente qualificado de padrão a ser usado para todos os elementos de layout <fragment>
ao gerar o código de associações de layout. O valor padrão é o tipo Android Android.App.Fragment
padrão.
AndroidGenerateJniMarshalMétodos
Uma propriedade bool que permite a geração de métodos de marechal JNI como parte do processo de compilação. Isso reduz consideravelmente o System.Reflection
uso no código auxiliar de vinculação.
O valor padrão é False
. Se os desenvolvedores desejarem usar o novo recurso de métodos de marechal JNI, eles podem definir
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
em seu .csproj
. Como alternativa, forneça a propriedade na linha de comando por meio de
/p:AndroidGenerateJniMarshalMethods=True
Experimental. Adicionado no Xamarin.Android 9.2.
O valor padrão é False
.
AndroidGenerateJniMarshalMethodsAdditionalArguments
Uma propriedade de cadeia de caracteres que pode ser usada para adicionar parâmetros à jnimarshalmethod-gen.exe
chamada e é útil para depuração, de modo que opções como -v
, -d
ou --keeptemp
podem ser usadas.
O valor padrão é uma cadeia de caracteres vazia. Ele pode ser definido no .csproj
arquivo ou na linha de comando. Por exemplo:
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
ou:
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
Adicionado no Xamarin.Android 9.2.
AndroidGenerateLayoutBindings
Permite a geração de code-behind de layout se definido como true
ou desabilita completamente se definido como false
. O valor padrão é false
.
AndroidGenerateResourceDesigner
O valor padrão é true
. Quando definido como false
, desabilita a geração de Resource.designer.cs
.
Adicionado no .NET 6 RC 1. Não suportado no Xamarin.Android.
AndroidHttpClientHandlerType
Controla a implementação padrão System.Net.Http.HttpMessageHandler
que será usada pelo System.Net.Http.HttpClient
construtor padrão. O valor é um nome de tipo qualificado pelo assembly de uma subclasse HttpMessageHandler
, adequado para usar com System.Type.GetType(string)
.
Os valores mais comuns para essa propriedade são:
Xamarin.Android.Net.AndroidClientHandler
: Use as APIs Java do Android para executar solicitações de rede. O uso de APIs Java permite acessar URLs TLS 1.2 quando a versão subjacente do Android suporta TLS 1.2. Somente versões Android 5.0 e posteriores fornecem suporte confiável ao TLS 1.2 por meio de Java.Corresponde à opção Android nas páginas de propriedades do Visual Studio e à opção AndroidClientHandler nas páginas de propriedades do Visual Studio para Mac.
O novo assistente de projeto seleciona essa opção para novos projetos quando a Versão mínima do Android está configurada como Android 5.0 (Lollipop) ou mais recente no Visual Studio ou quando Plataformas de destino está definido como Melhor e Mais Recente no Visual Studio para Mac.
Unset/a cadeia de caracteres vazia, que é equivalente a
System.Net.Http.HttpClientHandler, System.Net.Http
Corresponde à opção Padrão nas páginas de propriedades do Visual Studio.
O novo assistente de projeto seleciona essa opção para novos projetos quando a Versão mínima do Android está configurada como Android 4.4.87 ou mais antiga no Visual Studio ou quando Plataformas de destino está definido como Desenvolvimento Moderno ou Máxima Compatibilidade no Visual Studio para Mac.
System.Net.Http.HttpClientHandler, System.Net.Http
: Use o arquivo gerenciadoHttpMessageHandler
.Corresponde à opção Gerenciado nas páginas de propriedades do Visual Studio.
Observação
Se a compatibilidade com o TLS 1.2 for necessária nas versões do Android anteriores à 5.0 ou com o System.Net.WebClient
e as APIs relacionadas, o $(AndroidTlsProvider)
deverá ser usado.
Observação
O suporte para a $(AndroidHttpClientHandlerType)
propriedade funciona definindo a XA_HTTP_CLIENT_HANDLER_TYPE
variável de ambiente.
Um $XA_HTTP_CLIENT_HANDLER_TYPE
valor encontrado em um arquivo com uma ação de compilação de @(AndroidEnvironment)
terá precedência.
Adicionado no Xamarin.Android 6.1.
AndroidIncludeWrapSh
Um valor booleano que indica se o script wrapper do Android (wrap.sh
) deve ser empacotado no APK. O valor padrão é false
que o script wrapper pode influenciar significativamente a maneira como o aplicativo é iniciado e funciona e o script deve ser incluído somente quando necessário, por exemplo, ao depurar ou alterar o comportamento de inicialização/tempo de execução do aplicativo.
O script é adicionado ao projeto usando o @(AndroidNativeLibrary)
build action, porque ele é colocado no mesmo diretório que as bibliotecas nativas específicas da arquitetura e deve ser nomeado wrap.sh
.
A maneira mais fácil de especificar o caminho para o wrap.sh
script é colocá-lo em um diretório com o nome da arquitetura de destino. Essa abordagem funcionará se você tiver apenas um wrap.sh
por arquitetura:
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
No entanto, se o seu projeto precisar de mais de um wrap.sh
por arquitetura, para finalidades diferentes, essa abordagem não funcionará.
Em vez disso, nesses casos, o nome pode ser especificado usando os Link
metadados do AndroidNativeLibrary
:
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Se os Link
metadados forem usados, o caminho especificado em seu valor deverá ser um caminho de biblioteca válido específico da arquitetura nativa, relativo ao diretório raiz APK. O formato do caminho é lib\ARCH\wrap.sh
onde ARCH
pode ser um dos:
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
Especifica como os comentários de documentação XML do C# "detalhados" devem ser ao importar a documentação Javadoc em projetos de vinculação.
Requer o uso do @(JavaSourceJar)
construir ação.
A $(AndroidJavadocVerbosity)
propriedade é enum-like, com valores possíveis de full
ou intellisense
:
intellisense
: Emite apenas os comentários XML:<exception/>
,<param/>
,<returns/>
,<summary/>
.full
: Emitirintellisense
elementos, bem como<remarks/>
,<seealso/>
e qualquer outra coisa que seja suportável.
O valor padrão é intellisense
.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
Loja AndroidKeyStore
Um valor booleano que indica se as informações de assinatura personalizadas devem ser usadas. O valor padrão é False
, que significa que a chave de assinatura de depuração padrão será usada para assinar pacotes.
AndroidLaunchActivity
A atividade do Android a ser iniciada.
AndroidLinkMode
Especifica qual tipo de vinculação deve ser executada em assemblies contidos no pacote Android. Usado somente em projetos de aplicativo Android. O valor padrão é SdkOnly. Os valores válidos são:
None: nenhuma tentativa de vinculação ocorrerá.
SdkOnly: a vinculação ocorrerá apenas nas bibliotecas de classe base, não nos assemblies do usuário.
Full: a vinculação ocorrerá nas bibliotecas de classe base e nos assemblies do usuário.
Observação
o uso de um valor
AndroidLinkMode
definido como Full normalmente resulta em aplicativos com falha, principalmente quando a reflexão é usada. Evite usar isso, a menos que você realmente saiba o que está fazendo.
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkRecursos
Quando true
, o sistema de compilação vinculará os Tipos Aninhados da classe Resource.Designer.cs Resource
em todos os assemblies. O código IL que usa esses tipos será atualizado para usar os valores diretamente em vez de acessar campos.
Vincular os tipos aninhados pode ter um pequeno impacto na redução do tamanho do apk e também pode ajudar no desempenho da inicialização. Apenas as compilações "Release" estão vinculadas.
Experimental. Projetado apenas para funcionar com código como
var view = FindViewById(Resources.Ids.foo);
Quaisquer outros cenários (como reflexão) não serão suportados.
Suporte para esta propriedade foi adicionado em Xamarin.Android 11.3
AndroidLinkSkip
Especifica uma lista delimitada por ponto-e-vírgula (;
) de nomes de assembly, sem extensões de arquivo, de assemblies que não devem ser vinculados. Usado somente em projetos de aplicativo Android.
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
Uma propriedade de estilo enum com valores válidos de proguard
ou r8
. Indica qual redutor de código é usado para o código Java. O valor padrão é uma cadeia de caracteres vazia ou proguard
se $(AndroidEnableProguard)
for True
. Consulte nossa documentação sobre D8 e R8.
AndroidLintEnabled
Uma propriedade bool que permite ao desenvolvedor executar a ferramenta android lint
como parte do processo de empacotamento.
Quando $(AndroidLintEnabled)
=True, as seguintes propriedades são usadas:
As seguintes ações de compilação também podem ser usadas:
Confira a Ajuda do Lint para obter mais detalhes sobre as ferramentas lint
do Android.
AndroidLintEnabledIssues
Uma propriedade de cadeia de caracteres que é uma lista separada por vírgulas de problemas de fiapos a serem habilitados.
Usado somente quando $(AndroidLintEnabled)
=True.
AndroidLintDisabledIssues
Uma propriedade string que é uma lista separada por vírgulas de problemas de fiapos a serem desabilitados.
Usado somente quando $(AndroidLintEnabled)
=True.
AndroidLintCheckIssues
Uma propriedade string que é uma lista separada por vírgulas de problemas de fiapos a serem verificados.
Usado somente quando $(AndroidLintEnabled)
=True.
Observação: somente esses problemas serão verificados.
AndroidManagedSymbols
Uma propriedade booleana que controla se os pontos de sequência são gerados para que as informações de nome de arquivo e número de linha possam ser extraídas de rastreamentos de Release
pilha.
Adicionado no Xamarin.Android 6.1.
AndroidManifest
Especifica um nome de arquivo a ser usado como modelo para o AndroidManifest.xml
.
Durante o build, quaisquer outros valores necessários serão mesclados para produzir o AndroidManifest.xml
propriamente dito.
O $(AndroidManifest)
deve conter o nome do pacote no atributo /manifest/@package
.
AndroidManifestFusão
Especifica a implementação para mesclar arquivos AndroidManifest.xml . Esta é uma propriedade no estilo enum, onde legacy
seleciona a implementação original do C# e manifestmerger.jar
seleciona a implementação Java do Google.
O valor padrão é atualmente legacy
. Isso mudará para manifestmerger.jar
em uma versão futura para alinhar o comportamento com o Android Studio.
A fusão do Google permite o suporte para xmlns:tools="http://schemas.android.com/tools"
conforme descrito na documentação do Android.
Introduzido no Xamarin.Android 10.2
AndroidManifestMergerExtraArgs
Uma propriedade string para fornecer argumentos para a ferramenta de documentação do Android.
Se você quiser uma saída detalhada da ferramenta, você pode adicionar o seguinte ao .csproj
.
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Introduzido no Xamarin.Android 11.x
AndroidManifestType
Uma propriedade de estilo enum com valores válidos de Xamarin
ou GoogleV2
.
Isso controla qual repositório é usado pelo InstallAndroidDependencies
para determinar quais pacotes e versões de pacotes do Android estão disponíveis e podem ser instalados.
Xamarin
é o repositório Lista Aprovada (Recomendado) no Gerenciador do SDK do Visual Studio.
GoogleV2
é o repositório de lista completa (sem suporte) dentro do Visual Studio SDK Manager.
Adicionado em Xamarin.Android 13.0. No Xamarin.Android 13.0, se $(AndroidManifestType)
não estiver definido, então Xamarin
é usado.
Antes do Xamarin.Android 13.0, a configuração $(AndroidManifestType)
não tem efeito e GoogleV2
é usada.
AndroidManifestPlaceholders
Uma lista separada por ponto-e-vírgula de pares de substituição chave-valor para AndroidManifest.xml, onde cada par tem o formato key=value
.
Por exemplo, um valor de propriedade de assemblyName=$(AssemblyName)
define um ${assemblyName}
espaço reservado que pode aparecer em AndroidManifest.xml:
<application android:label="${assemblyName}"
Isso fornece uma maneira de inserir variáveis do processo de compilação no arquivo AndroidManifest.xml .
AndroidMultiDexClassListExtraArgs
Uma propriedade de cadeia de caracteres que permite que os desenvolvedores passem argumentos para o com.android.multidex.MainDexListBuilder
ao gerar o multidex.keep
arquivo.
Um caso específico é se você estiver recebendo o erro a seguir durante a compilação de dx
.
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
Se você estiver recebendo esse erro, você pode adicionar o seguinte ao .csproj
.
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
o que permitirá que a dx
etapa seja bem-sucedida.
Adicionado no Xamarin.Android 8.3.
AndroidPackageFormat
Uma propriedade de estilo enum com valores válidos de apk
ou aab
. Indica se você deseja empacotar o aplicativo Android como um arquivo APK ou Android App Bundle. Os Lote de Aplicativo são um novo formato para builds de Release
destinados ao envio no Google Play. O valor padrão é apk
.
Quando $(AndroidPackageFormat)
é definido como aab
, outras propriedades do MSBuild são definidas, que são necessárias para o Lote de Aplicativo do Android:
$(AndroidUseAapt2)
éTrue
.$(AndroidUseApkSigner)
éFalse
.$(AndroidCreatePackagePerAbi)
éFalse
.
Esta propriedade será preterida para o .net 6. Os usuários devem alternar para o mais recente AndroidPackageFormats
.
AndroidPackageFormats
Uma propriedade delimitada por ponto-e-vírgula com valores válidos de apk
e aab
.
Indica se você deseja empacotar o aplicativo Android como um arquivo APK ou Android App Bundle. Os Lote de Aplicativo são um novo formato para builds de Release
destinados ao envio no Google Play.
Ao criar uma compilação de versão, talvez você queira gerar ambos e aab
uma apk
distribuição para vários armazenamentos.
A configuração AndroidPackageFormats
de como aab;apk
resultará em ambos sendo gerados. Configuração AndroidPackageFormats
como ou aab
apk
gerará apenas um arquivo.
Para .net 6 AndroidPackageFormats
será definido como aab;apk
apenas para Release
compilações. É recomendável que você continue a usar apenas apk
para depuração.
Para Xamarin.Android herdado O valor padrão é ""
.
Como resultado, o Legacy Xamarin.Android NÃO produzirá ambos por padrão como parte de uma compilação de lançamento. Se um usuário quiser produzir ambas as saídas, ele precisará definir o seguinte em sua Release
configuração.
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
Você também precisará remover o existente AndroidPackageFormat
para essa configuração, se você tiver.
Adicionado em Xamarin.Android 11.5.
AndroidPackageNamingPolicy
Uma propriedade enum-style para especificar os nomes de pacotes Java do código-fonte Java gerado.
No Xamarin.Android 10.2 e posterior, o único valor suportado é LowercaseCrc64
.
No Xamarin.Android 10.1, um valor de transição LowercaseMD5
também estava disponível que permitia alternar de volta para o estilo de nome de pacote Java original, conforme usado no Xamarin.Android 10.0 e versões anteriores. Essa opção foi removida no Xamarin.Android 10.2 para melhorar a compatibilidade com ambientes de compilação que têm conformidade com FIPS imposta.
Adicionado em Xamarin.Android 10.1.
AndroidProguardMappingFile
Especifica a -printmapping
regra proguard para r8
. Isso significa que o mapping.txt
arquivo será produzido na $(OutputPath)
pasta. Esse arquivo pode ser usado ao fazer upload de pacotes para a Google Play Store.
Por padrão, esse arquivo é produzido automaticamente ao usar AndroidLinkTool=r8
e gerará o seguinte arquivo $(OutputPath)mapping.txt
.
Se você não deseja gerar esse arquivo de mapeamento, você pode usar a AndroidCreateProguardMappingFile
propriedade para parar de criá-lo .
Adicione o seguinte em seu projeto
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
ou use -p:AndroidCreateProguardMappingFile=False
na linha de comando.
Esta propriedade foi adicionada em Xamarin.Android 11.2.
AndroidR8IgnoreAvisos
Especifica a -ignorewarnings
regra proguard para r8
. Isso permite r8
continuar com a compilação dex mesmo se certos avisos forem encontrados. O valor padrão é True
, mas pode ser definido como False
para impor um comportamento mais estrito. Consulte o manual do ProGuard para obter detalhes.
Adicionado em Xamarin.Android 10.3.
AndroidR8JarPath
O caminho para r8.jar
uso com o compilador e o shrinker dex r8. O valor padrão é um caminho na instalação do Xamarin.Android. Para obter mais informações, confira nossa documentação sobre o D8 e R8.
AndroidResgenExtraArgs
Especifica as opções de linha de comando a serem passadas para o comando aapt ao processar ativos e recursos do Android.
AndroidResgenFile
Especifica o nome do arquivo de recurso a ser gerado. O modelo padrão define isso como Resource.designer.cs
.
AndroidSdkBuildToolsVersion
O pacote build-tools do SDK do Android fornece as ferramentas aapt e zipalinh , entre outras. Várias versões diferentes do pacote de ferramentas de build podem ser instaladas simultaneamente. O pacote de ferramentas de build escolhido para empacotamento é criado procurando e usando uma versão de ferramentas de build "preferencial", se uma está presente; se a versão "preferencial" não está presente, o pacote de ferramentas de build com a versão mais alta entre os instalados é usado.
A propriedade do MSBuild $(AndroidSdkBuildToolsVersion)
contém a versão das ferramentas de build preferencial. O sistema de build do Xamarin.Android fornecerá um valor padrão em Xamarin.Android.Common.targets
, que poderá ser substituído no arquivo de projeto para escolher uma versão de ferramentas de build alternativa se, por exemplo, o aapt mais recente estiver falhando enquanto uma versão anterior do aapt sabidamente funciona.
AndroidSigningKeyAlias
Especifica o alias para a chave no keystore. Este é o valor de keytool-alias usado ao criar o repositório de chaves.
AndroidSigningKeyPass
Especifica a senha da chave dentro do arquivo keystore. Esse é o valor digitado quando keytool
solicita Insira a senha da chave para $(AndroidSigningKeyAlias).
No Xamarin.Android 10.0 e versões anteriores, essa propriedade oferece suporte apenas a senhas de texto sem formatação.
No Xamarin.Android 10.1 e posterior, essa propriedade também oferece suporte env:
e file:
prefixos que podem ser usados para especificar uma variável de ambiente ou arquivo que contém a senha. Essas opções fornecem uma maneira de impedir que a senha apareça nos logs de compilação.
Por exemplo, para usar uma variável de ambiente chamada AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
Para usar um arquivo localizado em C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Observação
O env:
prefixo não é suportado quando $(AndroidPackageFormat)
é definido como aab
.
AndroidSigningKeyStore
Especifica o nome do arquivo keystore criado pelo keytool
. Isso corresponde ao valor fornecido à opção keytool -keystore.
AndroidSigningStorePass
Especifica a senha para $(AndroidSigningKeyStore)
.
Esse é o valor fornecido a keytool
ao criar o arquivo de repositório de chaves e ao solicitar Insira a senha do repositório de chaves:.
No Xamarin.Android 10.0 e versões anteriores, essa propriedade oferece suporte apenas a senhas de texto sem formatação.
No Xamarin.Android 10.1 e posterior, essa propriedade também oferece suporte env:
e file:
prefixos que podem ser usados para especificar uma variável de ambiente ou arquivo que contém a senha. Essas opções fornecem uma maneira de impedir que a senha apareça nos logs de compilação.
Por exemplo, para usar uma variável de ambiente chamada AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
Para usar um arquivo localizado em C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Observação
O env:
prefixo não é suportado quando $(AndroidPackageFormat)
é definido como aab
.
AndroidSigningPlatformKey
Especifica o arquivo de chave a ser usado para assinar o apk.
Isso só é usado ao criar system
aplicativos.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
AndroidSigningPlatformCert
Especifica o arquivo de certificado a ser usado para assinar o apk.
Isso só é usado ao criar system
aplicativos.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
AndroidSupportedAbis
Uma propriedade de cadeia de caracteres que contém uma lista delimitada por ponto-e-vírgula (;
) de ABIs que devem ser incluídas no .apk
.
Os valores compatíveis incluem:
armeabi-v7a
x86
arm64-v8a
: requer o Xamarin.Android 5.1 e posterior.x86_64
: requer o Xamarin.Android 5.1 e posterior.
AndroidTlsProvider
Um valor de cadeia de caracteres que especifica qual provedor TLS deve ser usado em um aplicativo. Os valores possíveis são:
Unset/the empty string: No Xamarin.Android 7.3 e superior, isso é equivalente a
btls
.no Xamarin.Android 7.1, isso é equivalente a
legacy
.Isso corresponde à configuração Padrão nas páginas de propriedades do Visual Studio.
btls
: usar Boring SSL para a comunicação por TLS com HttpWebRequest.Isso permite usar o TLS 1.2 em todas as versões do Android.
Isso corresponde à configuração TLS Nativo 1.2+ nas páginas de propriedades do Visual Studio.
legacy
: No Xamarin.Android 10.1 e versões anteriores, use a implementação SSL gerenciada histórica para interação de rede. Isso não oferece suporte ao TLS 1.2.Isso corresponde à configuração TLS Gerenciado 1.0 nas páginas de propriedades do Visual Studio.
No Xamarin.Android 10.2 e posterior, esse valor é ignorado e a
btls
configuração é usada.default
: É improvável que esse valor seja usado em projetos Xamarin.Android. Em vez disso, o valor recomendado a ser usado é a cadeia de caracteres vazia, que corresponde à configuração padrão nas páginas de propriedades do Visual Studio.O valor
default
não é oferecido nas páginas de propriedades do Visual Studio.Atualmente, isso é equivalente a
legacy
.
Adicionado no Xamarin.Android 7.1.
AndroidUseAapt2
Uma propriedade booleana que permite ao desenvolvedor controlar o aapt2
uso da ferramenta para empacotamento.
Por padrão, isso será False e o Xamarin.Android usará aapt
o .
Se o desenvolvedor desejar usar a nova aapt2
funcionalidade, adicione:
<AndroidUseAapt2>True</AndroidUseAapt2>
em seu .csproj
. Como alternativa, forneça a propriedade na linha de comando:
/p:AndroidUseAapt2=True
Esta propriedade foi adicionada em Xamarin.Android 8.3. A configuração AndroidUseAapt2
para false
foi preterida no Xamarin.Android 11.2.
AndroidUseApkSigner
Uma propriedade bool que permite que o desenvolvedor use a apksigner
ferramenta em vez de jarsigner
.
Adicionado no Xamarin.Android 8.2.
AndroidUseDefaultAotProfile
Uma propriedade bool que permite ao desenvolvedor suprimir o uso dos perfis AOT padrão.
Para suprimir os perfis AOT padrão, defina a propriedade como false
.
Adicionado em Xamarin.Android 10.1.
AndroidUseInterpreter
Uma propriedade booleana que faz com que o contenha o .apk
interpretador mono, e não o JIT normal.
Experimental.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
AndroidUseLegacyVersionCode
Uma propriedade booleana que permite ao desenvolvedor reverter o cálculo versionCode de volta para seu antigo comportamento pré Xamarin.Android 8.2. Isso deve ser usado SOMENTE por desenvolvedores com aplicativos existentes na Google Play Store. É altamente recomendável que a nova propriedade $(AndroidVersionCodePattern)
seja usada.
Adicionado no Xamarin.Android 8.2.
AndroidUseManagedDesignTimeResourceGenerator
Uma propriedade booleana que alternará o tempo de design é compilada para usar o analisador de recursos gerenciado em vez de aapt
.
Adicionado no Xamarin.Android 8.1.
AndroidUseSharedRuntime
Uma propriedade booleana que determina se os pacotes de tempo de execução compartilhados são necessários para executar o aplicativo no dispositivo de destino. Depender dos pacotes de runtime compartilhado permite que o pacote do aplicativo seja menor, acelerando o processo de criação e implantação de pacote e resultando em um ciclo de build/implantação/depuração mais rápido.
Antes do Xamarin.Android 11.2, essa propriedade deve ser True
para compilações de depuração e False
para projetos de versão.
Esta propriedade foi removida no Xamarin.Android 11.2.
AndroidVersionCode
Uma propriedade MSBuild que pode ser usada como uma alternativa para /manifest/@android:versionCode
no AndroidManifest.xml
arquivo. Para ativar esse recurso, você também deve habilitar <GenerateApplicationManifest>true</GenerateApplicationManifest>
o .
Esse será o padrão daqui para frente no .NET 6.
Essa propriedade será ignorada se $(AndroidCreatePackagePerAbi)
e $(AndroidVersionCodePattern)
forem usadas.
@android:versionCode
é um valor inteiro que deve ser incrementado para cada versão do Google Play. Consulte a documentação do Android para obter mais detalhes sobre os requisitos do /manifest/@android:versionCode
.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
AndroidVersionCodePattern
Uma propriedade string que permite ao desenvolvedor personalizar o no manifesto versionCode
.
Confira Criar um código de versão para o APK para obter informações sobre como decidir um versionCode
.
Alguns exemplos: se abi
for armeabi
e versionCode
no manifesto for 123
, {abi}{versionCode}
produzirá um versionCode de 1123
quando $(AndroidCreatePackagePerAbi)
for True; caso contrário, gerará um valor de 123.
Se abi
é x86_64
e versionCode
no manifesto é 44
. Isso produzirá 544
quando $(AndroidCreatePackagePerAbi)
for True; caso contrário, gerará um valor de 44
.
Se nós incluíssemos uma cadeia de caracteres de formato de preenchimento esquerdo {abi}{versionCode:0000}
, isso produziria 50044
porque estamos aplicando preenchimento esquerdo ao versionCode
com 0
. Como alternativa, você pode usar o preenchimento decimal, como {abi}{versionCode:D4}
que faz o mesmo que o exemplo anterior.
Somente os formatos de cadeias de caracteres de preenchimento '0' e 'Dx' são compatíveis, já que o valor PRECISA ser um inteiro.
Itens chave pré-definidos
abi – Insere o abi direcionado para o aplicativo
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK – Insere o valor mínimo suportado do Sdk do
AndroidManifest.xml
ou11
se nenhum estiver definido.versionCode – Usa o código de versão diretamente do
Properties\AndroidManifest.xml
.
Você pode definir itens personalizados usando a propriedade $(AndroidVersionCodeProperties)
(definida a seguir).
Por padrão o valor será definido como {abi}{versionCode:D6}
. Se um desenvolvedor quiser manter o comportamento anterior, você poderá configurar a propriedade $(AndroidUseLegacyVersionCode)
como true
para substituir o padrão
Adicionado no Xamarin.Android 7.2.
AndroidVersionCodePropriedades
Uma propriedade string que permite ao desenvolvedor definir itens personalizados para usar com o $(AndroidVersionCodePattern)
.
Eles estão na forma de um par key=value
. Todos os itens no value
devem ser valores inteiros. Por exemplo: screen=23;target=$(_AndroidApiLevel)
. Como você pode ver, você pode fazer uso de propriedades do MSBuild existentes ou personalizadas na cadeia de caracteres.
Adicionado no Xamarin.Android 7.2.
IDdoAplicativo
Uma propriedade MSBuild que pode ser usada como uma alternativa para /manifest/@package
no AndroidManifest.xml
arquivo. Para ativar esse recurso, você também deve habilitar <GenerateApplicationManifest>true</GenerateApplicationManifest>
o .
Esse será o padrão daqui para frente no .NET 6.
Consulte a documentação do Android para obter mais detalhes sobre os requisitos do /manifest/@package
.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
ApplicationTitle
Uma propriedade MSBuild que pode ser usada como uma alternativa para /manifest/application/@android:label
no AndroidManifest.xml
arquivo. Para ativar esse recurso, você também deve habilitar <GenerateApplicationManifest>true</GenerateApplicationManifest>
o .
Esse será o padrão daqui para frente no .NET 6.
Consulte a documentação do Android para obter mais detalhes sobre os requisitos do /manifest/application/@android:label
.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
Versão do aplicativo
Uma propriedade MSBuild que pode ser usada como uma alternativa para /manifest/@android:versionName
no AndroidManifest.xml
arquivo. Para ativar esse recurso, você também deve habilitar <GenerateApplicationManifest>true</GenerateApplicationManifest>
o .
Esse será o padrão daqui para frente no .NET 6.
Consulte a documentação do Android para obter mais detalhes sobre os requisitos do /manifest/@android:versionName
.
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
AotAssemblies
Uma propriedade booleana que determina se os assemblies serão ou não compilados antecipadamente em código nativo e incluídos no .apk
.
O suporte para essa propriedade foi adicionado no Xamarin.Android 5.1.
Essa propriedade é False
por padrão.
AProfUtilExtraOptions
Opções extras para passar para aprofutil
.
BeforeGenerateAndroidManifest
Os destinos do MSBuild listados nesta propriedade serão executados diretamente antes _GenerateJavaStubs
do .
Adicionado no Xamarin.Android 9.4.
Configuração
Especifica a configuração de compilação a ser usada, como "Depurar" ou "Liberar". A propriedade Configuration é usada para determinar os valores padrão de outras propriedades que determinam o comportamento de destino. Configurações adicionais podem ser criadas dentro de seu IDE.
Por padrão, a Debug
configuração resultará no Install
e SignAndroidPackage
visa a criação de um pacote Android menor que requer a presença de outros arquivos e pacotes para operar.
A configuração padrão Release
resultará no Install
e SignAndroidPackage
visa criar um pacote Android que é autônomo e pode ser usado sem instalar quaisquer outros pacotes ou arquivos.
DebugSymbols
Um valor booleano que determina se o pacote Android é depurável, em combinação com a $(DebugType)
propriedade.
Um pacote depurável contém símbolos de depuração, define o //application/@android:debuggable
atributo como true
e adiciona automaticamente o INTERNET
para que um depurador possa anexar ao processo. Um aplicativo é depurável se DebugSymbols
é True
eDebugType
é a cadeia de caracteres vazia ou Full
.
DebugType
Especifica o tipo de símbolos de depuração a serem gerados como parte da compilação, o que também afeta se o Aplicativo é depurável. Entre os valores possíveis estão:
Full: todos os símbolos são gerados. Se o
DebugSymbols
A propriedade MSBuild tambémTrue
é , em seguida, o pacote de aplicativo é depurável.PdbOnly: os símbolos "PDB" são gerados. O pacote do aplicativo não é depurável.
Se DebugType
não está definida ou é uma cadeia de caracteres vazia, a propriedade DebugSymbols
controla se o Aplicativo é depurável.
EmbedAssembliesIntoApk
Uma propriedade booleana que determina se os assemblies do aplicativo devem ou não ser incorporados ao pacote do aplicativo.
Essa propriedade deve ser True
para builds de versão e False
para builds de depuração. Ele pode precisar ser True
em builds de depuração se o Fast Deployment não é compatível com o dispositivo de destino.
Quando essa propriedade é False
, então o $(AndroidFastDeploymentType)
A propriedade MSBuild também controla o que será incorporado ao , o que pode afetar os .apk
tempos de implantação e reconstrução.
EnableLLVM
Uma propriedade booleana que determina se o LLVM será ou não usado quando o Ahead-of-Time compilar assemblies em código nativo.
O NDK do Android deve ser instalado para criar um projeto que tenha essa propriedade habilitada.
O suporte para essa propriedade foi adicionado no Xamarin.Android 5.1.
Essa propriedade é False
por padrão.
Essa propriedade é ignorada, a menos que a propriedade $(AotAssemblies)
do MSBuild seja True
.
AtivarProguard
Uma propriedade booleana que determina se o proguard é ou não executado como parte do processo de empacotamento para vincular o código Java.
O suporte para essa propriedade foi adicionado no Xamarin.Android 5.1.
Essa propriedade é False
por padrão.
Quando True
, os arquivos @(ProguardConfiguration) serão usados para controlar proguard
a execução.
GenerateApplicationManifest
Habilita ou desabilita as seguintes propriedades do MSBuild que emitem valores no arquivo final AndroidManifest.xml
:
O valor $(GenerateApplicationManifest)
padrão está true
no .NET 6 e false
no Xamarin.Android "legado".
Suporte para esta propriedade foi adicionado no Xamarin.Android 11.3.
JavaMaximumHeapSize
Especifica o valor do valor do parâmetro java-Xmx
a ser usado ao criar o .dex
arquivo como parte do processo de empacotamento. Se não for especificado, a opção -Xmx
fornecerá java com um valor de 1G
. Foi verificado que isso normalmente é necessário no Windows em comparação com outras plataformas.
Personalize o valor alterando:
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOpções
Especifica as opções de linha de comando a serem passadas para java ao compilar o .dex
arquivo.
JarsignerTimestampAuthorityCertificateAlias
Essa propriedade permite especificar um alias no keystore para uma autoridade de carimbo de data/hora. Consulte a documentação de Suporte a Carimbo de Data/Hora de Assinatura Java para obter mais detalhes.
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
Essa propriedade permite especificar uma URL para um serviço de autoridade de carimbo de data/hora. Isso pode ser usado para garantir que sua .apk
assinatura inclua um carimbo de data/hora.
Consulte a documentação de Suporte a Carimbo de Data/Hora de Assinatura Java para obter mais detalhes.
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
Uma propriedade bool que permite a geração do arquivo de dependências do vinculador. Esse arquivo pode ser usado como entrada para a ferramenta illinkanalyzer.
O arquivo de dependências nomeado linker-dependencies.xml.gz
é gravado no diretório do projeto. Em. NET5/6 ele é gravado ao lado dos assemblies vinculados no obj/<Configuration>/android<ABI>/linked
diretório.
O valor padrão é Falso.
MandroidI18n
Especifica o suporte à internacionalização incluído no Aplicativo, como tabelas de agrupamento e classificação. O valor é uma lista separada por vírgula ou ponto e vírgula de um ou mais dos seguintes valores que não diferenciam maiúsculas e minúsculas:
None: não incluir nenhuma codificação adicional.
All: incluir todas as codificações disponíveis.
CJK: Inclua codificações chinesas, japonesas e coreanas, como japonês (EUC) [enc-jp, CP51932], japonês (Shift-JIS) [iso-2022-jp, shift_jis, CP932], japonês (JIS) [CP50220], chinês simplificado (GB2312) [gb2312, CP936], coreano (UHC) [ks_c_5601-1987, CP949], coreano (EUC) [euc-kr, CP51949], chinês tradicional (Big5) [big5, CP950] e chinês simplificado (GB18030) [GB18030, CP54936].
Oriente Médio: Inclua codificações do Oriente Médio, como turco (Windows) [iso-8859-9, CP1254], hebraico (Windows) [windows-1255, CP1255], árabe (Windows) [windows-1256, CP1256], árabe (ISO) [iso-8859-6, CP28596], hebraico (ISO) [iso-8859-8, CP28598], latim 5 (ISO) [iso-8859-9, CP28599] e hebraico (Iso Alternative) [iso-8859-8, CP38598].
Outros: Incluem outras codificações como cirílico (Windows) [CP1251], Báltico (Windows) [iso-8859-4, CP1257], vietnamita (Windows) [CP1258], cirílico (KOI8-R) [koi8-r, CP1251], ucraniano (KOI8-U) [koi8-u, CP1251], Báltico (ISO) [iso-8859-4, CP1257], cirílico (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Malayalam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011] e Thai (Windows) [CP874].
Raros: Incluem codificações raras, como IBM EBCDIC (turco) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (EUA-Canadá com Euro) [CP1140], IBM EBCDIC (Alemanha com Euro) [CP1141], IBM EBCDIC (Dinamarca/Noruega com Euro) [CP1142], IBM EBCDIC (Finlândia/Suécia com Euro) [CP1143], IBM EBCDIC (Itália com Euro) [CP1144], IBM EBCDIC (América Latina/Espanha com Euro) [CP1145], IBM EBCDIC (Reino Unido com Euro) [CP1146], IBM EBCDIC (França com Euro) [CP1147], IBM EBCDIC (Internacional com Euro) [CP1148], IBM EBCDIC (Islandês com Euro) [CP1149], IBM EBCDIC (Alemanha) [CP20273], IBM EBCDIC (Dinamarca/Noruega) [CP20277], IBM EBCDIC (Finlândia/Suécia) [CP20278], IBM EBCDIC (Itália) [CP20280], IBM EBCDIC (América Latina/Espanha) [CP20284], IBM EBCDIC (Reino Unido) [CP20285], IBM EBCDIC (japonês Katakana Extended) [CP20290], IBM EBCDIC (França) [CP20297], IBM EBCDIC (árabe) [CP20420], IBM EBCDIC (hebraico) [CP20424], IBM EBCDIC (islandês) [CP20871], IBM EBCDIC (cirílico - sérvio, búlgaro) [CP21025], IBM EBCDIC (EUA-Canadá) [CP37], IBM EBCDIC (Internacional) [CP500], árabe (ASMO 708) [CP708], Europa Central (DOS) [CP852], cirílico (DOS) [CP855], turco (DOS) [CP857], Europa Ocidental (DOS com Euro) [CP858], hebraico (DOS) [CP862], árabe (DOS) [CP864], russo (DOS) [CP866], grego (DOS) [CP869], IBM EBCDIC (latim 2) [CP870] e IBM EBCDIC (grego) [CP875].
Oeste: Incluir codificações ocidentais como Europa Ocidental (Mac) [macintosh, CP10000], islandês (Mac) [x-mac-icelandic, CP10079], Europa Central (Windows) [iso-8859-2, CP1250], Europa Ocidental (Windows) [iso-8859-1, CP1252], grego (Windows) [iso-8859-7, CP1253], Europa Central (ISO) [iso-8859-2, CP28592], latim 3 (ISO) [iso-8859-3, CP28593], grego (ISO) [iso-8859-7, CP28597], latim 9 (ISO) [ISO-8859-15, CP28605], OEM Estados Unidos [CP437], Europa Ocidental (DOS) [CP850], português (DOS) [CP860], islandês (DOS) [CP861], francês canadense (DOS) [CP863] e nórdico (DOS) [CP865].
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
Especifica um prefixo de caminho que é removido do início de nomes de arquivos com uma ação Build de AndroidResource
. Isso é para permitir a alteração do local em que os recursos estão localizados.
O valor padrão é Resources
. Altere isso para res
para a estrutura do projeto Java.
MonoSymbolArchive
Uma propriedade booleana que controla se .mSYM
os artefatos são criados para uso posterior com mono-symbolicate
o , para extrair informações "reais" de nome de arquivo e número de linha de rastreamentos de pilha de liberação.
Isso é True por padrão para aplicativos "Release" que têm símbolos de depuração ativados: $(EmbedAssembliesIntoApk)
é True, $(DebugSymbols)
é Verdadeiro, e $(Optimize)
é Verdade.
Adicionado no Xamarin.Android 7.1.