mac 10.15.7 Unity 2021.3.14 XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法

本文主要是介绍mac 10.15.7 Unity 2021.3.14 XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自己这两天在用Unity开发IOS时,遇到了安装Cocoapods失败的问题,记录一下问题及解决方法,便于自己后续查看,以及有相同遭遇的人查看

发生场景:打开 unity,触发自动安装 Cocoapods -> 安装失败(各种失败情况在【问题及解决】中都有记录及有解决方法)
原因分析:mac 10.15 自带的 ruby 为 2.6.3,这个版本太低,会导致安装 Cocoapods 出错,及后续 pod 会有问题,我们只需安装新的ruby版本即可
解决流程:安装 rvm -> 安装 ruby-2.7.2 & 启用 -> 安装 Cocoapods

具体解决步骤如下(如安装过程中遇到问题,请查看【问题及解决】):

1. 安装多ruby管理工具rvm
》curl -L https://get.rvm.io | bash -s stable
# 查看rvm已安装的版本
》rvm -v

2. 安装 ruby-2.7.2
》rvm install ruby-2.7.2
# 查看已安装的ruby
》rvm list
# 查看当前系统使用的ruby版本
》ruby -v
# 如果上面显示版本是旧的2.6的话,请运行下面,让其使用2.7.2
》rvm use 2.7.2
3. 打开 unity,触发自动安装 Cocoapods(显示 gem install cocoapods)-> 还是安装失败的话,直接看第4步(好像unity中gem认到的还是旧的,而不是我用rvm安装好ruby后新的gem)
4. 打开 终端 并手动运行安装 Cocoapods(我这里是安装成功了,然后,再打开unity,就不会再弹出安装 cocoapods 了,因为已经手动安装好了)
》gem install cocoapods
5. 搞定,现在可以用 unity 去导出 XCode 工程了!

运行前-重点注意:
1. 运行时,一定不要用 iTerm 运行,请用 终端 运行,否则 rvm install ruby-2.7.2 这一步可能会安装失败
2. 安装时,会涉及安装第三方库会比较慢,请查看底下 『brew update 更新太慢』的解决方法,去提速,要不然安装会慢到你怀疑人生!
3. 当到最后一步安装 cocoapods 时,想简单点,就直接 终端 上运行 gem install cocoapods 就好了,可以省去一些麻烦!


【问题及解决】

rvm 安装异常: 出现 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
解决(设置hosts):
    步骤:查找IP -> 修改本地host -> 重装运行第一步curl
    1. 打开 https://site.ip138.com -> 查询 raw.githubusercontent.com 的ip,并记下来(会出现多个ip,我用的第一个出现的ip,ping虽然一般但能下载。用贵州的那个ip,ping虽然最快,但是下载有问题)
    2. 修改host(复制上面记下来的ip到hosts中)
    》sudo vim /etc/hosts
    182.43.124.6 raw.githubusercontent.com
    3. 重新执行安装
    》curl -L https://get.rvm.io | bash -s stable
    4. 检查是否安装完成
    》rvm -v

    说明:
        安装成功后,rvm会自动在 .bash_profile 中添加如下内容(如果想知道rvm装在哪里了,看这里就知道了)
        [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

ruby-2.7.2 安装异常:出现 
    No binary rubies available for: osx/10.15/x86_64/ruby-2.7.2.
    Failed to update Homebrew, follow instructions at

        https://docs.brew.sh/Common-Issues

    and make sure `brew update` works before continuing.
    Error running 'requirements_osx_brew_update_system ruby-2.7.2',
    please read /Users/apple/.rvm/log/1706324534_ruby-2.7.2/update_system.log
    Requirements installation failed with status: 1.
解决1:brew update
解决2:如果【解决1】后,还是不行,请查看你是否使用了 iTerm,请换成 终端 后再重新运行 rvm install ruby-2.7.2

brew update 更新异常:出现
    fatal: unable to access 'https://github.com/shivammathur/homebrew-php/': Failed to connect to github.com port 443: Operation timed out
    Error: Fetching /usr/local/Homebrew/Library/Taps/shivammathur/homebrew-php failed!
    Installing from the API is now the default behaviour!
    You can save space and time by running:
      brew untap homebrew/core
      brew untap homebrew/cask
解决:
    》sudo vim /etc/hosts
    140.82.114.4 github.com

brew update 更新太慢:
解决:
    # 改变 brew 源(由默认的国外源,改为国内源)
    cd $(brew --repo)
    git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

    # 改变 brew-core 源
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

    # 完成换源之后,再执行更新指令一次(速度就很快了)
    brew update

Cocoapods 安装异常:出现 fatal error: 'ruby/config.h' file not found
解决(ruby 加软链):
    》cd /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby
    》sudo ln -sf ../../../../Headers/ruby/config.h

Cocoapods 安装异常:出现 make: *** No rule to make target `/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin19/ruby/config.h', needed by `AbstractMemory.o'.  Stop.
解决(ruby 加软链):
    》cd /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
    》sudo ln -sf universal-darwin20 universal-darwin19

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.3.62.
解决:
    安装 ruby-2.7.2 版本(请查看开头 2. 安装多ruby管理工具、新版ruby)

Cocoapods 安装异常:出现 You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
出现:unity 打开时,自动弹出安装 cocoapods 时出现
解决:直接关闭 unity,改用打开系统 终端 直接运行命令 gem install cocoapods 就行了
原因:unity 打开时,他的 gem 命令好像用的还是旧的,会自动安装到/Library库中,不是我新装好的 gem,导致出错(怎么在unity中让gem运行时是新的,弄了一会没弄出来,算了,先不管了,终端能安装也行了)


------ 其它 ------
Unity开发Ios部分流程:安装 XCode -> 进入Unity,自动安装Cocospods -> 导出XCode工程 -> XCode打开工程&真机测试 -> 上传appstore

说明:mac 10.15.7 + unity 开发ios,需要安装 XCode 12.4 及以下版本(更高的版本需要更高的系统)
XCode与Mac版本对应网址:https://xcodereleases.com/
XCode各大版本下载网址:https://developer.apple.com/download/all/?q=xcod

这篇关于mac 10.15.7 Unity 2021.3.14 XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652852

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依