Compartir a través de


Crear elementos para iOS, Mac Catalyst, macOS y tvOS

Los elementos de compilación controlan cómo se compilan los proyectos de biblioteca o aplicación .NET para iOS, Mac Catalyst, macOS y tvOS.

ExtensionesAdicionalesDeAplicaciones

Un grupo de elementos que contiene las extensiones de aplicación adicionales que se van a copiar en la agrupación de aplicaciones.

IconoAlternativoDeApp

El grupo de elementos AlternateAppIcon se puede usar para especificar iconos de aplicación alternativos.

Los metadatos de Include deben apuntar al nombre de archivo de un recurso de imagen .appiconset (para iOS, macOS y Mac Catalyst) o .imagestack (para tvOS) dentro de un catálogo de activos.

Ejemplo:

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

Consulte también:

AtlasTexture

Grupo de elementos que contiene texturas de atlas.

BGenReferencePath

Lista de referencias de ensamblaje que se van a pasar a la herramienta bgen (generador de enlaces).

Normalmente, esto se controla automáticamente agregando referencias como elementos ProjectReference o PackageReference.

BundleResource

Archivos que se van a copiar en la agrupación de aplicaciones.

Consulte también:

CodesignBundle

Paquetes adicionales dentro de la aplicación final que se deben firmar.

El propósito es incluir en la firma de la aplicación cualquier otro lote que se copie manualmente (por ejemplo, a través de destinos de MSBuild personalizados durante la compilación) en la agrupación de aplicaciones.

La ruta de acceso que se va a incluir es la ruta de acceso a la agrupación de aplicaciones para iniciar sesión dentro del lote de aplicaciones principal, incluido el propio nombre del lote de la aplicación.

Ejemplo:

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

Hay varios fragmentos de metadatos que se pueden establecer en el elemento de CodesignBundle para dirigir cómo se produce la firma:

Ejemplo:

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

Los metadatos no establecidos usarán la propiedad correspondiente en su lugar (por ejemplo, si no se establecen los metadatos de CodesignSigningKey, el valor de la propiedad CodesignSigningKey se usará en su lugar).

Collada

Un grupo de elementos que contiene recursos de collada.

Contenido

Recursos (archivos) que se van a copiar en la agrupación de aplicaciones.

Se colocarán en el siguiente directorio dentro del conjunto de aplicaciones:

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

Es posible establecer los metadatos de Link en una ruta de acceso relativa al directorio de destino para cambiar la ubicación en el paquete de aplicaciones.

Ejemplo:

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

colocaría el archivo en la siguiente ubicación:

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

Consulte también:

CoreMLModel

Un grupo de elementos que contiene modelos CoreML.

CustomEntitlements

Grupo de elementos que contiene derechos personalizados que se van a agregar a la aplicación.

Estos permisos se procesan al final y anularán cualquier otro permiso, ya sea desde el archivo especificado con la propiedad CodesignEntitlements o desde el perfil de aprovisionamiento en uso (si lo hay).

Este es el 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

Un grupo de elementos que contiene ilustraciones de iTunes para ipAs.

Solo se aplica a proyectos de iOS y tvOS.

MetadatosDeITunes

Solo se aplica a proyectos de iOS y tvOS.

ImageAsset

Un grupo de elementos que contiene recursos de imagen.

Definición de Interfaz

Grupo de elementos que contiene definiciones de interfaz (archivos *.xib o *.storyboard).

Descripción del Enlace

Archivos XML adicionales que se van a pasar al recortador.

Esto es lo mismo que establecer TrimmerRootDescriptor.

Metal

Grupo de elementos que contiene activos metálicos.

NativeReference

Grupo de elementos que contiene referencias nativas que se deben enlazar al compilar el ejecutable nativo.

ObjcBindingApiDefinition

Un grupo de elementos que muestra todas las definiciones de API para los proyectos de enlace.

ObjcBindingCoreSource

Un grupo de elementos que muestra todo el código fuente principal para los proyectos de enlace.

ObjCBindingNativeFramework

Un grupo de elementos que enumera todos los marcos nativos que se deben incluir en un proyecto de enlace.

Este grupo de elementos está en desuso, use nativeReference en su lugar.

ObjcBindingNativeLibrary

Un grupo de elementos que enumera todas las bibliotecas nativas que se deben incluir en un proyecto de enlace.

Este grupo de elementos está en desuso, use nativeReference en su lugar.

ManifiestoParcialDeAplicación

PartialAppManifest se puede usar para agregar manifiestos de aplicación parcial adicionales que se combinarán con el manifiesto de aplicación principal (Info.plist).

Los valores de los manifiestos parciales de la aplicación anularán los valores del manifiesto principal de la aplicación, a menos que los metadatos de Overwrite se establezcan en false.

Si se especifica el mismo valor en varios manifiestos de aplicación parciales, no se determina cuál será el que se usará.

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

Si el desarrollador necesita ejecutar un destino para calcular qué agregar al grupo de elementos de PartialAppManifest, es posible asegurarse de que este destino se ejecuta antes de que los elementos de PartialAppManifest se procesen agregándolo a la propiedad CollectAppManifestsDependsOn:

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

XcodeProject

<XcodeProject> se puede usar para compilar y consumir las salidas de los proyectos de marco de Xcode creados en Xcode o elsewehere.

Los metadatos de Include deben apuntar a la ruta del archivo XCODEPROJ que se va a compilar.

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

Se admiten los siguientes metadatos de MSBuild:

  • %(SchemeName): el nombre del esquema de compilación o destino que se debe usar para compilar el proyecto.

  • %(Configuration): el nombre de la configuración que se va a usar para compilar el proyecto. El valor predeterminado es Release.

  • %(CreateNativeReference): los archivos XCFRAMEWORK de salida se agregarán como @(NativeReference) al proyecto. Los metadatos admitidos por @(NativeReference) como %(Kind), %(Frameworks)o %(SmartLink) se reenviarán si están establecidos. El valor predeterminado es true.

  • %(OutputPath): Se puede establecer para sobrescribir las rutas de acceso de salida de XCARCHIVE y XCFRAMEWORK del proyecto de Xcode. El valor predeterminado es $(IntermediateOutputPath)xcode/{SchemeName}-{Hash}.

Esta acción de compilación se introdujo en .NET 9.