iOS原生項(xiàng)目中引入Flutter模塊攻略

????????Flutter作為新一代的混合開(kāi)發(fā)框架,憑借其優(yōu)越的性能和簡(jiǎn)單的操作已逐漸進(jìn)入廣大移動(dòng)端coder的視野,本文就來(lái)告訴大家怎樣在已有的項(xiàng)目中加入Flutter模塊。

1.首先創(chuàng)建一個(gè)空的文件夾(這里是Hybrid),然后在終端執(zhí)行下面的命令:

$ cd Hybrid

$ flutter create -t module my_flutter

執(zhí)行完之后把你原生的iOS項(xiàng)目移動(dòng)到Hybrid文件下,此時(shí)Hybrid的結(jié)構(gòu)是這樣的(盡量保持一致),如下圖:

Hybrid文件結(jié)構(gòu)

2.把以下代碼加到原生項(xiàng)目的Podfile中:

flutter_application_path = 'path/my_flutter'

load File.join(flutter_application_path,'.ios','Flutter','podhelper.rb')

install_all_flutter_pods(flutter_application_path)

添加完后應(yīng)如下圖所示:

Podfile

接下來(lái)執(zhí)行pod install。

再按照如下步驟關(guān)閉原生項(xiàng)目的Enable Bitcode:Build Settings->Build Options->Enable Bitcode。

到現(xiàn)在為止,你的原生項(xiàng)目應(yīng)該可以編譯成功。

如果編譯出現(xiàn)Flutter.framework: Permission denied錯(cuò)誤,不用緊張,這是Flutter自身的問(wèn)題。解決方法如下:

第一種方法:把Flutter升級(jí)到1.10就好了。

第二種方法:不升級(jí)的情況下,可以改Flutter SDK 的一個(gè)文件,flutter/packages/flutter_tools/bin/xcode_backend.sh

144行

RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -exec chmod a-w "{}" \;

改為

RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -iname '.h' -exec chmod a-w "{}" \;

到此你的原生項(xiàng)目就可以編譯成功了。


3.接下來(lái)配置一下AppDeleagte文件,基本就差不多了。按下面的圖配置即可:

AppDeleagte.h


AppDelegate.m

按照上面配置完成就ok了。接下來(lái)我們測(cè)試一下,代碼如下:

原生代碼
flutter代碼

其中[flutterViewControllersetInitialRoute:@"helloPage"];是配置路由的,可以任意跳轉(zhuǎn)到想要的頁(yè)面。

flutter代碼中要使用window.defaultRouteName需引入‘dart:ui’。

嗯。。。。。。接下來(lái)就可以開(kāi)始愉快的混編之旅啦?。?!

官方英文文檔鏈接如下:

Add Flutter to existing apps · flutter/flutter Wiki · GitHub

如本文檔對(duì)您有所幫助,請(qǐng)點(diǎn)個(gè)贊,支持一下,謝謝。

最后編輯于
?著作權(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)容