如何在 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原生代码:避免应用启动时的权限请求?