Xamarin Apple 项目迁移

用于 .NET iOS 应用的 .NET 8 项目类似于以下示例:

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

对于库项目,请完全省略 $(OutputType) 属性或指定 Library 为属性值。

对 MSBuild 属性的更改

下表显示如何将 Xamarin Apple 项目中的属性映射到 .NET 项目:

属性 说明 .NET 项目转换
MtouchExtraArgs mtouch 的其他参数。 某些参数仍然适用,而某些参数则不适用。 复制
MtouchArch 应用体系结构。 不适用 转换为 RuntimeIdentifier。 有关详细信息,请参阅转换为 RuntimeIdentifier
XamMacArch 应用体系结构。 不适用 转换为 RuntimeIdentifier。 有关详细信息,请参阅转换为 RuntimeIdentifier
HttpClientHandler 默认的 HttpClientHandler UseNativeHttpHandler 转换为 UseNativeHttpHandler。 有关详细信息,请参阅转换为 UseNativeHttpHandler
MtouchHttpClientHandler 默认 MtouchHttpClientHandler. UseNativeHttpHandler 转换为 UseNativeHttpHandler。 有关详细信息,请参阅转换为 UseNativeHttpHandler
EnableCodeSigning 指定是否启用代码签名。 复制
CodeSigningKey 指定代码签名密钥。 重命名为 CodesignKey
CodesignKey 指定代码签名密钥。 复制
CodesignProvision 指定预配配置文件。 复制
CodesignEntitlements 权利文件的路径。 复制
CodesignExtraArgs 额外的代码签名参数。 复制
PackageSigningKey 指定要对包进行签名的代码签名密钥。 复制
PackagingExtraArgs 指定打包工具的额外参数。 复制
ProductDefinition 打包时要使用的产品定义文件的路径。 复制
MtouchEnableSGenConc 重命名为 EnableSGenConc
EnableSGenConc 复制

转换为 RuntimeIdentifier

下表显示如何在将 Xamarin.iOS 项目迁移到 .NET iOS 时,将 MtouchArchXamMacArch 属性转换为 RuntimeIdentifier 属性或 RuntimeIdentifiers 属性:

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

重要

如果有多个运行时标识符,使用 RuntimeIdentifiers 属性而不是 RuntimeIdentifier 属性。

下表展示了将 Xamarin.Mac 项目迁移到 .NET macOS+ 时,如何将 MtouchArchXamMacArch 属性转换为 RuntimeIdentifier 属性:

属性 RuntimeIdentifier
x86_64 osx-x64

下表展示了将 Xamarin.tvOS 项目迁移到 .NET for tvOS 时,如何将 MtouchArchXamMacArch 属性转换为 RuntimeIdentifier 属性:

属性 RuntimeIdentifier
ARM64 tvos-arm64
x86_64 tvossimulator-x64

有关 RuntimeIdentifier 属性的详细信息,请参阅 RuntimeIdentifier。 有关运行时标识符的详细信息,请参阅 .NET RID 目录

转换为 UseNativeHttpHandler

下表展示了将 Xamarin Apple 项目迁移到 .NET 8 时,如何将 HttpClientHandlerMtouchHttpClientHandler 属性转换为 UseNativeHttpHandler 属性:

UseNativeHttpHandler
HttpClientHandler false
NSUrlSessionHandler 请勿设置
CFNetworkHandler 请勿设置

对其他项的更改

下表展示了如何将 Xamarin Apple 项目中的其他项映射到 .NET 项目:

说明 .NET 项目转换
LinkDescription 托管链接器的其他 XML 文件。 完全相同 复制

对 Info.plist 的更改

某些值已从 Info.plist 移动到项目文件。

MinimumOSVersion 和 LSMinimumSystemVersion

在 .NET 8 项目中,应将 MinimumOSVersionLSMinimumSystemVersion 属性转换为 SupportedOSPlatformVersion 属性。 有关详细信息,请参阅确保 MinimumOSVersion 与 SupportedOSPlatformVersion 一致

另请参阅