首页 > 编程语言 >Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can't find header files for ruby at xxx

Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can't find header files for ruby at xxx

时间:2023-02-25 14:03:36浏览次数:57  
标签:11 files 安装 Xcode Library 2.3 ruby


错误信息

mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can

我主要是新买的macbook pro,安装了XCode 11,然后就遇到这个安装Cocoapods的错误,之前从来没有遇到过

后来经过了各种搜索后,解决思路和办法如下:

重点

在​​macOS 10.14​​​ 上安装了​​Xcode 11​​​,也需要安装了​​Xcode command line tools​

$ sudo xcode-select --install

增加了一个接受证书的环节

$ sudo xcodebuild -license accept

这个问题主要是因为Xcode 11 携带了macOS 10.15 SDK,该SDK包含了ruby 2.6的头文件,但是对macOS 10.14系统的ruby 2.3却没有该文件,所以你可以通过一下命令来验证问题

$ ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

这个命令在macOS 10.14系统上,Xcode 11版本安装的情况下会打印出这个不存在的路径

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

然后,Xcode 11是安装在macOS 10.14 SDK上,在此路径​​/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk​​ 。但是它没有必要因为安装了旧的头文件而污染了系统目录。所以我们要改成,指定合适的SDK和ruby 2.3头文件

$ sudo xcode-select --switch /Library/Developer/CommandLineTools

然后,我们再来看下ruby 2.3的正确路径

$ ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

这次就会输出一个正常的存在的路径

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

所以,现在,​​gem install​​就可以正常使用了

现在可以愉快的安装cocoapods吧

$ gem install cocoapods

安装完后,检查下版本

$ pod --version

输出

1.9.0

最终可以成功的安装各种库了~~

Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can

注意:
如果想改回之前使用的XCode 11 SDK,就使用此命令

$ sudo xcode-select --switch /Applications/Xcode.app

必要的情况下,导入以下两个环境变量,写入到~/.zshrc文件里

export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH

Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can


标签:11,files,安装,Xcode,Library,2.3,ruby
From: https://blog.51cto.com/u_14062833/6085431

相关文章

  • vue.js代码011
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scripttype="text/javascript"src="../js/vue.js"></script></head><......
  • 11_逆向工程
     MyBatis的一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成MyBatis执行所需要的代码(包括......
  • 11_逆向工程
     MyBatis的一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成MyBatis执行所需要的代码(包括......
  • 11_逆向工程
    ​ MyBatis的一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成MyBatis执行所需要的代码......
  • 11_逆向工程
    ​ MyBatis的一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成MyBatis执行所需要的代码......
  • #119. 最大整数 题解
    #119.最大整数题解题目传送门题目知识点字符串+贪心题意说明设有n个正整数(n<=20),将它们连接成一排,组成一个最大的多位整数。(题目简介明了,一看就是出题人懒得写题目背......
  • P8711 [蓝桥杯 2020 省 B1] 整除序列
    题目传送门题目大意有一个序列,序列的第一个数是\(n\),后面的每个数是前一个数整除\(2\),请输出这个序列中值为正数的项。解题思路序列的第一个数为\(n\),所以可以先直......
  • 洛谷P1149
    [洛谷P1149]([P1149NOIP2008提高组]火柴棒等式-洛谷|计算机科学教育新生态(luogu.com.cn))publicclassP1149{ publicstaticvoidmain(String[]args){ S......
  • 关于错误23-2-11
    Error:[WinError10013]以一种访问权限不允许的方式做了一个访问套接字的尝试。  原因:默认端口被占用,Django的默认端口为8000   netstat-ano|findstr8000 ......
  • ​04.Win11_22H2_2023年2月官方累积更新镜像下载
    大版本号:22H2​内部版本号:22621.1265​版本说明​大版本号:每年发布一次,如2021年21H2、2022年22H2​小版本号:每年提供若干次ISO镜像,大版本号不变,变化的是小版本号(内部版本号......