对于使用cocoapods的iOS项目,我有一个简单的Gemfile
:
# frozen_string_literal: true
source "https://rubygems.org"
gem 'cocoapods'
gem 'fastlane'
gem 'jazzy'
我试图用bundle update
更新我的包,jazzy从版本0.8.2升级到0.0.14所以我回滚了我的Gemfile.lock
并对我的3颗宝石做了3次不定更新一切都罚款,即jazzy仍然是版本0.8.2。
我重新编写了一个bundle update
,再一次,jazzy从版本0.8.2变为0.0.14。
我在这里缺少什么?为什么我会得到一组具有相同约束条件的不同版本?
有关文件内容的更多详细信息的要点:https://gist.github.com/dirtyhenry/135ec7ef73f873d5ac3236bc3da633ba
答案 0 :(得分:2)
问题是依赖地狱。
Fastlane取决于xcpretty
,它取决于主要版本2的rouge
(〜> 2.0.7),而jazzy本身取决于rouge
的不同版本,主要版本1( 〜> 1.5)因此,bundler尝试解析最高版本的jazzy以重用现有的rouge依赖(即0.0.14)。
但是,您可以强制捆绑程序使用版本0.8.2更多的jazzy,添加到您的Gemfile
:
gem 'jazzy', '>=0.8.2'
而不是
gem 'jazzy'
再次执行bundle update
。