CocoaPods安装步骤详解 - 2024


引言

CocoaPods的安装,如果有VPN就一直开启,会让整个流程非常顺畅。

在现代 iOS 开发中,依赖管理变得越来越重要,CocoaPods 成为开发者们首选的依赖管理工具。它不仅可以简化库的安装与更新,还能帮助开发者更高效地管理项目中的第三方依赖。在这篇博客中,我们将详细介绍如何配置 CocoaPods 环境,从安装 CocoaPods 到创建和管理 Podfile,再到安装和更新库,确保你能顺利地将 CocoaPods 集成到你的 iOS 项目中。无论你是 iOS 开发的新手还是经验丰富的开发者,了解 CocoaPods 的使用都将为你的开发流程带来便利。

一. 安装Xcode

首先需要从App Store下载Xcode开发工具,这一步非常简单,直接从苹果商店下载即可。

二. 安装Homebrew

在Mac上安装Homebrew的步骤非常简单。只需要在终端中运行以下命令即可:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这条命令会下载Homebrew的安装脚本并执行它。安装过程中可能会要求你输入密码,并且会将Homebrew安装到/user/local目录下。

安装完成后,我们可以通过运行以下命令来验证Homebrew是否安装成功:

brew doctor

如果Homebrew安装成功,brew doctor命令会输出一些信息,告诉你Homebrew当前的状态,并检查潜在问题。如果一切顺利,你应该会看到“Your system is ready to brew.”的消息。 

三. 安装Ruby

CocoaPods就是用Ruby编写的,因此我们需要安装Ruby,通常Mac电脑会自带Ruby我们可以使用ruby -v来查看ruby版本。

wangguosong@wangguosongdeMacBook-Pro-2 ~ % ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin24]

通常系统自带的Ruby版本会相对较低,不足以支持安装Cocoapods,如果我们之间安装可能会收到以下错误:

ERROR:  Error installing cocoapods:

The last version of drb (>= 0) to support your Ruby & RubyGems was 2.0.6. Try installing it with `gem install drb -v 2.0.6` and then running the current command again

drb requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.

四. 安装RVM

有些教程会引导大家使用RVM来安装或者升级Ruby,需要执行下面三行命令:

curl -L get.rvm.io | bash -s stable source ~/.bashrcsource ~/.bash_profile

安装成功后我们会收到下面的提示,表示安装成功:

安装成功后执行命令查看,rvm版本:

wangguosong@wangguosongdeMacBook-Pro-2 ~ % rvm -v 
rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

查看可使用的ruby版本:

wangguosong@wangguosongdeMacBook-Pro-2 ~ % rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.10]
[ruby-]2.5[.8]
[ruby-]2.6[.6]
[ruby-]2.7[.2]
[ruby-]3[.0.0]
ruby-head

五. 将Ruby更新到指定版本

执行命令安装指定版本的Ruby:

rvm install ruby-3.3.1

如果成功则直接设置ruby的默认版本:

rvm use 3.3.1 --default

六. 安装rbenv&ruby-build(代替RVM)

如果执行第五步遇到问题,反复出现@openssl@1.1的问题:

Error running 'requirements_osx_brew_libs_install autoconf automake libtool pkg-config coreutils libyaml libksba readline zlib openssl@1.1',

please read /Users/wangguosong/.rvm/log/1730338821_ruby-4.0.0/package_install_autoconf_automake_libtool_pkg-config_coreutils_libyaml_libksba_readline_zlib_openssl@1.1.log

Requirements installation failed with status: 1.

建议使用rbenv和ruby-build来代替RVM。

1. 首先安装 openssl@3:

brew install openssl@3

2. 安装rbenv和ruby-build:

brew install rbenv ruby-build

3. 设置rbenv环境并重启Shell:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

4. 安装Ruby3.3.1并指定openssl@3:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@3" rbenv install 3.3.1

5. 切换到新的Ruby版本:

rbenv global 3.3.1

之后我们就可以使用rbenv来管理Ruby版本。

七. 更换源

首先查看Ruby镜像的当前内容:

wangguosong@wangguosongdeMacBook-Pro-2 ~ % gem sources -l
*** CURRENT SOURCES ***https://gems.ruby-china.com/

如果不是ruby-china则执行下面代码删除源镜像并添加新镜像,再次验证:


gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
wangguosong@wangguosongdeMacBook-Pro-2 ~ % gem sources -l
*** CURRENT SOURCES ***https://gems.ruby-china.com/

八. 安装CocoaPods

执行命令安装CocoaPods到指定目录,过程中需要输入电脑密码:

wangguosong@wangguosongdeMacBook-Pro-2 ~ % sudo gem install -n /usr/local/bin cocoapods
Password:
Fetching rexml-3.3.9.gem
Fetching nanaimo-0.4.0.gem
....

如果安装了多个Xcode需要使用下面命令选择

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

九. 安装本地库

到上一步为止,其实我们已经可以正常使用Cocoapods了,但是为了方便起见通常我们会安装一份pods仓库到本地。

原来安装本地库的方法为pod setup,但先执行该命令会直接提示“Setup completed”:

wangguosong@wangguosongdeMacBook-Pro-2 ~ % pod setup
Setup completed

新的方法直接克隆仓库到本地目录:


git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk

对于没有VPN的同学可以使用国内镜像:


git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git  ~/.cocoapods/repos/trunk

十. 使用CocoaPods

接下来我们只需要在已经创建好Profile文件的项目中执行 pod update,或者pod install:

wangguosong@wangguosongdeMacBook-Pro-2 MeMe % ls
MeMe			MeMeTests		Podfile.lock
MeMe.xcodeproj		MeMeUITests		Pods
MeMe.xcworkspace	Podfile			Profile
wangguosong@wangguosongdeMacBook-Pro-2 MeMe % pod update  
Update all pods
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Installing MJRefresh (3.7.9)
Generating Pods project
Integrating client project
Pod installation complete! There are 2 dependencies from the Podfile and 2 total pods installed.

结语

CocoaPods的安装步骤很多,如果一切顺利很快就会安装完成,但对于新手或者不熟悉的同学可能会花费一天甚至更多的时间,本篇博客总结了CocoaPods安装的详细步骤以及遇到问题的解决方案,希望能够帮助大家顺利安装CocoaPods开启iOS编程之旅。如果在使用中有任何问题,也可以通过博客联系到我嗷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/162.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【计网】深入理解NAT机制,内网穿透与内网打洞,代理服务

我没胆量犯错 才把一切错过 --- 林夕 《我对不起我》--- 一文了解NAT机制,代理服务,内网穿透 1 再谈 NAT 机制2 内网穿透与内网打洞3 代理服务器 1 再谈 NAT 机制 NAT机制我们在解决IP地址不足的问题中提到过。为了解决IP地址不足的问题,采…

Docker篇(安装容器)

目录 一、安装mysql容器 1. 拉取mysql镜像 2. 创建并运行容器 二、安装Tomcat容器 1. 拉取镜像 2. 创建并运行容器 三、安装Nginx容器 1. 拉取镜像 2. 创建并运行容器 四、安装Redis容器 1. 拉取镜像 2. 创建并运行容器 五、安装RabbitMQ 1. 拉取镜像 2. 创建并运…

App Inventor 2 列表显示框能否实现多选?

Q:列表显示框有没有办法做到多选的功能? // 问题分析 // AppInventor2列表显示框原生并没有多选功能,只能点击其中一项,然后触发“选择完成时”这个事件,那么有没有办法做到多选呢? // 问题思路 // 经过…

PropTypes 和 TypeScript 在 React 中的比较

文章目录 引言PropTypes什么是 PropTypes?如何使用 PropTypes优点缺点 TypeScript什么是 TypeScript?如何使用 TypeScript优点缺点 选择建议总结 引言 在 React 开发中,组件的可复用性和可维护性至关重要。为了确保组件接收到正确的 props&a…

进程间通信(命名管道 共享内存)

文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用:premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树,故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中&#xff0c…

计算机毕业设计Hadoop+大模型旅游推荐系统 旅游景点推荐 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 开题报告 设计&#xff08…

一般无人机和FPV无人机的区别

文章目录 一般无人机的工作原理关键组件:一般无人机的应用领域一般无人机的操控体验 FPV无人机的工作原理关键组件:FPV无人机的应用领域FPV无人机的操控体验性能特点FPV无人机的性能特点 未来无人机发展方向和通信方式拓展 一般无人机的工作原理 一般无…

react基础之redux快速上手环境准备

文章目录 核心概念配置基础环境提交action传参异步状态操作redux调试-devtools配套工具 Redux 是一个状态管理库,通常与 React 一起使用,帮助开发者管理应用的全局状态。它的核心理念是将应用的状态存储在一个单一的、不可变的状态树中,并通过…

OAuth2.0 动态注册客户端

什么是 OAuth 2.0 客户端自动注册? OAuth 2.0 客户端注册通常是在授权服务器的管理界面或通过静态配置文件手动完成的。客户端自动注册是指应用在启动或运行过程中通过代码与 OAuth 2.0 授权服务器交互,自动注册并获取 client_id 和 client_secret 等必…

启纬科技发布6色无源电子纸手机壳InkaceE6

杭州启纬科技有限公司投稿:无源NFC技术的开创者和领导者,杭州启纬科技有限公司于北京时间2024年10月28号正式发布了面向iOS系统和安卓/鸿蒙系统的6色无源电子纸手机壳---InkaceE6系列产品及配套方案。 图1:手机壳高清图 图2:6色与3色、4色效果对比图,海边美女 启纬…

鸿蒙生态下开发挑战-鸿蒙低代码开发工具展望及优势

鸿蒙生态下开发挑战 在鸿蒙生态下开发时,开发者可能会遇到多方面的挑战,这些挑战主要涉及开发工具、技术难度、生态竞争以及市场定位等方面。以下是对这些挑战的详细分析: 一、开发工具不完善 尽管鸿蒙系统的开发工具DevEco Studio在逐步完…

CSS 超出一行省略号...,适用于纯数字、中英文

文本超出显示省略号... 代码: .ellipsis{ overflow: hidden; -webkit-line-clamp:1; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; word-break: break-all; /** 纯数字、中英文都适用 */ }

vscode markdown-image 图片粘贴自动上传到本地目录设置

.vscode/settings.json文件内容 {"markdown-image.base.fileNameFormat": "${hash}-${YY}${MM}${DD}-${HH}${mm}${ss}","markdown-image.local.path": "./images","markdown-image.base.uploadMethod": "Local",…

java设计模式之结构型模式(7种)

结构型模式 描述如何将类或者对象按某种布局组成更大的结构。它分为结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者通过组合或聚合来组合对象。 分为7种:代理模式、适配器模式、装饰者模式、桥接模式、外观模式、组合模式、…

Java序列化与反序列化

文章目录 一、Java序列化和反序列化1、序列化和反序列化的含义和用途序列化主要使用场景反序列化漏洞出现的原因 下一期 一、Java序列化和反序列化 1、序列化和反序列化的含义和用途 Java对象(存在于内存)———序列化——>>字符串/二进制流&…

Vue computed watch

computed watch watch current prev

基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)

🎈系统亮点:协同过滤算法、节流算法、支付宝沙盒支付、图形化分析、实时聊天; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk1…

GetX的一些高级API

目录 前言 一、一些常用的API 二、局部状态组件 1.可选的全局设置和手动配置 2.局部状态组件 1.ValueBuilder 1.特点 2.基本用法 2.ObxValue 1.特点 2.基本用法 前言 这篇文章主要讲解GetX的一些高级API和一些有用的小组件。 一、一些常用的API GetX提供了一些高级…

第三届北京国际水利科技博览会将于25年3月在国家会议中心召开

由中国农业节水和农村供水技术协会、北京水利学会、振威国际会展集团等单位联合主办的第三届北京国际水利科技博览会暨供水技术与设备展(北京水利展)将于2025年3月31日至4月2日在北京•国家会议中心举办! 博览会以“新制造、新服务、新业态”…

基于SpringBoot的学生读书笔记共享的设计与实现

一、项目背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”,用户可以选择所需的信息进入系统查看…