https://blog.csdn.net/u014600626/article/details/102922568
總結(jié):
1.cocoapods會(huì)生成一個(gè)叫pods的項(xiàng)目闰歪,這個(gè)項(xiàng)目管理管理依賴陵像,并生成libPod.a文件壹堰。主工程只要依賴這個(gè)文件即可。
2.每個(gè)靜態(tài)庫(kù)都有一個(gè)xcconfig文件雳灵,該文件說(shuō)明了頭文件的搜索路徑、需要鏈接的二方庫(kù)路徑
CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/AFNetworking
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"
OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
cocoapods也會(huì)為pod工程生成debug和release的xcconfig文件旅择。比如Pods-Demo.debug.xcconfig
3.靜態(tài)庫(kù)分為.a和.framework兩種。.a是一個(gè)純二進(jìn)制文件汞斧,.a不能直接使用,要配合.h文件才能使用什燕。.framework中除了有二進(jìn)制文件之外還有資源文件粘勒。.a + .h + sourceFile= .framework。靜態(tài)庫(kù)已經(jīng)編譯完成屎即,只需要鏈接即可庙睡。
4.pod工程目錄如下所示
├── Pods
│ ├── AFNetworking
│ ├── Headers
│ ├── Manifest.lock
│ ├── Pods.xcodeproj
│ └── Target\ Support\ Files
每個(gè)三方庫(kù)都會(huì)在pod下面有一個(gè)文件夾。文件夾中是.framework文件
在Headers下有兩個(gè)目錄技俐,Private和Public乘陪,第3方庫(kù)的私有頭文件會(huì)在Private目錄下有對(duì)應(yīng)的頭文件,不過(guò)是1個(gè)軟鏈接雕擂,鏈接到第3方庫(kù)的頭文件 第3方庫(kù)的Pubic頭文件會(huì)在Public目錄下有對(duì)應(yīng)的頭文件啡邑,也是軟鏈接
Manifest.lock manifest文件 描述第3方庫(kù)對(duì)其它庫(kù)的依賴