为什么我的 iOS 项目 Gemfile 包更新不一致?
Why does my iOS project Gemfile bundle update unconsistently?
我有一个使用 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 次单独更新gems 和一切都很好,即 jazzy 仍然是 0.8.2 版本。
我重做了一个 bundle update
并且,jazzy 再次从版本 0.8.2 升级到 0.0.14。
我在这里错过了什么?为什么我得到一组具有相同约束的不同版本?
包含有关文件内容的更多详细信息的要点:https://gist.github.com/dirtyhenry/135ec7ef73f873d5ac3236bc3da633ba
问题是依赖地狱。
Fastlane 依赖于 xcpretty
,它依赖于主要版本 2 (~>2.0.7) 的 rouge
,jazzy 本身依赖于不同版本的 rouge
,主要版本 1 (~> 1.5) 因此,捆绑器尝试解析最高版本的 jazzy 以重用现有的 rouge 依赖项(即 0.0.14)。
但是,您可以强制捆绑器使用 0.8.2 版和更多的 jazzy,添加到您的 Gemfile
:
gem 'jazzy', '>=0.8.2'
而不是
gem 'jazzy'
并再次执行bundle update
。
中查看有关版本控制的更多详细信息
我有一个使用 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 次单独更新gems 和一切都很好,即 jazzy 仍然是 0.8.2 版本。
我重做了一个 bundle update
并且,jazzy 再次从版本 0.8.2 升级到 0.0.14。
我在这里错过了什么?为什么我得到一组具有相同约束的不同版本?
包含有关文件内容的更多详细信息的要点:https://gist.github.com/dirtyhenry/135ec7ef73f873d5ac3236bc3da633ba
问题是依赖地狱。
Fastlane 依赖于 xcpretty
,它依赖于主要版本 2 (~>2.0.7) 的 rouge
,jazzy 本身依赖于不同版本的 rouge
,主要版本 1 (~> 1.5) 因此,捆绑器尝试解析最高版本的 jazzy 以重用现有的 rouge 依赖项(即 0.0.14)。
但是,您可以强制捆绑器使用 0.8.2 版和更多的 jazzy,添加到您的 Gemfile
:
gem 'jazzy', '>=0.8.2'
而不是
gem 'jazzy'
并再次执行bundle update
。