2012-05-06 6 views
4

私はCocoaPodsの依存関係をRubyMotionで動かすためにさまざまな問題があります。まず、dependency 'JSONKit'を自分のRakefileに追加してrakeを実行すると、can't convert Pathname into Stringというエラーで中止されます。 rake --traceは、次の出力を生成します。RubyMotionとCocoaPodsの問題

** 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ファイルが含まれています。

私は私のRakefileにdependency 'Nimbus'を追加しrakeを実行する場合、私は私のコードでニンバス関連のものを使用しようと何のベンダーのディレクトリが作成されていない場合第二に、別のRubyMotionアプリでは、アプリが初期化されていない一定のエラーで出てビルドしますが、エラー。

この2つのインスタンスの問題は何ですか?

答えて

4

ここにいくつかの問題があります。

文字列にパス名を変換することはできません

アップデート:これが修正されます5/7/12、あなたができるだけでsudo motion updateのとおりと

このエラーは、実際に関係していますRuby 1.9を使用していることを確認します。ドキュメントに明示されていないけれども、これを設定する例がgem installコマンドのsudoを使用しているという事実は、あなたがOS Xの組み込みのruby(1.8.7)を実行していると仮定していることを意味します。プロジェクトをシステムルビーに切り替えると(.rbenv-versionファイルにsystemが追加されます)。あなたが1.9に固執したい場合はまた、あなたが読むためにライン/Library/RubyMotion/lib/motion/project/vendor.rbの22を変更することができます。

ERROR! Building vendor project `./vendor/JSONKit' failed to create at least one `.a' library.` 

App.info 'Build', @path.to_s 

は一度これをやって、あなたは、このようなエラーを取得します良いチャンスがあります

あなたは読むためにライン77は、同じファイルのを編集する必要があります:

objs = Dir.glob('**/*.o') # Removed the leading "*/" 

その後rakeが最終的に正常に動作するはずです。

問題は、これらの問題に関するmotion-cocoapodsレポに出願されています:https://github.com/HipByte/motion-cocoapods/issues/1

また、私はちょうどmotion supportを使用して、このための公式サポートチケットを提出しました。 (あなたはサポートが含まれ、このブランドの新製品のためのお金を支払ったことを覚えておいてください;!それを使用)

ニンバス

ここでの問題は、あなたがトップレベルのcocoapodを必要としていることです。それは "サブスペック"を持っているので、それらを直接必要とする必要がありますので、代わりにdependency 'Nimbus/Core'としてください。 heres.subspecのエントリを参照してください)

+0

おかげディラン。私はrbenvをバイパスしようとしましたが、それは別のエラー(https://gist.github.com/fa676e1f52349067d49e)につながりました。そこで代わりに、あなたが言ったようにvendor.rbを編集しましたが、それでもshawn42によって下記のように '無効なオプション:--no-64-bit'エラーが表示されます。 Nimbusの解決策は死んでいた、ありがとう。 – alistairholt

+1

はい、私のマシンで64ビットエラーに遭遇しませんでしたが、shawn42の答えがそのように役立つように聞こえます。 –

+0

また、サポートチケットを登録していただきありがとうございます。私は金曜日の夜に自分自身をしましたが、私は何の反応も受けていませんでした.HipByteの人がかなり忙しいと思います! – alistairholt

1

--no-64-bitフラグに関するコンパイルエラーは、Snow LeopardのRubyMotionが原因です。/Library/RubyMotion/lib/motion/project/vendorを更新してください。https://gist.github.com/2597428

あたりRBバグはローランSansonettiによって確認されました:

こんにちは、

レポートをありがとう!問題は、 - no-64-bitフラグが がLionに追加され、Snow Leopardを実行しているように見えることです。我々は これを修正します。

ローラン

+0

ありがとうshawn42。私は本当にSnow Leopardを運営しています。要点からの変更とDylanのvendor.rbの77行目への変更により、 '--no-64-bit'エラーが修正されました。 – alistairholt