読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Mac での calabash-android のインストールと実行(Xamarin も OK!)

Xamarin calabash Xamarin.Android

時間がかかってしまいましたが、Mac での calabash-android のインストールと実行についてです!

Mac 版 calabash-ios のエントリー

Windows 版 calabash-android のエントリー

も参考にしてください。

 

以下の環境が必要です。

Android SDK (ANDROID_HOME を設定)

J2SDK (JAVA_HOME を設定)

Xcode コマンドラインデベロッパ・ツール (多分必要です。)*1

 

具体的には ~/.bash_profile に以下を追加しました。

ANDROID_HOME=/Applications/adt-bundle-mac-x86_64/sdk
JAVA_HOME=`/usr/libexec/java_home`
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools

export PATH ANDROID_HOME JAVA_HOME

今回のエントリーでは Mac OS X 10.9 での例です。10.8 などではバージョンなどが変わると思いますのでご注意ください。

 

ではインストールを始めます。

Ruby はインストールされてます。インストールされてない場合は、MacPort とかで 2.0 系を引っ張ってくると良いかと思います。私の環境では以下のバージョンがインストールされています (adb は PATH が通っているかの確認用)。コマンドが通らない場合は PATH が通ってないので source ~/.bash_profile などしてください。

$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

$ adb version
Android Debug Bridge version 1.0.31

次にコマンドラインデベロッパ・ツールのインストールです。

$ sudo xcode-select --install

でインストールするという情報もありましたが、

f:id:ytabuchi:20140418174212p:plain

f:id:ytabuchi:20140418174234p:plain

10.9 はこれではインストールできないようです。App Center からダウンロード、インストールしました。トラップ!!><

 

calabash-android をインストールします。

結論からいうと、

$ sudo gem install calabash-android ではインストール出来ません。

$ sudo gem install calabash-android
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing calabash-android:
	ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
checking for main() in -lc... yes
creating Makefile

make "DESTDIR="
compiling gherkin_lexer_ar.c
ragel/i18n/ar.c.rl:440:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
ext/gherkin_lexer_ar/gherkin_lexer_ar.c:864:18: warning: unused variable 'lexer_en_main' [-Wunused-const-variable]
static const int lexer_en_main = 1;
                 ^
2 warnings generated.
linking shared-object gherkin_lexer_ar.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [gherkin_lexer_ar.bundle] Error 1


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/gherkin-2.12.2 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/gherkin-2.12.2/ext/gherkin_lexer_ar/gem_make.out

何で検索したのか忘れてしまいましたが、

ruby - Install Calabash-Android causes error on OS X Mavericks - Stack Overflow

の下の回答にある以下のコマンドでインストールしたところ、無事インストール出来ました。(リンク先は calabash-cucumber なので calabash-android に書き換えています) 

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install calabash-android

インストールできました!!

$ calabash-android version
0.4.21

後は、Windows 版の calabash-android のエントリー を参照してください。

Mac は標準の文字コードUTF-8 なので、魔法の言葉 "set RUBYOPT=-EUTF-8" は不要ですし、"calabash-android gen" で作成される feature ファイルも UTF-8 で保存し直す必要もありません。

手順の書き方は

calabash-android/ruby-gem/lib/calabash-android/canned_steps.md at master · calabash/calabash-android · GitHub

に公開されていますので、是非試してみてくださいー。

 

次は calabash-ios を頑張ります。 

 

 

参考サイト:

MacでのJAVA_HOME設定 - Qiita

calabash-android documentation - GitHub / Troubleshooting Installation / Mac

 

*1:本家のエラー対策として必要との記述がありました。 https://github.com/calabash/calabash-android/blob/master/documentation/installation.md