XCFramework制作
如何辨別.framework是動態庫還是靜態庫
lipo 命令的基本用法
壹個工程多個target引入CocoaPods的方式
美團 iOS 工程 zsource 命令背後的那些事兒
iOS美團同款"ZSource"二進制調試實現
/MeetYouDevs/cocoapods-imy-bin
cocoapods-binary工作原理及改進
Ruby和Cocoapods文章合集
iOS Pod 'xxx.h' file not found with <angled> include; use "quotes" instead
由 Pod 導致的 File not found
Cocoapods整理(三)——編寫podspec文件
查看app的簽名:
codesign -vv -d xxx.app
查看 某個庫的簽名(同時可以查看某個庫支持的架構):
codesign -vv -d xxx.framework
查看電腦安裝好的所有證書:
security find-identity -v -p codesigning
對某個庫進行重簽名:
codesign -fs "Apple Development: xxx (xxx)" xxx.framework
file xxx.framework/xxx
查看支持的架構:
lipo -info xxx.framework/xxx
刪除指定的架構(如x86_64,導出後的庫會自動刪除簽名信息):
合並幾個架構(比如把模擬器的x86_64與真機的arm64合並成壹個,可以壹個framework同時支持真機和模擬器,導出後的庫會自動刪除簽名信息,但是會增加包的體積)
xcode可以會在編譯時選擇xcframework中實際需要的架構編譯進包中,這種方式可以減少包的體積還能壹個xcframework同時支持真機與模擬器運行
1、在xcode創建framwork的工程
2、然後再創建 Podfile 將framwork的源碼使用pod的方式依賴三方庫
2.1 如果podfile裏 use_frameworks! 是打開的,
2.2 如果podfile裏 use_frameworks! 是註釋掉的或者沒有這壹句,
3、創建 xxx.podspec 註意事項
1、這個文件必須在git倉庫下的第壹級目錄
2、 xxx.podspec 的名字需要跟文件裏的 s.name = 'xxx' 壹致,這個名字也是在主app裏 pod 'xxx‘ 的名字
3、指定的framwork的方式
4、指定依賴的三方庫:
方式壹:通過 abstract 方式引入
方式二:循環 target 添加 pod
方式三:提取公*** pods 各個 target 引入
iOS Pod 'xxx.h' file not found with include; use "quotes" instead
好好的<>非要讓妳改成"",不然就報錯給妳看 T T
分析:
Header Search Paths中未配置對應路徑。可能是.podspec文件中的“dependencies”未配置對應的依賴,導致對應依賴庫的路徑沒有寫入編譯項目的“Header Search Paths”內
解決方法:
方法壹:
項目->PROJECT->項目xxx->Info->Configurations->Debug->項目xxx->targetXXX->Pods-xxx.debug
能改成這個最好,如果有自定義的config,在定義的config裏引入Pods-xxx.debug
方法二:
修改 Header Search Path
添加 $(PODS_ROOT) 選擇 recursive
添加 $(SRCROOT) 選擇 recursive
Build