Flutter組件開(kāi)發(fā)

背景 :之前的項(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)物的做法。


image.png

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


image.png

步驟
一、配置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í)目錄


屏幕快照 2019-12-27 下午6.55.26.png

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


屏幕快照 2019-12-27 下午6.56.40.png

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

引用
引用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容