首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RubyMotion和CocoaPods问题

RubyMotion和CocoaPods问题
EN

Stack Overflow用户
提问于 2012-05-06 23:58:27
回答 2查看 3K关注 0票数 4

在RubyMotion中使用CocoaPods依赖项时,我遇到了各种问题。首先,如果我将dependency 'JSONKit'添加到我的Rakefile中,然后运行rake,get会因can't convert Pathname into String错误而中止。然后,rake --trace会生成以下输出:

代码语言:javascript
复制
** Invoke default (first_time)
** Invoke simulator (first_time)
** Invoke build:simulator (first_time)
** Execute build:simulator
/usr/bin/gen_bridge_metadata --format complete --no-64-bit --cflags "-I. -I." JSONKit.h -o "JSONKit.bridgesupport"
invalid option: --no-64-bit
Usage: gen_bridge_metadata [options] <headers...>
Use the `-h' flag or consult gen_bridge_metadata(1) for help.
rake aborted!
Command failed with status (1): [/usr/bin/gen_bridge_metadata --format comp...]
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:53:in `block in create_shell_runner'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:45:in `call'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:45:in `sh'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:in `sh'
/Library/RubyMotion/lib/motion/project/vendor.rb:93:in `block in build_static'
/Library/RubyMotion/lib/motion/project/vendor.rb:34:in `chdir'
/Library/RubyMotion/lib/motion/project/vendor.rb:34:in `build_static'
/Library/RubyMotion/lib/motion/project/vendor.rb:23:in `build'
/Library/RubyMotion/lib/motion/project/builder.rb:37:in `block in build'
/Library/RubyMotion/lib/motion/project/builder.rb:36:in `each'
/Library/RubyMotion/lib/motion/project/builder.rb:36:in `build'
/Library/RubyMotion/lib/motion/project/app.rb:50:in `build'
/Library/RubyMotion/lib/motion/project.rb:33:in `block (2 levels) in <top (required)>'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in `each'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in `each'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/Users/xxxx/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/Users/xxxx/.rbenv/versions/1.9.3-p194/bin/rake:32:in `<main>'
Tasks: TOP => default => simulator => build:simulator

项目中的供应商目录包含各种JSONKit文件。

其次,在另一个RubyMotion应用程序中,如果我将dependency 'Nimbus'添加到我的Rakefile中,然后运行rake,当我试图在代码中使用任何与Nimbus相关的东西并且没有创建供应商目录时,应用程序会构建,但会出现未初始化的持续错误。

这两种情况下的问题是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-07 01:03:13

这里有几个问题在起作用。

无法将路径名转换为字符串

更新:从5/7/12开始,你只需 sudo motion update ,这将被修复

这个错误与您使用Ruby 1.9的事实有关。尽管我没有在文档中明确说明,但设置此设置的示例指的是在gem install命令中使用sudo,这意味着假设您正在运行OS X的内置ruby (1.8.7)。如果您将项目切换到system ruby (添加一个包含system.rbenv-version文件)。或者,如果您想继续使用1.9,您可以将/Library/RubyMotion/lib/motion/project/vendor.rb的第22行更改为:

代码语言:javascript
复制
App.info 'Build', @path.to_s

一旦这样做了,你很有可能会得到如下的错误:

代码语言:javascript
复制
ERROR! Building vendor project `./vendor/JSONKit' failed to create at least one `.a' library.`

您需要编辑该文件的第77行才能读取:

代码语言:javascript
复制
objs = Dir.glob('**/*.o') # Removed the leading "*/"

那么rake最终应该可以正常工作了。

已在motion-cocoapods存储库上提交了有关这些问题的问题:https://github.com/HipByte/motion-cocoapods/issues/1

此外,我刚刚使用motion support提交了一个官方支持票证。(请记住,您为这个包含支持的全新产品支付了费用;请使用它!)

Nimbus

这里的问题是,您需要的是顶级cocoapod。因为它有“子规范”,所以你需要直接需要它们,所以可以用dependency 'Nimbus/Core'代替。您可以查看它们的完整列表(请参阅s.subspec here )

票数 4
EN

Stack Overflow用户

发布于 2012-05-07 02:51:06

关于--no-64位标志的编译错误是由于雪豹的RubyMotion上的but。按https://gist.github.com/2597428更新/Library/RubyMotion/lib/motion/project/vendor.rb

Laurent Sansonetti已经确认了这个漏洞:

嗨,

谢谢你的报告!问题是在Lion中添加了--no-64-bit标志,而您似乎正在运行Snow Leopard。我们会解决这个问题的。

Laurent

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10471950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档