開(kāi)發(fā)插件這里就不提了,看flutter.cn網(wǎng)就有詳細(xì)教程了
當(dāng)然里面也有使用和上傳
這里就稍微講點(diǎn)我平常項(xiàng)目里怎么用的了
首先當(dāng)然是創(chuàng)建&開(kāi)發(fā)插件
最簡(jiǎn)單的就是純dart插件
- 創(chuàng)建純dart
flutter create --template=package my_package
- 創(chuàng)建原生插件
flutter create --org com.xxx --template=plugin --platforms=android,ios -a kotlin -i swift my_package
- 然后自己去實(shí)現(xiàn)插件功能就行了,純dart直接在lib里添加,原生插件的話就麻煩一點(diǎn),你要從原生去實(shí)現(xiàn)功能,然后通過(guò)消息通道和
flutter進(jìn)行交互,具體參考網(wǎng)站上的教程弄吧,也就是說(shuō)你得同時(shí)寫(xiě)安卓,iOS,flutter的代碼。 - 開(kāi)發(fā)完之后呢,一般我都是統(tǒng)一把插件都放在一個(gè)文件夾里,項(xiàng)目中則通過(guò)
path進(jìn)行引用就行了,也方便做調(diào)整。
dependencies:
packageA:
path: ../packages/my_package
- 如果你的插件與別的插件里的依賴版本沖突了,聲明了不兼容的依賴版本,但它們實(shí)際上仍可能以兼容的方式使用,那么可以以下處理
dependency_overrides:
url_launcher: '5.4.0'
上傳插件,也不難
- 先寫(xiě)幾個(gè)md文檔,記得之前我就隨便弄了下面幾個(gè),(ps:找個(gè)第三方插件看看人家咋弄的,抄一下作業(yè)就行了)
1. `README.md` 文件用來(lái)對(duì) package 進(jìn)行介紹
2. `CHANGELOG.md` 文件用來(lái)記錄每個(gè)版本的更改
3. `LICENSE` 文件用來(lái)闡述 package 的許可條款
- pubspec.yaml稍微完善完善,也可以先跑一下下一步的命令校驗(yàn)一下,會(huì)提示你去除警告&錯(cuò)誤的,照著來(lái)就行
name: my_package
description: my_package.
version: 1.0.0
homepage: https://github.com/xxxx
environment:
sdk: '>=2.12.0 <4.0.0'
flutter: ">=1.17.0"
- 檢驗(yàn)是否所有內(nèi)容都通過(guò)了分析,警告和錯(cuò)誤都可以處理一下
flutter pub publish --dry-run
- 上一步?jīng)]問(wèn)題了就可以上傳了,由于國(guó)內(nèi)基本都設(shè)置了中國(guó)鏡像,使用
flutter pub publish是上傳不了的,用以下指令上傳
flutter pub publish --server=https://pub.dartlang.org
- 驗(yàn)證通過(guò)就會(huì)問(wèn)你是不是要傳,輸入y就行了
Validating package... (2.1s)
Publishing is forever; packages cannot be unpublished.
Policy details are available at https://pub.dev/policy
Do you want to publish xxxx 1.0.0 to https://pub.dev (y/N)?
- 接下來(lái)會(huì)需要你授權(quán)一下,復(fù)制下面出現(xiàn)的網(wǎng)頁(yè),用瀏覽器打開(kāi),會(huì)在
pub.dev授權(quán)
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=xxx-8grd2eg9tj9f38os6f1urbcvsq399u8n.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A61279&code_challenge=iCrfkytpIavyjyqJpY9icJ8-4Ev9DdbrIp24jpYSMXc&code_challenge_method=S256&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email
Then click "Allow access".
Waiting for your authorization...
- 然后就會(huì)出現(xiàn)以下,開(kāi)始上傳了,不過(guò)這里估計(jì)都會(huì)卡住,即使你電腦翻了墻,這里需要終端也翻墻
Authorization received, processing...
- 終端代理,再上傳,我是如下代理的,根據(jù)你自己使用的來(lái)吧
export https_proxy=http://127.0.0.1:33210 http_proxy=http://127.0.0.1:33210 all_proxy=socks5://127.0.0.1:33211
- 然后嗖的一下,就上傳完成了
Successfully authorized.
Uploading... (2.9s)
Successfully uploaded https://pub.dev/packages/my_package version 1.0.0
- 過(guò)會(huì)兒你就能去
pub.dev搜看到了, 完事兒。
mypackage.png
