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:
- La propiedad AppIcon.
- La propiedad IncludeAllAppIcons.
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:
- CodesignAllocate
- CodesignEntitlements
- CodesignExtraArgs
- CodesignKeychain
- ReglasDeRecursosDeCodiseño
- llaveDeFirmaDeCodesign
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
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 esRelease
.%(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 estrue
.%(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.