mac电脑安装cocoapods出错,以及安装最新版本ruby方法

macbook安装cocoapods时碰到一个报错:大概率是ruby的版本太低导致的

sudo gem install cocoapods
ERROR:  Error installing cocoapods:
ERROR: Failed to build gem native extension.
...
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

出现这种情况,大概率是我电脑 ruby 的版本太低了,导致不能安装最新的CocoaPods

安装flutter的环境参考官方文档:Start building Flutter native desktop apps on macOS - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter

那不安装最新 CocoaPods ,指定一个低版本是否可行呢?参考 Mac Flutter环境配置 — CocoaPods not installed解决方案。

sudo gem install cocoapods -v 1.8.4

使用如上命令确实安装成功了,但在 Flutter 中启动 Xcode 就会报错,启动失败。

Warning: CocoaPods minimum required version 1.9.0 or greater not installed. Skipping pod install.

根据以上,提醒我们需要一个至少 1.9 版本的 CocoaPods,那我卸载然后继续安装 1.9 版本是否就可以了呢?

# 卸载
sudo gem uninstall cocoapodssudo gem install cocoapods -v 1.9.4

我尝试后,发现又安装失败。所以现在的情况就只有一个办法,升级 ruby

使用 homebrew 安装新版本 ruby:

brew install ruby

会在安装完后提示两个路径:将这两个路径复制到你的命令行,重新执行一下 

 

我们配置新安装ruby的环境变量,不用多想,按照提示来(不要复制如下路径,复制你终端提示的命令)

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/**/.bash_profileexport LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"source /Users/**/.bash_profile

就可以看到版本最新了:
 

再安装 cocoapods,如果之前有安装记得先卸载(卸载命令上面有):

# 卸载
sudo gem uninstall cocoapods# 安装
sudo gem install cocoapods

就会提示安装成功了: 

 

如果上面安装后运行项目还提醒没有安装 cocoapods not installing,那就这样做:

sudo gem uninstall cocoapods
sudo gem install -n /usr/local/bin cocoapods

 

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

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

相关文章

Mountain Lake - Forest Pack

从头开始构建的50个岩石森林资源集合,充分利用了HDRP。还支持Universal 和Built-In。 支持Unity 2020.3+、高清渲染管线、通用渲染管线、标准渲染管线。导入包后,按照README中的说明进行操作。 Mountain Lake - Rock & Tree Pack是一个由50个准备好的资源组成的集合,从头…

如何运行心理学知识(心流)来指导工作和生活

如何运用心流来指导工作和生活 如何联系我 作者:鲁伟林 邮箱:thinking_fioa163.com或vlinyes163.com GitHub:https://github.com/thinkingfioa/ReadingSummary 版权声明:文章和记录为个人所有,如果转载或个人学习…

提高网站访问速度 nginx 常用配置参数

Nginx是一种高性能的HTTP和反向代理服务器,因其轻量级、高并发处理能力和易于配置而广受欢迎。要提高网站访问速度,可以通过优化Nginx配置来实现。以下是一些可以用来提高网站访问速度的Nginx配置参数,以及它们的详细说明: …

命令行参数、环境变量

1. 命令行参数 大家平时在写主函数时基本是无参的,但其实是有参数的,先介绍前两个参数。 int main(int argc, char* argv[])第二个参数是指针数组,第一个参数是该数组的个数,我们先来写 一段代码来看看指针数组里面是什么。 1 #…

Vue3父子组件传参

一,父子组件传参: 应用场景:父子组件传参 Vue3碎片:defineEmits,defineProps,ref,reactive,onMounted 1.父组件传子组件 a.父组件传参子组件 import { ref} from vue import OnChi…

【力扣】快乐数,哈希集合+快慢指针+数学

快乐数原题地址 方法一:哈希集合 定义函数getNext(n),返回n的所有位的平方和。一直执行ngetNext(n),最终只有2种可能: n停留在1。无限循环且不为1。 证明:情况1是存在的,如力扣的示例一: 接…

Linux free命令教程:轻松愉快的掌握内存管理(附案例详解和注意事项)

Linux free命令介绍 free命令用于获取系统中可用的总随机存取内存量,已使用的内存量和系统中可用的交换内存量。free命令或实用程序还显示内核使用的缓冲内存⁵。 Linux free命令适用的Linux版本 free命令在所有主流的Linux发行版中都是可用的,包括但…

微信自动预约小程序开发指南:从小白到专家

随着互联网的发展,小程序已经成为了一个备受欢迎的在线预约平台。本文将详细介绍如何使用第三方制作平台,如乔拓云网,来搭建一个从入门到精通的预约小程序。 首先,我们需要登录乔拓云网,并选择一个适合自己的小程序模板…

汽车控制臂的拓扑优化

前言 本示例使用优化模块通过减小控制臂的体积同时最大化其刚度来优化汽车控制臂的设计。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本例说明了汽车控制臂的拓扑优化,在拓扑优化过程中,修改设计区域中单元的材料特性(有效地从…

双非本科准备秋招(20.1)—— 并发编程之生产者消费者

生产者消费者 与保护性暂停中的不同,不需要产生结果和消费结果的线程一一对应。 生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据 JDK 中各种阻塞队列,采用的就是这种模式 代码实现: 首先…

【开源】基于JAVA+Vue+SpringBoot的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

MySQL之密码策略和用户授权

华子目录 密码策略查看数据库当前的密码策略密码策略详解caching_sha2_password_auto_generate_rsa_keyscaching_sha2_password_digest_roundscaching_sha2_password_private_key_pathcaching_sha2_password_public_key_pathdefault_password_lifetimedisconnect_on_expired_pa…

Java学习笔记2024/2/7

练习四:复制数组 需求: 把一个数组中的元素复制到另一个新数组中去。 package com.angus.comprehensiveExercise; ​ public class test4 {public static void main(String[] args) {//需求:// 把一个数组中的元素复制到另一个新数组中去…

Excel——合并计算

1.表格的合并计算(单张表格/多个表格) Q:请统计两个表格中各商品的总销量和总销售额,将结果放置在下方任意位置。 A:选择一个需要将合并计算数据放置区域的空白单元格 选择【数据】——【合并计算】,【函…

秘塔科技推出AI搜索产品「秘塔AI搜索」

近日,国内一家人工智能科技公司(秘塔科技)推出了一款AI搜索产品——秘塔AI搜索,能够大幅提升搜索效率,解决日常生活、工作学习等场景中遇到的各类搜索需求。 秘塔AI搜索官网:https://metaso.cn/ 相较于传统…

前端文件下载的多种方式

前端文件下载的多种方式。 前言a标签下载a标签常用属性介绍- target,href,download。 window.location.href下载window.open下载iframe 下载动态生成a标签下载文件url下载文件流下载blob文件流转换常用类型 使用 streamSaver 看实时下载进度 前言 如果我…

B站UP主实时信息获取展示php源码

B站UP主实时数据展示系统 - PHP源码分享 想要实时追踪你心仪的B站UP主的最新动态吗?现在,你可以轻松获取并展示B站UP主的实时数据,包括粉丝数、作品数、头像、播放量等关键信息。 功能亮点: 实时更新:系统通过B站AP…

OpenCV识别视频中物体运动并截取保存

功能很简单:输入原始视频,输出视频中有画面变化的部分 适合理解基本框架,可以在这个基础上增加各种酷炫时髦的功能 [doge] ※注释非常保姆级※ import cv2 import numpy as np import os from datetime import datetime# 检测两帧之间变化…

航芯ACM32G103开发板评测 08 ADC Timer外设测试

航芯ACM32G103开发板评测 08 ADC Timer外设测试 1. 软硬件平台 ACM32G103 Board开发板MDK-ARM Keil 2. 定时器Timer 在一般的MCU芯片中,定时器这个外设资源是非常重要的,一般可以分为SysTick定时器(系统滴答定时器)、常规定时…

【洛谷 P1143】进制转换 题解(数学+除基取余法)

进制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换。 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制 n ( 2 ≤ n ≤ 16 ) n\ (2\le n\le 16) n (2≤n≤16),第二行是一个 n n n 进制数,若 n >…