Flutter - 開(kāi)發(fā)完插件后使用及上傳到pub

開(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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容