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:
- A propriedade AppIcon.
- A propriedade IncludeAllAppIcons.
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:
- CodesignAllocate
- CodesignEntitlements
- CodesignExtraArgs
- CodesignKeychain
- CodesignResourceRules
- CodesignSigningKey
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
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.