DeployGateへpushするTitanium CLIプラグイン ti-deploygate-hook を作った
旧TestFlightのサービスが完全に終了してしまいましたが、新TestFlightはまだ制約が多い感じなのと、そもそもAndroidが除外されてしまったこともあり、現状アプリのベータ版配布サービスとしてはDeployGateをメインで使っています。
そこで、Titanium CLIでビルドした際にDeployGateへのPUSHまでできるように、プラグインを作ってみました。
こちらの記事 を参考にしつつ、Androidの対応とメッセージの付与ができるようにしています。
また、プラグイン開発の土台として、テンプレートとなるプロジェクト appcelerator/titanium-cli-plugin-boilerplate が公開されていたので、これを利用して作りました。
前提条件
dgate
コマンドを利用しますので、RubyGemsから導入しておいてください。
$ [sudo] gem install dgate
インストール
導入方法として、以下の2つの方法がありますので、好みによって選んでください。
- 全てのプロジェクトで使えるようにグローバルにインストールする
- 特定のプロジェクトだけで使えるように、プロジェクトのローカルにインストールする
1. グローバルにインストールする場合
とりあえずGitHubから。sudoは必要に応じて付けてください。
$ [sudo] npm i -g umi-uyura/ti-deploygate-hook ti-deploygate-hook hook installed
※2015/04/06追記 npmに登録してみた ので、以下のやり方でもインストールできるはずです。
$ [sudo] npm install -g ti-deploygate-hook ti-deploygate-hook hook installed
ti-deploygate-hook hook installed
というメッセージが表示されれば成功です。
Titanium CLIのhookに登録できています。
もし出力されない場合は、コマンドを直接打ち込んでみてください。
$ ti-deploygate-hook
上記のメッセージが表示されれば大丈夫だと思います。
2. プロジェクトのローカルにインストールする場合
この場合、GitHubから プラグインのZIPファイル をダウンロードしてきて、プロジェクト直下に展開・配置します。
フォルダ構成としては、
<project root> + plugins + ti-deploygate-hook
のようになります。
次に、 tiapp.xml
の <plugins>
に <plugin version="1.0">ti-deploygate-hook</plugin>
を追加します。
具体的には、以下のようにします。
<plugins> ... <plugin version="1.0">ti-deploygate-hook</plugin> ... </plugins>
正しくインストールできているかは、 $ titanium plugin
を実行するとわかるようです。
$ titanium plugin Titanium Command-Line Interface, CLI version 3.4.2, Titanium SDK version 3.5.1.GA Copyright (c) 2012-2015, Appcelerator, Inc. All Rights Reserved. Please report bugs to http://jira.appcelerator.org/ Project CLI Plugins ti-deploygate-hook Version = unknown Location = /Users/oreore/workspace/DemoProject/plugins/ti-deploygate-hook Commands = No commands found Hooks = deploygate-hook ...
このように、ti-deploygate-hookが認識されていれば使えると思います。
使い方
事前準備
あらかじめ、 $ dgate login
を実行して、DeployGateへログインしておいてください。
現状、ログインしていない状態で実行すると処理が止まってしまいます…
$ dgate login
ログインしているかわからないときは、とりあえず dgate login
を叩くと、未ログインの場合はメールアドレスとパスワードを聞かれ、ログイン済みの場合は何もせず処理が終了するようです。
※ dgate 1.0.2 にて確認
DeployGateへPUSH
正しくインストールされていれば、 titanium build
時に --dgate
フラグを付与することで、ビルド完了時にプラグインが dgate
コマンドを呼び出して、DeployGateへPUSHします。
$ titanium build -p ios --target device --dgate
PUSH時にメッセージを付与したい場合は、 --dgate
フラグに続けてメッセージを入力してください。
$ titanium build -p ios --target device --dgate 'Uploaded from ti-deploygate-hook.'
上記2つはプラットフォームがiOSの想定ですが、Androidでも同様に動作するはずです。
$ titanium build -p android --target device --dgate 'Uploaded from ti-deploygate-hook.'
DeployGateへ送るときには端末へ送る必要はないと思いますので、上記の例に加えて -b (--build-only)
フラグを付けて実行するのも良いと思います。
注意事項
私がMacでしか開発をしていないため、現状Mac上でしか動作確認していません。
パスの処理を見なおせばWindowsでも使えるような気がするので、あとで手を入れてみます。