zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )

flutter插件开发 发布 Dart 插件包
2023-06-13 09:17:55 时间

文章目录

前言

上一篇博客 【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 ) 三、创建 Dart 包 1、Android Studio 中可视化创建 中 , 创建了 Dart 包 ;

本篇博客中 , 开发该 Dart 包 , 并将其发布到 Flutter 公共仓库中 ;

一、开发 Dart 包内容


创建完毕之后 , 自动生成了一个 flutter_package.dart 源码文件 , 内容是

library flutter_package;

/// A Calculator.
class Calculator {
  /// Returns [value] plus 1.
  int addOne(int value) => value + 1;
}

实现了一个简单计算功能 , 导入该包后 , 调用 addOne 方法 , 就会将传入的参数 +1 返回 ;

这里保持不变 ;

二、配置 pubspec.yaml


在 pubspec.yaml 中配置该项目 :

# Dart 包名称
name: flutter_package
# 描述
description: A new Flutter project.
# 版本号
version: 0.0.1
# 主页 , 一般是 GitHub 的地址
homepage:

# 所需的环境
environment:
  sdk: ">=2.12.0 <3.0.0"
  flutter: ">=1.17.0"

# 依赖关系
dependencies:
  flutter:
    sdk: flutter

三、编写 Dart 包使用说明


一般在 Flutter 包中央仓库中 , 搜索到某个 Flutter 包或插件 , 显示的内容就是 Flutter 包 / 插件的工程根目录的 README.md 文档 ;

一般将插件的使用说明 , 写在该文档中 ;

四、编写 Dart 包授权许可


修改根目录下的 LICENSE 许可 ;

随便找个 Flutter 插件 , 复制一份即可 ;

该协议不是必须的 ;

五、设置版本变更记录


在 CHANGELOG.md 中 , 设置每个版本的变更记录 , 具体就是某个版本更新后 , 更新了哪些内容 , 修改了哪些内容 ;

六、验证 Dart 包正确性


先运行如下命令 , 检查该 Flutter 包是否正常 ;

flutter packages pub publish --dry-run

运行后正常 :

D:\002_Project\002_Android_Learn\flutter_package>flutter packages pub publish --dry-run
Publishing flutter_package 0.0.1 to https://pub.flutter-io.cn:
|-- .gitignore
|-- .metadata
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- lib
|   '-- flutter_package.dart
|-- pubspec.yaml
'-- test
    '-- flutter_package_test.dart

Package has 0 warnings.

七、将 Dart 包推送到中央仓库中


执行如下命令 , 将 Dart 包推送到中央仓库中 ;

flutter packages pub publish --server=https://pub.dartlang.org
D:\002_Project\002_Android_Learn\flutter_package>flutter packages pub publish
Publishing flutter_package 0.0.1 to https://pub.flutter-io.cn:
|-- .gitignore
|-- .metadata
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- lib
|   '-- flutter_package.dart
|-- pubspec.yaml
'-- test
    '-- flutter_package_test.dart

Publishing is forever; packages cannot be unpublished.
Policy details are available at https://pub.dev/policy

Do you want to publish flutter_package 0.0.1 (y/N)?

输入 y 然后点击回车 , 这里弹出一个链接 , 需要到该地址登录 Google 账号 ;

Do you want to publish flutter_package 0.0.1 (y/N)? y
Pub needs your authorization to upload packages on your behalf.
In a web browser, go to https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&response_type=code&client_id=818368855108-8grd2eg9tj9f38os6f1urbcvsq399u8n.apps.googleusercontent.com&redirect_uri=http%3A%2
F%2Flocalhost%3A57747&code_challenge=iplyOXdxiNSnXI7z1Xza2wrHOfTUx-LWyiKM3wVlokg&code_challenge_method=S256&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email
Then click "Allow access".

Waiting for your authorization...

选择了要登录的账号后 , 需要进行手机验证 ;

输入手机验证码 ;

授权成功 ;

终于上传成功了 :

D:\002_Project\002_Android_Learn\flutter_package>flutter packages pub publish --server=https://pub.dartlang.org
Publishing flutter_package_first_demo 0.0.1 to https://pub.dartlang.org:
|-- .gitignore
|-- .metadata
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- lib
|   '-- flutter_package_first_demo.dart
|-- pubspec.yaml
'-- test
    '-- flutter_package_test.dart

Publishing is forever; packages cannot be unpublished.
Policy details are available at https://pub.dev/policy

Do you want to publish flutter_package_first_demo 0.0.1 (y/N)? y
Uploading...
Successfully uploaded package.

D:\002_Project\002_Android_Learn\flutter_package>

插件地址是 : https://pub.dev/packages/flutter_package_first_demo

发布插件包坑挺多 : 报错信息一个接着一个 , 研究了一晚上 ;

八、博客资源


GitHub 地址 : https://github.com/han1202012/flutter_package