电脑环境跟型号如标题所说,新电脑,这是背景,macOS系统换了个系统,很多东西都不一样,网上的文章很多对于我不适用,不具备参考性,每次升级系统、换电脑,配置环境都要踩一次坑。
如果想参考我的过程去配置的,建议先看完全文再决定,不要一步一步跟着,我这个过程不一定是最合适的,你跟着我走,可能就是跟着我把我踩过的坑再踩一遍。
安装 homebrew
首先是安装homebrew,Homebrew 是 Mac 平台的一个包管理工具,提供了许多Mac下没有的Linux工具等。官网:https://brew.sh,按照官网的安装命令进行安装,这一步必须翻墙,否则会失败,提示 “curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 7 ms: Couldn’t connect to server”:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
没有条件翻墙也可以通过更换镜像源,更换步骤如下(有条件翻墙的跳到 (4) 设置环境变量):
(1) 下载官网的安装脚本
$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh >> brew_install
(2) 在用户文件夹下打开 brew_install 文件,把下面这两行的链接替换为清华大学的镜像链接。
替换前:
HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/brew"
HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/homebrew-core"
替换后:
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"
(3) 使用修改后的安装脚步进行安装
$ /bin/bash brew_install
(4) 设置环境变量
这时执行 brew -v 还是会报错 “zsh: command not found: brew”,详细看刚刚安装后的warning,可以发现是环境变量的设置问题,官方给出的输出日志里面也给出了处理的方案(见上面截图):
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
这时候输入 brew -v 就可以看到版本输出了。
$ brew -v
Homebrew 4.2.4
安装 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
于是执行 rvm implode 卸载 rvm,之后按照输出的提示,清除了本地的文件夹,以及修改了各个文件中的环境变量。
然后安装另一个同事给的这篇文章的提示,重新安装了rvm,安装步骤如下:
(1) 下载 rvm 安装脚本
$ git clone https://github.com/rvm/rvm.git
(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*
然后执行
$ source ~/.rvm/scripts/rvm
这时候执行 rvm -v 可以看到安装成功了:
$ rvm -v
rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
安装 ruby
根据 rvm list known 命令,可以看到最新的版本,然后选择你想要安装的版本,进行安装:
$ rvm install 2.7.6
然而再次受挫,我收到以下失败提示:
于是我按照提示,执行了 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]
此外,处理完brew的问题之后,gem的版本也从 3.1.6,变成了3.3.18。
安装 cocoaPods
由于之前用 brew 安装了 1.5.3 的 cocoapods,所以首先要先卸载旧版本的 cocoaPods,
首先,查看目前 gem 中安装的所有 cocoapods 组件:
$ gem list --local | grep cocoapods
然后,把这些组件一一卸载
$ sudo gem uninstall cocoapods-deintegrate
然后再安装指定版本的 cocoaPods(末尾参数 -V 可以看到具体安装进度):
$ sudo gem install cocoapods -v 1.11.3 -V
……
$ pod --version
1.11.3
安装 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
最后一行命令很重要,不移除trunk,在新版本的cocoaPods(1.8.0+)上会报错。
这个时候你的 ~/.cocoapods/repos 就只有 master 一个文件夹了,然后在你的 Podfile 上面添加这一行:
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
这个时候就可以pod install了。但是我依然pod了很久,最后用了手机热点才顺利pod下来的。
更多详细的解释参加这篇博文,我这里只记录这次的配置过程。
配置 Charles
第一步:
安装完 Charles 之后,打开弹窗提示以下内容:
“Charles cannot configure your proxy settings while it is on a read-only volume. Perhaps you are running Charles from the disk image? If so, please copy Charles to the Applications folder and run it again. Otherwise please ensure that Charles is running on a volume that is read-write and try again.”
按照网友指导的,在终端输入以下两行命令,打开 Charles 应用的读写权限。
$ sudo chown -R root "/Applications/Charles.app/Contents/Resources"
$ sudo chmod -R u+s "/Applications/Charles.app/Contents/Resources"
第二步:
打开模拟器,发现无抓包捕获反应,重启模拟器不行,重启charles再重启模拟器也不行,最后关闭翻墙软件,再重启charles跟模拟器,解决。
第三步:
同时,在Charles菜单:Help- SSL Proxying-Install Charles Root Certificate in iOS Simulators无效果,在模拟器的Safari浏览器,打开chls.pro/ssl,网页自动开启证书下载,证书下载完,进入设置—通用—设备管理里面进行安装。
第四步:
可以看到Charles有捕获接口了,但是Xcode控制台提示:“此服务器的证书无效。您可能正在连接到一个伪装成“xxx.com”的服务器,这会威胁到您的机密信息的安全。”
要进入设置—通用—关于本机—证书信任设置,找到对应的证书,打开后面的开关,这下可以顺利使用Charles抓模拟器的包了!