packages開(kāi)發(fā)上傳私有庫(kù)
一、開(kāi)發(fā)插件包
Step 1: 開(kāi)發(fā)Dart包
要?jiǎng)?chuàng)建Dart包,請(qǐng)使用--template=package 來(lái)執(zhí)行 flutter create
flutter create --template=package hello
Step 2: 實(shí)現(xiàn)package
對(duì)于純Dart包,只需在主lib/<package name>.dart文件內(nèi)或lib目錄中的文件中添加功能 。
開(kāi)發(fā)插件包
如果你想開(kāi)發(fā)一個(gè)調(diào)用特定平臺(tái)API的包,你需要開(kāi)發(fā)一個(gè)插件包, 插件包包含針對(duì)Android(Java或Kotlin代碼)或iOS(Objective-C或Swift代碼)編寫(xiě)的特定于平臺(tái)的實(shí)現(xiàn)(可以同時(shí)包含Android和Ios原生的代碼)。 API使用platform channels連接到特定平臺(tái)(Android或IOS)。
Step 1: 創(chuàng)建 package
要?jiǎng)?chuàng)建插件包,請(qǐng)使用--template=plugin參數(shù)執(zhí)行flutter create
使用--org選項(xiàng)指定您的組織,并使用反向域名表示法。該值用于生成的Android和iOS代碼中的各種包和包標(biāo)識(shí)符。
flutter create --org com.example --template=plugin --platforms=android,ios -i objc hello
Step 2: 實(shí)現(xiàn)包 package
由于插件包中包含用多種編程語(yǔ)言編寫(xiě)的多個(gè)平臺(tái)的代碼,因此需要一些特定的步驟來(lái)確保順暢的體驗(yàn)。
Step 2a: 定義包API(.dart)
插件包的API在Dart代碼中定義。打開(kāi)主文件夾hello/ 。找到lib/hello.dart
Step 2b: 添加Android平臺(tái)代碼(.java / .kt)
我們建議您使用Android Studio編輯Android代碼。
在A(yíng)ndroid Studio中編輯Android平臺(tái)代碼之前,首先確保代碼至少已經(jīng)構(gòu)建過(guò)一次(例如,從IntelliJ運(yùn)行示例應(yīng)用程序或在終端執(zhí)行cd hello/example; flutter build apk)
接下來(lái)
1、啟動(dòng)Android Studio
2、在’Welcome to Android Studio’對(duì)話(huà)框選擇 ‘Import project’, 或者在菜單欄 ‘File > New > Import Project…‘,然后選擇hello/example/android/build.gradle文件.
3、在’Gradle Sync’ 對(duì)話(huà)框, 選擇 ‘OK’.
4、在’Android Gradle Plugin Update’ 對(duì)話(huà)框, 選擇 ‘Don’t remind me again for this project’.
您插件的Android平臺(tái)代碼位于 hello/java/com.yourcompany.hello/HelloPlugin.
您可以通過(guò)按下 ? 按鈕從Android Studio運(yùn)行示例應(yīng)用程序.
Step 2c: 添加iOS平臺(tái)代碼 (.h+.m/.swift)
我們建議您使用Xcode編輯iOS代碼 。
在編輯Xcode中的iOS平臺(tái)代碼之前,首先確保代碼至少已經(jīng)構(gòu)建過(guò)一次(例如,從Xcode中運(yùn)行示例應(yīng)用程序或終端執(zhí)行cd hello/example; flutter build ios --no-codesign)。
接下來(lái)
1、啟動(dòng) Xcode
2、選擇 ‘File > Open’, 然后選擇 hello/example/ios/Runner.xcworkspace 文件.
您插件的iOS平臺(tái)代碼位于Pods/DevelopmentPods/hello/Classes/中。
您可以通過(guò)按下▶按鈕來(lái)運(yùn)行示例應(yīng)用程序
Step 2d: 連接API和平臺(tái)代碼
最后,您需要將用Dart代碼編寫(xiě)的API與平臺(tái)特定的實(shí)現(xiàn)連接起來(lái)。這是通過(guò)platform channels完成的。
二、上傳插件
1、運(yùn)行 dry-run 命令以查看是否都準(zhǔn)備OK了:
flutter packages pub publish --dry-run
開(kāi)發(fā)好的插件上傳到git添加tag(或者使用commit)
三、使用packages
yaml文件中添加
dependencies:
flutter:
sdk: flutter
hello:
git:
url: https://e.coding.net/superfool/flutter_demo/flutter_demo.git(這個(gè)是你Git的地址)
ref: 655f2ef
hello_3:
git:
url: https://e.coding.net/superfool/hello_3/hello_3.git
ref: 35c16bc