[Flutter] 發布自己的插件 package


我們自己做了插件包,當然也想發布到pub.dartlang.org上去。怎么發布呢?先看看官方的說明(https://flutter.io/developing-packages/)。

Publishing packages

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

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:

$ flutter packages pub publish --dry-run

Finally, run the actual publish command:

$ flutter packages pub publish

For details on publishing, see the Pub publishing docs.

 

意思就是說,做好插件后,在終端中先執行  $ flutter packages pub publish --dry-run 來檢查看是否沒有問題了,再執行下一句 $ flutter packages pub publish 來上傳。

在這兩步中,如果沒有問題會在終端中會顯示 ”Package has 0 warnings.“。

 

在這一步如果出錯,可以檢查一下 pubspec.yaml 中最后的 environment 字段是否設置。一般會是這樣:

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM