Flutter组件/插件开发及发布
一、组件和插件的区别
组件-package: 只包含flutter功能的第三方包/子工程,纯dart开发。
插件-plugin: 用来与原生进行交互,需要开发dart端代码和iOS/Android原生代码。
二、组件开发流程
1.创建package工程
使用AndroidStudio中的Flutter Package工程模板或者命令行:
dart
flutter create -t package test_package
test_package
即package的名称。
2.开发
生成的工程里面大致有.idea(工程环境信息),lib(package源代码),test(单元测试代码)等目录结构。我们在lib目录下开发功能。
3.测试
package工程并没有自动创建样例工程,所以可以在工程目录新建example工程用来自测。
dart
flutter create example
然后在example中使用path导入来看功能是否正确实现。
yaml
test_package:
path: ../test_package
4.发布
功能测试正常之后就可以准备发布组件了。
git发布
如果不想把组件发布到官方Pub,可以将代码上传到git,然后通过指定git地址来使用。
yaml
test_package:
git:
url: 'git url'
ref: 'tag'
发布到官方Pub
发布到Pub,我们需要在yaml文件修改相关的信息,添加version、homepage等。
yaml
name: test_package
description: A new Flutter package project.
version: 0.0.1
author: test <[email protected]>
homepage: http://gitlab.com/test/test_package
正式发布前先使用命令校验:
dart
pub publish --dry-run
配置信息正常的话就不会有提示,否则的话按照提示修改即可。
比较常见的问题有:
- author后必须带个email地址
CHANGELOG.md
中必须包含yaml中的版本号- 包体积必须小于100MB
由于发布到pub需要科学上网,所以需要配置好代理设置。
网络处理正常后,执行以下指令:
dart
flutter packages pub publish --server=https://pub.dartlang.org
第一次发布需要copy地址到google浏览器进行认证。确认成功之后,就可以发布到pub了。
发布成功之后就可以在我们的flutter工程使用pubspec.yaml导入我们的插件了。
yaml
test_package: ^0.0.1
发布到私有Pub
首先,需要有一个私有Pub服务。
然后,在组件的pubspec.yaml文件中配置私有pub地址。
yaml
publish_to: http://192.168.44.222:8090
最后执行命令:
dart
flutter packages pub publish
三、插件开发流程
1.创建插件工程
dart
flutter create -i objc -t plugin test_plugin
-i objc
参数是指iOS代码使用ObjC语言,如果选择使用Swift,则无需添加此参数。
2.开发
插件的功能需要在lib/ios/android三个目录下开发。插件主要通过MethodChannel
在Dart代码和原生代码之间通信。
3.测试
插件的默认工程模板中包含了example,可以直接在该目录中编写测试代码。
iOS工程需要先在example/ios目录下执行pod install
安装依赖,然后再使用Xcode打开工程并运行。对于iOS开发者来说,可以使用appuploader这样的工具来简化证书管理和打包上传流程。
4.发布
插件的发布方法和组件相同,具体请参照组件。
iOS开发小贴士
在开发Flutter插件时,iOS端的打包和发布可能会遇到证书配置等问题。这时可以考虑使用appuploader这样的iOS开发助手工具,它可以帮助开发者:
- 自动管理证书和描述文件
- 简化打包流程
- 快速上传应用到App Store Connect
这些工具可以显著提高开发效率,特别是在需要频繁打包测试的情况下。