Flutter原理:官網(wǎng)的混編方式分析

前言

要想知道怎么去高級的進行混編,那么久需要你首先對官網(wǎng)的混編方式進行分析。所以,下面我們先對官網(wǎng)的混編方式進行分析,然后在進行正式的高級混編。

一、官網(wǎng)的混編方式分析

1、Podfile

#Flutter項目路徑
flutter_application_path = "../../cj_nativeflutter_fluttermodule"
eval(File.read(File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')), binding)

2、podhelper.rb

2.1、podhelper.rb的位置

podhelper.rb在flutter SDK中的路徑為:/Applications/flutter/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl

iOS項目集成Flutter高級_flutter_tools.png
iOS項目集成Flutter高級_podhelper1.png

在項目中的路徑為:

iOS項目集成Flutter高級1.png

2.2、podhelper.rb處理的事情

iOS項目集成Flutter高級4.png
事情①:獲取Flutter.podspecFlutterPluginRegistrant.podspec,然后pod

獲取Flutter.podspec

iOS項目集成Flutter高級2.png

獲取FlutterPluginRegistrant.podspec

iOS項目集成Flutter高級3.png
情況1問題:如果engine文件夾不存在,即不存在我們需要的Flutter.podspecFlutter.framework

如果engine文件夾不存在,即不存在我們需要的Flutter.podspecFlutter.framework,則我們需要從flutter sdk中的如下目錄拷貝Flutter.podspecFlutter.framework,那么Flutter SDK的根目錄從哪里找呢?

/Applications/flutter/bin/cache/artifacts/engine/ios/

iOS項目集成Flutter高級5.png
情況1解決:獲取flutter sdk的根目錄flutter_root_dir

而這個flutter sdk目錄flutter_root_dir的獲取,我們只需要從根據(jù)flutter_application_path路徑下的Generated.xcconfig文件中的FLUTTER_ROOT獲取即可。

iOS項目集成Flutter高級6.png

獲取的方法為:

flutter_root_dir = flutter_root(flutter_application_path)

該flutter_root函數(shù)的方法為:

iOS項目集成Flutter高級7.png

Generated.xcconfig數(shù)組的獲取方法為:

iOS項目集成Flutter高級8.png

3、xcode_backend.sh

3.1、xcode_backend.sh的位置

xcode_backend.sh的目錄為/Applications/flutter/packages/flutter_tools/bin/

iOS項目集成Flutter高級_sh1.png

未完待續(xù)

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

相關(guān)閱讀更多精彩內(nèi)容

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