前言
自己在项目一般用pod来管理第三方库,几年工作下来发现pod里还是有一些要注意的地方。随记录之,不喜勿喷。
Pod 工作原理
cocoaPods在git上的地址是 https://github.com/cocoapods/Specs
我们在终端用Pod install 命令时,它主要执行的过程如下:
1.查看本地目录 ~/.cocoapods/repo/master/Specs 是否存在;
2.存在的话,从这个本地三方库信息库中获取 Podfile 中对应三方库的 git 地址
- 不存在,输出 Setting up CocoaPods Master repo,并从gitHub上把cocoaPods拉取到 ~/.cocoapods/repo/中
在安装cocoaPods时,如果安装停止缓慢的话,网上有一种方法是从github上clone下来,复制一自己本地的specs目录下。
Pod install 与Pod update的区别
- 用pod install 它会参照Podfile.lock里面的第三方库的版本号来安装
- pod update 会参照Podfile里面的文件来安装第三方库,由于里面的库文件没有版本号,pod update会安装最新的库
在单个工程中的一般写法
platform :ios, '8.0'
use_frameworks!
## ignore warning
inhibit_all_warnings!
target 'WeChat' do
#YYKit
#pod 'YYKit' , '1.0.9'
# YYKit 的一套分类
pod 'YYCategories' , '1.0.4'
# 富文本
pod 'YYText' , '1.0.7'
# 字典转模型
pod 'YYModel' , '1.0.4'
# YYImage
pod 'YYImage' , '1.0.4'
# webP
pod 'YYImage/WebP'
# 高性能的 iOS 缓存框架
pod 'YYCache' , '1.0.4'
# 高性能的 iOS 异步图像加载框架。
pod 'YYWebImage' , '1.0.5'
# iOS 键盘监听管理工具
pod 'YYKeyboardManager' , '1.0.1'
# iOS 全局并发队列管理工具
pod 'YYDispatchQueuePool' , '1.0'
# iOS 异步绘制与显示的工具
pod 'YYAsyncLayer' , '1.0'
end
在workSpace中多个工程中的一般写法
workspace 'MyWorkspace.xcworkspace' //workspace文件名
project 'MyApp2/MyApp2.xcodeproj' //主工程路径
target 'MyApp2' do
platform :ios, '8.0'
project 'MyApp2/MyApp2.xcodeproj' //工程路径
pod 'Masonry', '~> 1.0.2'
end
target 'MyApp1' do
platform :ios, '8.0'
project 'MyApp1/MyApp1.xcodeproj' //工程路径
pod 'Masonry', '~> 1.0.2'
pod 'AFNetworking', '~> 3.1.0'
end
写PodFile注意的细节
E5092402-BCA3-4C23-8690-149DF1F077DF.png注意点1
1.纯oc项目中 通过pod导入纯oc项目, 一般都不使用use_frameworks 以前我就是没写,哈哈 2.swift 项目中通过pod导入swift项目,必须要使用use_frameworks
3.swift 项目中通过pod导入OC项目
- 使用use_frameworks,在桥接文件里加上#import "AFNetworking/AFNetworking.h"
- 不使用frameworks,桥接文件加上 #import "AFNetworking.h"
注意点2
使用这句 inhibit_all_warnings 来消除cocoapod引入的第三方库的警告,这个技能太强大了!!! 可以指定一个库不显示它的警告
pod 'AFNetworking', '2.6.3', :inhibit_warnings => true
注意点3
这一点的话纯是个人感觉,这样在第三方库上写上注释,主要是为了易读。
网友评论