Mac上调试.NET 8 iOS应用及扩展的方法与部署问题问询
关于.NET 8+ iOS应用及扩展的调试问题
1. Mac上调试.NET 8+ iOS应用的现代方式是什么?
VS for Mac将于2024年5月退役,且官方目前不支持.NET 8;Mac版VS Code暂无微软官方iOS调试器,CodeLLDB扩展不支持iOS调试,原生.NET调试器也无法适配,微软相关立场不明确,因此寻求可行的调试方案。
2. 如何在Mac或Windows上调试.NET iOS扩展?
用户无法在任何平台(包括Windows版VS)调试或部署iOS扩展,现有方案包含两个.NET 8项目:
- iOS宿主应用:使用ios workload(或maui workload,效果一致),项目配置片段如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0-ios</TargetFramework> - iOS扩展项目:配置片段如下:
<IsAppExtension>True</IsAppExtension> <IsWatchExtension>False</IsWatchExtension> <PlatformTarget>ARM64</PlatformTarget> <MtouchDevice>iPhone</MtouchDevice> - 宿主应用中对扩展项目的引用配置:
<ProjectReference Include="..\ext\ext.csproj"> <IsAppExtension>true</IsAppExtension> <IsWatchApp>false</IsWatchApp> </ProjectReference>
用户已解决编译问题:Windows上使用VS MSBuild时需为扩展项目独立设置PlatformTarget,Mac上执行dotnet build可正常编译部署,但仍遇到以下部署错误:
- 扩展项目提示:
Please select a valid device before running the application;宿主项目提示:Xamarin.iOS does not support deploying the previous version. Please ensure your solution builds before deploying it.(单独编译宿主应用无异常) - 部署结果:2个项目编译成功,0失败;0个部署成功,2失败
此外还存在以下问题:
- 设置
<MtouchDevice>iPhone</MtouchDevice>后出现签名错误,即使显式配置也无法解决 - 使用新.NET风格项目文件时,配置管理器仅提供“Any CPU”选项,无法选择具体CPU/平台,导致无法调试扩展及宿主应用
尝试使用即将退役的VS for Mac调试扩展,但选择扩展项目为目标时,UI无选择目标设备的选项,无法完成调试。
内容的提问来源于stack exchange,提问作者Agat
相关产品推荐
相关产品推荐

