Xcode:9.3.1
操作系统:macOS High Sierra 10.13.4我和iOS开发人员,我根本不熟悉ruby。
我在我的Xcode项目中使用了一个运行脚本,该脚本使用名为' xcodeproj
'的红宝石宝石。在一切正常之前,但我更新了我的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'
我去了上面错误中显示的路径,并且没有xcodeproj
个gem文件,即使在我安装了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脚本时,它显示没有错误(并且通过xcode失败)。
显然,gem xcodeproj
已安装在我的macOS中,但它不在Ruby.framwork下,我认为这就是为什么我的xcode的脚本在构建时失败的原因。 Hese是我的脚本
任何帮助都非常感谢,伙计们:)
答案 0 :(得分:0)
好的,我在代码中发现了这个错误。
系统有两个ruby版本,即/System/Library/Frameworks/Ruby.framework/Versions/2.3
(这是根系统,它附带macOS)而另一个是/usr/local/Cellar/ruby/2.5.1/lib/ruby
(不知道这是什么,我的猜测是它是新版本2.5.1的单独ruby环境,我可能已经安装过去了)
在我的脚本shell中,我有/usr/bin/ruby
,其中包含ruby可执行文件,用于系统&#39}的红宝石/System/Library/Frameworks/Ruby.framework
我通过命令gem environment
检查了ruby环境,并给出了输出
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可执行文件的路径不同,我在我的脚本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
中,所以现在我提供了可执行的ruby路径最新的ruby版本,其中安装了gem,它工作正常。