如何将Xcode视图调试器附加到从Visual Studio启动的模拟器上?

0rt*_*0rt 4 xcode xamarin.ios ios xamarin

Xcode 有一个视图调试器工具,可用于检查视图层次结构。

我正在开发iOS Xamarin应用,并希望调试其视图。该应用程序可在从启动的模拟器上运行Visual Studio。

Xcode附加到处理工具上看不到正在运行的模拟器的PID。

如何将Xcode视图调试器附加到此过程?也许还有另一种方法来调试Xamarin应用程序的视图层次结构?

Sus*_*ver 7

由于您没有企业许可证,因此没有Xamarin Inspector(集成在Visual Studio调试工作流程中),因此可以使用Xcode,但是当然您必须手动将更改应用回C#/ F#代码。

  1. 通过VS4M在模拟器上启动您的应用以进行安装
  2. 停止在VS4M中调试您的应用
    • Xcode需要使用lldb来访问应用程序,而Mono通过ptrace调用阻止了这种情况(有很多方法可以通过中断mono_assembly_init_with_opt并提前返回来解决,但这是另一回事了)
  3. 在模拟器中手动启动您的应用
  4. 开启Xcode
    1. 您将需要创建一个iOS项目
      • 任何项目都可以,Xcode将启用Debug/Attach to process by PID or Name菜单选项
  5. 如果您不知道进程名称,请获取Xamarin.iOS在模拟器上运行的应用程序的进程ID

    • 您可以使用 ps

    ps斧| grep -i天气| 切-d“” -f 2

    7864

  6. 在Xcode中附加到该过程

    • 通过PID或名称进行调试/附加处理

在此处输入图片说明

  1. 等待几秒钟

    • 或更长的时间,有时Xcode可能需要一段时间,而其他时候它是即时的(?)
  2. 现在,您可以通过以下方式View UI Hierarchy从流程信息图标(流程名称/ id中最右边的图标)中进行选择View process in other ways

在此处输入图片说明

注意:查看进程名称,以后可以使用它代替pid,在这种情况下,它是WeatherApp.iOS(请参阅屏幕快照,左上角)

注意:以上屏幕截图使用的是演示版Xamarin.FormsWeatherApp(xamarin-forms-samples / Weather)