集成 iOS 原生插件到 flutter 项目
Posted 颐和园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成 iOS 原生插件到 flutter 项目相关的知识,希望对你有一定的参考价值。
修改签名
首先打开 flutter 项目,Open ios module in XCode,在 Xcode 中打开 ios 文件夹,修改 Team,将签名修改为你的 iOS app 签名。
在 android Studio 中,在 iOS 模拟器上运行,确认没有问题。
加入插件依赖
在 pubspec.yaml 中,在 dependencies 下添加插件,以源代码方式集成 zhgd_native_plugin 原生插件为例:
zhgd_native_plugin:
path: ../zhgd_native_plugin
注,插件工程位于 flutter 工程同级目录。
常见问题
-
file not found with <angled> include; use "quotes" instead
选择插件 pod 的 target,Build Settings -> Header Search Paths,添加对应的 头文件搜索路径,比如:"${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers"
-
'Masonry.h' file not found with <angled> include; use "quotes" instead
Podfile 文件中使用了 use_frameworks!(因为有几个 pod 是 swift 库,而swift 是只能以 framework 进行集成)。因此头文件的引入方式发生了改变,只能通过 #import “Masonry.h” 的方式导入,不能以 #import <Masonry.h> 的方式导入。
-
:-1: Undefined symbol: _OBJC_CLASS_$_FlutterMethodChannel
和:-1: Undefined symbol: _OBJC_CLASS_$_FlutterMethodChannel
编译器找不到 Flutter.h 头文件。最大的可能是 Podfile 中使用了 use_frameworks!(因为项目中引用了一个 Swift 插件)。这个问题是 flutter 自身的问题:https://github.com/flutter/flutter/issues/10968。
目前的解决办法,只有将所有 Swift 插件替换为 O-C 插件。
以上是关于集成 iOS 原生插件到 flutter 项目的主要内容,如果未能解决你的问题,请参考以下文章