背景 :之前的項(xiàng)目是直接建立的flutter工程,除了推送之外全是flutter的代碼,當(dāng)隨著項(xiàng)目的發(fā)展,我發(fā)現(xiàn)項(xiàng)目需要接入RN的一個(gè)SDK的時(shí)候,當(dāng)場(chǎng)懵逼。于是乎,決定用iOS原生的平臺(tái),把flutter作為SDK引入。
官網(wǎng)給的方案需要修改xcode的配置,還要引入腳本,會(huì)污染主工程的環(huán)境,因此采用引入編譯產(chǎn)物的做法。

因?yàn)榫幾g產(chǎn)物會(huì)根據(jù)flutter的版本、證書(shū)、模擬器等發(fā)生變化,因?yàn)閒lutter的原生代碼也建一個(gè)倉(cāng)庫(kù)進(jìn)行管理。

步驟
一、配置flutter環(huán)境
按照官網(wǎng)上配置,就不多比比了。
二、獲取編譯產(chǎn)物
1、 flutter create -t module flutter_library 創(chuàng)建flutter項(xiàng)目
2、在 flutter 項(xiàng)目目錄下,執(zhí)行 flutter build ios 針對(duì) Flutter 項(xiàng)目進(jìn)行編譯打包,生成 Flutter 編譯產(chǎn)物。
3、建立git私有庫(kù),用于存放flutter的編譯產(chǎn)物。
4、把lutter_library工程下隱藏文件.ios打開(kāi)。找到/.ios/Flutter/FlutterPluginRegistrant,把該類(lèi)放到私有庫(kù)的Classes中,和replace放到一起。
5、建一個(gè)Frameworks文件夾,和Classes同級(jí)目錄

6、把上述編譯的Flutter.framework和App.framework放到私有庫(kù)的frameworks中

7、修改podspec。這一步很關(guān)鍵,就是在這一步卡了很久。
一下是我最終的podspec 記得把homepage和 s.source 換成自己的git首頁(yè)地址。
Pod::Spec.new do |s|
s.name = 'FlutterKit'
s.version = '0.1.0'
s.summary = 'This is A iOS Private pod lib Flutter.'
s.description = <<-DESC
This is a iOS Private pod lib FOR PING AN HEALTH CLOUD COMPANY LIMITED.
Create by user_name - user_email
All Rights Reserved.
DESC
s.homepage = 'https://github.com/user_name/FlutterKit'
s.license = {
'type': 'Copyright',
'text': 'Copyright 2011 - 2018 pajk.cn. All rights reserved.\n'
}
s.author = { 'xxx' => 'xxx' }
s.ios.deployment_target = '8.0'
s.source = { :git => 'https://github.com/user_name/FlutterKit', :tag => s.version.to_s }
s.source_files = 'FlutterKit/Classes/**/*.{*}'
s.vendored_frameworks = '**/FlutterKit.framework','FlutterKit/Frameworks/Flutter.framework','FlutterKit/Frameworks/App.framework'
然后就是把內(nèi)容commit 之后就是git tag 0.1.0 git push --tags