將Flutter添加到已有iOS應用

Integrate a Flutter module into your iOS project

Option B - Embed frameworks in Xcode

  1. link on the frameworks,拖入Build Phases -> Link Binary With Libraries
  2. embed the frameworks,拖入Build Phases -> Embed Frameworks,選中CodeDesign
  3. Build Settings -> Library Search Paths and Framework Search Paths 添加路徑
  4. 編譯 ?B. 整個過程注意完整性,應用之前可以先clean項目,避免不必要錯誤

注:嵌入不正確會導致啟動錯誤,以上1,2步可以直接拖入General -> Frameworks, Libraries, and Emdeded Content

pod XXX target has libraries with conflicting names XXX,在項目中找到對應文件刪除引用即可,找不到刪除pod.lock 重新pod install

——————————————————

Q: Multiple commands produce '***/Frameworks/Flutter.framework
(依賴項目和編譯環(huán)境,第一次報錯,清理項目之后第二次可以正常編譯,不用刪除Flutter.framework)
原因:
原文鏈接
Embed框架為Runner項目構建階段
[CP]嵌入Pods框架構建pod安裝在項目中創(chuàng)建的階段。
第一項用于確保在沒有插件的情況下將框架復制到構建的應用程序中(因此在Xcode項目中沒有CocoaPods集成)。
第二項是因為Flutter的podspec將Flutter.framework聲明為vended_framework,而CocoaPods會自動為CocoaPods依賴項的傳遞閉包中的每個這樣的vended_framework添加一個復制步驟。
解決方式
方式1:使用 Legacy Build System (File -> Workspace Settings),驗證無效報錯

方式2:使用 New Build System,刪除Targets -> Build Phases -> Embed Frameworks -> 刪除Flutter.framework (保留App.framework)

注意:都需要進行重新簽名,已經(jīng)簽名的App.framework和Flutter.framework安裝界面Detail顯示無效簽名

注意:使用官方的Tips進行$(CONFIGURATION) 把Debug和Release 下的framework都引入到 Build Phases -> Embed Frameworks,還是會報Multiple commands produce 錯誤,暫沒有更好的方案,可以手動全部Drag引入,注意排除靜態(tài)庫

——————————————————

Do Not EmbedEmbed & SignEmbed Without Signing

Embed:用于動態(tài)庫,在運行時鏈接,所以需要被打進bundle里面

判斷動態(tài)庫還是靜態(tài)庫 命令:file frameworkToLink.framework/frameworkToLink

  • current ar archive 靜態(tài)庫,選擇 Do not embed
  • Mach-0 dynamically 動態(tài)庫,選擇 Embed

Signing:只用于動態(tài)庫,如有了簽名就不需要簽名了

判斷 命令:codesign -dv frameworkToLink.framwork

  • code object is not signed at all 或者 adhoc,選擇embed and sign
  • 其他,標識已經(jīng)正確簽名,選擇Embed Without Signing

Q:MissingPluginException
A:https://blog.csdn.net/u011228060/article/details/120414390
A:https://blog.z7ge.com/archives/flutter-missingpluginexception-bu-yao-huang

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

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

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