Compartilhar via


Criar propriedades para iOS, Mac Catalyst, macOS e tvOS

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:

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:

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 (NoneSdkOnlyouFull).

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 a unwindnativecode, para CoreCLR, isso é equivalente a abort.

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.

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: ou ObjectiveCClass, Function ou Field. Usado para calcular o nome nativo completo de um símbolo (por exemplo, o símbolo nativo da classe MyClass Objective-C é _OBJC_CLASS_$_MyClass, enquanto para uma função MyFunction é apenas _MyFunction.
  • SymbolMode: ou Ignore 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 a Debug 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.