如何在Flutter插件中调试iOS原生代码?

11
我想知道如何在插件中调试flutter iOS代码? 当创建一个插件时,我可以打开生成的示例应用程序,但是我发现插件代码是二进制框架,因此无法进行调试。
对于Android来说,很容易,我只需在AS中打开android文件夹,插件+示例即可,在添加运行配置后,我可以立即开始调试。
但我真的希望能找到类似的iOS方式。

1
你最终找到了解决办法吗?如果是的话,能否与我们分享一下? - Teddy
我成功地从XCode直接调试了iOS代码。 - Balaji
3个回答

14

插件被添加到iOS应用程序作为pod项目,因此与在pod项目中调试任何代码类似。

  1. 打开Runner项目工作区
  2. 浏览Pods项目中的文件
  3. 设置断点

注意:需要先从flutter运行应用程序才能正常工作

输入图像描述


我无法在Pods/Development Pods中看到我的插件。我尝试先在iOS上运行应用程序,然后打开xcode,但我无法在那里看到我的插件。 - Shrijan Regmi
插件是否在开发的Pod文件夹中?否则请确保名称正确。在某些情况下,他们可能使用了不同的库管理器。 - Eldhose
插件是否在开发的Pod文件夹中?否则请确保名称正确。在某些情况下,他们可能使用了不同的库管理器。 - undefined

5
要在Xcode中设置断点并调试Flutter插件代码,请按以下步骤操作:
  1. 打开要调试的Flutter应用程序的ios/Runner.xcworkspace文件。
  2. Debug菜单中选择Breakpoints>Create symbolic breakpoint...
  3. Symbol字段中输入您要中断的方法名称。例如,要在HelloPlugin类中定义的插件的默认入口点上中断,请将符号设置为-[HelloPlugin handleMethodCall:result:]
  4. 通过Product>Run在Xcode中运行您的应用程序。

从那时起,通过任何UI操作触发插件代码,以触发相关代码。


Flutter插件应该有一个“example”子目录,并使用该应用程序的ios/Runner.xcworkspace来运行 - 同时该应用程序可以在屏幕上拥有插件的所有基本功能。 - Magillus

1

请确保首先使用cd hello/example; flutter build ios --no-codesign构建示例应用程序,然后在Xcode中打开它。

您可以在项目层次结构的深处找到iOS部分的文件:Pods > Development Pods > name_of_your_plugin > ... > Classes

您可以像通常一样在Xcode中设置断点,然后直接从Xcode运行示例应用程序。

Flutter团队的参考资料


我无法在Pods/Development Pods中看到我的插件。我尝试先在iOS上运行应用程序,然后打开xcode,但我无法在那里看到我的插件。 - Shrijan Regmi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接