iOS开发使用CocoaPods工具管理第三方库

文章目录

      • 简介
      • 1.安装CocoaPods
      • 2.搜索库
      • 3.下载安装第三方框架到项目中
      • 4.后续添加或删除第三方框架
      • 5.添加桥接文件
      • 注意事项

简介

  • 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下载安装依赖库,执行成功后目录如下:
    iOS开发使用CocoaPods工具管理第三方库_第1张图片
    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项目中使用,需要添加一个桥接文件。
  1. 新建一个Header File文件
  2. 导入第三方OC类库
#ifndef Bridging_Header_h
#define Bridging_Header_h
#import "AFNetworking.h"
#import "SDWebImageManager.h"
#import "SVProgressHUD.h"
#endif /* Bridging_Header_h */
  1. 设置一个User Header Search Paths,否则在需要用三方库的地方是调不出来的。在target——>Build Setting里找到search Paths,双击User Header Search Paths后面的空白处,设置目录路径为${SRCROOT} ,后边选择recursive
    iOS开发使用CocoaPods工具管理第三方库_第2张图片
  2. 进入到Build Settings,在搜索框中输入bridg,找到Objective-C Bridging Header,选项,把头文件的路径赋值给该选项。iOS开发使用CocoaPods工具管理第三方库_第3张图片
  • 以上设置完后就可以再swift项目中使用oc类库了。

注意事项

  • 上面所有pod指令从初始化开始,都是在.xcodeproj文件所在地目录下执行的,可以通过ls指令查看有没有.xcodeproj文件,有就是目录正确。
  • 使用CocoaPods配置完工程后,如果有些工程文件被复制或者移动到其他目录,编译可能报文件找不到的错误,使用pod update指令更新即可。
  • 参考文档:
    库搜索
    CocoaPods指南

你可能感兴趣的:(iOS,Swift)