版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bolted_snail/article/details/84876158
简介
- CocoaPods是最有影响力的macOS和iOS项目依赖管理工具,其作用是将第三方库的源代码编译成静态库.a文件或者动态库.framework文件形式(Swift项目只支持动态库,使用静态库需要引入桥接头文件),并将它们添加到项目中,并将它们添加到项目中,建立依赖关系。
1.安装CocoaPods
- 安装CocoaPods工具需要在终端中执行命令:
$ sudo gem install cocoapods
- 如果很久没有反应或者报错,这是由于gem工具无法访问默认的Ruby源(rubygems.org),我们需要将Ruby源换成国内的镜像源。执行一下命令:
$ sudo gem sources --remove https://rubygems.org/
$ sudo gem sources -a https://gems.ruby-china.org/
- install指令完成后,还需要进行设置,执行命令:
$ pod setup
,会在本地创建一个~/cocoapods/
文件夹,并将CocoaPods的GitHub库下载到该文件夹中,我们可以直接使用本地文件了,由于下载内容比较多(大约500M),所以该命令执行的时间会比较长。
2.搜索库
- 如何知道CocoaPods库中是否有我们所需要的第三方库,可以通过
$ pod search 可文件名称
来搜索,如搜索AFNetworking
框架:$ pod search AFNetworking
3.下载安装第三方框架到项目中
- 通过终端进入到工程目录,即
.xcodeproj
文件所在地目录,执行指令:$ pod init
,执行成功后会生成一个Podfile
文件,是一个文本文件,其中#号表示注释,主要指示改工程平台、编译类型(.a或.framework)、以及依赖关系(可以指定多个第三方库)。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'weibo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for weibo
pod 'AFNetworking'
pod 'SDWebImage'
pod 'SVProgressHUD'
pod 'SnapKit'
end
上面示例表明支持iOS平台系统为9.0版本及以上platform :ios, '9.0'
,给weibo项目添加第三方依赖库target 'weibo' do
,编译为动态库use_frameworks!
, 添加到依赖库有AFNetworking、SDWebImage、SVProgressHUD、SnapKit
。
注意 : 可以指定添加到依赖库版本,如pod 'AFNetworking', '~>3.1.0'
表示大于3.1.0版本,小于下一个主版本4.0,如果不限定版本,默认是最高版本。
- 如果是想编译成静态库,只要将
use_frameworks!
注销即可,即在前面加上#号#use_frameworks!
,示例如下:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Mypod' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for Mypod
pod 'AFNetworking','~>3.1.0'
pod 'SDWebImage'
pod 'SVProgressHUD'
pod 'SnapKit'
end
- Podfile文件修改好后,执行命令:
$ pod install
下载安装依赖库,执行成功后目录如下:
Podfile.lock、Pods、weibo.xcworkspace
文件是在安装过程中创建的,Podfile.lock
记录了已安装依赖库半本,用于团队版本控制;Pods
目录是工程所依赖库或框架源代码,编译为动态或静态库并配置到项目中;如果通过Xcode启动工程,应该通过weibo.xcworkspace
工作空间文件启动。
4.后续添加或删除第三方框架
- 开发过程中不可以一次性把所有需要的框架都添加完,后续如果需要继续添加框架可以在Podfile文件中添加
pod '框架名称'
,然后再终端执行指令:pod install --no-repo-update
,其他已有框架不会更新,新添加的框架会下载安装。 - 也可以执行指令:
pod update
,这样以前已经添加到框架会更新,新添加的框架会下载安装。 - 删除项目中对应的框架,在Podfile文件中删除或注释
pod '框架名称'
,执行指令:pod update
即可。
5.添加桥接文件
- 由于上面安装的
AFNetworking、SDWebImage、SVProgressHUD
三个框架是oc语言编写的,故不能直接再swift项目中使用,需要添加一个桥接文件。
- 新建一个
Header File
文件 - 导入第三方OC类库
#ifndef Bridging_Header_h
#define Bridging_Header_h
#import "AFNetworking.h"
#import "SDWebImageManager.h"
#import "SVProgressHUD.h"
#endif /* Bridging_Header_h */
- 设置一个
User Header Search Paths
,否则在需要用三方库的地方是调不出来的。在target——>Build Setting
里找到search Paths
,双击User Header Search Paths
后面的空白处,设置目录路径为${SRCROOT}
,后边选择recursive
。
- 进入到
Build Settings
,在搜索框中输入bridg
,找到Objective-C Bridging Header
,选项,把头文件的路径赋值给该选项。
- 以上设置完后就可以再swift项目中使用oc类库了。
注意事项
- 上面所有
pod
指令从初始化开始,都是在.xcodeproj文件所在地目录下执行的,可以通过ls
指令查看有没有.xcodeproj文件,有就是目录正确。 - 使用CocoaPods配置完工程后,如果有些工程文件被复制或者移动到其他目录,编译可能报文件找不到的错误,使用
pod update
指令更新即可。
- 参考文档:
库搜索
CocoaPods指南