Flutter 发布 Plugin 到 Pub Package (Mac OS)

最近在研究将自己写的插件上传到Pub Package, 经过不懈的努力,终于上岸了

注意:全程建议在终端操作,不要关闭终端页面,不然要重新 配置命令行科学上网

一、项目配置

1.新建Plugin项目(不懂得可以自行百度)

2.配置 pubspec.yaml

注意:这里只是示例,需要根据个人项目进行更改
在这里插入图片描述
如果有author这个可以删除,看别人说好像会影响发布

3.添加 README.md、CHANGELOG.md

README.md 主要用于向别人介绍api用法
CHANGELOG.md 主要用于记录每个版本的变更
项目里没有的,直接新建即可

4.添加 LICENSE

LICENSE,在Github新建项目的时候可以选择

在这里插入图片描述

一般选择MIT即可,如需了解,请点击 --> LICENSE 介绍

如果你说:呀,那我新建的时候没有选怎么办呢,那我现在没有LICENSE啊
在这里插入图片描述
不用急,看我的在这里插入图片描述
选择后会进入这个页面
在这里插入图片描述
再次点击Chose a license template,就会进入这个页面
在这里插入图片描述
最后点击Review and submit 就ok了

5.对外公开类

由于Flutter Plugin的机制,引用插件时默认只能引用到lib下与项目同名的那个dart文件,如果想调用其他类,需要手动导包,对使用者来说很不友好。所以,就需要对外公开。

方法也很简单,在lib下与项目同名的dart文件顶部添加(注意,不是example下的lib)

//这里声明一下library, flutter_native_hlper就是项目名称
library flutter_native_hlper; 
//下面这两个,就是要对外公开的类(根据自己项目的需要来公开)
export 'package:flutter_native_helper/flutter_native_constant.dart';
export 'package:flutter_native_helper/model/system_ringtone_model.dart';

这样,外部使用时就无需再手动导包了。

这时候,我们项目基本就已经配置完成了。

二、发布准备

前面的都比较简单,到这里每一步一定要认真

1.科学上网 (这点很重要,具体流程,自行百度)

注意:使用科学上网的插件时一定要选择全局科学上网

2.配置命令行科学上网

最初,单纯的我以为全局科学上网之后就ok了,但是在 授权步骤 时我栽了跟头,会一直卡在

Waiting for your authorization... 
Authorization recived, processing

解决办法:打开你的科学上网工具,找到
在这里插入图片描述
打开终端,依次输入 (这样做只能保证在当前终端有效,关闭这个窗口就会失效,如需永久保留,可配置在 bash_profile 或 zshrc 中)

//注意,要把 [127.0.0.1]、[10887] 替换成你本机的值
export http_proxy=http://127.0.0.1:10887
export https_proxy=http://127.0.0.1:10887

完成后,可以在终端输入 export -p 来校验是否添加成功,如果有我们刚才添加的值即为成功。

成功后,我们继续在终端输入curl www.google.com , 查看命令行科学上网是否成功开启,如果返回一大串字符则说明配置成功,如果没有,请检查你的科学上网配置 (是否开启了全局科学上网、在终端 export 的值是否与本机的值对应)

3.删除之前配置的Flutter国内镜像

因为这两个变量会影响待会儿的验证,所以查看你的环境变量,看看是不是包含这两个

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

如果有,删掉或者注释它们,注释就是在前面加一个#(最好先删掉)

删除的方法就是在 .bash_profile 或 .zshrc 里面查看是否存在(是 bash_profile 还是 zshrc 取决于你的mac使用的什么),具体查看方法请自行百度。

注意操作完之后,记得要source ~/.bash_profilesource ~/.zshrc 使其生效,否则只有重启后才会生效

4.注册一个谷歌账号(ps: 如果已经有的,可以直接看第三步👇)

由于发布到pub会有一个认证过程,这个认证必须要登录一个谷歌账号。
我在刚注册的时候,直接在电脑端网页注册的,结果在输入手机号接受验证码使直接提示我 当前手机号暂不可用 ,这可能是某些方面的限制.

然后我找到了一个办法:在移动端(我用的Android),要科学上网如果有Chrome浏览器将其语言设置为英文,下载一个QQ邮箱APP,在进入的时候选择Gmail登陆,会进入谷歌的注册页面,这个时候再次注册、输入手机号就可以了 (如果你最近在电脑端用同一个邮箱/手机号注册失败过,可能会导致现在也失败,解决办法就是换一个邮箱/手机号),我就是在电脑端失败了,在QQ邮箱那里注册的时候换了一个邮箱就可以了。

三、开始发布

如果刚才的流程都顺利通过,那么接下来的步骤你应该会很轻松

1.进入项目根目录

在终端,cd 到要发布项目的根目录

2.测试-命令行科学上网

防止你待会儿失败,在这里我们再次进行一次测试,还是输入curl www.google.com 查看能否返回一大串信息,成功-继续往下走,失败-回头仔细看(你是否在过程中关闭了终端,或检查科学上网配置)

3.将国内镜像转到官方源

flutter packages get

4.测试发布

这一步主要是看有没有什么问题(我也不太懂)

如果是第一次发布,这一步或下一步会让你去验证,验证很简单,会给你一个网址,你只需要复制到浏览器打开,登录刚才的谷歌账号即可。

flutter packages pub publish --dry-run

5.发布

这一步控制台可能会出现一个是否同意的步骤,输入 y 即可

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

如果在授权成功后,进入到了 uploading 状态,恭喜你授权成功!随后如果出现什么问题,根据它的提示来就可以了,我失败了一次是因为 pubspec.yaml中的description太长,按照要求更改即可。

如果你看到了这个界面,恭喜你,上岸了!!!
在这里插入图片描述

感谢各位大佬:flutter-发布一个package到pub.dev 超详细教程
Plugin发布遇坑,google授权失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值