热搜:前端 nest neovim nvim

iOS-CocoaPods的使用

lxf2023-05-25 01:50:02

一. CocoaPod相关介绍

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得节省设置和更新第三方开源库的时间

  • 使用CocoaPods

在以前,开发项目需要用到第三方开源库的时候,需要:

  1. 把开源库的源代码复制到项目中
  2. 添加一些依赖框架和动态库
  3. 设置-ObjC,-fno-objc-arc等参数
  4. 管理他们的更新

在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

  • CocoaPods原理

CocoaPods原理是将所有的依赖库都放到另一个名为 Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到 Pods项目中。Pods项目最终会编译成一个名为 libPods.a的文件,主项目只需要依赖这个.a文件即可

  • Ruby相当于一个环境, 系统默认有个版本的Ruby环境,尽量别安装其他的软件在系统的Ruby上,隔离好
  • Gem相当于Ruby的包管理工具。类似于node下的npm, 用来安装类似CocoaPods这样的软件
  • Rvm是Ruby的版本管理工具, 用来安装, 切换Ruby环境
  • CocoaPods是负责管理iOS项目中第三方框架。CocoaPods的项目源码在Github上管理。项目从2011年8月12日开始,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间

二.准备安装

1. 更换gem软件源

因为旧的软件源rubygems.org被屏蔽了,所以要更换. 移除旧的软件源:

$ gem sources --remove rubygems.org/

添加新的软件源:

$ gem sources -a gems.ruby-china.com/

为了验证你的软件源是不是RubyChina,可以用以下命令查看:

$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES *** gems.ruby-china.com/

2. 更新gem本身(指定版本的话, 在后面加版本号如: gem update --system 2.7.6)

sudo gem update --system

接下来输入系统密码就可以安装了,输入密码时不会显示的,输完回车就行了

  • 更多Gem和Rvm命令可以参考: Gem和Rvm命令

三.开始安装CocoaPods

接下来就可以安装CocoaPods了 1. 安装gem下的某个包(例如cocoapod)

sudo gem install cocoapods   如果这个命令报以下错:iOS-CocoaPods的使用就更换以下命令: sudo gem install -n /usr/local/bin cocoapods

安装过程如下:iOS-CocoaPods的使用安装完后你可以输入下面的命令查看是否成功,当前CocoaPods版本为1.0.0

pod --version

iOS-CocoaPods的使用安装完成后就可以使用pod开头的命令了

2. 设置仓库 就是把所有上传到cocoapods的第三方框架下载每个版本和网络地址以及一些其他描述信息到本地,因为服务器在国外所以比较蛋疼 执行以下命令:

pod setup

出现Setting up CocoaPods master repo (这个提示是正在安装的提示),说明Cocoapods在将它的信息下载到~/.cocoapods里 cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是100多M,就是完成了 

cd ~/.cocoapods du -sh *

仓库里装的东西如下:iOS-CocoaPods的使用出现 Setup completed 表示安装成功! 为了确定CocoaPods是否能正常使用,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

如果能搜索到AFNetworking库,就说明大功告成啦!

  • 如果报错:Unable to find a pod with name, author, summary, or description matching AFNetworking

执行如下步骤:

1:pod repo remove master 2:cd ~/.cocoapods/repos 3:git clone --depth 1 github.com/CocoaPods/S… master 4:rm ~/Library/Caches/CocoaPods/search_index.json 5:pod search afnetworking

执行完之后就可以正常搜索了。

  • 如果你的网速比较好,安装完成了,请直接跳到 --> 四.使用CocoaPods

网速不好,老是报错的看这里! 之前我也尝试过使用CocoaPods的镜像索引使用国内的镜像,但是没有效果,oschina的应该是因为人流量访问大,所以设置了验证码,而gitcafe马上要停止服务了,所以没办法了

一直报错,503、argumenterror , syntax error on line 4, col 0: min:0.29.0 等等,都是你的网络原因导致的

这就要手动下载配置,可以在上面的oschina和gitcafe链接中下载,也可以在github上下载(不过比较慢)

更新一个手动下载到本地的方法!!! 采用国内的免费服务器同步后下载:链接

下载完成后你可以输入

pod setup

然后control+c 中断,目的是让他帮你创建文件夹 当然你也可以手动创建文件夹,但是文件夹是隐藏的所以你需要在Finder页面使用快捷键command + shift + .

随后在Finder点击 前往>前往文件夹 中前往文件,输入下面指令

~/.cocoapods

iOS-CocoaPods的使用

iOS-CocoaPods的使用

对比一下可以发现我们下载的文件和安装后的文件只是改了一下文件名,把最外面的文件改为master,然后扔到~/.cocoapods/repos文件夹下就完成设置了

iOS-CocoaPods的使用

下载进度说明: 下载中如果不放心,可以新建一个终端窗口分别输入下面两条命令查看下载了多少,下载完成的文件大小如下(2016.5.25日下载的文件)

cd ~/.cocoapods du -sh *

iOS-CocoaPods的使用


四.使用CocoaPods

1. 创建Podfile文件 方法1: 使用cd命令到你项目所在目录,然后在当前目录下执行pod init命令创建Podfile

$ pod init

你会发现当前目录下面多了一个Podfile文件 使用Xcode打开Podfile文件,进行编辑

方法2: 使用cd命令到你项目所在目录,然后在当前目录下执行vim Podfile命令,就会在终端中编辑Podfile文件

vim Podfile

进入Podfile后输入 i 编辑状态(可以查看左下角有个INSERT),进入输入下面命令

platform :ios, '9.3'
use_frameworks!

target 'Test' do
  pod 'SDWebImage', '~>3.7.6'
  pod 'Masonry', '~>1.0.0'

end
  • platform 是平台
  • ios, '9.3' 是指定所支持系统和最低版本
  • Test 填写你的target名称,pod 后面的就是你需要的框架,'~>后面就是指定的版本',不指定默认下载最新的
  • Podfile里面的命令一定要按照这个格式,否则会报错 isnot usedin any concrete target

写完后按Esc 然后:wq 意思是保存并退出

2. 下载第三方库 接着执行以下命令就会把Podfile文件里的第三方库下载到当前文件夹下,并且创建.xcworkspace

pod install

出现Pod installation Complete! There are 3 dependencies......就表示下载成功 接下来就可以打开Test(target名).xcworkspace文件编写你的程序了

如果当前项目已经存在Podfile文件,就cd到Podfile文件所在的文件夹执行以下命令更新第三方库:

$ pod update

#常用命令

重新安装Podfile里的全部库

pod install

更新Podfile里的全部库

pod update

更新Podfile里的指定库

pod update 库名

更新本地仓库

pod repo update

从本地已有仓库重新安装当前项目中的所有库(不更新本地仓库)

pod install --verbose --no-repo-update

从本地已有仓库更新当前项目中的所有库(不更新本地仓库)

pod update --verbose --no-repo-update

  • 如果想要知道cocoapods导入的框架的版本,可以使用xcode打开podfile.lock文件
  • 其他问题可以参考: Cocoapods的pod search无法搜索到类库的解决办法 CocoaPods更新第三方库出错的解决办法
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!