[Flutter] 发布本身的插件 package

咱们本身作了插件包,固然也想发布到pub.dartlang.org上去。怎么发布呢?先看看官方的说明(https://flutter.io/developing-packages/)。html

Publishing packages

Once you have implemented a package, you can publish it on Pub, so that other developers can easily use it.api

Prior to publishing, make sure to review the pubspec.yamlREADME.md, and CHANGELOG.md files to make sure their content is complete and correct.浏览器

Next, run the dry-run command to see if everything passes analysis:bash

$ flutter packages pub publish --dry-run

Finally, run the actual publish command:app

$ flutter packages pub publish

For details on publishing, see the Pub publishing docs.工具

 

意思就是说,作好插件后,在终端中先执行  $ flutter packages pub publish --dry-run 来检查看是否没有问题了,再执行下一句 $ flutter packages pub publish 来上传。google

在这两步中,若是没有问题会在终端中会显示 ”Package has 0 warnings.“。url

 

在这一步若是出错,能够检查一下 pubspec.yaml 中最后的 environment 字段是否设置。通常会是这样:spa

environment:
  sdk: ">=2.0.0-dev.28.0 <3.0.0"
  flutter: ">=0.1.4 <2.0.0"

若是配置了仍是不行,按照提示修改。插件

好了,在一切都没有问题时,咱们开始上传。输入命令  $ flutter packages pub publish 回车,会先检测项目结构是否合法,而后会出现这样的界面:

输入 "y" 回车。

第一次上传,会要求登陆谷歌帐号。这个时候终端会出现一个url地址,相似这样:

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%2F%2Flocalhost%3A62338&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email

  

将地址复制出来,在浏览器URL中输入打开这个地址,容许登陆谷歌帐号就能够了。

可是在这里,因为国内限制了谷歌的访问,因此通常会打不开,怎么办呢?这个时候咱们只能借助SVN工具了。我使用的是”无界“。

打开无界,设置成以下:

配置 Internet 属性中的局域网设置

在代理设置界面中,输入无界的代理地址和端口。如上图所示。

这个时候再刷新页面,应该能够打开咱们要登陆谷歌的网址了。

登陆谷歌帐号后出来若是所示的界在,这时候点击相关帐号确认就好了。

确认登陆后,浏览器会回调给 Android Studio ,这时候 Android Studio 会开始链接谷歌并上传咱们的插件包。

可是这里也要注意,可能也会由于谷歌被屏蔽而失败。(出现下图所示的提示时,通常就是这个问题了)

这个时候咱们须要设置终端的HTTP代理(在Android Studio中系统设置的配置的并无效果)。在终端中执行以下命令配置代理:

set http_proxy=http://127.0.0.1:9666
set https_proxy=https://127.0.0.1:9666

配置好后从新执行发布命令,从新执行上面认证登陆的流程便可。(下图为上传成功的提示)

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

  

相关文章
相关标签/搜索