Compartilhar via


Compilar itens para iOS, Mac Catalyst, macOS e tvOS

Os itens de build controlam como os projetos de aplicativo ou biblioteca do .NET para iOS, Mac Catalyst, macOS e tvOS são criados.

ExtensõesAdicionaisDeAplicativos

Um grupo de itens que contém extensões de aplicativo adicionais para copiar para o pacote do aplicativo.

AlternateAppIcon

O grupo de itens AlternateAppIcon pode ser usado para especificar ícones de aplicativo alternativos.

Os metadados Include devem indicar o nome do arquivo de um recurso de imagem .appiconset (para iOS, macOS e Mac Catalyst) ou .imagestack (para tvOS) dentro de um catálogo de ativos.

Exemplo:

<ItemGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
    <AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>

Veja também:

AtlasTexture

Um grupo de itens que contém texturas atlas.

BGenReferencePath

A lista de referências de assembly a serem passadas para a ferramenta bgen (binding generator).

Normalmente, isso é tratado automaticamente adicionando como referências os itens ProjectReference ou PackageReference.

BundleResource

Arquivos a serem copiados para o pacote do aplicativo.

Veja também:

CodesignBundle

Pacotes adicionais a serem assinados dentro do aplicativo final.

A finalidade é incluir no aplicativo a assinatura de outros pacotes que são copiados manualmente (por exemplo, por meio de destinos personalizados do MSBuild durante o build) para o pacote do aplicativo.

O caminho a ser incluído é o caminho para o pacote do aplicativo entrar no pacote principal do aplicativo, incluindo o próprio nome do pacote de aplicativos.

Exemplo:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>

Há várias partes de metadados que podem ser definidas no item CodesignBundle para direcionar como a assinatura ocorre:

Exemplo:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
        <CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
    </CodesignBundle>
</ItemGroup>

Qualquer metadado não definido usará a propriedade correspondente em vez disso (por exemplo, se os metadados CodesignSigningKey não estiverem definidos, o valor da propriedade CodesignSigningKey será usado em vez disso.)

Collada

Um grupo de itens que contém ativos collada.

Conteúdo

Recursos (arquivos) a serem copiados para o pacote do aplicativo.

Eles serão colocados no seguinte diretório dentro do pacote do aplicativo:

  • /Resources: iOS e tvOS
  • /Contents/Resources: macOS e Mac Catalyst

É possível definir os metadados Link para um caminho relativo ao diretório de destino, a fim de alterar o local do pacote do aplicativo.

Exemplo:

<ItemGroup>
    <Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>

colocaria o arquivo no seguinte local:

  • /Resources/Documentation/Readme.txt: iOS, tvOS, watchOS
  • /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst

Veja também:

CoreMLModel

Um grupo de itens que contém modelos CoreML.

CustomEntitlements

Um grupo de itens que contém direitos personalizados a serem adicionados ao aplicativo.

Essas permissões são processadas por último e substituirão quaisquer outras permissões, seja a partir do arquivo especificado com a propriedade CodesignEntitlements, ou do perfil de provisionamento em uso (se houver).

Este é o formato:

<ItemGroup>
    <CustomEntitlements Include="name.of.entitlement" Type="Boolean" Value="true" /> <!-- value can be 'false' too (case doesn't matter) -->
    <CustomEntitlements Include="name.of.entitlement" Type="String" Value="stringvalue" />
    <CustomEntitlements Include="name.of.entitlement" Type="StringArray" Value="a;b" /> <!-- array of strings, separated by semicolon -->
    <CustomEntitlements Include="name.of.entitlement" Type="StringArray" Value="a😁b" ArraySeparator="😁" /> <!-- array of strings, separated by 😁 -->
    <CustomEntitlements Include="name.of.entitlement" Type="Remove" /> <!-- This will remove the corresponding entitlement  -->
</ItemGroup>

ITunesArtwork

Um grupo de itens que contém ilustrações do iTunes para IPAs.

Aplicável somente a projetos iOS e tvOS.

Metadados do iTunes

Aplicável somente a projetos iOS e tvOS.

ImageAsset

Um grupo de itens que contém ativos de imagem.

Definição de Interface

Um grupo de itens que contém definições de interface (arquivos *.xib ou *.storyboard).

Descrição do Link

Arquivos XML adicionais para passar ao trimmer.

Isso é o mesmo que definir TrimmerRootDescriptor .

Metal

Um grupo de itens que contém ativos de metal.

NativeReference

Um grupo de itens que contém referências nativas que devem ser incorporadas ou associadas ao criar um executável nativo.

ObjcBindingApiDefinition

Um grupo de itens que lista todas as definições de API para projetos de associação.

ObjcBindingCoreSource

Um grupo de itens que lista todo o código-fonte principal para projetos de associação.

ObjCBindingNativeFramework

Um grupo de itens que lista todos os frameworks nativos que devem ser incluídos em um projeto de bindings.

Esse grupo de itens foi preterido, use NativeReference.

ObjcBindingNativeLibrary

Um grupo de itens que lista todas as bibliotecas nativas que devem ser incluídas em um projeto de associação.

Esse grupo de itens é obsoleto, use NativeReference em vez disso.

ManifestoParcialDoAplicativo

PartialAppManifest pode ser usado para adicionar manifestos de aplicativo parciais adicionais que serão mesclados com o manifesto principal do aplicativo (Info.plist).

Todos os valores nos manifestos parciais do aplicativo substituirão valores no manifesto do aplicativo principal, a menos que os metadados Overwrite sejam definidos como false.

Se o mesmo valor for especificado em vários manifestos parciais do aplicativo, será indeterminado qual será o usado.

<ItemGroup>
    <PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>

Se o desenvolvedor precisar executar um destino para calcular o que adicionar ao grupo de itens PartialAppManifest, é possível garantir que esse destino seja executado antes que os itens PartialAppManifest sejam inseridos adicionando-o à propriedade CollectAppManifestsDependsOn:

<PropertyGroup>
    <CollectAppManifestsDependsOn>
        AddPartialAppManifests;
        $(CollectAppManifestsDependsOn);
    </CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
    <ItemGroup>
        <PartialAppManifest Include="MyPartialAppManifest.plist" />
    </ItemGroup>
</Target>

XcodeProject

<XcodeProject> pode ser usado para criar e consumir as saídas de projetos de estrutura Xcode criados no Xcode ou em elsewehere.

Os metadados Include devem apontar para o caminho do arquivo XCODEPROJ a ser criado.

<ItemGroup>
  <XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>

Há suporte para os seguintes metadados do MSBuild:

  • %(SchemeName): o nome do esquema de construção ou alvo que deve ser usado para compilar o projeto.

  • %(Configuration): o nome da configuração a ser usada para compilar o projeto. O valor padrão é Release.

  • %(CreateNativeReference): Arquivos XCFRAMEWORK de saída serão adicionados como um @(NativeReference) ao projeto. Os metadados compatíveis com @(NativeReference), como %(Kind), %(Frameworks)ou %(SmartLink), serão encaminhados se estiverem definidos. O valor padrão é true.

  • %(OutputPath): pode ser configurado para substituir os caminhos de saída XCARCHIVE e XCFRAMEWORK do projeto Xcode. O valor padrão é $(IntermediateOutputPath)xcode/{SchemeName}-{Hash}.

Essa ação de build foi introduzida no .NET 9.