现状和需求:目前他们开发了一个组件,这个组件是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,其他剩餘一切都像上一方案做的一樣