如果安装过程中出现如下报错:
==> Pouring ruby-build-20220412.all.bottle.tar.gz Error: No such file or directory @ rb_sysopen - /Users/xxx/Library/Caches/Homebrew/downloads/4ff0b9e0c99846bf0bf4b5be5f73dc12cd27499bdeff6d8b6dede0f2b860f969--ruby-build-20220412.all.bottle.tar.gz
先安装
ruby-build
,执行
brew install ruby-build
然后再次执行
brew install rbenv
即可
使用
rbenv
管理
Ruby
版本。
3.0.0
是最新稳定版本,或者使用
rvm install ruby --head
安装rvm能够支持的最新
ruby
版本
rbenv install 3.0.0
rbenv shell 3.0.0
1.查看当前rvm版本可以管理的ruby版本列表rvm list known
,如果rvm版本过低,高版本的ruby是安装不了的
2.rvm list
查看本地安装的ruby版本
使ruby环境生效
安装后可以查询系统级Gem依赖
gem list
使用Bundler管理工程中的Gem环境
在iOS工程中初始化Bundler环境,在工程主目录中执行 bundle init
命令,这时主目录中会生成一个Gemfile文件.
1.如果遇到如下错误:
/Users/xxx/.rbenv/versions/3.0.0/lib/ruby/3.0.0/rubygems.rb:281:in find_spec_for_exe': Could not find 'bundler' (1.15.4) required by your /Users/xxx/app/demo/Gemfile.lock. (Gem::GemNotFoundException) To update to the latest version installed on your system, run
bundle update --bundler. To install the missing version, run
gem install bundler:1.15.4from /Users/xxx/.rbenv/versions/3.0.0/lib/ruby/3.0.0/rubygems.rb:300:in
activate_bin_path' from /Users/xxx/.rbenv/versions/3.0.0/bin/bundle:23:in <main>
可以根据报错提示先执行gem install bundler:1.15.4
,然后执行bundle init
2.如果已经存在Gemfile
文件,仍然执行bundle init
,会有如下报错:
Gemfile already exists at /Users/xxx/app/demo/Gemfile
编辑Gemfile,执行Pod的版本
# frozen_string_literal: true
# A sample Gemfile
# source "https://gems.ruby-china.org"
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "cocoapods", "1.11.3"
gem "fastlane"
gem 'xcodeproj'
gem 'badge'
gem 'dotenv'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
在当前主目录中执行 bundle install
,执行完成之后,指定版本的Cocoapods就安装成功了。可以通过pod --version
命令查看版本号
1.执行bundle install时,如果有如下报错:
Could not reach host gems.ruby-china.org. Check your network connection and try again
检查source源是不是"gems.ruby-china.org",改为"rubygems.org"
2.如果有如下冲突报错:
Bundler could not find compatible versions for gem "xcodeproj": In snapshot (Gemfile.lock): xcodeproj (= 1.8.1)
In Gemfile: xcodeproj
cocoapods (= 1.11.3) was resolved to 1.11.3, which depends on xcodeproj (>= 1.21.0, < 2.0)
fastlane was resolved to 2.98.0, which depends on xcodeproj (>= 1.5.7, < 2.0.0)
Running bundle update
will rebuild your snapshot from scratch, using only the gems in your Gemfile, which may resolve the conflict.
执行bundle update
,更新Gemfile.lock即可
在项目主目录下执行 bundle exec gem list
可以查看到当前Cocoapods的版本
执行bundle exec pod install/update
就可以使用指定版本的Cocoapods进行install或update