????????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)是這樣的(盡量保持一致),如下圖:

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)如下圖所示:

接下來(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文件,基本就差不多了。按下面的圖配置即可:


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


其中[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è)贊,支持一下,謝謝。