用途:指导把 Xamarin.iOS、Xamarin.Mac、Xamarin.tvOS 原生应用迁移到 .NET for iOS、.NET for macOS、.NET for tvOS。
主要能力:覆盖 SDK 风格项目模板、MSBuild 属性表、RuntimeIdentifier 转换表和命名空间映射(详见 references/ios-migration-api.md);提供迁移工作流、NuGet 兼容性决策表、绑定库迁移建议、构建排错与检查清单。
使用方式:策略上新建同名 .NET for iOS/macOS/tvOS 项目并把代码复制进去,不要直接改旧工程文件。步骤包括:更新 MSBuild 属性;把 MinimumOSVersion 从 Info.plist 移到 csproj 的 SupportedOSPlatformVersion;复制代码、资源、storyboard、entitlements;更新 NuGet 依赖;迁移绑定库;用 <UseMauiEssentials>true</UseMauiEssentials> 替代 Xamarin.Essentials;删除 .dll.config 文件;删除 bin/ 与 obj/ 后构建,验证代码签名并在设备上测试。需将 MtouchArch 转为 RuntimeIdentifier(s)、HttpClientHandler 转为 UseNativeHttpHandler,并将 CodeSigningKey 重命名为 CodesignKey、MtouchEnableSGenConc 重命名为 EnableSGenConc。
限制与陷阱:iOS/Mac 的 NuGet 包没有向后兼容,针对 monotouch、xamarinios、monomac 等旧 TFM 的包必须用 net8.0-ios 等重新编译;.dll.config 与 <dllmap> 不再支持,需迁移到 appsettings.json、嵌入资源或平台偏好;Xamarin.watchOS 无对应实现,可改用 Swift 扩展捆绑;.NET for iOS 不支持 OpenTK,需迁移到 Metal 或 SceneKit;链接器更严格,需更新 LinkDescription XML。若同时采用 .NET MAUI 控件,可参考 maui-current-apis 技能了解已弃用 API。