文章目录

  • 前言
  • 一、开发 Dart 包内容
  • 二、配置 pubspec.yaml
  • 三、编写 Dart 包使用说明
  • 四、编写 Dart 包授权许可
  • 五、设置版本变更记录
  • 六、验证 Dart 包正确性
  • 七、将 Dart 包推送到中央仓库中
  • 八、博客资源

前言

上一篇博客 【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.dartPackage 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.dartPublishing is forever; packages cannot be unpublished.
Policy details are available at https://pub.dev/policyDo 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.dartPublishing is forever; packages cannot be unpublished.
Policy details are available at https://pub.dev/policyDo 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

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

  • 【错误记录】发布 Flutter 插件包报错 ( It‘s strongly recommended to include a “homepage“ or “repository“ field )
  • 【错误记录】发布 Flutter 插件包报错 ( Failed to upload the package.pub finished with exit code 1 )
  • 【错误记录】发布 Flutter 插件包报错 ( ‘gmail.com‘ has insufficient permissions to upload new versions of package)

八、博客资源


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

【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )相关推荐

  1. 罗永浩回应“鲨鱼皮技术遭质疑”;消息称马蜂窝开启裁员;Dart 2.7 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  2. 【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )

    文章目录 一.Flutter 包和插件简介 二.创建 Flutter 插件 1.Android Studio 中可视化创建 2.命令行创建 三.创建 Dart 包 1.Android Studio 中 ...

  3. 【Flutter】Flutter 混合开发 ( Dart 代码调试 | Flutter 单独调试 | 混合模式下 Flutter 调试 )

    文章目录 前言 一.单独运行 Flutter 代码时调试 Dart 代码 二.混合模式下 Flutter 调试 Dart 代码 三.相关资源 前言 Flutter 混合开发集成步骤 : ① 在 And ...

  4. Flutter学习总结(二)开发语言Dart学习

    语言都是相通的,Dart语言也不例外,对比,参考尤为重要. 注释 单行注释: // todo 一般针对某一语句进行注释. 多行注释: /* * 针对一段逻辑可以多行解释,但是这种用的不多, * 大部分 ...

  5. Flutter之window系统下配置开发环境以及在Android Studio里面运行hello word

    1 .window系统配置Flutter开发环境 1)下载Flutter的SDK 如果电脑安装了Git,直接到https://github.com/flutter/flutter/这里下载,但是需要翻 ...

  6. Flutter夜神模拟器调试及Vscode开发

    下载夜神模拟器下载链接 为什么下载第三方的模拟器,因为快,安装方便,操作又简单,很适合菜鸟的我 下载安装完之后,打开android Studio的run ,执行Run 'app'就会自动把你的项目安装 ...

  7. 为什么 Flutter 已经为企业应用程序开发做好了准备

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4cowIVYw-1622584445972)(https://ducafecat.tech/2021/06/02/tra ...

  8. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 )

    文章目录 前言 一.Android 端完整代码示例 二.Flutter 端完整代码示例 三.相关资源 前言 前置博客 : [Flutter]Flutter 混合开发 ( Flutter 与 Nativ ...

  9. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )

    文章目录 前言 一.Android 端 MethodChannel 构造函数 二.Android 端 setMethodCallHandler 方法 三.Android 端实现 MethodChann ...

最新文章

  1. Python编写Hive UDF
  2. WinAPI: 输入光标相关的函数[3]
  3. 软件工程几点总结要点
  4. cJSON 使用笔记
  5. 打包python程序
  6. Cnblogs自定义皮肤css样式-星空观测者
  7. oracle 28000错误码,Oracle数据库 ORA-28000 错误处理方式
  8. Fiddler抓包工具之Filters(过滤器)进行会话过滤
  9. 【JEECG技术文档】JEECG 组织机构导入V3.7
  10. 2021年上犹中学高考成绩查询入口,上犹县2019年高考成绩单出来了……
  11. 梦幻粉色空间手机背景素材,爱梦想的设计师
  12. Random Forest
  13. php centos mysql_Linux+Apache+PHP+MySQL服务器环境(CentOS篇)
  14. 三种分布式爬虫系统的架构方式
  15. 海外苹果ID游戏下载教程
  16. 请求接口时常见的数据请求类型
  17. 黑客教父郭盛华:提升家庭WiFi的10个方法
  18. perl脚本基础总结(转)
  19. 遥感影像的比例尺和分辨率的关系
  20. Windows 10 下安装pycrypto时出错的解决问题

热门文章

  1. 移动Web开发图片自适应两种常见情况解决方案
  2. 关于使用AIR开发移动APP 的技术解决方案 笔记
  3. C++默认参数与函数重载
  4. 黑马vue---13、事件修饰符的介绍
  5. 简单的尝试Supersampling
  6. rabbitmq 一些基本函数介绍
  7. Kubernetes master节点的高可用配置
  8. Windows 窗体设计器中的设计时错误
  9. 通过微软的cors类库,让ASP.NET Web API 支持 CORS
  10. linux下oracle自启动