Flutter插件开发指南:从开发到发布
Flutter制作插件有两种方式(以下以Android和iOS为例):
目录
-
- 直接在主工程下的Android和iOS项目内写插件代码
-
- 创建独立Flutter Plugin项目,制作各端插件后,再引入项目
-
- 发布插件
1. 直接在主工程下的Android和iOS项目内写插件代码
可以使用Android Studio和Xcode分别打开Android和iOS项目,并进行代码编写以及插件的引用。这种方式属于直接集成在自己的项目内,需自己定义插件名称、channel名称,以及Flutter端和原生端通信的相关方法。
优点:
- 接入方式简单
缺点:
- 接入过程稍麻烦,需要自己定义及编写通信相关代码
- 对于通用插件无法直接提供给其它项目共享
2. 创建独立Flutter Plugin项目
2.1 创建Flutter Plugin
在创建工程时,工程类型一定要选择Plugin,然后填写包名,选择开发语言。对于开发语言的选择有几点建议:
如果你将要制作的插件没有引入第三方SDK,或者只引入了一些工具类的库,那么根据你熟悉或喜欢的语言随意选择;但如果你需要引入第三方SDK(特别是iOS的SDK使用的是OC编写),建议选择Java和OC,因为目前为止,大部分的第三方SDK仍然是以Java和OC语言开发为主,这样你在参考SDK文档时,很多代码可以直接复制,会节省不少时间。
2.2 Flutter Plugin创建完成
创建完成后,可以看到目录结构,plugin_example就是你的插件主工程,将来其它项目引入时就是引入的plugin_example。打开lib文件夹,有三个重要文件:
- plugin_example.dart:插件外显名称(PluginExample,使用插件时new的插件对象)
- plugin_example_method_channel.dart:通信通道,主要在这里注册channel和调用原生方法
- plugin_example_platform_interface.dart:通信接口
2.3 编写Android端插件代码
使用Android Studio打开主工程(example)下的Android工程,编写Android端插件代码。在MethodChannel中注册你的方法,并在onMethodCall中实现具体逻辑。
对于iOS端的开发,可以使用Appuploader这样的iOS开发助手工具来简化证书管理和应用上传流程。Appuploader提供了可视化的界面来管理开发证书、描述文件,并支持一键上传应用到App Store Connect,大大简化了iOS开发的配置流程。
2.4 编写iOS端插件代码
使用Xcode打开主工程(example)下的iOS工程,编写iOS端插件代码。在编写iOS端代码前,需要确保:
- 已安装Flutter和Cocoapods环境
- 执行flutter pub get配置Flutter环境
- 确保项目SDK版本配置正确
在PluginExamplePlugin.m中实现handleMethodCall方法,添加与Android端对应的方法实现。
3. 发布插件
当插件开发完成后,可以发布到pub.dev上供其他开发者使用。发布前需要:
- 设置homepage(可以设置为你的GitHub项目地址)
- 添加开源协议LICENSE
- 确保满足首次发布所需条件
发布命令:
flutter packages pub publish --server=https://pub.dartlang.org
首次发布所需条件
如果你是首次发布,需要满足以下条件:
- 注册成为Flutter pub dev的发布者
- 拥有自己的域名+服务器(注册发布者时需要在Google Search Console验证)
- 有自己的谷歌账号
在验证服务器归属时,不仅需要验证服务器归属,还要验证DNS记录。以阿里服务器为例,需要在域名解析设置中添加相应的TXT记录。
通过以上步骤,你就可以成功开发和发布自己的Flutter插件了。对于iOS开发者来说,使用Appuploader这样的工具可以大大简化证书管理和应用上传的流程,让你更专注于插件功能的开发。