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註冊
以下圖: