背景:公司前端項(xiàng)目要集成Flutter技術(shù),經(jīng)過層層篩選惠桃,此處省略5000字浦夷,大家可以自行Google或者度娘 Flutter和ios混合方案官方方案辖试,最終決定采用私有庫的形式引入到項(xiàng)目中,這樣做的有點(diǎn)劈狐,對(duì)原生項(xiàng)目侵入最小罐孝,原生項(xiàng)目不需要配置Flutter環(huán)境,對(duì)于Flutter打包成私有庫的形式也更容易進(jìn)行Flutter版本控制肥缔。廢話不多莲兢,搞起!
- 第一步創(chuàng)建私有庫 pod lib create FlutterSDK续膳,會(huì)自動(dòng)生成FlutterSDK文件夾改艇,這里需要注意 ruby2.*版本的時(shí)候你你需要這樣:
xingkunkun:FlutterForFW admin$ pod lib create FlutterSDK
Cloning `https://github.com/VixHi/vvtable.git` into `FlutterSDK`.
Configuring MyFlutterPod template.
------------------------------
To get you started we need to ask a few questions, this should only take a minute.
What platform do you want to use?? [ iOS / macOS ]
> iOS
What language do you want to use?? [ Swift / ObjC ]
> objc
Would you like to include a demo application with your library? [ Yes / No ]
> no
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> none
Would you like to do view based testing? [ Yes / No ]
> no
What is your class prefix?
> DZJ
Running pod install on your new library.
ruby3.*版本會(huì)直接生成對(duì)應(yīng)的文件夾如下圖,注意NAME.podspec文件牙咏,可以更改名稱-->FlutterSDK.podspec
- 第二步配置.podspec
Pod::Spec.new do |s|
s.name = "FlutterSDK" #名稱
s.version = "0.2.17" #版本
s.platform = :iOS
s.ios.deployment_target = "9.0"
s.summary = "Flutter SDK."
s.license = { :type => "MIT", :file => "LICENSE" }
s.homepage = "http://172.29.28.7/vix/test-responsible"
s.author = { "vixhi" => "hi_vix@163.com" }
s.source = { :git => "https://github.com/Vix_Hi/vvtable.git", :tag => s.version.to_s }
s.static_framework = true
s.vendored_frameworks = "flutter_lib/*.framework" #flutter_lib文件和.podspec在同一目錄
s.pod_target_xcconfig = { "VALID_ARCHS" => "x86_64 armv7 arm64" } #設(shè)置支持的架構(gòu)
end
- 第三步束莫,將Flutter打包的庫拷貝到flutter_lib目錄下
- 第四步,制作命令行操作
1.添加本地pod庫
pod repo add FlutterSDK 遠(yuǎn)程庫地址例如:https://github.com/Vix_Hi/test.git
FlutterSDK這個(gè)就是你要?jiǎng)?chuàng)建的私有庫的名稱
2.將Flutter打包的庫提交到遠(yuǎn)端
添加遠(yuǎn)端倉庫 git remote add Flutter 遠(yuǎn)程庫地址例如:https://github.com/Vix_Hi/test.git
git add flutter_lib
git commit -m "FlutterSDK 制作"
git push Flutter
3.打tag
git tag -a "0.1.0" -m "my flutterSDK tag"
git push Flutter 0.1.0
4.庫驗(yàn)合法性
pod spec lint FlutterSDK.podspec --verbose
pod repo push FlutterSDK FlutterSDK.podspec
5.成功之后可以自己搜索一下看能不能搜索到
pod search FlutterSDK
如果搜索不到繼續(xù)往下看:
pod repo update FlutterSDK
搜索看看能否搜索到剩胁,如果還不能繼續(xù)往下看
pod repo remove FlutterSDK
pod repo add FlutterSDK 遠(yuǎn)程庫地址例如:https://github.com/Vix_Hi/test.git
rm ~/Library/Caches/CocoaPods/search_index.json
如果配置都沒有錯(cuò)誤的話轴猎,然后再嘗試搜索應(yīng)該就可以了盛正。
制作過程中遇到的錯(cuò)誤可以參考這片文章podspec 校驗(yàn)報(bào)錯(cuò)問題指南