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

Posted

技术标签:

【中文标题】如何在 Flutter 插件中调试 iOS 原生代码?【英文标题】:How to debug iOS native code in a flutter plugin? 【发布时间】:2019-03-17 03:14:34 【问题描述】:

我想知道如何在插件中调试 Flutter ios 代码? 我可以打开每当您创建插件时生成的示例应用程序,但我将插件代码视为二进制框架,因此我无法调试它。

对于 android 这相当简单,我只需在 A.S. 中打开 android 文件夹。并且插件+示例在那里,我只需添加运行配置并立即开始调试。

但我真的希望为 iOS 找到类似的方式。

【问题讨论】:

你终于找到方法了吗?如果可以,可以分享给我们吗? 【参考方案1】:

插件作为 pod 项目添加到 ios 应用程序,因此它类似于调试 pod 项目中的任何代码。

    打开 Runner 项目工作区 浏览 Pods 项目中的文件 放置断点

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

【讨论】:

【参考方案2】:

要设置断点并从 Xcode 调试 Flutter 插件代码,请尝试以下操作:

    为您要调试的 Flutter 应用打开 ios/Runner.xcworkspace。 从 Debug 菜单中,选择 Breakpoints > 创建符号断点...符号字段中,输入您要中断的方法。例如,要中断HelloPlugin 类中定义的插件的默认入口点,请将符号设置为-[HelloPlugin handleMethodCall:result:]。 通过 Product > Run 从 Xcode 运行您的应用。

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

【讨论】:

flutter 插件应该有 'example' 子目录并使用该应用程序的 ios/Runner.xcworkspace 运行 - 该应用程序也可以在屏幕上具有插件的所有基本功能。【参考方案3】:

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

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

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

Reference 来自 Flutter 团队。

【讨论】:

以上是关于如何在 Flutter 插件中调试 iOS 原生代码?的主要内容,如果未能解决你的问题,请参考以下文章

融云微课堂第五讲 | 基于原生代码开发 Flutter 插件

在 Flutter 中安装原生 iOS pod

Flutter插件开发和iOS原生代码:避免应用启动时的权限请求?

字节跳动出品的Flutter调试工具终于开源了!

仅需 7 步,让你的 iOS 原生项目拥有 Flutter 热重载极速调试

Flutter实现原生推送-友盟推送iOS版