Xamarin Apple 项目迁移
适用于 iOS 的 .NET 应用的 .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 项目迁移到适用于 iOS 的 .NET 时,如何将 MtouchArch
和 XamMacArch
属性转换为 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 项目迁移到适用于 macOS+ 的 .NET 时,如何将 MtouchArch
和 XamMacArch
属性转换为 RuntimeIdentifier
属性:
properties | RuntimeIdentifier |
---|---|
x86_64 | osx-x64 |
下表展示了将 Xamarin.tvOS 项目迁移到 .NET for tvOS 时,如何将 MtouchArch
和 XamMacArch
属性转换为 RuntimeIdentifier
属性:
属性 | RuntimeIdentifier |
---|---|
ARM64 | tvos-arm64 |
x86_64 | tvossimulator-x64 |
有关 RuntimeIdentifier
属性的详细信息,请参阅 RuntimeIdentifier。 有关运行时标识符的详细信息,请参阅 .NET RID 目录。
转换为 UseNativeHttpHandler
下表展示了将 Xamarin Apple 项目迁移到 .NET 8 时,如何将 HttpClientHandler
和 MtouchHttpClientHandler
属性转换为 UseNativeHttpHandler
属性:
值 | UseNativeHttpHandler |
---|---|
HttpClientHandler | false |
NSUrlSessionHandler | 请勿设置 |
CFNetworkHandler | 请勿设置 |
对其他项的更改
下表展示了如何将 Xamarin Apple 项目中的其他项映射到 .NET 项目:
项 | 描述 | .NET | 项目转换 |
---|---|---|---|
LinkDescription |
托管链接器的其他 XML 文件。 | 完全相同 | 复制 |
对 Info.plist 的更改
某些值已从 Info.plist 移动到项目文件。
MinimumOSVersion 和 LSMinimumSystemVersion
在 .NET 8 项目中,应将 MinimumOSVersion
和 LSMinimumSystemVersion
属性转换为 SupportedOSPlatformVersion
属性。 有关详细信息,请参阅确保 MinimumOSVersion 与 SupportedOSPlatformVersion 一致。