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 ~/.bashrc

source ~/.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编程之旅。如果在使用中有任何问题,也可以通过博客联系到我嗷。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于RMD算法模型的信号传输统计特性的matlab模拟仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于RMD算法模型的信号传输统计特性的matlab模拟仿真。参考的文献如下: 即通过RMD随机中点位置模型算法,实现上述文献的几个仿真图。 2.…

Axure设计之三级联动选择器教程(中继器)

使用Axure设计三级联动选择器(如省市区选择器)时,可以利用中继器的数据存储和动态交互功能来实现。下面介绍中继器三级联动选择器设计的教程: 一、效果展示: 1、在三级联动选择器中,首先选择省份&#xff…

清华大学提出Mini-Omni2:开源多模态模型,功能与GPT-4o媲美!

🌐 在人工智能领域,多模态模型的发展正如火如荼。今天,我们要介绍的是由清华大学提出的Mini-Omni2,这是一个开源的多模态语言模型,它在功能上与GPT-4o相媲美,能够理解和生成视觉、听觉和文本内容&#xff0…

Diffusion Policy——斯坦福刷盘机器人UMI所用的扩散策略(含Diff-Control、ControlNet详解)

前言 本文一开始是属于此文《UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)》的第三部分,考虑后Diffusion Policy的重要性很高,加之后续还有一系列基于其的改进工作 故独立成本文,且把原属于另一…

AI 写作(五)核心技术之文本摘要:分类与应用(5/10)

一、文本摘要:AI 写作的关键技术 文本摘要在 AI 写作中扮演着至关重要的角色。在当今信息爆炸的时代,人们每天都被大量的文本信息所包围,如何快速有效地获取关键信息成为了一个迫切的需求。文本摘要技术正是为了解决这个问题而诞生的&#x…

一个怀旧,俺的第一个共享软件

今天网友说起了 福彩双色球的程序。俺就想起这个来了,这是俺的第一个共享软件,收入大约15000。在当时来说,速度算是最快的。有些地方用了汇编优化(题外话,最近俺看到新闻,FFmpeg的作者也用汇编优化 性能提升…

【Agent综述】Agent在多模态交互的应用

note 这个工作收集了多模态游戏、机器人和医疗等领域的数据集,包括Minecraft视频数据、虚拟家庭环境数据和医疗图像数据。利用LLMs和VLMs作为智能体,特别是在游戏、机器人技术和医疗保健等领域这篇论文提出了一种新的Agent AI框架,通过结合大…

Kafka - 启用安全通信和认证机制_SSL + SASL

文章目录 官方资料概述制作kakfa证书1.1 openssl 生成CA1.2 生成server端秘钥对以及证书仓库1.3 CA 签名证书1.4 服务端秘钥库导入签名证书以及CA根证书1.5 生成服务端信任库并导入CA根数据1.6 生成客户端信任库并导入CA根证书 2 配置zookeeper SASL认证2.1 编写zk_server_jass…

STM32H503开发(1)----开发板测试

STM32H503开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载产品特性参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32H503 & SENSOR是一款基于STM32H5系列微控制器的评估套件。该微控制器采用了40nm工艺制造,具有更…

3.1 > Shell

本节概览 在 上一节 中我们了解了 Linux 的桌面环境,包括 GUI 、 TTY 和 VNC 等的介绍和使用。在本节中将介绍 Shell 是个什么东西,我们到底是如何通过 Shell 来操作计算机的,以及一些常见的 Shell 版本有哪些和它们有什么特点。 目录 本节…

C++ -- 多态与虚函数

多态 概念 多态(polymorphishm):通常来说,就是指事物的多种形态。在C中,多态可分为编译时多态(静态多态)和运行时多态(动态多态),这里我们重点讲的是运行时多…

利用游戏引擎的优势

大家好,我是小蜗牛。 在当今快速发展的游戏产业中,选择合适的游戏引擎对开发者来说至关重要。Cocos Creator作为一款功能强大且灵活的游戏引擎,为开发者提供了丰富的工具和资源,使他们能够高效地开发出优秀的游戏。本文将探讨如何…

uniapp配置h5路由模式为history时404

为了不让URL中出现#,让uniapp项目配置h5路由模式为hisory 然而本地好好的,放到服务器上却404了。 解决方法是给nginx配置一个伪静态: location /xxx-html/ {alias /home/nginx_web/xxx_new_html/;try_files $uri $uri/ /xxx-html/index.ht…

架构师备考-概念背诵(软件工程)

软件工程 软件开发生命周期: 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。软件运行和维护:就是…

小白docker入门简介

Dockerfile入门使用分享 一、docker是啥二、镜像仓库三、自定义镜像四、动手做机甲玩偶五、帮我做数学题六、计算功能的写法七、咒语翻译器八、放屁九、解决问题 一、docker是啥 最开始我和你一样,围着镜像、容器、docker的名词团团转,其实没那么复杂。…

一文学习Android中的Property

在 Android 系统中,Property 是一种全局的键值对存储系统,允许不同组件和进程间以轻量级的方式进行数据传递。它主要用于系统配置、状态标识等场景,使得不同进程能够通过属性的设置或获取来通信。property 的核心特性是快速、高效&#xff0…

node.js安装配置(Windows)

1、下载 CNPM Binaries Mirror 2、安装 3、验证 win R 进入cmd 4、配置环境变量 4.1、创建两个文件夹 4.2、安装目录进入cmd(配置全局属性) 配置两个命令: npm config set prefix "D:\liyunqing\nodejs\node_global"npm config set cache "D:\l…

mp3格式音频怎么做成二维码?扫码获取音频文件的制作方法

随着二维码的广泛使用,现在很多内容都会通过生成二维码的方式来传输内容,通过这种方式可以更快捷的实现内容分享,简化其他人获取内容的流程,有效提高效率。音频是目前常见的一种内容分享方式,比如录音、听力、音乐等类…

【css flex 多行均分有间隙布局】

小程序、web均可使用&#xff0c;我当前用的是小程序 <view class"job_tab_container flex_between"><view class"job_tab_item"></view><view class"job_tab_item"></view><view class"job_tab_item&qu…

单臂路由技术,eNSP实验讲解

单臂路由技术&#xff0c;eNSP实验讲解 一、简要介绍1、概念2、工作原理3、优点4、缺点5、应用场景举例 二、eNSP仿真实验1、步骤一&#xff1a;2、步骤二&#xff1a;3、步骤三&#xff1a;4、步骤四&#xff1a; 三、总结。 一、简要介绍 1、概念 单臂路由&#xff08;Rout…