已有項(xiàng)目配置flutter(iOS篇)

該文檔已過(guò)時(shí),可點(diǎn)擊查看下面的最新官方文檔鏈接

官方參考文檔

如果AppDelegate已從其他地方繼承,可參考

iOS 配置flutter

  • 創(chuàng)建flutter moudule 命名為 my_flutter, 命令行:flutter create -t module my_flutter
  • 在已有iOS項(xiàng)目的Podfile中添加代碼:
# 將flutter_application_path修改成my_flutter所在的路徑,可使用相對(duì)路徑,也可使用絕對(duì)路徑
use_frameworks!#根據(jù)是否引入了swifit來(lái)判斷是否添加該句代碼,作用是使swift可使用oc庫(kù), 但是沒(méi)用swift的話,這句話不能用
flutter_application_path = 'path/to/my_flutter/'
eval(File.read(File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')), binding)

如果能如此簡(jiǎn)單就好了,但是一般不會(huì)這么容易。如果你對(duì)Podfile中已經(jīng)使用了post_install,那么你需要更麻煩的操作。因?yàn)?code>Podfile只能存在一個(gè)post_install,然后podhelper.rb中就有一個(gè)。具體怎么做請(qǐng)查看另一篇文章flutter 單一post_install的配置

  • 命令行運(yùn)行pod install。無(wú)論什么時(shí)候修改了my_flutter下的pubspec.yaml都需要運(yùn)行該命令,保證插件的iOS部分同步到iOS項(xiàng)目中。
  • 添加一個(gè)build phase, 方便iOS項(xiàng)目編譯Dart代碼(即my_flutter中的代碼)。步驟:xcode打開(kāi)iOS項(xiàng)目 -> 選擇左側(cè)跟項(xiàng)目 -> TARGET -> 當(dāng)前項(xiàng)目 -> build phase -> 點(diǎn)加號(hào)添加新的build phase -> 選擇New Run Script Phase -> 將以下代碼復(fù)制到sh文本輸入框中 -> 將新建的build script拖到并緊挨Target Dependencies phase的下邊?,F(xiàn)在應(yīng)該可以?B編譯項(xiàng)目了。
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
  • 代碼編寫(xiě),就看原文檔吧。需要注意的是,代碼GeneratedPluginRegistrant.register(with: self);運(yùn)行可能要崩。解決方法是:在創(chuàng)建FlutterViewController后才添加代碼GeneratedPluginRegistrant.register(with: fvc),fvcFlutterViewController的實(shí)例。
  • 編寫(xiě)好代碼,xcode中可直接運(yùn)行項(xiàng)目了。先在my_flutter下運(yùn)行flutter attach的話,可以調(diào)試flutter代碼。具體代碼可參考官方demo:ios_add2app(包含開(kāi)啟多FlutterViewController的情況)

注意事項(xiàng):

  • flutter 要求iOS項(xiàng)目禁用bitcode
  • 注意pod install以保證flutter中插件與iOS項(xiàng)目中同步
  • my_flutter下運(yùn)行flutter attach調(diào)試,打印出的http鏈接,可以復(fù)制到瀏覽器中。注意看打印信息,可以發(fā)現(xiàn)更多功能。
最后編輯于
?著作權(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)容