Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As propriedades do MSBuild controlam o comportamento dos alvos. Eles são especificados no arquivo de projeto, por exemplo , MyApp.csproj, em um Grupo de Propriedades do MSBuild.
AltoolPath
O caminho completo para a ferramenta altool
.
O comportamento padrão é usar xcrun altool
.
AppBundleDir
O local do pacote de aplicativos construído.
AppBundleExtraOptions
Argumentos adicionais avançados para a criação do pacote de aplicativos.
O conjunto válido de argumentos depende da plataforma.
Normalmente, eles não devem ser usados, a menos que especificados por um engenheiro da Microsoft.
Ícone do Aplicativo
O AppIcon
grupo de itens pode ser usado para especificar um ícone de aplicativo para o aplicativo.
O valor da propriedade deve apontar para o nome do arquivo de um recurso de imagem .appiconset
(para iOS, macOS e Mac Catalyst) ou .brandassets
(para tvOS) dentro de um catálogo de ativos.
Exemplo:
<PropertyGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
<AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>
Veja também:
- O grupo de itens AlternateAppIcon .
- A propriedade IncludeAllAppIcons.
Versão de Exibição do Aplicativo
Se definido, especifica o CFBundleShortVersionString
valor no manifesto do aplicativo (Info.plist
).
Essa é uma propriedade que dá suporte ao "Projeto Único" do .NET.
Consulte OneDotNetSingleProject para obter mais informações.
ApplicationId
Se definido, especifica o CFBundleIdentifier
valor no manifesto do aplicativo (Info.plist
).
Essa é uma propriedade que dá suporte ao "Projeto Único" do .NET.
Consulte OneDotNetSingleProject para obter mais informações.
Título do Aplicativo
Se definido, especifica o CFBundleDisplayName
manifesto no aplicativo (Info.plist
).
Essa é uma propriedade que dá suporte ao "Projeto Único" do .NET.
Consulte OneDotNetSingleProject para obter mais informações.
Versão do Aplicativo
Se definido, especifica o CFBundleVersion
manifesto no aplicativo (Info.plist
).
Essa é uma propriedade que dá suporte ao "Projeto Único" do .NET.
Consulte OneDotNetSingleProject para obter mais informações.
ArchiveBasePath
O local onde os arquivos são armazenados no Windows para um build remoto.
O padrão é: %LocalAppData%\Xamarin\iOS\Archives
Aplicável somente a projetos do iOS (já que somente projetos do iOS podem ser criados remotamente a partir do Windows).
ArchiveOnBuild
Se um arquivo Xcode deve ser criado no final do build.
BGenEmitDebugInformation
Se a ferramenta bgen
(o gerador de associação) deve ou não incluir informações de depuração.
O comportamento padrão é true
quando a Debug
propriedade é definida como true
.
BGenExtraArgs
Quaisquer argumentos extras para a bgen
ferramenta (o gerador de associação).
BGenToolExe
O nome do bgen
executável (uma ferramenta usada por projetos de vinculação para gerar vinculações).
O comportamento padrão é usar a bgen
ferramenta enviada com nossa carga de trabalho.
BGenToolPath
O diretório onde o bgen
(BGenToolExe) está localizado.
O comportamento padrão é usar a bgen
ferramenta enviada com nossa carga de trabalho.
BuildIpa
Se um pacote (.ipa) deve ser criado para o pacote de app ao final do processo de construção.
Aplicável somente a projetos iOS e tvOS.
Consulte CreatePackage para projetos macOS e Mac Catalyst.
PacoteRecursosOriginais
Essa propriedade determina se os recursos são compilados antes de serem inseridos em projetos de biblioteca ou se a versão original (não compilada) está inserida.
Historicamente, os recursos foram compilados antes de serem inseridos em projetos de biblioteca, mas isso requer ter o Xcode disponível, que tem algumas desvantagens:
- Ele reduz a velocidade dos builds remotos no Windows.
- Ele não funcionará ao criar localmente no Windows e nem em nenhuma outra plataforma, exceto no macOS.
- Os recursos são compilados usando o Xcode disponível atual, que pode não ter os mesmos recursos que um Xcode potencialmente mais recente disponível quando a biblioteca em questão é consumida.
- Isso torna impossível ter uma exibição de todo o programa de todos os recursos ao criar um aplicativo, o que é necessário para detectar recursos conflitantes.
Dessa forma, adicionamos suporte para inserir os recursos originais em bibliotecas. Isso será opt-in no .NET 9, mas terá a opção de desativação a partir do .NET 10.
O valor padrão dessa propriedade false
no .NET 9 e true
no .NET 10+.
Observação
Registre um problema se você descobrir que precisa desabilitar esse recurso, pois é possível que a opção de desabilitá-lo seja removida no futuro.
CodesignAllocate
O caminho para a codesign_allocate
ferramenta.
Por padrão, esse valor é detectado automaticamente.
Dependências de Processamento Conjunto
Esse é um ponto de extensão para o build: um desenvolvedor pode adicionar qualquer alvo a essa propriedade para executar esses alvos antes que o pacote do aplicativo seja assinado.
Exemplo:
<PropertyGroup>
<CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
<Exec Command="echo This is executed right before the app is signed." />
</Target>
CodesignEntitlements
O caminho para o arquivo de direitos que especifica os direitos exigidos pelo aplicativo.
Normalmente, "Entitlements.plist".
Definiremos isso automaticamente como "Entitlements.plist" se esse arquivo existir no diretório raiz do projeto.
Isso pode ser evitado definindo a propriedade EnableDefaultCodesignEntitlements como false
.
CodesignExtraArgs
Argumentos extras passados para a ferramenta 'codesign' ao assinar o pacote do aplicativo.
CodesignKey
Especifica a chave de assinatura de código a ser usada ao assinar o pacote do aplicativo.
CodesignKeychain
O conjunto de chaves a ser usado durante a assinatura de código.
CodeSigningKey
Especifica a chave de assinatura de código a ser usada ao assinar o pacote do aplicativo.
Aplicável somente aos aplicativos macOS e Mac Catalyst, mas é recomendável usar a propriedade CodesignKey em vez disso (que funciona em todas as plataformas).
CodesignProvision
Especifica o perfil de provisionamento a ser usado ao assinar o pacote do aplicativo.
CodesignResourceRules
O caminho para o ResourceRules.plist a ser copiado para o pacote do aplicativo.
RequerimentoDePerfilDeProvisionamentoParaAssinaturaDeCódigo
Especifica se um perfil de provisionamento é necessário ao assinar o pacote do aplicativo.
Por padrão, exigiremos um perfil de provisionamento se:
- macOS, Mac Catalyst: um perfil de provisionamento foi especificado (com a propriedade CodesignProvision ).
- iOS, tvOS: a criação de um dispositivo ou um arquivo de direitos foi especificada (com a propriedade CodesignEntitlements).
Definir essa propriedade como true
ou false
substituirá a lógica padrão.
CreateAppBundleDependsOn
Esse é um ponto de extensão para o build: um desenvolvedor pode adicionar quaisquer destinos a essa propriedade para executar esses destinos ao criar o pacote de aplicativos.
Exemplo:
<PropertyGroup>
<CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
<Exec Command="echo This is executed before the app bundle is created." />
</Target>
CreateIpaDependsOn
Este é um ponto de extensão para a compilação: um desenvolvedor pode adicionar quaisquer alvos a esta propriedade para executar esses alvos ao criar um IPA.
Aplicável a todas as plataformas que criam arquivos IPA (atualmente iOS e tvOS).
Exemplo:
<PropertyGroup>
<CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
<Exec Command="echo This is executed before the IPA is created." />
</Target>
CreatePackage
Se um pacote (.pkg) deve ser criado para o conjunto de aplicativos no final da compilação.
Aplicável somente a projetos macOS e Mac Catalyst.
Consulte BuildIpa para projetos iOS e tvOS.
DeviceSpecificBuild
Se o build deve ser específico para o dispositivo selecionado.
Aplicável a todas as plataformas que dão suporte a builds específicos do dispositivo (atualmente iOS e tvOS).
CaminhoIntermediárioDeSaídaEspecíficoDoDispositivo
O caminho intermediário de saída a ser utilizado quando builds específicos para o dispositivo estiverem habilitados.
Aplicável a todas as plataformas que dão suporte a builds específicos do dispositivo (atualmente iOS e tvOS).
CaminhoDeSaídaEspecíficoDoDispositivo
O caminho de saída a ser usado quando compilações específicas para o dispositivo estiverem habilitadas.
Aplicável a todas as plataformas que dão suporte a builds específicos do dispositivo (atualmente iOS e tvOS).
DittoPath
O caminho completo para o executável ditto
.
O comportamento padrão é usar /usr/bin/ditto
.
EmbedOnDemandResources
Se os recursos sob demanda devem ser inseridos no pacote do aplicativo.
Padrão: verdadeiro.
HabilitarAssinaturaDeCódigo
Se a assinatura de código estiver habilitada.
Normalmente, o build determinará automaticamente se a assinatura de código é necessária; essa detecção automática pode ser substituída por essa propriedade.
EnableDefaultCodesignEntitlements
Consulte CodesignEntitlements.
HabilitarRecursosSobDemanda
Se os recursos sob demanda estiverem habilitados.
Padrão: false para macOS, true para todas as outras plataformas.
HabilitarAssinaturaDePacote
Se o .pkg que foi criado (se CreatePackage
estiver habilitado) deve ser assinado.
Aplicável somente ao macOS e ao Mac Catalyst.
AtivarDiagnóstico
Habilite os componentes necessários para que o diagnóstico (como criação de perfil) funcione.
É habilitado por padrão para builds de depuração (quando MtouchDebug ou MmpDebug estiver habilitado), mas precisa ser habilitado manualmente antes da construção de perfil de builds de liberação:
<PropertyGroup>
<EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>
Isso aumentará ligeiramente o tamanho do aplicativo.
Aplicável somente ao usar o runtime mono (o CoreCLR sempre dá suporte a diagnósticos, enquanto NativeAOT nunca o faz).
EnableSGenConc
Habilita o modo simultâneo para o coletor de lixo SGen.
Aplicável somente ao iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
GerarManifestoDeAplicativo
Caso um manifesto do aplicativo (Info.plist
) deva ser gerado.
Padrão: verdadeiro.
GeneratedSourcesDir
Onde as fontes geradas pelo gerador são salvas.
IncluirTodosOsÍconesDeAplicativos
Defina a IncludeAllAppIcons
propriedade como true para incluir automaticamente todos os ícones de aplicativo de todos os catálogos de ativos no aplicativo.
Exemplo:
<PropertyGroup>
<IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>
Veja também:
- O grupo de itens AlternateAppIcon .
- A propriedade AppIcon.
VersãoMínimaDoIOS
Especifica a versão mínima do iOS em que o aplicativo pode ser executado.
Aplicável ao iOS; definir esse valor definirá SupportedOSPlatformVersion para projetos iOS (somente).
IPhoneResourcePrefix
O diretório em que os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Consulte também MonoMacResourcePrefix e XamMacResourcePrefix.
IpaIncludeArtwork
Se a arte deve ser incluída no IPA.
Aplicável somente a projetos iOS e tvOS.
IpaPackageName
Especifica o nome do arquivo .ipa resultante (sem o caminho) ao criar um pacote IPA (consulte BuildIpa). IpaPackagePath substituirá esse valor.
Aplicável somente a projetos iOS e tvOS.
IpaPackageDir
Especifica o diretório do arquivo .ipa resultante ao criar um pacote IPA (consulte BuildIpa). IpaPackagePath substituirá esse valor.
Aplicável somente a projetos iOS e tvOS.
IpaPackagePath
Especifica o caminho para o arquivo .ipa resultante ao criar um pacote IPA (consulte BuildIpa).
Aplicável somente a projetos iOS e tvOS.
IsAppExtension
Se um projeto for uma extensão de aplicativo.
IsBindingProject
Se um projeto for um projeto vinculante.
IsXPCService
Se uma extensão macOS for um serviço XPC.
Aplicável somente a projetos macOS.
Modo de Ligação
Especifica o modo de link para o projeto (None
SdkOnly
ouFull
).
Aplicável a projetos macOS, mas essa propriedade está obsoleta, use TrimMode em vez disso.
Consulte também MtouchLink.
LinkWithSwiftSystemLibraries
Se definido como true
, o build informará ao vinculador nativo onde encontrar as bibliotecas do sistema do Swift.
Isso é útil quando uma biblioteca nativa usa Swift de alguma forma, nesse caso, o vinculador nativo precisa saber onde encontrar as bibliotecas do sistema do Swift.
No momento, isso significa que esses argumentos serão passados para o vinculador nativo:
- -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
- -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDKs/[platform].sdk/usr/lib/swift
O conjunto exato de argumentos pode mudar no futuro.
MacCatalystMinimumVersion
Especifica a versão mínima do Mac Catalyst (iOS) na qual o aplicativo pode ser executado.
Aplicável ao Mac Catalyst; definir esse valor definirá SupportedOSPlatformVersion para projetos Mac Catalyst (somente).
MaciOSPrepareForBuildDependsOn
Uma propriedade delimitada por ponto e vírgula que pode ser usada para estender o processo de construção. Os destinos do MSBuild adicionados a essa propriedade serão executados no início do build para projetos do tipo aplicativo e biblioteca. Essa propriedade está vazia por padrão.
Exemplo:
<PropertyGroup>
<MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
Essa propriedade foi introduzida no .NET 9.
VersãoMínimaDoMacOS
Especifica a versão mínima do macOS em que o aplicativo pode ser executado.
Aplicável ao macOS; definir esse valor definirá SupportedOSPlatformVersion para projetos macOS (somente).
MacOSXSdkVersion
A versão do SDK do macOS a ser usada para o build.
Padrão: detectado automaticamente de acordo com a versão padrão enviada com o Xcode selecionado.
Consulte também MtouchSdkVersion.
ModoDeExceçãoGerenciadaDeMarshal
Defina como as exceções gerenciadas são tratadas ao encontrar uma estrutura nativa no desenrolar da pilha durante o processamento da exceção gerenciada.
Valores válidos:
default
: atualmente, isso éthrowobjectivecexception
.unwindnativecode
: isso não está disponível ao usar o runtime do CoreCLR.throwobjectivecexception
: Capturar a exceção gerenciada e convertê-la em uma exceção do tipo Objective-C.abort
: anulação do processo.disable
: desabilite a interceptação de quaisquer exceções gerenciadas. Para MonoVM, isso é equivalente aunwindnativecode
, para CoreCLR, isso é equivalente aabort
.
Para obter mais informações, consulte Marshaling de exceções e MarshalObjectiveCExceptionMode.
MarshalObjectiveCExceptionMode
Escolha como as exceções de Objective-C são tratadas quando um quadro gerenciado é encontrado durante o desenrolamento da pilha e o processamento da exceção Objective-C.
Valores válidos:
default
: atualmente, isso éthrowmanagedexception
.unwindmanagedcode
: isso não está disponível ao usar o runtime do CoreCLR.throwmanagedexception
: capturar a exceção de Objective-C e convertê-la em uma exceção gerenciada.abort
: anulação do processo.disable
: Desabilite a interceptação de qualquer exceção Objective-C.
Para obter mais informações, consulte Marshaling de exceções e MarshalManagedExceptionMode.
MdimportPath
O caminho completo para a ferramenta mdimport
.
O comportamento padrão é usar xcrun mdimport
.
MetalLibPath
O caminho completo para a ferramenta metallib
(o Vinculador de Metal).
O comportamento padrão é usar xcrun metallib
.
MetalPath
O caminho completo para o compilador Metal.
O comportamento padrão é usar xcrun metal
.
MmpDebug
Habilita o modo de depuração para a criação do pacote de aplicativos.
Aplicável somente a projetos macOS.
Consulte também MtouchDebug.
MonoBundlingExtraArgs
Argumentos adicionais que especificam como criar o pacote de aplicativos.
Aplicável somente a projetos macOS.
Essa propriedade está obsoleta, use AppBundleExtraOptions.
MonoMacResourcePrefix
O diretório em que os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável somente a projetos macOS.
Consulte também IPhoneResourcePrefix e XamMacResourcePrefix.
MtouchDebug
Habilita o modo de depuração para a criação do pacote de aplicativos.
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Consulte também MmpDebug.
MtouchEnableSGenConc
Habilita o modo simultâneo para o coletor de lixo SGen.
Aplicável somente ao iOS, tvOS e Mac Catalyst quando não estiver usando NativeAOT.
Essa propriedade está obsoleta, use EnableSGenConc.
MtouchExtraArgs
Argumentos adicionais que especificam como criar o pacote de aplicativos.
Aplicável somente a projetos iOS, tvOS e Mac Catalyst.
Essa propriedade está obsoleta, use AppBundleExtraOptions.
MtouchInterpreter
Habilita o interpretador e, opcionalmente, usa uma lista separada por vírgulas de assemblies para interpretar (se prefixado com um sinal de menos, o assembly será compilado por AOT). 'all' pode ser usado para especificar todos os assemblies. Esse argumento pode ser especificado várias vezes.
Exemplo:
<PropertyGroup>
<!-- interpret all assemblies -->
<MtouchInterpreter>all</MtouchInterpreter>
<!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
<MtouchInterpreter>System</MtouchInterpreter>
<!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
<MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>
Uma abreviação para o MtouchInterpreter
é definir UseInterpreter=true
, o que é equivalente a MtouchInterpreter=all
.
Se tanto UseInterpreter
quanto MtouchInterpreter
estiverem definidos, então MtouchInterpreter
terá precedência.
Aplicável aos aplicativos iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
O comportamento padrão é não habilitar o interpretador.
Observação
O MAUI altera o padrão definindo UseInterpreter=true
para a "Debug"
configuração.
MtouchLink
Especifica o modo de link para o projeto (None
, , SdkOnly
). Full
Aplicável a projetos iOS, tvOS e Mac Catalyst, mas esta propriedade está deprecada, use TrimMode em vez disso.
Consulte também LinkMode.
MtouchSdkVersion
A versão do SDK do iOS ou tvOS a ser usada para o build.
Padrão: detectado automaticamente de acordo com a versão padrão enviada com o Xcode selecionado.
Consulte também MacOSXSdkVersion.
MtouchUseLlvm
Uma propriedade booliana que especifica se a compilação AOT deve ser feita usando LLVM.
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Padrão:
- No iOS e no tvOS: habilitado para build de versão (em que
Configuration="Release"
). - No Mac Catalyst: nunca habilitado por padrão.
NoBindingEmbedding
Uma propriedade booliana que especifica se as bibliotecas nativas em projetos de associação devem ser inseridas no assembly gerenciado ou colocadas em um .resources
diretório ao lado do assembly gerenciado.
O valor padrão é true
(o que significa que as bibliotecas nativas não serão inseridas no assembly gerenciado).
Observação
Xcframeworks não funcionarão corretamente quando estiverem inseridos dentro do assembly gerenciado (quando essa propriedade não for true
).
NoDSymUtil
Uma propriedade booliana que especifica se a geração .dSYM deve ser desabilitada.
Padrão:
true
para iOS e tvOS quando se compila para o simulador.true
para macOS e Mac Catalyst, a menos que seja criado um arquivo (ArchiveOnBuild=true
)
Isso significa que o arquivo .dSYM será gerado nos seguintes casos (por padrão):
- No iOS e tvOS ao compilar para o dispositivo.
- No macOS e no Mac Catalyst ao criar um arquivo (
ArchiveOnBuild=true
).
NoSymbolStrip
Uma propriedade booliana que especifica se os símbolos de depuração são removidos do aplicativo no momento da compilação.
O comportamento padrão é manter símbolos de depuração para:
- builds
Debug
para plataformas de desktop. - Builds de simulador para plataformas móveis.
Exemplo para manter símbolos de depuração:
<PropertyGroup>
<NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>
OnDemandResourcesInitialInstallTags
Uma propriedade textual que especifica as etiquetas de instalação iniciais para recursos sob demanda.
OnDemandResourcesPrefetchOrder
Uma propriedade de cadeia de texto que determina a ordem de pré-busca para recursos sob demanda.
OnDemandResourcesUrl
Uma propriedade de cadeia de caracteres que especifica a URL do recurso para recursos sob demanda.
OptimizePNGs - ferramenta para otimizar arquivos PNG
Uma propriedade booliana que especifica se as imagens png devem ser otimizadas.
OptimizePngImagesDependeDe
Esse é um ponto de extensão para o build: um desenvolvedor pode adicionar quaisquer alvos a esta propriedade para executar esses alvos antes que quaisquer imagens PNG sejam otimizadas.
Exemplo:
<PropertyGroup>
<OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
OptimizePropertyLists
Uma propriedade booliana que especifica se as listas de propriedades (plists) devem ser otimizadas.
OptimizePropertyListsDependsOn
Esse é um ponto de extensão para a construção: um desenvolvedor pode adicionar qualquer alvo a esta propriedade para executar esses alvos antes de as listas de propriedades (plists) serem otimizadas.
Exemplo:
<PropertyGroup>
<OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
ChaveDeAssinaturaDePacote
Especifica a chave de assinatura de código para assinar o pacote ao criar .pkg para um projeto macOS e Mac Catalyst.
Aplicável somente aos aplicativos macOS e Mac Catalyst.
PackagingExtraArgs
Especifica os argumentos extras a serem passados para a ferramenta 'productbuild' ao criar .pkg para um projeto macOS e Mac Catalyst.
Aplicável somente aos aplicativos macOS e Mac Catalyst.
PkgPackagePath
Especifica o caminho para o arquivo de .pkg resultante ao criar um pacote (consulte CreatePackage).
Aplicável somente aos aplicativos macOS e Mac Catalyst.
PlutilPath
O caminho completo para a plutil
ferramenta de linha de comando.
O comportamento padrão é usar xcrun plutil
.
PngCrushPath
O caminho completo para a pngcrush
ferramenta de linha de comando.
O comportamento padrão é usar xcrun pngcrush
.
ProcessEnums
Uma propriedade booleana que especifica se as enumerações devem ser processadas como uma definição de API em projetos de vinculação.
ProductBuildPath
O caminho completo para a ferramenta productbuild
.
O comportamento padrão é usar xcrun productbuild
.
Definição do Produto
O modelo de definição de produto (.plist
) a ser usado ao criar a definição do produto para passar para a ferramenta de build do produto ao criar pacotes (.pkg).
Aplicável somente aos aplicativos macOS e Mac Catalyst.
ReferênciaSímboloNativo
O grupo ReferenceNativeSymbol
de itens pode ser usado para especificar como devemos lidar com um determinado símbolo nativo: ignore-o ou peça ao vinculador nativo para mantê-lo (passando o símbolo como -u ...
ou em um arquivo de símbolo para o vinculador nativo).
Há dois tipos de metadados com suporte:
SymbolType
: ouObjectiveCClass
,Function
ouField
. Usado para calcular o nome nativo completo de um símbolo (por exemplo, o símbolo nativo da classeMyClass
Objective-C é_OBJC_CLASS_$_MyClass
, enquanto para uma funçãoMyFunction
é apenas_MyFunction
.SymbolMode
: ouIgnore
ou não configurado.Ignore
significa não passar o símbolo fornecido para o vinculador nativo, o padrão é fazê-lo.
SymbolType
é necessário, embora SymbolMode
não seja.
Símbolo de exemplo a ser mantido:
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>
Símbolo de exemplo a ser ignorado:
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>
ExigirLinkComAtributoParaObjectiveCClassSearch
Vamos escanear automaticamente todas as bibliotecas para classes gerenciadas que correspondem a classes Objective-C existentes e, em seguida, criaremos uma referência nativa durante a compilação para essas classes Objective-C.
Dessa forma, o vinculador nativo não removerá essas classes Objective-C, pensando que elas não são usadas.
No entanto, isso poderá causar um problema se uma classe gerenciada fizer referência a uma classe Objective-C que não existe. A correção adequada para isso é remover essas classes gerenciadas do build, mas isso pode ser complicado, em particular se a classe gerenciada vem de uma referência binária (como o NuGet).
Nesses casos, é possível definir a propriedade RequireLinkWithAttributeForObjectiveCClassSearch
para true
de modo que apenas examinemos bibliotecas com o atributo [LinkWith]
para classes Objective-C:
<PropertyGroup>
<RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>
PularValidaçãoDeBibliotecaEstática
A Reinicialização Dinâmica não dá suporte à vinculação com bibliotecas estáticas, portanto, por padrão, mostraremos um erro se o projeto tentar vincular a bibliotecas estáticas ao usar a Reinicialização Ativa.
No entanto, em alguns casos, pode ser útil ignorar esses erros (por exemplo, se testar um caminho de código no aplicativo que não exige a biblioteca estática em questão), portanto, é possível ignorá-los.
Os valores válidos são:
- "true", "disable": desabilite completamente a validação.
- "false", "error", cadeia de caracteres vazia: habilitar a validação (esse é o padrão)
- "avisar": valide, mas mostre avisos em vez de erros.
Exemplo:
<PropertyGroup>
<SkipStaticLibraryValidation>warn</SkipStaticLibraryValidation>
</PropertyGroup>
Isso mostrará avisos em vez de erros se o projeto tentar vincular a uma biblioteca estática.
StripPath
O caminho completo para a strip
ferramenta de linha de comando.
O comportamento padrão é usar xcrun strip
.
VersãoDePlataformaOSSuportada
Especifica a versão mínima do sistema operacional na qual o aplicativo pode ser executado.
Também é possível usar uma propriedade específica da plataforma:
TrimMode
Especifica a granularidade de corte.
As opções válidas são:
full
: corte cada conjunto.partial
: aparar assemblies que optaram por cortar.copy
: Não cortar conjuntos.
Consulte TrimMode para obter um pouco mais de informações sobre a TrimMode
propriedade.
Observação
Por motivos técnicos, a ferramenta de corte deve ser executada para todos os projetos iOS, tvOS, macOS e Mac Catalyst, mesmo que nenhum assembly precise ser cortado. Por esse motivo, não é válido desabilitar o corte definindo PublishTrimmed como false
– para desabilitar o corte, definido TrimMode=copy
em vez disso (um erro de build será gerado se PublishTrimmed
for definido como false
).
A TrimMode
propriedade é equivalente às propriedades MtouchLink (para iOS, tvOS e Mac Catalyst) e LinkMode (para macOS), mas os valores de propriedades válidas são diferentes (embora a semântica seja a mesma):
MtouchLink/LinkMode | TrimMode |
---|---|
Completo | cheio |
SdkOnly | parcial |
Nenhum | copiar |
Daqui para frente, as propriedades MtouchLink
e LinkMode
serão descontinuadas, por favor, use TrimMode
em vez disso.
O modo de corte padrão depende de vários fatores e também pode mudar no futuro.
Os valores padrão atuais (a partir do .NET 9) são:
- iOS e iOS:
partial
ao compilar para o dispositivo,copy
ao compilar para o simulador. - macOS: sempre
copy
. - Mac Catalyst:
partial
ao criar para a configuração específica"Release"
,copy
em outros casos.
Exceções:
- O valor padrão é sempre
full
ao compilar com NativeAOT. - O MAUI altera o valor padrão para
copy
ao criar para aDebug
configuração e o interpretador é habilitado usando UseInterpreter (que o MAUI também habilita por padrão ao usar a"Debug"
configuração).
Observação
O modo de corte padrão pode ser alterado no futuro.
Versão mínima do tvOS
Especifica a versão mínima do tvOS na qual o aplicativo pode ser executado.
Aplicável ao tvOS; ao definir esse valor, será definido SupportedOSPlatformVersion para projetos exclusivamente de tvOS.
Usar Tempo de Execução Endurecido
Uma propriedade booliana que especifica se um runtime protegido está habilitado.
Aplicável a projetos macOS e Mac Catalyst.
UseInterpreter
Habilita o interpretador (para todos os assemblies).
Isso é equivalente à configuração MtouchInterpreter=all
.
Aplicável aos aplicativos iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
O comportamento padrão é não habilitar o interpretador.
Observação
O MAUI altera o padrão definindo UseInterpreter=true
para a "Debug"
configuração.
Consulte MtouchInterpreter para obter mais informações.
UseNativeHttpHandler
Se o manipulador http nativo deve ser o manipulador http padrão ou não.
Padrão: verdadeiro para todas as plataformas, exceto macOS.
ValidarDireitos
Escolha se as autorizações solicitadas pelo aplicativo precisam ser validadas.
Valores válidos para esta propriedade:
disable
: a validação está desabilitada.warn
: quaisquer falhas de validação são mostradas como avisos.error
: todas as falhas de validação são mostradas como erros. Esse é o padrão.
O processo de validação pode não validar todos os benefícios, nem é garantido que não seja excessivamente zeloso.
Se a validação falhar para os direitos que realmente funcionam, registre um novo problema.
ValidateXcodeVersion
Escolha se a versão atual do Xcode deve ser validada.
O valor padrão é validar; defina para false
para desabilitar.
Observação
O uso de uma versão diferente da recomendada provavelmente produzirá problemas posteriormente no processo de build.
XamMacResourcePrefix
O diretório em que os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável a projetos macOS.
Consulte também IPhoneResourcePrefix e MonoMacResourcePrefix.
ZipPath
O caminho completo para a zip
ferramenta de linha de comando.
O comportamento padrão é usar xcrun zip
.