在 Mac 上调试 .NET 8 iOS 应用程序(包括其扩展)的现代方法是什么?

问题描述 投票:0回答:1

本题有两个相关问题:

1。在 Mac 上调试 .NET 8+ 应用程序的现代方式是什么?

出现这个问题的原因是: VS for Mac 即将退役(2024 年 5 月),即使现在它也没有正式支持 .NET 8(无论如何,这不是未来的选择), VSC(Mac)似乎没有任何来自 MS 的官方调试器来调试 iOS 应用程序。 VSC 有 CodeLLDB 扩展,但它似乎也不支持 iOS 调试。 (本地 .NET 调试器似乎也不支持这一点)。 我根本不清楚微软对此的立场。

2。在 Mac 或 Windows 上调试 .NET iOS 扩展的方法是什么?

我不仅无法从任何地方调试 iOS 扩展(甚至无法从 VS for Windows)调试,甚至无法从 VS for Windows 部署它。

我的解决方案包括两个项目。 (所有具有ios工作负载的.NET 8(主机应用程序可以具有maui工作负载,但最终结果是相同的)):

<Project Sdk="Microsoft.NET.Sdk">
 <PropertyGroup>
 <TargetFramework>net8.0-ios</TargetFramework> 

第一个项目是 iOS 主机应用程序。第二个项目是 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> 

问题是我无法部署项目并运行调试。经过长时间的尝试和实验,我终于成功地构建了它,没有错误(因为扩展项目需要在主机应用程序项目上独立地显式设置其 PlatformTarged (当在 Windows 上使用 VS MSBuild 构建时))(并且它可以使用以下命令很好地构建和部署)

dotnet build
在 Mac 上执行)。但现在,我仍然遇到这些错误:

Please select a valid device before running the application (related to the extension project) Xamarin.iOS does not support deploying the previous version. Please ensure your solution builds before deploying it.
(与宿主项目相关,尽管在没有引用扩展的情况下单独构建项目时一切都很好

4>Deploy failed ========== Build: 2 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========
========== Build completed at 10:50 PM and took 01:32.718 minutes ==========
========== Deploy: 0 succeeded, 2 failed, 0 skipped ==========
========== Deploy completed at 10:50 PM and took 01:32.719 minutes ==========

当我为扩展设置

<MtouchDevice>iPhone</MtouchDevice>
时,它开始提到
Signing error
。当我为扩展项目明确设置它时,它仍然给我这样的错误。此外,只要使用了那些具有工作负载的the-new-.net-style项目文件,我就无法在配置管理器中显式选择任何CPU/平台,因为目标项目只有“任何CPU”选项(s)。因此,我无法使项目运行调试(无论是扩展程序还是主机应用程序)!


构建和调试代码的另一个选项是 VS for Mac(尽管它目前正在退役),但我无论如何都看不到任何调试扩展项目的方法,因为甚至没有选择要部署/运行的设备的选项选择目标项目作为扩展项目时(类似于它在 Xcode swift 上的工作方式)> UI 不允许选择目标设备:

.net visual-studio xamarin.ios msbuild ios-extensions
1个回答
0
投票

我们最近将 Xamarin iOS 应用程序升级到 .net8 iOS。

在 Mac 上调试的唯一方法是使用 JetBrains 的 Rider。 除了 Rider 之外,您还需要一台 Windows 机器来与 Mac 配对,以便在 Windows 机器上使用 Visual Studio 进行调试。

© www.soinside.com 2019 - 2024. All rights reserved.