前言
你已經(jīng)有了iOS工程,想集成flutter模塊到現(xiàn)有工程實(shí)現(xiàn)混合開發(fā)
一、現(xiàn)有工程集成flutter模塊方式
一共有2種方式:
1、Frameworks方式集成
2、CocoaPods集成(可以熱重載,推薦使用)
二、Frameworks集成方式
假如你的現(xiàn)有iOS工程是"FlutteriOSDemo",flutter工程是“flutterdemo”
在iOS工程目錄下新建一個(gè)文件夾,我這里命名為“Flutter”,如圖:
image.png
cd到flutter工程,執(zhí)行命令如下:
flutter build ios-framework --output=/Users/mybook/Desktop/FlutterNativeDemo/FlutteriOSDemo/Flutter
/Users/mybook/Desktop/FlutterNativeDemo/FlutteriOSDemo/Flutter 這個(gè)為iOS工程里“Flutter”文件夾路徑
此命令會(huì)將flutter工程打包為framework,存放在“Flutter”文件夾中,生成三種環(huán)境的framework,如圖:
image.png
每個(gè)文件夾下有兩個(gè)framework,如圖:
image.png
打開iOS工程,選擇一種環(huán)境的framework拖到工程的Link Binary With Libraries下:
注意:Embed選擇Embed & Sign
image.png
至此,flutter就集成到了iOS工程中了,你可以到AppDelegate.h引入flutter庫(kù),就可以開發(fā)了
image.png
注意??:
三、CocoaPods集成
你需要準(zhǔn)備好iOS工程和flutter module工程,并且它們?cè)谕晃募A下。
小編這里現(xiàn)有iOS工程是"IOSAppDemo",flutter module工程是“fluttermodule”。
注意??:
如何創(chuàng)建flutter module
1、命令行方式
cd你想要存放flutter module的文件夾下(與iOS工程是同一個(gè)目錄)
$ flutter create --template module fluttermodule
2、vs code創(chuàng)建方式
第一步:
用vs code打開命令面板(快捷鍵shift + command + P),輸入Flutter: New Peoject
image.png
第二步:
選擇Module,然后輸入名稱即可
image.png
在iOS工程Podfile里添加配置
如果你的iOS工程還沒有創(chuàng)建Podflile,cd到你的iOS工程,執(zhí)行以下命令:
$ vim Podfile
然后添加如下代碼:
flutter_application_path = '../fluttermodule'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target "IOSAppDemo" do
use_frameworks!
install_all_flutter_pods(flutter_application_path)
end
post_install do |installer|
flutter_post_install(installer) if defined?(flutter_post_install)
end
最后pod install
實(shí)現(xiàn)熱重載:
第一步:
將iOS工程運(yùn)行起來
第二步:
vs code控制面板輸入:Debug:Attach to Flutter on Device
image.png