Appcelerator CLIと、Appcelerator Studioを(無理やり)インストールした
ようやくAppcelerator CLIとAppcelerator Studioをインストールしました。
が、Appcelerator Studioについては、自分の環境との相性もあって、ちょっとイレギュラーな導入のしかたになってしまいました。
前提となる環境と導入方針
Titanium CLIとStudio
私はこれまでもTitaniumで開発をしていたので、Appcelerator CLI/Studioを入れようとしているMac上には、すでにTitanium CLIやSDKがインストールされている状態です。
Titanium Studioに関しては、いつのころからか私の環境ではうまく動かなくなってしまったのと、そもそもEmacsとTitanium CLIで開発をしていたこともあり、あまり使っていませんでした。
そのため、今回もAppcelerator CLIだけ入れれば良いかな、と思ってはいたのですが、新しいAppcelerator Studioは機能強化されているらしいので、とりあえず触ってみておこうと、こちらも入れてみることにしました。
Node.jsとバージョン切り替えツールndenv(anyenv)
Appcelerator Platformのツール群は、Node.jsをベースにしていますので、これも導入済みです。(私の環境は、v0.10.38が入っていました)
Node.js自体は公式サイトから配布されているインストーラを使うのが基本的ですが、Node.jsはアップデートが頻繁にあることもあり、Node.js自体のバージョンを複数導入して簡単に切り替えられるように、ndenvというツールを使っています。
より正確には、rbenvをはじめ**env系をまとめて扱えるanyenvを導入して、その上でndenvを導入しています。
- anyenvという**env系の簡易マネージャを作った - As a Futurist...
- node.jsのバージョン管理のためにndenv & node-buildを作ったのとanyenvの宣伝 - As a Futurist...
実はTitanium Studioがうまく動かなかった要因は、このndenvベースのNode.js環境だからという可能性が大いにあったのですが、先に書いたとおり、Studio自体をあまり使っていないこともあり、それほど深追いしていませんでした。
導入方針
上記の通り、Titanium Studio時代にNode.jsの環境の作り方によって問題が出ることは把握していたので、まずはAppcelerator CLIを先にインストールして、その後でAppcelerator Studioをインストールすることにしました。
発生した問題
Appcelerator CLI自体は問題なくインストールできたのですが、Appcelerator Studioのインストールで、大きく2つの問題が発生しました。
- Appcelerator Studioのインストーラが、ndenvで導入しているNode.jsを認識してくれない
- Appcelerator Studioが、ndenvで導入しているNode.jsを認識してくれない
Appcelerator Studioのインストーラが、ndenvで導入しているNode.jsを認識してくれない
Appcelerator Studioのインストール時、途中でPC内にNode.jsとAppcelerator CLIがあるかを確認されるのですが、ndenvで導入しているにも関わらず、インストールが必要と出てしまいました。
Appcelerator Studioが、ndenvで導入しているNode.jsを認識してくれない
先の対処については後述しますが、なんとか誤魔化しつつAppcelerator Studioをインストールしたものの、今度は起動時にAppcelerator CLIとCode Analyzerが入っていないと言われてしまいました。
Code Analyzerは3.0から導入されたtitanium-code-processorのことのようなので、これもすでにインストール済みなのですが…。
さらに、構わずインストールしようとしてもエラーになります。
これは、以前Titanium Studioで発生していた問題と同じでした。
問題の要因と対処
発生した問題は、どちらもNode.jsがあるPATHを認識できていないのだと推測しました。
自分が普段使っているターミナルなどの環境では、 .bashrcなどでPATHを設定していますが、MacはFinderやLaunchpadから実行したアプリの環境変数はそれらが使われないようなので、そのあたりで不整合が発生しているようです。
シンボリックリンクを張る
そこで色々と試したところ、どうやらNode.jsの標準的なインストール先となる /usr/local/bin/node
をみてくれるようであることはわかってきたので、必要なものをそこへシンボリックリンクを張ることで対処できないかと考えました。
結果的には、以下のシンボリックリンクを用意することで、インストーラとStudioに認識させることができました。
※参照先のバージョンは、 $ ndenv global
で指定しているバージョン
シンボリックリンク | 参照先 |
---|---|
/usr/local/bin/node | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/bin/node |
/usr/local/bin/appc | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/bin/appc |
/usr/local/bin/appcelerator | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/bin/appcelerator |
/usr/local/bin/titanium-code-processor | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/bin/titanium-code-processor |
/usr/local/lib/node_modules/npm | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/lib/node_modules/npm |
/usr/local/lib/node_modules/appcelerator | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/lib/node_modules/appcelerator |
/usr/local/lib/node_modules/titanium-code-processor | $HOME/.anyenv/envs/ndenv/versions/v0.10.38/lib/node_modules/titanium-code-processor |
Appcelerator Studioの起動方法
実は、シンボリックリンクを貼っただけでは、インストール自体はできたものの、Appcelerator StudioはNode.js類を認識してくれませんでした。
Launchpadから起動した場合、 node
コマンド自体は $HOME/.anyenv/envs/ndenv/shims/node
として認識してくれます。
これ自体はndenv環境としては問題ないのですが、同じく内部で npm
コマンドを $HOME/.anyenv/envs/ndenv/shims/npm
として参照していることが、先のStudio上でCLIやCode Analyzerをインストールする際にエラーとなる原因のようでした。
で、どうしたかというと、なぜかターミナルから open -a AppceleratorStudio.app
で実行した場合は、Detected Pathが /usr/local/bin/node
になり、この場合は既存のCLIやCode Analyzerを認識してくれる、ということがわかりました。
なんだかよくわからないのですが、とりあえず私の環境でAppcelerator Studioを使う場合は、ターミナルから起動することにしました。
以前やったシェルスクリプトをアプリ化する方法で対処できないかと思ったのですが、結局Launchpadから起動したケースと同じ動きになってしまったため、断念しています。
今回の導入手順
これらを踏まえつつ、今回私の環境で実施したインストール手順は、以下のような感じです。
Appcelerator CLIのインストール
Appcelerator CLI(※要ログイン) の手順に従います。
Node.jsはすでに入っていましたので、Appcelerator CLIをインストールします。
$ npm install appcelerator -g
Appcelerator CLIは、 appcelerator
もしくは appc
コマンドで実行します。
CLIインストール後、最初に一度セットアップを実行するそうです。
$ appc setup
セットアップを実行すると、必要なモジュールのダウンロード後、認証が求められました。
認証はアカウント登録時と同様に二段階認証で、登録しているメールアドレスに認証コードが送られてくるので、それも入力が必要です。
また、その後 ? Do you plan on developing Titanium apps? [Y/n]
という質問が出てきたので、当然Titaniumアプリの開発をするので YES
と回答すると、4.0.0.GAのSDKのダウンロードが始まります。
SDKのインストールが終わると、CLIが使えるようになりました。
$ appc -v 4.0.1
シンボリックリンクの生成
Appcelerator Studioのインストールの前に、先に書いたシンボリックリンクを生成しておきます。
いちおう、こんな感じのシェルスクリプトを書いてみました。
ndenv環境でAppcelerator Studioをインストール/起動できるようにシンボリックリ ...
ndenvを使っている場合、 $ ndenv global
で現在のグローバル指定されているNode.jsのバージョン、 $ ndnev prefix <バージョン>
で、そのバージョンのNode.js環境へのパスが取れるので、それを組み合わせてシンボリックリンクを張るようにしたものです。
例えば appc-ndenv.sh といった名前にして、実行権限を付与しておいて、
$ ./appc-ndenv.sh
で、各シンボリックリンクを生成、
$ ./appc-ndenv.sh reset
で、各シンボリックリンクを削除します。
なお、 /usr/local/lib
に書き込む際にsudoを使っているので、パスワードを求められます。
Appcelerator Studioのインストール
Getting started with Appcelerator Studio (※要ログイン) から、Mac版の64-bit Installerをダウンロードします。
ダウンロードした Appcelerator_Studio.dmg を開いて、 Appcelerator Studio.pkg を実行します。
基本的には次へ次へで進めます。
PrerequisitesでNode.jsとAppc CLIのインストールを求められなければ成功!
Appcelerator Studioの起動
Launchpadにもアイコンが出来ましたが、先に書いたとおり、なぜかここから起動するとうまくいかないので、ターミナルから起動します。
$ open -a AppceleratorStudio.app
これで起動した後、追加のインストールが求められなければ、これも成功!
とりあえず、上記のコマンドはaliasに登録しておきました。
サンプルプロジェクトのビルド
念のため、サンプルプロジェクトをひとつビルドしてみることにしました。
Studio起動後に表示される画面から、サンプルプロジェクトをひとつインポートしてみました。
インポートしたプロジェクトをビルドして実行してみたところ、
iOS版
動きました!
まとめ
標準的なNode.jsのインストールをしている、もしくはそもそもNode.jsが入っていない環境の人などは、こういう問題は出ないと思います。。。
他で問題が出てしまうかもしれませんが、しばらくはこの環境でAppcelerator Studioを触ってみようと思います。
前回の補足
前回管理画面を眺めたときに、旧管理画面同様アプリの削除機能が見当たらないと書いていたのですが、今回デモアプリを追加したところ、表示されました。
あ、Appcelerator Platformのアプリ管理画面、最初から入っているデモアプリは削除できないやつなんだ。新しく追加したアプリには、削除ボタンがついていた。 pic.twitter.com/hY9YVkpSNl
— Umi Uyura (@umi_uyura) June 8, 2015
これで、旧管理画面のようにサンプルアプリで溢れかえることはなさそうです。
- メディア:
- この商品を含むブログを見る