2012-05-06 3 views
4

RubyMotion에서 작동하도록 CocoaPods 종속성을 얻는 데 다양한 문제가 있습니다. 첫째, 내 Rakefile에 dependency 'JSONKit'을 추가 한 후 rake을 실행하면 can't convert Pathname into String 오류로 중단됩니다.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 파일이 포함 rake --trace는 다음과 같은 출력을 생성합니다. 내 코드에서 후광이 관련 어떠한 공급 업체 디렉토리가 생성되지 않습니다 것을 사용하려고하면 내 Rakefile에 dependency 'Nimbus'를 추가 한 경우

둘째, 다른 RubyMotion 응용 프로그램에서 다음 rake을 실행하는 응용 프로그램은 초기화되지 않은 상수 오류가 오류가 밖으로 제외한 구축 .

이 두 인스턴스의 문제점은 무엇입니까?

답변

4

여기에는 몇 가지 문제가 있습니다.

문자열에 경로 이름을 변환 할 수 없습니다

업데이트 :이 해결 될 것입니다 5/7/12, 당신이 할 수있는 단지 sudo motion update 현재와

이 오류는 사실과 관련이있다 당신이 루비 1.9를 사용하고 있다는 것을. 문서에 명시 적으로 언급 된 내용이 보이지 않지만 gem install 명령에서 sudo을 사용하는 것과 관련된 설정 예제는 OS X의 내장 루비 (1.8.7)를 실행한다고 가정합니다. 프로젝트를 시스템 루비로 전환하면 (.rbenv-version 파일에 system을 추가하십시오). 당신은 1.9 스틱을하고 싶다면, 읽을 /Library/RubyMotion/lib/motion/project/vendor.rb 라인 (22)을 변경할 수 있습니다

App.info 'Build', @path.to_s 

일단이 일을, 당신은 다음과 같은 오류 얻을 것이다 좋은 기회있다 :

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

당신은 읽을 같은 파일의 라인 77을 편집해야합니다 :

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

그런 다음 rake 마침내 제대로 작동합니다.

문제로

이러한 문제에 관한 motion-cocoapods의 repo에 제출되었습니다 https://github.com/HipByte/motion-cocoapods/issues/1

또한, 난 그냥이 motion support 사용에 대한 공식 지원 티켓을 제기했다. (당신이 지원을 포함이 새로운 제품에 대해 돈을 지불 기억하십시오! 사용) 여기

후광

문제는 당신이 최상위 cocoapod을 필요로하고 있다는 점이다. "하위 스페 이스"가 있으므로 직접 입력해야하므로 dependency 'Nimbus/Core' 일 수도 있습니다. here (s.subspec 항목 참조)

+0

감사 딜런. 내가 제안한 것처럼 rbenv를 우회했지만 다른 오류 (https://gist.github.com/fa676e1f52349067d49e)가 발생했습니다. 그래서 대신 당신이 말했듯이 vendor.rb를 편집했지만 여전히 shawn이 언급 한'잘못된 옵션 : --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

관련 문제