Flutter插件的制作和发布

454 阅读3分钟

Flutter插件开发指南:从开发到发布

Flutter制作插件有两种方式(以下以Android和iOS为例):

目录

    1. 直接在主工程下的Android和iOS项目内写插件代码
    1. 创建独立Flutter Plugin项目,制作各端插件后,再引入项目
    1. 发布插件

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端代码前,需要确保:

  1. 已安装Flutter和Cocoapods环境
  2. 执行flutter pub get配置Flutter环境
  3. 确保项目SDK版本配置正确

在PluginExamplePlugin.m中实现handleMethodCall方法,添加与Android端对应的方法实现。

3. 发布插件

当插件开发完成后,可以发布到pub.dev上供其他开发者使用。发布前需要:

  1. 设置homepage(可以设置为你的GitHub项目地址)
  2. 添加开源协议LICENSE
  3. 确保满足首次发布所需条件

发布命令:

flutter packages pub publish --server=https://pub.dartlang.org

首次发布所需条件

如果你是首次发布,需要满足以下条件:

  1. 注册成为Flutter pub dev的发布者
  2. 拥有自己的域名+服务器(注册发布者时需要在Google Search Console验证)
  3. 有自己的谷歌账号

在验证服务器归属时,不仅需要验证服务器归属,还要验证DNS记录。以阿里服务器为例,需要在域名解析设置中添加相应的TXT记录。

通过以上步骤,你就可以成功开发和发布自己的Flutter插件了。对于iOS开发者来说,使用Appuploader这样的工具可以大大简化证书管理和应用上传的流程,让你更专注于插件功能的开发。