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

时间:2018-05-28 14:41:50

标签: ios xcode xamarin xamarin.ios

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

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

Xcode附加到处理工具没有看到正在运行的模拟器的 PID

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

1 个答案:

答案 0 :(得分:4)

由于您没有Enterprise许可证,因此没有集成在Visual Studio调试工作流程中的Xamarin Inspector,您可以使用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 ax | grep -i天气| cut -d“” - f 2

         

    7864

  6. 在Xcode中附加到该过程

    • 通过PID或名称
    • 调试/附加到进程
  7. enter image description here

    1. 等几秒钟

      • 或更长时间,有时Xcode可能需要一段时间,有时则是瞬间(?)
    2. 现在,您可以通过View UI Hierarchy

    3. 从流程信息图标(流程名称/ ID的最右侧图标)中选择View process in other ways

      enter image description here

      注意:查看流程名称,您可以在将来使用该名称而不是pid,在这种情况下它是WeatherApp.iOS(请参阅屏幕截图,左上角角)

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