Mac M2 Pro安装使用Cocoapods

Mac Pro M2安装使用Cocoapods

在新公司要做iOS开发,所以在新电脑上安装Cocoapods

在升级gem,sudo gem update --system,和安装cocoapods时都遇到如下的提示:

ERROR:  While executing gem ... (Errno::EPERM)Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem

原因大概是:Apple已内置安装了ruby,不能修改

参考:

  • While executing gem … (Gem::FilePermissionError)

the reason why you are getting that error is because Apple doesn’t allow you to install gems directly into the version of Ruby that came preinstalled on your Mac

其中的一个解决办法就是,可通过安装ruby版本管理器来解决,如chruby或者RVM

安装chruby

参考Install Ruby 3.1 · macOS

brew install ruby-install chruby

安装后按提示,在.zshrc 中写入如下的内容:

source /opt/homebrew/opt/chruby/share/chruby/chruby.sh
source /opt/homebrew/opt/chruby/share/chruby/auto.sh
chruby ruby-3.2.2

注意chruby ruby-3.2.2,这个地方的ruby版本,已你安装的版本为准

然后安装Ruby,如下的代码安装并使用最新的ruby

ruby-install --latest ruby

安装之前看下当前系统的ruby的版本:

ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]

SwitchHosts

在安装过程中,可能会提示raw.githubusercontent.com网站的内容不能访问,此时需要配置host,推荐安装SwitchHosts
host配置如下:

185.199.110.133  raw.githubusercontent.com

或者参考:

  • ineo6/hosts

配置一个远程的,自动更新的host

然后可能需要重启系统才生效。继续执行ruby-install --latest ruby

chruby

参考:

  • postmodern/chruby

使用chruby命令列出可用的ruby
chruby

使用chruby 3.2.2,选择3.2.2的版本
chruby

cocoapods

参考官方文档:

  • WHAT IS COCOAPODS

安装cocoapods

sudo gem install cocoapods

cocoapods镜像

原始源地址为https://github.com/CocoaPods/Specs.git
参考CocoaPods 镜像使用帮助

$ cd ~/.cocoapods/repos 
$ pod repo remove master
$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

最后进入自己的工程,在自己工程的podFile第一行加上:

source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'

ruby镜像

移除现有的Ruby镜像

 gem sources --remove https://rubygems.org/

添加清华的镜像,参考Ruby Gems 镜像使用帮助

# 添加镜像源并移除默认源
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
# 列出已有源
gem sources -l
# 应该只有镜像源一个

gem

gem相关,可参考:

  • RubyGems

查看gem版本:

gem -v

遇到的问题

1.pod install时提示HTTP/2 stream 1 was not closed cleanly before end of the underlying stream

error
按网络上的说法解决:

git config --global http.version HTTP/1.1

2.git clone时的各种出错
猜测是由于国内的网络环境造成的,所以可以给git配置代理

查看git代理:

git config --global --get http.proxy
git config --global --get https.proxy

设置git代理:

git config --global http.proxy "http://127.0.0.1:7890"
git config --global https.proxy "https://127.0.0.1:7890"

取消设置:

git config --global --unset http.proxy
git config --global --unset https.proxy

其他

可参考:

  • m1 silicon macos 安装 cocoapods
  • CocoaPods 常见问题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下安装nodejs

1、下载nodejs 点击前往:Download | Node.js 2、解压 tar -xvf node-v18.16.0-linux-x64.tar.xz mv node-v18.16.0-linux-x64/ /usr/local/nodejs 3、 建立软链接 此时的bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题…

现代C++:使用 shared_from_this 防止 this 提前被释放

首先概括一下shared_from_this的作用:可以在类的成员函数中直接通过this得到指向当前所在对象的shared_ptr的智能指针,具体操作如下。 使用方法 设需要提供shared_from_this方法的类为C0定义为类,首先需要将C0定义为 std::enable_shared_fr…

mysql 02 数据库的约束

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下: 主键约束 主键约束即primary key用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。这点类似…

前后端分离------后端创建笔记(10)用户修改

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

Spring Boot实现第一次启动时自动初始化数据库流程详解

随着互联网的发展项目中的业务功能越来越复杂,有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务,但是远程服务的健壮性和网络稳定性都是不可控因素。 在测试阶段可能没有什么异常情况,但上线后可能会出…

设计HTML5文本

网页文本内容丰富、形式多样,通过不同的版式显示在页面中,为用户提供最直接、最丰富的信息。HTML5新增了很多文本标签,它们都有特殊的语义,正确使用这些标签,可以让网页文本更严谨、更符合语义。 1、通用文本 1.1、标…

算法竞赛备赛之搜索与图论训练提升,暑期集训营培训

目录 1.DFS和BFS 1.1.DFS深度优先搜索 1.2.BFS广度优先搜索 2.树与图的遍历:拓扑排序 3.最短路 3.1.迪杰斯特拉算法 3.2.贝尔曼算法 3.3.SPFA算法 3.4.多源汇最短路Floy算法 4.最小生成树 4.1.普利姆算法 4.2.克鲁斯卡尔算法 5.二分图:染色法…

7. CSS(四)

目录 一、浮动 (一)传统网页布局的三种方式 (二)标准流(普通流/文档流) (三)为什么需要浮动? (四)什么是浮动 (五)浮…

OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己

目录 前言 OpenAI招了一千多名外包人员,训练AI学会像人类一样一步步思考。如果ChatGPT「学成归来」,码农恐怕真的危了? 码农真的危了! 当时OpenAI也说,ChatGPT最合适的定位,应该是编码辅助工具。 用Cha…

计算机竞赛 opencv 图像识别 指纹识别 - python

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器视觉的指纹识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适…

Vue引入Echarts报错 import * as echarts from “echarts“;

项目场景: 已经下载好echarts cnpm i echarts Vue引入Echarts import echarts from echarts mounted() {this.myChart echarts.init(document.querySelector(.right))this.myChart.setOption({title: {text: 消费列表,left: center},...问题描述 原因分析&#…

【100天精通python】Day38:GUI界面编程_PyQT从入门到实战(中)

目录 专栏导读 4 数据库操作 4.1 连接数据库 4.2 执行 SQL 查询和更新: 4.3 使用模型和视图显示数据 5 多线程编程 5.1 多线程编程的概念和优势 5.2 在 PyQt 中使用多线程 5.3 处理多线程间的同步和通信问题 5.3.1 信号槽机制 5.3.2 线程安全的数据访问 Q…

日常BUG——通过命令行创建vue项目报错

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 在使用vue命令行创建一个vue项目时,出现一下的错误: vue create my…

UDP数据报结构分析(面试重点)

在传输层中有UDP和TCP两个重要的协议,下面将针对UDP数据报的结构进行分析 UDP结构图示 UDP报头结构的分析 UDP报头有4个属性,分别是源端口,目的端口,UDP报文长度,校验和,它们都占16位2个字节,所…

【java面向对象中static关键字】

提纲 static修饰成员变量static修饰成员变量的应用场景static修饰成员方法static修饰成员方法的应用场景static的注意事项static的应用知识:代码块static的应用知识:单例设计模式 static静态的意思,可以修饰成员变量,成员方法&a…

FPGA_学习_14_第一个自写模块的感悟和ila在线调试教程与技巧(寻找APD的击穿偏压)

前一篇博客我们提到了,如果要使用算法找到Vbr,通过寻找APD采集信号的噪声方差的剧变点去寻找Vbr是一个不错的方式。此功能的第一步是在FPGA中实现方差的计算,这个我们已经在上一篇博客中实现了。 继上一篇博客之后,感觉过了很久了…

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用 作者:安静到无声 个人主页 数据加载程序示意图 使用方法 示例代码 #%%from __future__ import absolute_import from __future__ import division from __future__ import print_…

开源,微信小程序 美食便签地图(FoodNoteMap)的设计与开发

目录 0 前言 1 美食便签地图简介 2 美食便签地图小程序端开发 2.1技术选型 2.2前端UI设计 2.3主页界面 2.4个人信息界面 2.5 添加美食界面 2.6美食便签界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子页面-店铺详情界面 2.11 后台数据缓存 2.12 订阅消息通知 2.1…

探索区块链世界:去中心化应用(DApp)的崭新前景

随着科技的不断发展,区块链技术逐渐引领着数字时代的潮流。在这个充满创新和变革的领域中,去中心化应用(DApp)成为了备受瞩目的焦点。DApp 不仅改变了传统应用程序的范式,还在金融、社交、游戏等多个领域展现出了广阔的…

GRPC 链接 NODE 和 GOLANG

GRPC 链接 NODE 和 GOLANG GRPC 了解 什么是GRPC gRPC 采用了 Protocol Buffers 作为数据序列化和反序列化的协议,可以更快速地传输数据,并支持多种编程语言的跨平台使用gRPC 提供“统一水平层”来对此类问题进行抽象化。 开发人员在本机平台中编写专…