一、常用的第三方Package
参考文章:
二、第三方库的导入
- 1、添加依赖:在
pubspec.yaml
文件中找到dependencies
在里面添加要导入的第三方库。
注意①:导入的位置要与dependencies下面的flutter上下对齐,不然会不通过。
注意②:一般写在dependencies下面即可,dependencies 与dev_dependencies 分别是代表用户发布环境与本地环境开发。
- 2、安装依赖:在 terminal中: 运行
flutter packages get
或者flutter packages upgrade
,或者在IntelliJ等开发工具中点击pubspec.yaml
文件顶部的Packages Get
即可安装。 - 3、使用依赖:在您的Dart代码中添加相应的
import
语句。
三、如何依赖未发布的packages
即使未在Pub上发布,软件包也可以使用。对于不用于公开发布的专用插件,或者尚未准备好发布的软件包,可以使用其他依赖项选项:
1、如何依赖未发布的packages
-
路径 依赖: 一个Flutter应用可以依赖一个插件通过文件系统的
path:
依赖。路径可以是相对的,也可以是绝对的。例如,要依赖位于应用相邻目录中的插件’plugin1’,请使用以下语法dependencies: plugin1: path: ../plugin1/
-
Git 依赖: 你也可以依赖存储在Git仓库中的包。如果软件包位于仓库的根目录中,请使用以下语法:
dependencies: plugin1: git: url: git://github.com/flutter/plugin1.git
-
Git 依赖于文件夹中的包: 默认情况下,Pub假定包位于Git存储库的根目录中。如果不是这种情况,您可以使用path参数指定位置,例如:
dependencies: package1: git: url: git://github.com/flutter/packages.git path: packages/package1
四、开发Packages
Step 1: 开发Dart包
要创建Dart包,请使用--template=package
来执行 flutter create
,如:
flutter create --template=package adapt_cjhelper
这将在adapt_cjhelper/
文件夹下创建一个具有以下专用内容的package工程:
Step 2: 实现package
对于纯Dart包,只需在主lib/<package name>.dart
文件内或lib
目录中的文件中添加功能 。
五、发布Packages
1、处理pubspec.yaml
问题1:处理包的相互依赖
如果您正在开发一个hello
包,它依赖于另一个包,则需要将该依赖包添加到pubspec.yaml
文件的dependencies
部分
dependencies:
url_launcher: ^0.4.2
2、验证 packages
运行 dry-run 命令以查看是否都准备OK了:
$ flutter packages pub publish --dry-run
3、发布 packages
最后, 运行发布命令:
$ flutter packages pub publish
第一次上传,会要求登录谷歌账号。这个时候终端会出现一个url地址,类似这样:
将地址复制出来,在浏览器URL中输入打开这个地址,允许登录谷歌账号就可以了。确认登录后,终端将开始连接谷歌并上传我们的插件包。如下:
此步有可能会执行失败,提示如下错误,这是因为谷歌被屏蔽而导致的失败。
这个时候我们需要设置终端的HTTP代理。
在终端中执行如下命令配置代理:
set http_proxy=http://127.0.0.1:1080
set https_proxy=https://127.0.0.1:1080
配置好后重新执行发布命令flutter packages pub publish
即可。
附:macOS 终端设置http和https代理
1、运行命令 vim ~/.bashrc
, 写入如下内容
export http_proxy="http://localhost:1087"
export https_proxy="http://localhost:1087"
1087为本地http代理端口,可能会有所偏差,需要查询代理配置。
2、运行命令 vim ~/.bash_profile
,写入如下内容
source ~/.bashrc
3、重启终端,运行命令curl ip.gs
显示当前ip和所属地区查看是否代理成功。成功的话,国家是United States
其他参考文章:终端连代理方法