个人常用的Profile中的库
platform :ios, '8.0' inhibit_all_warnings!use_frameworks!pod 'GPUImage', '~> 0.1.7' pod 'AFNetworking', '~> 2.0' #网络请求pod 'MJRefresh', '~> 3.1.0' #上下拉刷新pod 'FMDB' #数据库pod 'SVProgressHUD', '~> 2.0.3' #alert提醒pod 'Masonry', '~> 1.0.0' #屏幕适配pod 'SDWebImage', '~> 3.7.1' #加载网络图片pod 'SSKeychain', '~> 1.2.2' #缓存本地账号密码, 自动登录pod 'IQKeyboardManager', '~> 3.2.0.3' #键盘管理pod 'DZNEmptyDataSet', '~> 1.5.1' #tableView无数据占位图pod 'JSPatch' #热补丁修复pod 'ReactiveCocoa', '~> 4.1.0' #NB的框架pod 'KSCrash', '~> 1.6.0'
cocoapods原理
cocoapods将所有的依赖库放到一个名为Pods的项目中, 然后主项目依赖Pods项目, 这样, 源码管理工作都从主项目转移到了Pods项目中.
- Pods项目最终会编译生成一个
libPods.a
的文件, 主项目只需依赖这个.a文件即可. - 对于资源文件, cocoapods提供一个名为Pods-resourses.sh的bash脚本, 该脚本在每次项目编译时候都会执行, 将第三方的各种资源文件复制到目标目录中.
- cocoapods通过名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数.
cocoapods运作原理:
cocoapods是一个开源的项目, 用Ruby写的, 代码托管在github上面. cocoapods功能实现依赖一个.spec
文件, spec文件描述一个开源库在项目中的配置, 每个开源库都有一个spec文件, 这些spec文件统一托管在github上的cocoapods项目中, 如果我们需要将自己造的轮子添加pod依赖, 只需写一个spec文件, 并传到cocoapods的项目中去, 这时候通过pod search XXX
即可查找到自己的项目.
其它
其它技术博客的讲解
唐巧, cocoapods基本讲解:
cocoapods入门:
编写一个spec文件:
注意事项:
- 在项目中添加依赖库之后, 是不能直接找到头文件的, 需要进行设置:
Target > Build Setting > User Header Search Paths 中添加变量: ${SRCROOT}, 并设置recursive.
- cocoapods引用ReactiveCocoa遇到的错误
如图:
解决: 加一句话 use_frameworks!
platform :ios, '8.0' use_frameworks!