本文以GPUImage的工程為示例脆烟,去除管理依賴的CocoaPods绍妨,改用子工程依賴的方式。目的就是復用代碼漠魏,多個工程可以使用同一份GPUImage的代碼倔矾。
1、刪除Podfile、Podfile.lock哪自、Pod文件夾丰包;
2、刪除Copy Pods Resources, Embed Pods Frameworks 和Check Pods Manifest.lock
3提陶、刪除Pods文件夾和Framework文件夾下面的libPods.a
4烫沙、復制GPUImage 工程到framework文件夾
5、添加GPUimage.xcodeproj工程
6隙笆、添加工程依賴
7锌蓄、添加頭文件搜索路徑
- 如果依賴工程有category
在Other Linker Flags添加 -Objc和-all_load選項,保證category能夠被正常的引入撑柔。
Objective-C沒有為每個函數(shù)(或者方法)定義鏈接符號瘸爽,它只為每個類創(chuàng)建鏈接符號。這樣當在一個靜態(tài)庫中使用類別來擴展已有類的時候铅忿,鏈接器不知道如何把類原有的方法和類別中的方法整合起來剪决,就會導致你調(diào)用類別中的方法時,出現(xiàn)"selector not recognized"檀训,也就是找不到方法定義的錯誤柑潦。為了解決這個問題,引入了-ObjC標志峻凫,它的作用就是將靜態(tài)庫中所有的和對象相關的文件都加載進來渗鬼。
只包含有類別的靜態(tài)庫無法使用-ObjC標志來加載文件,-all_load是強制加載靜態(tài)庫所有的文件荧琼。