• macOS Monterey v12.4 M1芯片 iOS 开发环境(艰难曲折的)配置过程记录


    电脑环境跟型号如标题所说,新电脑,这是背景,macOS系统换了个系统,很多东西都不一样,网上的文章很多对于我不适用,不具备参考性,每次升级系统、换电脑,配置环境都要踩一次坑。

    如果想参考我的过程去配置的,建议先看完全文再决定,不要一步一步跟着,我这个过程不一定是最合适的,你跟着我走,可能就是跟着我把我踩过的坑再踩一遍。

    安装 homebrew

    首先是安装homebrew,Homebrew 是 Mac 平台的一个包管理工具,提供了许多Mac下没有的Linux工具等。官网:https://brew.sh,按照官网的安装命令进行安装,失败❌!

    $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    • 1

    于是按照网上网友说的,更换镜像源,争取能安装下来,更换步骤如下:

    (1) 下载官网的安装脚本

    $ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh >> brew_install
    
    • 1

    (2) 在用户文件夹下打开 brew_install 文件,把下面这两行的链接替换为清华大学的镜像链接。
    替换前:

    HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/brew"
    HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/homebrew-core"
    
    • 1
    • 2

    替换后:

    HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
    HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
    
    • 1
    • 2

    (3) 使用修改后的安装脚步进行安装

    $ /bin/bash brew_install
    
    • 1

    在这里插入图片描述
    (4) 设置环境变量
    这时执行 brew -v 还是会报错 “zsh: command not found: brew”,详细看刚刚安装后的warning,可以发现是环境变量的设置问题,官方给出的输出日志里面也给出了处理的方案(见上面截图):

    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
    
    • 1
    • 2

    这时候输入 brew -v 就可以看到版本输出了。

    $ brew -v
    Homebrew 3.5.5
    Homebrew/homebrew-core (no Git repository)
    
    • 1
    • 2
    • 3

    安装 rvm

    尝试过安装 gem 然后通过 gem 安装 cocoapods,失败,提示权限问题,具体没截图忘记了。网上让我用 brew 安装 cocoapods,也是过时了的方法,现在官方都是推荐用 rubygem 安装的,brew 只能安装到 1.5.3,而最新的 cocoapods 版本现在已经是 1.11.3 了。
    按同事的建议,尝试按照这篇文章安装 rvm,然而安装完却无法安装 ruby:

    $ curl -L https://get.rvm.io | bash -s stable
    
    • 1

    于是执行 rvm implode 卸载 rvm,之后按照输出的提示,清除了本地的文件夹,以及修改了各个文件中的环境变量。
    在这里插入图片描述
    然后安装另一个同事给的这篇文章的提示,重新安装了rvm,安装步骤如下:
    (1) 下载 rvm 安装脚本

    $ git clone https://github.com/rvm/rvm.git
    
    • 1

    (2) 下载完之后在路径 ~/rvm/bin/ 中找到 rvm-installer,双击运行完成安装。

    (3) 配置环境变量
    修改 ~/.bash_profile 文件的内容为

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
    
    • 1

    然后执行

    $ source ~/.rvm/scripts/rvm
    
    • 1

    这时候执行 rvm -v 可以看到安装成功了:

    $ rvm -v
    rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
    
    • 1
    • 2

    安装 ruby

    根据 rvm list known 命令,可以看到最新的版本,然后选择你想要安装的版本,进行安装:

    $ rvm install 2.7.6
    
    • 1

    然而再次受挫,我收到以下失败提示:
    在这里插入图片描述
    于是我按照提示,执行了 brew tap --repair ,然后执行了 brew doctor。得到如下:
    在这里插入图片描述
    看起来是之前的镜像有问题,于是我又再次按照提示一一照做,知道 brew doctor 再无错误提示,解决过程如下:
    在这里插入图片描述
    再次回到这一部分的一开始,执行 rvm install 2.7.6,终于顺利完成 ruby 安装!

    $ ruby -v
    ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [arm64-darwin21]
    
    • 1
    • 2

    此外,处理完brew的问题之后,gem的版本也从 3.1.6,变成了3.3.18。

    安装 cocoaPods

    由于之前用 brew 安装了 1.5.3 的 cocoapods,所以首先要先卸载旧版本的 cocoaPods,
    首先,查看目前 gem 中安装的所有 cocoapods 组件:

    $ gem list --local | grep cocoapods
    
    • 1

    然后,把这些组件一一卸载

    $  sudo gem uninstall cocoapods-deintegrate
    
    • 1

    然后再安装指定版本的 cocoaPods:

    $ sudo gem install cocoapods -v 1.11.3
    ……
    $ pod --version
    1.11.3
    
    • 1
    • 2
    • 3
    • 4

    安装 cocoaPods 成功!

    ……

    然而事情还没完,需要下载pod的索引仓库。执行pod setup久到你怀疑人生,最后我是手动下载了镜像源到本地的。

    $ cd ~/.cocoapods/repos
    $ pod repo remove master
    $ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
    $ pod repo remove trunk
    
    • 1
    • 2
    • 3
    • 4

    最后一行命令很重要,不移除trunk,在新版本的cocoaPods(1.8.0+)上会报错。
    这个时候你的 ~/.cocoapods/repos 就只有 master 一个文件夹了,然后在你的 Podfile 上面添加这一行:

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

    这个时候就可以pod install了。但是我依然pod了很久,最后用了手机热点才顺利pod下来的。
    更多详细的解释参加这篇博文,我这里只记录这次的配置过程。

  • 相关阅读:
    安卓游戏开发之音频技术优劣分析
    在线中文姓名生成工具推荐
    批量规范化+代码+Q&A
    2024Java springboot mybatis-flex 根据数据表时间开启定时任务
    含文档+PPT+源码等]精品基于PHP实现的商城电商网站[包运行成功]
    辰视工业级视觉·汽车主机厂动力总成车间中无序工件上下料解决方案
    若依微服务如何处理Long类型精度丢失问题?
    【汇编】内存中字的存储、用DS和[address]实现字的传送、DS与数据段
    golang 关于别名
    Mysql递归测试
  • 原文地址:https://blog.csdn.net/u011303816/article/details/125887574