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


iOS 集成Flutter不使用cocoaPods

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

使用cocoapods集成會發現這些插件會打包成framework集成在iOS項目中,所以在不使用cocoapods集成的情況下需要把第三方插件打包成framework集成在ios項目中。

解決方法:

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

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

 

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

如果想其他庫為.a靜態庫可以把"根目錄/ios/Podfile" 文件里的 use_frameworks!刪除

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

 

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

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

配置完成之后,iOS項目中加載flutter項目的VC需要使用FlutterPluginRegistrant.framework中的GeneratedPluginRegistrant注冊

如下圖:

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM