Compartir a través de


Propiedades de compilación para iOS, Mac Catalyst, macOS y tvOS

Las propiedades de MSBuild controlan el comportamiento de los targets. Se especifican en el archivo de proyecto, por ejemplo MyApp.csproj, dentro de un PropertyGroup de MSBuild.

AltoolPath

Ruta de acceso completa de la herramienta altool.

El comportamiento predeterminado es usar xcrun altool.

AppBundleDir

Ubicación del conjunto de aplicaciones compilado.

AppBundleExtraOptions

Argumentos adicionales avanzados para la creación de conjuntos de aplicaciones.

El conjunto válido de argumentos depende de la plataforma.

Normalmente, estos no deben usarse a menos que lo especifique un ingeniero de Microsoft.

Icono de la Aplicación

El AppIcon grupo de elementos se puede usar para especificar un icono de aplicación para la aplicación.

El valor de la propiedad debe apuntar al nombre de archivo de un recurso de imagen .appiconset (para iOS, macOS y Mac Catalyst) o .brandassets (para tvOS) dentro de un catálogo de activos.

Ejemplo:

<PropertyGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
    <AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>

Consulte también:

VersiónMostradaDeLaAplicación

Si se establece, especifica el valor CFBundleShortVersionString en el manifiesto de la aplicación (Info.plist).

Se trata de una propiedad que admite .NET "de un solo proyecto".

Consulte OneDotNetSingleProject para obtener más información.

ApplicationId

Si se establece, especifica el valor CFBundleIdentifier en el manifiesto de la aplicación (Info.plist).

Se trata de una propiedad que admite .NET "de un solo proyecto".

Consulte OneDotNetSingleProject para obtener más información.

Título de la Aplicación

Si se establece, especifica CFBundleDisplayName en el manifiesto de la aplicación (Info.plist).

Se trata de una propiedad que admite .NET "de un solo proyecto".

Consulte OneDotNetSingleProject para obtener más información.

Versión de la Aplicación

Si se establece, especifica el CFBundleVersion en el manifiesto de la aplicación (Info.plist).

Se trata de una propiedad que admite .NET "de un solo proyecto".

Consulte OneDotNetSingleProject para obtener más información.

ArchiveBasePath

Ubicación donde se almacenan los archivos en Windows para una compilación remota.

El valor predeterminado es: %LocalAppData%\Xamarin\iOS\Archives

Solo se aplica a proyectos de iOS (ya que solo los proyectos de iOS se pueden compilar de forma remota desde Windows).

ArchiveOnBuild

Si se debe crear un archivo Xcode al final de la compilación.

BGenEmitDebugInformation

Si la herramienta bgen (el generador de enlaces) debe emitir información de depuración o no.

El comportamiento predeterminado es true cuando Debug la propiedad se establece en true.

BGenExtraArgs

Cualquier argumento adicional para la herramienta bgen (el generador de enlaces).

BGenToolExe

Nombre del bgen archivo ejecutable (una herramienta que usan los proyectos de enlace para generar enlaces).

El comportamiento predeterminado es usar la bgen herramienta que se incluye con nuestra carga de trabajo.

BGenToolPath

Directorio al lugar donde se encuentra bgen (BGenToolExe).

El comportamiento predeterminado es usar la bgen herramienta que se incluye con nuestra carga de trabajo.

BuildIpa

Si se debe crear un paquete (.ipa) para la agrupación de aplicaciones al final de la compilación.

Solo se aplica a proyectos de iOS y tvOS.

Consulte CreatePackage para proyectos macOS y Mac Catalyst.

BundleOriginalResources

Esta propiedad determina si los recursos se compilan antes de insertarse en proyectos de biblioteca o si la versión original (sin compilar) está incrustada.

Históricamente, los recursos se han compilado antes de insertarse en proyectos de biblioteca, pero esto requiere tener Xcode disponible, que tiene algunas desventajas:

  • Ralentiza las compilaciones remotas en Windows.
  • No funcionará al compilar localmente en Windows y tampoco en ninguna otra plataforma excepto macOS.
  • Los recursos se compilan con el Xcode disponible actual, que puede no tener las mismas características que un Xcode potencialmente más reciente disponible cuando se consume la biblioteca en cuestión.
  • Hace imposible tener una visión completa de todos los recursos del programa al desarrollar una aplicación, lo cual es necesario para detectar recursos en conflicto.

Por lo tanto, hemos añadido soporte para insertar los recursos originales en bibliotecas. Esto será opcional en .NET 9, pero será automático a partir de .NET 10.

Valor predeterminado de esta propiedad false en .NET 9 y true en .NET 10+.

Nota:

Presente un problema si encuentra que necesita deshabilitar esta característica, ya que es posible que la opción para deshabilitarla se quitará en el futuro.

CodesignAllocate

Ruta de acceso a la herramienta codesign_allocate.

De forma predeterminada, este valor se detecta automáticamente.

CodesignDependsOn

Este es un punto de extensión para la compilación: un desarrollador puede agregar cualquier destino a esta propiedad para ejecutar esos destinos antes de que se firme la agrupación de aplicaciones.

Ejemplo:

<PropertyGroup>
  <CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
  <Exec Command="echo This is executed right before the app is signed." />
</Target>

CodesignEntitlements

Ruta de acceso al archivo de derechos que especifica los derechos que requiere la aplicación.

Suele ser "Entitlements.plist".

Lo estableceremos automáticamente en "Entitlements.plist" si existe dicho archivo en el directorio raíz del proyecto.

Esto se puede evitar estableciendo la propiedad EnableDefaultCodesignEntitlements en false.

CodesignExtraArgs

Argumentos adicionales que se pasan a la herramienta "codesign" al firmar el paquete de aplicaciones.

CodesignKey

Especifica la clave de firma de código que se va a usar al firmar la agrupación de aplicaciones.

CodesignKeychain

Cadena de claves que se va a usar durante la firma de código.

Clave de Firma de Código (CodeSigningKey)

Especifica la clave de firma de código que se va a usar al firmar la agrupación de aplicaciones.

Solo se aplica a las aplicaciones macOS y Mac Catalyst, pero se recomienda usar la propiedad CodesignKey en su lugar (que funciona en todas las plataformas).

CodesignProvision

Especifica el perfil de aprovisionamiento que se va a usar al firmar la agrupación de aplicaciones.

CodesignResourceRules

Ruta de acceso a ResourceRules.plist para copiarla en el paquete de aplicaciones.

CodesignRequireProvisioningProfile

Especifica si se requiere un perfil de aprovisionamiento al firmar la agrupación de aplicaciones.

De forma predeterminada, se requiere un perfil de aprovisionamiento si:

  • macOS, Mac Catalyst: se ha especificado un perfil de aprovisionamiento (con la propiedad CodesignProvision ).
  • iOS, tvOS: se ha especificado la compilación para el dispositivo o un archivo de derechos (con la propiedad CodesignEntitlements).

Al establecer esta propiedad en true o false se invalidará la lógica predeterminada.

CreateAppBundleDependsOn

Este es un punto de extensión para la compilación: un desarrollador puede agregar destinos a esta propiedad para ejecutar esos destinos al crear la agrupación de aplicaciones.

Ejemplo:

<PropertyGroup>
  <CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
  <Exec Command="echo This is executed before the app bundle is created." />
</Target>

CreateIpaDependsOn

Este es un punto de extensión para la compilación: un desarrollador puede agregar cualquier objetivo a esta propiedad para ejecutar esos objetivos al crear un IPA.

Aplicable a todas las plataformas que compilan archivos IPA (actualmente iOS y tvOS).

Ejemplo:

<PropertyGroup>
  <CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
  <Exec Command="echo This is executed before the IPA is created." />
</Target>

CreatePackage

Si se debe crear un paquete (.pkg) para la agrupación de aplicaciones al final de la compilación.

Solo se aplica a los proyectos macOS y Mac Catalyst.

Consulte BuildIpa para proyectos de iOS y tvOS.

DeviceSpecificBuild

Si la compilación debe ser específica del dispositivo seleccionado.

Aplicable a todas las plataformas que admiten compilaciones específicas del dispositivo (actualmente iOS y tvOS).

RutaDeSalidaIntermediaEspecíficaDelDispositivo

Ruta de acceso de salida intermedia que debe usarse cuando se habilitan compilaciones específicas del dispositivo.

Aplicable a todas las plataformas que admiten compilaciones específicas del dispositivo (actualmente iOS y tvOS).

RutaDeSalidaEspecíficaDelDispositivo

Ruta de acceso de salida que debe usarse cuando se habilitan compilaciones específicas del dispositivo.

Aplicable a todas las plataformas que admiten compilaciones específicas del dispositivo (actualmente iOS y tvOS).

DittoPath

Ruta completa de acceso al archivo ejecutable ditto.

El comportamiento predeterminado es usar /usr/bin/ditto.

EmbedOnDemandResources

Si los recursos a petición deben insertarse en el lote de aplicaciones.

Valor predeterminado: true

EnableCodeSigning

Si la firma de código está habilitada.

Normalmente, la compilación determinará automáticamente si se requiere la firma de código; esta detección automática se puede invalidar con esta propiedad.

EnableDefaultCodesignEntitlements

Consulta CodesignEntitlements.

EnableOnDemandResources

Si los recursos a petición están habilitados.

Valor predeterminado: false para macOS, true para todas las demás plataformas.

EnablePackageSigning

Si es preciso firmar el archivo .pkg que se creó (si se ha habilitado CreatePackage).

Solo se aplica a macOS y Mac Catalyst.

HabilitarDiagnósticos

Habilite los componentes necesarios para que funcionen los diagnósticos (como la generación de perfiles).

Está habilitado de forma predeterminada para las compilaciones de depuración (cuando MtouchDebug o MmpDebug está habilitado), pero hay que habilitarlo manualmente antes de generar perfiles en las versiones de lanzamiento:

<PropertyGroup>
  <EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>

Esto aumentará ligeramente el tamaño de la aplicación.

Solo es aplicable cuando se usa el entorno de ejecución mono (CoreCLR siempre admite diagnósticos, mientras que NativeAOT nunca lo hace).

EnableSGenConc

Habilita el modo simultáneo para el recolector de basura SGen.

Solo se aplica a iOS, tvOS y Mac Catalyst (cuando no se usa NativeAOT).

GenerarManifiestoDeAplicación

Si se debe generar un manifiesto de aplicación (Info.plist).

Valor predeterminado: true

GeneratedSourcesDir

Donde se guarda el origen generado por el generador.

IncluirTodosLosIconosDeAplicaciones

Establezca la IncludeAllAppIcons propiedad en true para incluir automáticamente todos los iconos de aplicación de todos los catálogos de recursos de la aplicación.

Ejemplo:

<PropertyGroup>
    <IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>

Consulte también:

iOSMinimumVersion

Especifica la versión mínima de iOS en la que se puede ejecutar la aplicación.

Aplicable a iOS; establecer este valor establecerá SupportedOSPlatformVersion para proyectos de iOS (solo).

IPhoneResourcePrefix

El directorio en el que se almacenan los recursos (este prefijo se quitará al copiar recursos en el lote de aplicaciones).

Aplicable a proyectos iOS, tvOS y Mac Catalyst.

Consulte también MonoMacResourcePrefix y XamMacResourcePrefix.

IpaIncludeArtwork

Si las ilustraciones deben incluirse en el IPA.

Solo se aplica a proyectos de iOS y tvOS.

IpaPackageName

Especifica el nombre del archivo .ipa resultante (sin la ruta de acceso) al crear un paquete IPA (consulte BuildIpa). IpaPackagePath invalidará este valor.

Solo se aplica a proyectos de iOS y tvOS.

IpaPackageDir

Especifica el directorio del archivo .ipa resultante al crear un paquete IPA (vea BuildIpa). IpaPackagePath invalidará este valor.

Solo se aplica a proyectos de iOS y tvOS.

IpaPackagePath

Especifica la ruta de acceso al archivo .ipa resultante al crear un paquete IPA (consulte BuildIpa).

Solo se aplica a proyectos de iOS y tvOS.

IsAppExtension

Si un proyecto es una extensión de aplicación.

IsBindingProject

Si un proyecto es un proyecto vinculante.

IsXPCService

Si una extensión de macOS es un servicio xpc.

Solo se aplica a proyectos de macOS.

LinkMode

Especifica el modo de vínculo para el proyecto (Noneo SdkOnlyFull).

Aplicable a los proyectos de macOS, pero esta propiedad está en desuso, use TrimMode en su lugar.

Vea también MtouchLink.

VincularConBibliotecasDelSistemaSwift

Si se establece en true, la compilación indicará al enlazador nativo dónde buscar las bibliotecas del sistema de Swift.

Esto resulta útil cuando una biblioteca nativa usa Swift de alguna manera, en cuyo caso el enlazador nativo debe saber dónde encontrar las bibliotecas del sistema de Swift.

Actualmente, esto significa que estos argumentos se pasarán al enlazador 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

El conjunto exacto de argumentos puede cambiar en el futuro.

Versión Mínima de MacCatalyst

Especifica la versión mínima de Mac Catalyst (iOS) en la que se puede ejecutar la aplicación.

Aplicable a Mac Catalyst; establecer este valor establecerá SupportedOSPlatformVersion para proyectos de Mac Catalyst (solo).

MaciOSPrepareForBuildDependsOn

Propiedad delimitada por punto y coma que se puede usar para extender el proceso de compilación. Los destinos de MSBuild agregados a esta propiedad se ejecutarán al principio de la compilación para los tipos de proyecto tanto de aplicación como de biblioteca. Esta propiedad está vacía de forma predeterminada.

Ejemplo:

<PropertyGroup>
  <MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

Esta propiedad se introdujo en .NET 9.

Versión mínima de macOS

Especifica la versión mínima de macOS en la que se puede ejecutar la aplicación.

Aplicable a macOS; establecer este valor establecerá SupportedOSPlatformVersion para proyectos de macOS (solo).

MacOSXSdkVersion

Versión del SDK de macOS que se va a usar para la compilación.

Valor predeterminado: se detecta automáticamente según la versión predeterminada enviada con el Xcode seleccionado.

Consulte también MtouchSdkVersion.

MarshalManagedExceptionMode

Elija cómo se controlarán las excepciones administradas en caso de que se encuentre un marco nativo durante el desenredo de la pila mientras se procesa la excepción administrada.

Valores válidos:

  • default: actualmente, se trata de throwobjectivecexception.
  • unwindnativecode: esto no está disponible cuando se usa el entorno de ejecución de CoreCLR.
  • throwobjectivecexception: captura la excepción administrada y la convierte en una excepción de Objective-C.
  • abort: anula el proceso.
  • disable: deshabilita la interceptación de las excepciones administradas. Para MonoVM, es equivalente a unwindnativecode, para CoreCLR, es equivalente a abort.

Para obtener más información, vea Serialización de excepciones y SerialalObjectiveCExceptionMode.

MarshalObjectiveCExceptionMode

Elija cómo se controlarán las excepciones Objective-C en caso de que se encuentre un marco administrado durante el desenredo de la pila mientras se procesa la excepción Objective-C.

Valores válidos:

  • default: actualmente, se trata de throwmanagedexception.
  • unwindmanagedcode: esto no está disponible cuando se usa el entorno de ejecución de CoreCLR.
  • throwmanagedexception: captura la excepción de Objective-C y la convierte en una excepción administrada.
  • abort: anula el proceso.
  • disable: se deshabilita la interceptación de cualquier excepción Objective-C.

Para obtener más información, vea Serialización de excepciones y MarshalManagedExceptionMode.

MdimportPath

Ruta de acceso completa de la herramienta mdimport.

El comportamiento predeterminado es usar xcrun mdimport.

MetalLibPath

La ruta de acceso completa a la herramienta metallib (Metal Linker).

El comportamiento predeterminado es usar xcrun metallib.

MetalPath

Ruta de acceso completa al compilador Metal.

El comportamiento predeterminado es usar xcrun metal.

MmpDebug

Habilita el modo de depuración para la creación de conjuntos de aplicaciones.

Solo se aplica a proyectos de macOS.

Consulte también MtouchDebug.

MonoBundlingExtraArgs

Argumentos adicionales que especifican cómo crear la agrupación de aplicaciones.

Solo se aplica a proyectos de macOS.

Esta propiedad está en desuso, use AppBundleExtraOptions en su lugar.

MonoMacResourcePrefix

El directorio en el que se almacenan los recursos (este prefijo se quitará al copiar recursos en el lote de aplicaciones).

Solo se aplica a proyectos de macOS.

Vea también IPhoneResourcePrefix y XamMacResourcePrefix.

MtouchDebug

Habilita el modo de depuración para la creación de conjuntos de aplicaciones.

Aplicable a proyectos iOS, tvOS y Mac Catalyst.

Consulte también MmpDebug.

MtouchEnableSGenConc

Habilita el modo simultáneo para el recolector de basura SGen.

Solo se aplica a iOS, tvOS y Mac Catalyst cuando no se usa NativeAOT.

Esta propiedad está en desuso, use EnableSGenConc en su lugar.

MtouchExtraArgs

Argumentos adicionales que especifican cómo crear la agrupación de aplicaciones.

Solo se aplica a proyectos iOS, tvOS y Mac Catalyst.

Esta propiedad está en desuso, use AppBundleExtraOptions en su lugar.

MtouchInterpreter

Habilita el intérprete y, opcionalmente, toma una lista separada por comas de ensamblados para interpretarla (en cambio, si el ensamblado va precedido de un signo menos, se compilará en AOT). 'all' se puede usar para especificar todos los ensamblados. Este argumento se puede especificar varias veces.

Ejemplo:

<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>

Una abreviatura de MtouchInterpreter es establecer UseInterpreter=true, que es equivalente a MtouchInterpreter=all.

Si se establecen tanto UseInterpreter como MtouchInterpreter, MtouchInterpreter tiene prioridad.

Aplicable a las aplicaciones iOS, tvOS y Mac Catalyst (cuando no se usa NativeAOT).

El comportamiento predeterminado es no habilitar el intérprete.

Nota:

MAUI cambia el valor predeterminado estableciendo UseInterpreter=true para la "Debug" configuración.

Especifica el modo de vínculo para el proyecto (None, SdkOnly, Full).

Aplicable a los proyectos de iOS, tvOS y Mac Catalyst, pero esta propiedad está obsoleta, utilice TrimMode en su lugar.

Consulte también LinkMode.

MtouchSdkVersion

Versión del SDK de iOS o tvOS que se va a usar para la compilación.

Valor predeterminado: se detecta automáticamente según la versión predeterminada enviada con el Xcode seleccionado.

Consulte también MacOSXSdkVersion.

MtouchUseLlvm

Propiedad booleana que especifica si la compilación de AOT se debe realizar mediante LLVM.

Aplicable a proyectos iOS, tvOS y Mac Catalyst.

Predeterminado:

  • En iOS y tvOS: se habilita para versiones de lanzamiento (donde Configuration="Release").
  • En Mac Catalyst: nunca está habilitado de forma predeterminada.

NoBindingEmbedding

Propiedad booleana que especifica si las bibliotecas nativas de los proyectos de enlace deben insertarse en el ensamblado administrado o colocarse en un .resources directorio junto al ensamblado administrado.

El valor predeterminado es true (lo que significa que las bibliotecas nativas no se insertarán en el ensamblado administrado).

Nota:

Xcframeworks no funcionarán correctamente si están incrustados dentro del ensamblado administrado (si esta propiedad no es true).

NoDSymUtil

Propiedad booleana que especifica si se debe deshabilitar la generación de .dSYM.

Predeterminado:

  • true para iOS y tvOS al compilar para el simulador.
  • true para macOS y Mac Catalyst, a menos que se cree un archivo (ArchiveOnBuild=true)

Esto significa que el archivo .dSYM se generará en los casos siguientes (de forma predeterminada):

  • En iOS y tvOS, al compilar para el dispositivo.
  • En macOS y Mac Catalyst al crear un archivo (ArchiveOnBuild=true).

NoSymbolStrip

Propiedad booleana que determina si los símbolos de depuración se eliminan de la aplicación en tiempo de compilación.

El comportamiento predeterminado consiste en conservar los símbolos de depuración para:

  • Compilaciones Debug para plataformas de escritorio.
  • Compilaciones de simulador para plataformas para dispositivos móviles.

Ejemplo de conservación de símbolos de depuración:

<PropertyGroup>
  <NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>

OnDemandResourcesInitialInstallTags

Propiedad de cadena que especifica las etiquetas de instalación iniciales para los recursos a petición.

OnDemandResourcesPrefetchOrder

Propiedad de cadena que especifica el orden de precarga de los recursos a petición.

OnDemandResourcesUrl

Propiedad de cadena que especifica la dirección URL del recurso para los recursos a petición.

OptimizePNGs

Propiedad booleana que especifica si se deben optimizar las imágenes png.

OptimizePngImagesDependsOn

Este es un punto de extensión para la compilación: un desarrollador puede agregar cualquier objetivo a esta propiedad para ejecutar esos objetivos antes de que se optimicen las imágenes png.

Ejemplo:

<PropertyGroup>
  <OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

OptimizarListasDePropiedades

Propiedad booleana que especifica si se deben optimizar las listas de propiedades (plists).

OptimizePropertyListsDependsOn

Este es un punto de extensión para la construcción: un desarrollador puede agregar cualquier objetivo a esta propiedad para ejecutar esos objetivos antes de que se optimicen las listas de propiedades (plists).

Ejemplo:

<PropertyGroup>
  <OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

ClaveDeFirmaDelPaquete

Especifica la clave de firma de código para firmar el paquete al crear .pkg para un proyecto macOS y Mac Catalyst.

Solo se aplica a aplicaciones macOS y Mac Catalyst.

PackagingExtraArgs

Especifica los argumentos adicionales que se van a pasar a la herramienta "productbuild" al crear .pkg para un proyecto macOS y Mac Catalyst.

Solo se aplica a aplicaciones macOS y Mac Catalyst.

PkgPackagePath

Especifica la ruta de acceso al archivo .pkg resultante al crear un paquete (consulte CreatePackage).

Solo se aplica a aplicaciones macOS y Mac Catalyst.

PlutilPath

Ruta de acceso completa a la herramienta de línea de comandos plutil.

El comportamiento predeterminado es usar xcrun plutil.

PngCrushPath

Ruta de acceso completa a la herramienta de línea de comandos pngcrush.

El comportamiento predeterminado es usar xcrun pngcrush.

ProcessEnums

Propiedad booleana que especifica si las enumeraciones se deben procesar como una definición de API en los proyectos de enlace.

ProductBuildPath

Ruta de acceso completa de la herramienta productbuild.

El comportamiento predeterminado es usar xcrun productbuild.

Definición del Producto

Plantilla de definición de producto (.plist) que se va a usar al crear la definición del producto para pasarla a la herramienta de compilación del producto al crear paquetes (.pkg).

Solo se aplica a aplicaciones macOS y Mac Catalyst.

ReferenceNativeSymbol

El grupo ReferenceNativeSymbol de elementos se puede usar para especificar cómo debemos controlar un símbolo nativo determinado: omitirlo o pedir al enlazador nativo que lo mantenga (pasando el símbolo como -u ... o en un archivo de símbolos al enlazador nativo).

Hay dos tipos admitidos de metadatos:

  • SymbolType: ObjectiveCClass, Function o Field. Se usa para calcular el nombre nativo completo de un símbolo (por ejemplo, el símbolo nativo de la clase MyClass Objective-C es _OBJC_CLASS_$_MyClass, mientras que para una función MyFunction es simplemente _MyFunction.
  • SymbolMode: Ignore o sin establecer. Ignore significa no pasar el símbolo especificado al enlazador nativo, el valor predeterminado es hacerlo.

SymbolType es obligatorio, aunque SymbolMode no lo es.

Símbolo de ejemplo que se debe mantener:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>

Símbolo de ejemplo que se omitirá:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>

RequireLinkWithAttributeForObjectiveCClassSearch

Examinaremos automáticamente todas las bibliotecas de clases administradas que se asignan a las clases Objective-C existentes y, a continuación, crearemos una referencia nativa en tiempo de compilación para esas clases Objective-C.

De este modo, el enlazador nativo no quitará estas clases de Objective-C, pensando que no se usan.

Sin embargo, esto puede causar un problema si una clase administrada hace referencia a una clase Objective-C que no existe. La corrección adecuada para esto es quitar estas clases administradas de la compilación, pero esto puede ser complicado, en particular si la clase administrada procede de una referencia binaria (como NuGet).

En estos casos, es posible establecer la propiedad RequireLinkWithAttributeForObjectiveCClassSearch en true para que solo examinemos las bibliotecas con el atributo [LinkWith] para las clases Objective-C:

<PropertyGroup>
  <RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>

SkipStaticLibraryValidation

El reinicio frecuente no admite la vinculación con bibliotecas estáticas, por lo que, de forma predeterminada, se mostrará un error si el proyecto intenta vincular con cualquier biblioteca estática al usar el reinicio frecuente.

Sin embargo, en algunos casos puede ser útil omitir estos errores (por ejemplo, si prueba una ruta de acceso de código en la aplicación que no requiere la biblioteca estática en cuestión), por lo que es posible omitirlos.

Los valores válidos son:

  • "true", "disable": deshabilite completamente la validación.
  • "false", "error", cadena vacía: habilite la validación (este es el valor predeterminado)
  • "warn": valide, pero muestre advertencias en lugar de errores.

Ejemplo:

<PropertyGroup>
  <SkipStaticLibraryValidation>warn</SkipStaticLibraryValidation>
</PropertyGroup>

Esto mostrará advertencias en lugar de errores si el proyecto intenta vincular con una biblioteca estática.

StripPath

Ruta de acceso completa a la herramienta de línea de comandos strip.

El comportamiento predeterminado es usar xcrun strip.

SupportedOSPlatformVersion

Especifica la versión mínima del sistema operativo en la que se puede ejecutar la aplicación.

También es posible usar una propiedad específica de la plataforma:

TrimMode

Especifica la granularidad de recorte.

Las opciones válidas son:

  • full: se recorta cada ensamblado.
  • partial: se recortan los ensamblados que se han dado de alta para el recorte.
  • copy: no se recorta ningún ensamblado.

Vea TrimMode para obtener más información sobre la TrimMode propiedad .

Nota:

Por razones técnicas, el recortador debe ejecutarse para todos los proyectos iOS, tvOS, macOS y Mac Catalyst, incluso si no se van a recortar ensamblados. Por este motivo, no es válido deshabilitar el recorte al establecer PublishTrimmed en false. Para deshabilitar el recorte, establezca TrimMode=copy en su lugar. Se generará un error de compilación si PublishTrimmed se establece en false.

La TrimMode propiedad es equivalente a las propiedades MtouchLink existentes (para iOS, tvOS y Mac Catalyst) y LinkMode (para macOS), pero los valores de propiedades válidos son diferentes (aunque la semántica sea la misma):

MtouchLink/LinkMode TrimMode
Completo lleno
SdkOnly parcial
Ninguno copiar

En el futuro, las MtouchLink propiedades y LinkMode quedarán en desuso, use TrimMode en su lugar.

El modo de recorte predeterminado depende de numerosos factores y también puede cambiar en el futuro.

Los valores predeterminados actuales (a partir de .NET 9) son:

  • iOS e iOS: partial al compilar para el dispositivo, copy al compilar para el simulador.
  • macOS: siempre copy.
  • Mac Catalyst: partial al compilar para la configuración "Release", copy en caso contrario.

Excepciones:

  • El valor predeterminado es siempre full cuando se compila con NativeAOT.
  • MAUI cambia el valor predeterminado a copy al compilar para la Debug configuración y el intérprete está habilitado mediante UseInterpreter (que MAUI también habilita de forma predeterminada al usar la "Debug" configuración).

Nota:

El modo de recorte predeterminado puede cambiar en el futuro.

tvOSMinimumVersion

Especifica la versión mínima de tvOS en la que se puede ejecutar la aplicación.

Aplicable a tvOS; establecer este valor establecerá SupportedOSPlatformVersion para proyectos de tvOS (solo).

UseHardenedRuntime

Propiedad booleana que especifica si está habilitado un entorno de ejecución protegido.

Aplicable a proyectos macOS y Mac Catalyst.

UseInterpreter

Habilita el intérprete (para todos los ensamblados).

Esto equivale a establecer MtouchInterpreter=all.

Aplicable a las aplicaciones iOS, tvOS y Mac Catalyst (cuando no se usa NativeAOT).

El comportamiento predeterminado es no habilitar el intérprete.

Nota:

MAUI cambia el valor predeterminado estableciendo UseInterpreter=true para la "Debug" configuración.

Consulte MtouchInterpreter para obtener más información.

UseNativeHttpHandler

Si el controlador http nativo debe ser el controlador HTTP predeterminado o no.

Valor predeterminado: true para todas las plataformas excepto macOS.

ValidateEntitlements

Elija si se deben validar los derechos que solicita la aplicación.

Valores válidos para esta propiedad:

  • disable: la validación está deshabilitada.
  • warn: los errores de validación se muestran como advertencias.
  • error: los errores de validación se muestran como errores. Este es el valor predeterminado.

Es posible que el proceso de validación no valide todos los derechos; tampoco se garantiza que no se aplique una diligencia excesiva.

Si la validación falla para derechos que sí funcionan, registre un problema nuevo.

ValidateXcodeVersion

Elija si se debe validar la versión actual de Xcode.

El valor predeterminado es validar; establézcalo en false para deshabilitar.

Nota:

Es probable que el uso de una versión diferente de la recomendada genere problemas más adelante en el proceso de compilación.

XamMacResourcePrefix

El directorio en el que se almacenan los recursos (este prefijo se quitará al copiar recursos en el lote de aplicaciones).

Aplicable a proyectos de macOS.

Vea también IPhoneResourcePrefix y MonoMacResourcePrefix.

ZipPath

Ruta de acceso completa a la herramienta de línea de comandos zip.

El comportamiento predeterminado es usar xcrun zip.