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

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 失败解决方法

自己这两天在用Unity开发IOS时,遇到了安装Cocoapods失败的问题,记录一下问题及解决方法,便于自己后续查看,以及有相同遭遇的人查看 发生场景:打开 unity,触发自动安装 Cocoapods -> 安装失败&#xff08…...

Elasticsearch 中使用MustNot等同于不登录遇到的坑

1、在写关键词推荐时,需要把当前文章过滤掉,不能再推荐自己的文章,所以再es中需要用到 MustNot属性查询 /// <summary> /// 服务中心es检索 /// </summary> /// <param name="input"></param> /// <returns></…...

java抽象工厂实战与总结

文章目录 一、工厂模式&#xff08;三种&#xff09;1.简单工厂模式1.1 概念&#xff1a;1.2 使用场景&#xff1a;1.3 模型图解&#xff1a;1.4 伪代码&#xff1a; 2.工厂方法模式2.1 概念&#xff1a;2.2 使用场景&#xff1a;2.3 模型图解&#xff1a;2.4 伪代码 3.抽象工厂…...

Compose | UI组件(六) | 选择框

文章目录 前言Checkbox 复选框的含义Checkbox 复选框的使用Switch 单选框的含义Switch 单选框的使用Slider 滑竿组件的含义Slider 滑竿组件的使用 总结 前言 随着移动端的技术不断更新迭代&#xff0c;Compose也运用的越来越广泛&#xff0c;很多人都开始学习Compose 本文主要…...

C++拷贝构造函数、赋值学习整理:

拷贝构造函数&#xff1a; 概念&#xff1a; 构造函数的第一个参数&#xff0c;是类本身的const引用&#xff08;一般情况下没有其他参数&#xff0c;少数情况&#xff1a;其他参数必须有默认值&#xff01;&#xff09;称此类构造函数为拷贝构造函数 特征&#xff1a; 1&am…...

[亲测源码]ps软件网页版在线使用 PS网站程序源码 photoshop网页版源码 网页版的ps软件源码

在线PS作图修图网页版PHP网站源码&#xff0c;PHP在线照片图片处理PS网站程序源码photoshop网页版。 有很多朋友们都是在用PS作图的&#xff0c;众所周知在使用和学习PS时是需要下载软件的&#xff0c;Photoshop软件对电脑配置也是有一定要求的&#xff0c;今天就为大家带来一…...

前端大厂面试题探索编辑部——第二期

目录 题目 单选题1 题解 关于TCP 关于UDP 单选题2 题解 A选项的HTTP是否是无状态协议 B选项的HTTP支持的方法 C选项的关于HTTP的状态码 D选项HTTP协议的传输格式 题目 单选题1 1.以下哪个描述是关于 TCP 和 UDP 的区别&#xff08;&#xff09; A. TCP 是无连接的…...

yaml学习笔记

文章目录 yaml语言学习yaml 简介yaml 和json 区别基本语法数据类型YAML 对象YAML 数组锚点和引用纯量 参考文档 yaml语言学习 最近发现在学习k8s中各种配置文件 都是使用的yaml 这种格式, 包括 docker-compose.yaml 也都是用这个格式配置部署项目信息,我就了解了一下这个语法就…...

深度强化学习(王树森)笔记04

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…...

openssl3.2/test/certs - 074 - CT entry

文章目录 openssl3.2/test/certs - 074 - CT entry概述笔记setup074.shsetup074_sc1.shsetup074_sc2.shsetup074_sc3.shEND openssl3.2/test/certs - 074 - CT entry 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 setup074.sh #! /bin/bash# \file setup074.sh# o…...

Angular组件(一) 分割面板ShrinkSplitter

Angular组件(一) 分割面板ShrinkSplitter 前言 分割面板在日常开发中经常使用&#xff0c;可将一片区域&#xff0c;分割为可以拖拽整宽度或高度的两部分区域。模仿iview的分割面板组件&#xff0c;用angular实现该功能&#xff0c;支持拖拽和[(ngModel)]双向绑定的方式控制区…...

抖音详情API:视频内容获取与解析技巧

一、引言 抖音是一款广受欢迎的短视频分享平台&#xff0c;每天都有大量的用户在抖音上分享自己的生活点滴和创意作品。对于开发者而言&#xff0c;如何获取并解析抖音上的视频内容&#xff0c;是一项极具挑战性的任务。本文将详细介绍抖音详情API&#xff0c;以及如何使用它来…...

SpringBoot中实现阿里云OSS对象存储

背景 在业务中我们往往需要上传文件如图片&#xff0c;文件上传&#xff0c;是指将本地图片、视频、音频等文件上传到服务器上&#xff0c;可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛&#xff0c;我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件…...

大型语言模型 (LLM)全解读

一、大型语言模型&#xff08;Large Language Model&#xff09;定义 大型语言模型 是一种深度学习算法&#xff0c;可以执行各种自然语言处理 (NLP) 任务。 大型语言模型底层使用多个转换器模型&#xff0c; 底层转换器是一组神经网络。 大型语言模型是使用海量数据集进行训练…...

Unity - gamma space下还原linear space效果

文章目录 环境目的环境问题实践结果处理要点处理细节【OnPostProcessTexture 实现 sRGB 2 Linear 编码】 - 预处理【封装个简单的 *.cginc】 - shader runtime【shader需要gamma space下还原记得 #define _RECOVERY_LINEAR_IN_GAMMA】【颜色参数应用前 和 颜色贴图采样后】【灯…...

Rabbitmq调用FeignClient接口失败

文章目录 一、框架及逻辑介绍1.背景服务介绍2.问题逻辑介绍 二、代码1.A服务2.B服务3.C服务 三、解决思路1.确认B调用C服务接口是否能正常调通2.确认B服务是否能正常调用A服务3.确认消息能否正常消费4.总结 四、修改代码验证1.B服务异步调用C服务接口——失败2.将消费消息放到C…...

专业120+总分400+海南大学838信号与系统考研高分经验海大电子信息与通信

今年专业838信号与系统120&#xff0c;总分400&#xff0c;顺利上岸海南大学&#xff0c;这一年的复习起起伏伏&#xff0c;但是最后还是坚持下来的&#xff0c;吃过的苦都是值得&#xff0c;总结一下自己的复习经历&#xff0c;希望对大家复习有帮助。首先我想先强调一下专业课…...

如何区分 html 和 html5?

HTML&#xff08;超文本标记语言&#xff09;和HTML5在很多方面都存在显著的区别。HTML5是HTML的最新版本&#xff0c;引入了许多新的特性和元素&#xff0c;以支持更丰富的网页内容和更复杂的交互。以下是一些区分HTML和HTML5的关键点&#xff1a; 新特性与元素&#xff1a;H…...

Ps:将文件载入堆栈

Ps菜单&#xff1a;文件/脚本/将文件载入堆栈 Scripts/Load Files into Stack 将文件载入堆栈 Load Files into Stack脚本命令可用于将两个及以上的文件载入到同一个 Photoshop 新文档中。 载入的每个文件都将成为独立的图层&#xff0c;并使用其原始文件名作为图层名。 Photos…...

【格密码基础】:补充LWE问题

目录 一. LWE问题的鲁棒性 二. LWE其他分布选择 三. 推荐文献 四. 附密码学人心中的顶会 一. LWE问题的鲁棒性 robustness&#xff0c;翻译为鲁棒性 已有的论文表明&#xff0c;及时敌手获取到部分关于秘密和error的信息&#xff0c;LWE问题依旧是困难的&#xff0c;这能…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...