0

Xcode:9.3.1

操作系统:macOS High Sierra 10.13.4

我是 iOS 开发人员,我对 ruby​​ 一点也不熟悉。

我在我的 Xcode 项目中使用了一个运行脚本,它使用了一个名为“ xcodeproj”的 ruby​​ gem。在一切正常之前,但我更新了我的 macOS,现在这个运行脚本无法找到 gem 'xcodeproj'

当我尝试构建我的项目时,它显示以下错误

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- xcodeproj (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 

我去了上面错误中显示的路径,并且没有xcodeprojgem 文件,即使在我安装之后gem install xcodeproj它也被安装在其他地方。这是我终端上的输出

xxx-MacBook-Pro:~ user$ gem list

*** LOCAL GEMS ***

atomos (0.1.2)
bigdecimal (default: 1.3.4)
bundler (default: 1.16.1)
CFPropertyList (3.0.0)
claide (1.0.2)
cmath (default: 1.0.0)
colored2 (3.1.2)
csv (default: 1.0.0)
date (default: 1.0.0)
dbm (default: 1.0.0)
etc (default: 1.0.0)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.0.2)
io-console (default: 0.4.6)
ipaddr (default: 1.2.0)
json (default: 2.1.0)
nanaimo (0.2.5)
openssl (default: 2.1.0)
psych (default: 3.0.2)
rdoc (default: 6.0.1)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
stringio (default: 0.0.1)
strscan (default: 1.0.0)
webrick (default: 1.4.2)
xcodeproj (1.5.9)
zlib (default: 1.0.0)

此外,当我尝试通过终端执行我的 ruby​​ runscript 时,它没有显示错误(并且通过 xcode 失败)。

显然,gemxcodeproj已安装在我的 macOS 中,但它不在 Ruby.framwork 下,我认为这就是我的 xcode 的运行脚本在构建时失败的原因。Hese 是我的脚本 在此处输入图像描述

Xcode中的错误截图在此处输入图像描述

任何帮助都非常感谢,伙计们:)

4

1 回答 1

0

好的,我在我的代码中发现了这个错误。

有两个 ruby​​ 版本,一个用于系统,即/System/Library/Frameworks/Ruby.framework/Versions/2.3(这是用于 macOS 附带的根系统),另一个是/usr/local/Cellar/ruby/2.5.1/lib/ruby(不确定这是什么,我猜它是新版本 2.5.1 的单独 ruby​​ 环境,我过去可能已经安装了它)

在我的 runscript 的 shell 中,我有/usr/bin/ruby系统 ruby​​ 的 ruby​​ 可执行文件/System/Library/Frameworks/Ruby.framework

我通过命令检查了 ruby​​ 环境gem environment,它给出了输出

RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.6
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin17]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /Users/xxx/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /Users/xxx/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.5.1/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17

在这里EXECUTABLE DIRECTORY: /usr/local/bin,我的 ruby​​ 可执行文件有一个不同的路径,我在我的 runscript 的 shell 中指定了它,(/usr/bin/ruby)所以我改为/usr/bin/ruby/usr/local/bin/ruby并且它正在工作。

由于我的 gem 安装在 ruby​​(2.5) 的更新版本/usr/local/Cellar/ruby/2.5.1/lib/ruby而不是旧系统的 ruby​​ (2.3)/System/Library/Frameworks/Ruby.framework中,所以现在我提供了安装 gem 的最新 ruby​​ 版本的可执行 ruby​​ 路径,它工作正常。

于 2018-05-22T10:15:02.793 回答