当前位置: 首页 > news >正文

iOS 之homebrew ruby cocoapods 安装

 cocoapods安装需要ruby,更新ruby需要rvm,下载rvm需要gpg,下载gpg需要homebrew,所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods

Rvm 官网: RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation
Ruby 官网:RubyGems.org | your community gem host
CocoaPods 官网:https://cocoapods.org/
Rvm 安装指南:RVM: Ruby Version Manager - Installing RVM
Homebrew 官网:http://brew.sh/index_zh-cn.html
ruby 镜像 - china:https://gems.ruby-china.org/

一  介绍

1. Homebrew

 Homebrew是一个软件包管理器,用于在mac上安装一些os x上没有的UNiX工具;

2.Rvm 介绍

  Rvm全称 Ruby Version Manager,是安装和管理 ruby的一种工具。

3.Ruby 介绍

 Ruby是一种面向对象的脚本语言,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。

4. CocoaPods 介绍

  CocoaPods是 iOS 最常用的第三方类库管理工具,绝大部分有名的开源类库都支持 CocoaPods

  CocoaPods是用 ruby实现的,要想使用它首先需要有 ruby的环境。幸运的是OS X系统默认已经可以运行 ruby了。但是有时候 ruby版本过低是无法正常支持 CocoaPods的使用,所以需要先安装更新升级 rvm和 ruby

二 安装

1. 安装Homebrew

彻底卸载Homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

 重新安装Homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2.因为目前最新的苹果系统自带的ruby版本为2.6的版本,不能安装最新的cocoapod,所以我们需要先安装rvm,然后通过rvm安装新版本的ruby,rvm是一个多版本ruby控制软件。 

curl -L https://get.rvm.io | bash -s stable

 这时候 直接用ruby -v 查看ruby版本,可以看到还是2.6,需要切换2.7版本
rvm use ruby-2.7.2报以下错误

输入以下代码解决问题。 

source ~/.bash_profile

 再次输入rvm use ruby-2.7.2  就没问题了

但是去安装cocoapods 时又变回2.6,通过以下代码设置默认为2.7.2

rvm --default use 2.7.2

3、开始安装cocoapods,输入命令行以后,需要在Password:后面输入电脑开机密码,然后回车开始安装

sudo gem install cocoapods
或者
sudo gem install -n /usr/local/bin cocoapods

 

 已经成功安装,查看pod版本

pod --version

相关文章:

iOS 之homebrew ruby cocoapods 安装

cocoapods安装需要ruby,更新ruby需要rvm,下载rvm需要gpg,下载gpg需要homebrew,所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods Rvm 官网: RVM: Ruby Version Manager - RVM Ruby Version Manager - Docum…...

【栈】2751. 机器人碰撞

本文涉及知识点 栈 LeetCode2751. 机器人碰撞 现有 n 个机器人,编号从 1 开始,每个机器人包含在路线上的位置、健康度和移动方向。 给你下标从 0 开始的两个整数数组 positions、healths 和一个字符串 directions(directions[i] 为 ‘L’ …...

贪心算法06(leetcode738,968)

参考资料&#xff1a; https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 738. 单调递增的数字 题目描述&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。…...

cve_2022_0543-redis沙盒漏洞复现 vulfocus

1. 原理 该漏洞的存在是因为Debian/Ubuntu中的Lua库是作为动态库提供的。自动填充了一个package变量&#xff0c;该变量又允许访问任意 Lua 功能。 2.复现 我们可以尝试payload&#xff1a; eval local io_l package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so…...

浅解Reids持久化

Reids持久化 RDB redis的存储方式&#xff1a; rdb文件都是二进制&#xff0c;很小&#xff0c;里面存的是数据 实现方式 redis-cli链接到redis服务端 使用save命令 注&#xff1a;不推荐 因为save命令是直接写到磁盘里面&#xff0c;速度特别慢&#xff0c;一般都是redis…...

Java24:会话管理 过滤器 监听器

一 会话管理 1.cookie 是一种客户端会话技术&#xff0c;cookie由服务端产生&#xff0c;它是服务器存放在浏览器的一小份数据&#xff0c;浏览器 以后每次访问服务器的时候都会将这小份的数据带到服务器去。 //创建cookie对象 Cookie cookie1new Cookie("…...

web前端电影简介标签:深度解析与创意应用

web前端电影简介标签&#xff1a;深度解析与创意应用 在web前端开发中&#xff0c;电影简介标签的设计与实现是一项既具挑战性又充满创意的任务。这些标签不仅需要准确传达电影的核心信息&#xff0c;还要通过精美的设计和交互效果吸引用户的眼球。本文将从四个方面、五个方面…...

Java面向对象-方法的重写、super

Java面向对象-方法的重写、super 一、方法的重写二、super关键字1、super可以省略2、super不可以省略3、super修饰构造器4、继承条件下构造方法的执行过程 一、方法的重写 1、发生在子类和父类中&#xff0c;当子类对父类提供的方法不满意的时候&#xff0c;要对父类的方法进行…...

解锁ChatGPT:从GPT-2实践入手解密ChatGPT

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…...

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题 2024/6/5 13:53 rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh --help rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lun…...

c++手写的bitset

支持stl bitset 类似的api #include <iostream> #include <vector> #include <climits> #include <utility> #include <stdexcept> #include <iterator>using namespace std;const int W 64;class Bitset { private:vector<unsigned …...

【机器学习系列】深入理解集成学习:从Bagging到Boosting

目录 一、集成方法的一般思想 二、集成方法的基本原理 三、构建集成分类器的方法 常见的有装袋&#xff08;Bagging&#xff09;和提升&#xff08;Boosting&#xff09;两种方法 方法1 &#xff1a;装袋&#xff08;Bagging&#xff09; Bagging原理如下图&#xff1a; …...

用FFMPEG对YUV序列进行编辑的笔记

还是单独开一个吧 每次找挺烦的 播放YUV序列 ffmpeg -f rawvideo -pix_fmt yuv420p -s 3840x2160 -i "Wood.yuv" -vf "scale1280x720" -c:v rawvideo -pix_fmt yuv420p -f sdl "Wood"4K序列转720P ffmpeg -f rawvideo -pix_fmt yuv420p -s 38…...

智能投顾:重塑金融理财市场,引领行业新潮流

一、引言 在数字化浪潮的推动下,金融行业正经历着前所未有的变革。其中,智能投顾作为金融科技的重要分支,以其高效、便捷和个性化的服务,逐渐成为金融理财市场的新宠。本文旨在探讨智能投顾如何引领金融理财新潮流,通过丰富的案例及解决方案,展示其独特的魅力和价值。 二…...

iOS18 新变化提前了解,除了AI还有这些变化

iOS 18即将在不久的将来与广大iPhone用户见面&#xff0c;这次更新被普遍认为是苹果历史上最重要的软件更新之一。据多方报道和泄露的消息&#xff0c;iOS 18将带来一系列全新的功能和改进&#xff0c;包括在人工智能领域的重大突破、全新的设计元素以及增强的性能和安全性。现…...

力扣算法题:多数元素 --多语言实现

无意间看到&#xff0c;力扣存算法代码居然还得升级vip。。。好吧&#xff0c;我自己存吧 golang&#xff1a; func majorityElement(nums []int) int {count : 0condidate : 0for _,val : range nums {if count 0 {condidate valcount 1} else if val condidate {count} …...

[Kubernetes] 容器运行时 Container Runtime

文章目录 1.容器运行时(Container Runtime)2.容器运行时接口3.容器运行时层级4.容器运行时比较5.强隔离容器6.K8S为何难以实现真正的多租户 1.容器运行时(Container Runtime) Container Runtime 是运行于 k8s 集群每个节点中&#xff0c;负责容器的整个生命周期。Docker 就目前…...

10进制与二、八、十六进制的转换

x进制转10进制 1、如八进制数123&#xff0c;通过把每一位数字和8的指数级进行相乘 1 * 8^2 2 * 8^1 3 * 8^01 * 64 2 * 8 3 * 164 16 383 2、十六进制1A3 1 * 16^2 A(即10) * 16^1 3 * 16^01 * 256 10 * 16 3 * 1256 160 3419 3、二进制1010 1 * 2^3 0 * 2…...

日常实习-小米计算机视觉算法岗面经

文章目录 流程问题请你写出项目中用到的模型代码&#xff0c;Resnet50&#xff08;1&#xff09;网络退化现象&#xff1a;把网络加深之后&#xff0c;效果反而变差了&#xff08;2&#xff09;过拟合现象&#xff1a;训练集表现很棒&#xff0c;测试集很差 把你做的工作里面的…...

(C++)string模拟实现

string底层是一个是字符数组 为了跟库里的string区别&#xff0c;所以定义一个命名空间将类string包含 一、构造 1.构造函数 注意&#xff1a;将char*传给const char*是范围缩小&#xff0c;因此只能1&#xff1a;1构造一个 strlen遇到nullptr解引用会报错&#xff0c;因此…...

Excalidraw结合MCP协议:实现智能架构图与开发生态动态连接

1. 项目概述&#xff1a;当Excalidraw遇见MCP&#xff0c;架构图绘制的效率革命如果你和我一样&#xff0c;日常工作中需要频繁绘制系统架构图、流程图&#xff0c;那么你一定对Excalidraw不陌生。这款开源的、手绘风格的绘图工具&#xff0c;以其简洁、直观和强大的协作能力&a…...

AI 测试用例审核 Skill:把用例评审从“凭经验”变成“可评分”

导读测试用例写完以后&#xff0c;最怕的不是数量不够&#xff0c;而是评审会上被连续追问&#xff1a;“这个前置条件是什么&#xff1f;” “这里为什么直接跳到下一步&#xff1f;” “预期结果怎么算出来的&#xff1f;” “边界值有没有覆盖&#xff1f;” “PRD 里这个互…...

等保2.0合规实战:Redis安全配置核查与加固指南

1. Redis安全配置入门&#xff1a;为什么等保2.0要求这么严格&#xff1f; 我第一次接触Redis安全配置是在一次等保2.0合规检查中。当时客户系统因为Redis默认配置导致数据泄露&#xff0c;整个项目组连夜加班整改。从那以后&#xff0c;我就养成了每次部署Redis必做安全检查的…...

基于Kubernetes跑通第一个云原生应用【20260516】002篇

文章目录 📖 理论深潜:Kubernetes 架构与容器底层原理 1. 云原生与 K8s 核心概念 为什么需要 K8s?(从痛点出发) 深度解析:容器底层三大魔法 ① NameSpace(命名空间):隔离的围墙 ② Cgroups(控制组):资源的天花板 ③ UnionFS(联合文件系统):分层的积木 2. K8s 架…...

告别命令行!用Python脚本批量管理Docker容器和镜像的实战技巧

告别命令行&#xff01;用Python脚本批量管理Docker容器和镜像的实战技巧 在DevOps和云原生技术快速发展的今天&#xff0c;Docker已经成为现代应用部署的标准工具。然而&#xff0c;随着容器数量的增加和部署频率的提高&#xff0c;手动通过命令行管理Docker容器和镜像变得越来…...

汽车电子实战指南:从零到一,用CANdb++ Editor构建你的首个DBC文件

1. 认识DBC文件&#xff1a;汽车电子的"通讯词典" 第一次接触DBC文件时&#xff0c;我把它想象成汽车电子系统的"通讯词典"。就像不同国家的人需要字典来理解彼此的语言&#xff0c;汽车里的各个ECU&#xff08;电子控制单元&#xff09;也需要DBC文件来解…...

智能卡通信调优实战:手把手教你用逻辑分析仪抓取并解析ISO7816 PPS协商过程

智能卡通信调优实战&#xff1a;手把手教你用逻辑分析仪抓取并解析ISO7816 PPS协商过程 在嵌入式系统和智能卡应用开发中&#xff0c;通信稳定性往往是项目成败的关键。当你的智能卡设备频繁出现通信中断、数据丢失或速率不达标时&#xff0c;问题很可能隐藏在协议协商阶段。IS…...

软电路入门:用导电缝纫线与LED制作可穿戴发光作品

1. 项目概述&#xff1a;当缝纫遇见电路 几年前&#xff0c;我第一次把一颗会发光的LED缝到帆布包上时&#xff0c;那种感觉非常奇妙。它不再是冰冷的电路板&#xff0c;而是布料纹理的一部分&#xff0c;随着针脚的走向亮起柔和的光。这就是软电路&#xff0c;或者说电子纺织品…...

Mac小白必看:手把手教你用终端命令重建丢失的Recovery HD分区(附详细路径解释)

Mac用户自救指南&#xff1a;彻底掌握Recovery HD分区修复全流程 当你发现CommandR组合键失效时&#xff0c;那种无助感我深有体会。去年帮朋友修复一台二手MacBook时&#xff0c;我们花了整整一个下午才搞明白为什么恢复模式无法启动——原来前主人为了腾出空间删除了Recovery…...

Linux 下用火焰图进行性能分析

软件的性能分析&#xff0c;往往需要查看 CPU 耗时&#xff0c;了解瓶颈在哪里。火焰图 (flame graph) 是性能分析的利器。 1. 火焰图简介 很多人感冒发烧的时候&#xff0c;往往会模仿神农氏尝百草的路子&#xff1a;先尝尝抗病毒的药&#xff0c;再试试抗细菌的药&#xff…...