iOS原生項目集成flutter module(不使用cocoaPods),flutter模塊中使用的第三方無效 (flutter build ios --release --no-codesign)

iOS 集成Flutter不使用cocoaPodsios

iOS不使用cocoapods集成flutter會發現集成後一部分flutter第三方(插件)不能使用,例如,國際化、本地存儲、網絡判斷、提示框等插件。bash

使用cocoapods集成會發現這些插件會打包成framework集成在iOS項目中,因此在不使用cocoapods集成的狀況下須要把第三方插件打包成framework集成在ios項目中。網絡

解決方法:iphone

在終端打開cd到flutter項目目錄下執行flutter build ios --release --no-codesign,執行完成以後在ui

/flutter項目/build/ios/Release-iphoneos文件下會發現打包好的framework庫,以下圖:spa

 

這種狀況下打包出的第三方庫都是動態庫,特別注意的是FlutterPluginRegistrant.framework是靜態庫插件

若是想其餘庫爲.a靜態庫能夠把"根目錄/ios/Podfile" 文件裏的 use_frameworks!刪除code

#加use_frameworks!編譯後第三方插件會生成.framework, use_frameworks! #不加use_frameworks!第三方插件會生成.a;

 

把動態集成到ios項目中並配置Embedded Binaries,以下圖blog

還有一點要特別注意,flutter每次添加新的第三方插件,從新編譯後除了添加新的framework,FlutterPluginRegistrant.framework也須要從新更換。ip

配置完成以後,iOS項目中加載flutter項目的VC須要使用FlutterPluginRegistrant.framework中的GeneratedPluginRegistrant註冊

以下圖:

 

參考:https://www.jianshu.com/p/700bd7d2122b

相關文章
相關標籤/搜索