咱們的iOS項目中使用了Swift+Objective-C的混合開發,很長一段時間咱們在Podfile中使用的是use_frameworks!,也就是把全部Pods作成Dynamic framework。 微信等第三方SDK以靜態庫.a的形式提供給開發者,致使咱們沒有辦法直接依賴,會報相似xxx has transitive dependencies that include static binaries
的錯誤,所以咱們不得不把.a封裝成動態framework而後才能經過Cocoapods集成到項目裏。php
Dynamic framework的製做過程網上有不少文章,我主要參考了組件化-動態庫實戰 這邊文章。再次感謝文章做者@南梔傾寒 按這篇文章一步一步來基本能夠完成90%以上的工做。之因此不是100%是由於咱們實際製做中遇到了CPU指令集的支持問題,須要特別關注如下幾點:bash
lipo -info
查看所支持的CPU架構,顯示出Architectures in the fat file: XXX are: i386 x86_64 armv7 arm64
表示同時支持了模擬器和真機,能夠拿來用了。Dynamic framework打好了,經過Cocoapods集成到主工程。調試、運行一切OK。最終要打包上線時,果真掛了!!!error提示微信
bitcode bundle could not be generated because
xxx was built without full bitcode.
All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture armv7
複製代碼
因而又是一番Google。最終在這篇文章找到了解決方案,淚牛滿面。同時腦補了下-fembed-bitcode-marker和-fembed-bitcode,仍是以爲收穫滿滿。因而在製做Dy namic framework的工種的Bulid Settings中同時作了如下處理架構
而後再次構建出新的framework集成到主工程中去Archive,這下,終於,穩了!函數