iOS打包有依赖的静态库framework实战方案汇总

现状和需求:目前他们开发了一个组件,这个组件是Swift和OC混编的,使用cocoapods管理着许多三方库,三方库之间本身存在着调用,他们想把现在这个组件打包成一个静态库提供给别人。

所以我以下文章就是写了各种怎么打包集成的静态库的方案。(因為写给湾湾同胞的,繁体字,大家将就看吧,反正都能看懂^_^)


一、摒棄cocoapods

1) 將依賴庫直接導入工程打包

         原因:cocoapods在開發中管理依賴庫非常適合,但在打靜態庫時暴露出太多問題,

         優點:這些庫被xcode默認都以library注入打包,且各項設置都可以在本地控制,直接打出一個庫文件

         缺點:三方庫有更新時,需要重新打包

         預估時間:1 天内

         詳細步驟:參見 - - > https://www.jianshu.com/p/fe5dbbc0130e



二、继续使用cocoapods

1) 使用cocoapods管理三方依賴並打包出庫,將依賴庫直接導入工程打包

    關鍵點:cocoapods打包生成的中間framework,對其他類庫都是引用方式,所以我們要像上亿方案一樣,將cocoapods打出的三方庫引入到我們工程中,然後就能像上一方案一樣順利出包

        優點:使用cocoapods管理依賴,由cocoapods打包打出關聯包並方便導入我們工程

        缺點:cocoapods對工程侵入性太強,其打出的包在Debug -iPhone-Simulator中,需要手动移动,建立文件夹导入

預估時間:1天

詳細步驟:

         .1 直接build,選中Pods的Products中framework,然後show in finder,就在Debug iPhone-simulator或者iPhone-iOS目錄下(如果找不到product目錄,可選中主工程,到bundle prase 的library中隨機添加一個系統庫,product目錄會自動出現在工程目錄中,build出來的靜態庫就在目錄下)

         .2 將工程按上一種方案做的,導入你的组件工程DeskSwfit

         .3 選中DeskSwfit項目taget scheme 選擇Manage Schemes,除了你的工程,其他全部取消選中

         .4 選中工程target ,確保其general 的Frameworks and library中沒有pod自動生成的pod_DeskSwift.framework,那是cocoapods自動打包的靜態庫,你現在直接使用cocoapods生成的三方庫了,用不到它了,務必刪除它

 OK,其他剩餘一切都像上一方案做的一樣

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容