Migración de proyectos de Xamarin Apple

Un proyecto de .NET 8 para una aplicación de .NET para iOS es similar al ejemplo siguiente:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0-ios</TargetFramework>
    <OutputType>Exe</OutputType>
    <Nullable>enable</Nullable>
    <ImplicitUsings>true</ImplicitUsings>
    <SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
  </PropertyGroup>
</Project>

Para un proyecto de biblioteca, omite la propiedad $(OutputType) por completo o especifica Library como valor de propiedad.

Cambios en las propiedades de MSBuild

En la tabla siguiente se muestra cómo asignar propiedades en proyectos de Xamarin Apple a proyectos de .NET:

Propiedad Descripción .NET Conversión de proyectos
MtouchExtraArgs Argumentos adicionales para mtouch. Algunos argumentos siguen siendo aplicables, algunos argumentos no. Copiar
MtouchArch Arquitectura(s) de la aplicación N/D Convertir en RuntimeIdentifier. Para obtener más información, consulta Conversión a RuntimeIdentifier.
XamMacArch Arquitectura(s) de la aplicación N/D Convertir en RuntimeIdentifier. Para obtener más información, consulta Conversión a RuntimeIdentifier.
HttpClientHandler El valor predeterminado HttpClientHandler.. UseNativeHttpHandler Convertir en UseNativeHttpHandler. Para obtener más información, consultaConversión a UseNativeHttpHandler.
MtouchHttpClientHandler El valor predeterminado MtouchHttpClientHandler. UseNativeHttpHandler Convertir en UseNativeHttpHandler. Para obtener más información, consultaConversión a UseNativeHttpHandler.
EnableCodeSigning Especifica si la firma de código está habilitada. Copiar
CodeSigningKey Especifica la clave de firma de código. Cambia el nombre a CodesignKey
CodesignKey Especifica la clave de firma de código. Copiar
CodesignProvision Especifica el perfil de aprovisionamiento. Copiar
CodesignEntitlements La ruta de acceso al archivo de derechos. Copiar
CodesignExtraArgs Argumentos de firma de código adicionales. Copiar
PackageSigningKey Especifica la clave de firma de código para firmar el paquete. Copiar
PackagingExtraArgs Especifica los argumentos adicionales para la herramienta de empaquetado. Copiar
ProductDefinition La ruta de acceso al archivo de definición de producto que se va a usar al realizar el empaquetado. Copiar
MtouchEnableSGenConc Cambia el nombre del objeto a EnableSGenConc.
EnableSGenConc Copiar

Conversión a RuntimeIdentifier

En la tabla siguiente se muestra cómo convertir las propiedades MtouchArch y XamMacArch en la propiedad RuntimeIdentifier, o la propiedad RuntimeIdentifiers, al migrar un proyecto de Xamarin.iOS a .NET para iOS:

Valor RuntimeIdentifier RuntimeIdentifiers
ARMv7 ios-arm
ARMv7s ios-arm
ARMv7+ARMv7s ios-arm
ARM64 ios-arm64
ARMv7+ARM64 ios-arm;ios-arm64
ARMv7+ARMv7s+ARM64 ios-arm;ios-arm64
x86_64 iossimulator-x64
i386 iossimulator-x86
x86_64+i386 iossimulator-x86;iossimulator-x64

Importante

Si tienes varios identificadores en tiempo de ejecución, usa la propiedad RuntimeIdentifiers en lugar de la propiedad RuntimeIdentifier.

En la tabla siguiente se muestra cómo convertir las propiedades MtouchArch y XamMacArch en la propiedad RuntimeIdentifier al migrar un proyecto de Xamarin.iOS a .NET para iOS:

Propiedad RuntimeIdentifier
x86_64 osx-x64

En la tabla siguiente se muestra cómo convertir las propiedades MtouchArch y XamMacArch en la propiedad RuntimeIdentifier al migrar un proyecto de Xamarin.tvOS a .NET para tvOS:

Propiedad RuntimeIdentifier
ARM64 tvos-arm64
x86_64 tvossimulator-x64

Para obtener más información sobre la propiedad RuntimeIdentifier, consulta RuntimeIdentifier. Para obtener más información sobre los identificadores en tiempo de ejecución (RID), consulta el Catálogo de identificadores de entorno de ejecución (RID) de .NET.

Conversión a UseNativeHttpHandler

En la tabla siguiente se muestra cómo convertir las propiedades HttpClientHandler y MtouchHttpClientHandler en la propiedad UseNativeHttpHandler al migrar un proyecto de Apple de Xamarin a .NET 8:

Valor UseNativeHttpHandler
HttpClientHandler false
NSUrlSessionHandler no establecer
CFNetworkHandler no establecer

Cambios en otros elementos

En la tabla siguiente se muestra cómo asignar otros elementos en proyectos de Apple de Xamarin a proyectos de .NET:

Elemento Descripción .NET Conversión de proyectos
LinkDescription Archivos XML adicionales al enlazador administrado. Idénticos Copiar

Cambios en Info.plist

Algunos valores se han movido de Info.plist al archivo del proyecto.

MinimumOSVersion y LSMinimumSystemVersion

Las propiedades MinimumOSVersion y LSMinimumSystemVersion se deben convertir en la propiedad SupportedOSPlatformVersion en proyectos de .NET 8. Para obtener más información, consulta Asegurarse de que MinimumOSVersion es coherente con SupportedOSPlatformVersion.

Consulta también