2019年4月12日金曜日

RubyMotion 環境構築

概要

RubyMotion にはフリープランがあり今回はそれを使ってみました
とりあえず環境の構築をしてみました

環境

  • macOS 10.14.4
  • Xcode 10.2 (10E125)
  • RubyMotion 6.1

RubyMotion インストール

まずは RubyMotion をインストールしましょう
このページからユーザ情報を登録すると zip ファイルがダウンロードできます

情報登録できれば OK です

RubyMotion Installer.zip というファイルがダウンロードできるので解凍しましょう
また同時に登録したメールアドレスにライセンスキーが送られるので確認します

  • unzip "RubyMotion Installer.zip"

解凍すると RubyMotion Installer.app が作成されます
ダブルクリックしてインストーラを起動します

Continue で次に進みます

EULA に同意します

ここでメールアドレスに送信されたライセンスキーを入力します
結構長いのでコピペで入力しましょう

あとはインストールされるのを待ちましょう

インストールが完了すると以下のようになります

同時に motion コマンドが使えるようになってるのでターミナルで確認しましょう

  • motion --version

テンプレートの WARNING が出る場合は新しいテンプレートをダウンロードしておきましょう

  • motion repo

Hello World

それではアプリを作成してみます
公式の通り進めてみました

まずはプロジェクトを作成しましょう

  • motion create hello

Gemfile やら Rackfile やらが作成されます
rake が必要になるのでインストールしましょう

  • bundle install --path vendor

タスク一覧を確認してみましょう

  • bundle exec rake -T

とりあえずシミュレータを起動してアプリを動かしてみます

  • bundle exec rake

これでビルドが始まり、ビルドが成功するとシミュレータにアプリにインストールがされ起動します

Tips

tmux 環境だと reattach-to-user-namespace が必要になるのでインストールして conf ファイルに記載しましょう

  • brew install reattach-to-user-namespace
  • echo 'set-option -g default-command "reattach-to-user-namespace -l $SHELL"' >> ~/.tmux.conf

実は

以下のエラーになりビルドできませんでした、、
もしかすると 10.14.4 はまだ動作しないのかもしれません

================================================================================
The application terminated. A crash report file may have been generated by the
system, use `rake crashlog' to open it. Use `rake debug=1' to restart the app
in the debugger.
================================================================================
rake aborted!
TypeError: no implicit conversion from nil to integer
/Users/hawksnowlog/.rubymotion/rubymotion-templates/motion/project/template/ios.rb:235:in `exit'
/Users/hawksnowlog/.rubymotion/rubymotion-templates/motion/project/template/ios.rb:235:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `block in execute'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `each'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `execute'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:214:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:194:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:238:in `block in invoke_prerequisites'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:236:in `each'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:236:in `invoke_prerequisites'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:213:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:194:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/task.rb:183:in `invoke'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:160:in `invoke_task'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `each'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `block in top_level'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:125:in `run_with_threads'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:110:in `top_level'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:83:in `block in run'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/lib/rake/application.rb:80:in `run'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23:in `<main>'
Tasks: TOP => default => simulator

参考サイト

0 件のコメント:

コメントを投稿